- •Постановка задачи
- •Обзор современного состояния темы
- •Выбор алгоритмов и атак
- •Критерии выбора алгоритмов
- •Выбор симметричных алгоритмов шифрования
- •Выбор алгоритмов шифрования с открытым ключом
- •Выбор алгоритмов цифровой подписи
- •Выбор криптографических атак
- •Описание использованных криптографических алгоритмов
- •Симметричные алгоритмы шифрования
- •Алгоритм гост
- •Асимметричные алгоритмы шифрования
- •Алгоритмы цифровой подписи
- •Алгоритм гост
- •Описание использованных атак
- •Атака на общий модуль против алгоритмаRsa
- •Атака на выбранный шифртекст против алгоритмаRsa
- •Атака против алгоритмаDsa
- •Особенности реализации алгоритмов
- •Управление ключами
- •Генерация ключей
- •Хранение ключей
- •Длина ключа
- •Особенности реализации асимметричных алгоритмов
- •Модульная арифметика
- •Представление многозначных чисел
- •Сложение многозначных чисел
- •Умножение многозначных чисел
- •Деление многозначных чисел
- •Особенности реализации симметричных алгоритмов
- •Дополнение сообщений
- •Подключи и таблицы подстановки для алгоритмаBlowfish
- •Режим использования блочных шифров
- •Проектирование интерфейса
- •Сценарии использования программы
- •Пошаговое выполнение симметричных алгоритмов
- •Пошаговое выполнение асимметричных шифров
- •Пошаговое выполнение алгоритмов цифровой подписи
- •Демонстрация работы атак
- •Оценка скорости работы алгоритма
- •Структура диалога
- •Архитектура программы
- •Использование объектов-функций
- •Использование потоков
- •Использование генераторов ключей
- •Структура модулей
- •Заключение
- •Список литературы
Режим использования блочных шифров
Существует 2 основных режима использования блочных шифров [3]:
режим электронной шифровальной книги (electroniccodebook–ECB)
режим сцепления блоков (cipher block chaining – CBC)
В режиме ECBпри фиксированном секретном ключе блок открытого текста всегда преобразуется в один и тот же блок шифртекста, поэтому теоретически можно создать шифровальную книгу из блоков открытого текста и блоков шифртекста. Такая книга будет иметь 2nэлементов для блока длинойnбит.
В режиме CBCблок открытого текста перед шифрованием подвергается операции побитового исключающего ИЛИ с предыдущим блоком шифртекста. В этом режиме блок шифртекста зависит не только от соответствующего блока открытого текста, но и от всех предыдущих блоков открытого текста в сообщении.
В данной работе не обсуждаются особенности этих двух режимов; используется режим ECB, чтобы сделать пошаговое выполнение симметричных алгоритмов более понятным.
Проектирование интерфейса
Сценарии использования программы
Выделим основные способы использования данной обучающей программы:
Пользователь хочет лучше разобраться в работе конкретного шифра или атаки.
Пользователь хочет оценить скорость генерации ключей.
Пользователь хочет оценить скорость работы алгоритма.
На каждой стадии использования программы пользователь предъявляет противоречивые требования к способу представления данных:
При пошаговом выполнении алгоритма объем сообщения и длина ключа должны быть небольшими. Довольно затруднительно воспринимать результаты работы асимметричного шифра, когда длина модуля составляет 256 бит или более. Зато требуется показать, как открытый текст преобразуется в числа, над которыми и выполняются дальнейшие операции. При рассмотрении симметричных алгоритмов требуется показать операции, выполняемые в каждом раунде, входные и выходные данные для каждого раунда.
Для оценки скорости работы пользователь может задать достаточно большое сообщение и ключ большой длины. Но здесь совершенно не требуется показывать результаты каждой операции.
Пошаговое выполнение симметричных алгоритмов
Оба реализованных симметричных шифра относятся к блочным итеративным шифрам. Учащемуся требуется продемонстрировать их основные особенности:
многократное повторение одного набора операций преобразования
использование криптосхемы Фейстеля
использование подключей
использование таблиц подстановки
для шифрования и дешифрования используется один и тот же алгоритм, но с разным порядком использования подключей
Для изучения работы каждого из этих шифров предназначены две экранные формы. На первой из них пользователь вводит сообщение, затем производится шифрование. Вторая форма предназначена для демонстрации работы алгоритма дешифрования. Шифртекст и открытый текст могут отображаться в текстовом или 16-ричном виде. Для каждого блока можно проследить входные и выходные данные для всех раундов; подключ, используемый на каждом раунде; результаты подстановки. Пользователь может также просмотреть таблицы подстановок.
Схема одного раунда алгоритма ГОСТ
28147-89, выводимая программой для конкретного
сообщения.