- •Федеральное агенство по образованию Государственное образовательное учреждение высшего профессионального образования «Санкт-Петербургский государственный электротехнический университет» («лэти»)
- •Введение
- •1. Обзор современного состояния темы
- •2. Алгоритмы и атаки, включенные в состав обучающей программы
- •2.1. Критерии отбора алгоритмов
- •2.2. Симметричные алгоритмы шифрования
- •2.3. Описание симметричных криптографических алгоритмов
- •2.3.1. Алгоритм Blowfish
- •2.3.2. Алгоритм гост
- •3. Алгоритмы шифрования с открытым ключом
- •3.1. Алгоритм rsa
- •3.2. Алгоритм Эль-Гамаля
- •4. Алгоритмы цифровой подписи
- •4.1. Схема rsa
- •4.2. Схема dsa
- •4.3. Схема подписи Эль-Гамаля
- •4.4. Алгоритм гост
- •5. Криптографические атаки
- •5.1. Атака на общий модуль против алгоритма rsa
- •5.2. Атака на выбранный шифртекст против алгоритма rsa
- •5.3. Атака против алгоритма dsa
- •6. Особенности реализации алгоритмов
- •6.1. Управление ключами
- •6.1.1. Генерация ключей
- •6.1.2. Хранение ключей
- •6.1.3. Длина ключа
- •6.2. Особенности реализации асимметричных алгоритмов
- •6.2.1. Модульная арифметика
- •6.2.2. Представление многозначных чисел
- •6.2.3. Сложение многозначных чисел
- •6.2.4. Умножение многозначных чисел
- •6.2.5. Деление многозначных чисел
- •6.3. Особенности реализации симметричных алгоритмов
- •6.3.1. Дополнение сообщений
- •6.3.2. Таблицы подстановки для алгоритма шифрования гост 28147-89
- •6.3.3. Подключи и таблицы подстановки для алгоритма Blowfish
- •6.3.4. Режим использования блочных шифров
- •Проектирование интерфейса
- •7.1. Сценарии использования программы
- •7.2. Пошаговое выполнение симметричных алгоритмов
- •7.3. Пошаговое выполнение асимметричных шифров
- •7.4. Пошаговое выполнение алгоритмов цифровой подписи
- •7.5. Демонстрация работы атак
- •7.5.1. Криптоанализ алгоритма rsa на основе выбранного шифртекста
- •7.5.2. Криптоанализ алгоритма rsa для случая общего модуля
- •8. Оценка скорости работы алгоритма
- •9. Структура диалога
- •10. Заключение
- •Список литературы
7.3. Пошаговое выполнение асимметричных шифров
Перед непосредственным выполнением преобразований сообщение должно быть преобразовано в последовательность чисел.
7.4. Пошаговое выполнение алгоритмов цифровой подписи
При изучении электронной цифровой подписи учащемуся необходимо понять назначение и схему использования подписи:
1) Отправитель вырабатывает цифровую подпись для конкретного сообщения, используя свой секретный ключ.
Отправитель посылает сообщение вместе с подписью по общедоступному каналу связи. При этом противник может изменить сообщение или подделать подпись.
2) Получатель проверяет полученную подпись и сообщение, используя открытый ключ отправителя. Если по пути к получателю сообщение было изменено или подписано самозванцем, то этот факт будет установлен с вероятностью близкой к 1.
В программе каждому из этих трех шагов соответствует отдельная экранная форма. На первой экранной форме учащийся задает сообщение. На этой же форме выведен секретный ключ, который используется при генерации подписи, и формулы, по которым создается подпись. После окончания ввода сообщения подпись генерируется и выводится.
На второй экранной форме пользователю предоставляется возможность изменить сообщение, т.е. имитировать возможную атаку.
Третья форма соответствует проверке подписи. На ней показаны: полученное сообщение, подпись, открытый ключ и результат проверки. Приведены также уравнения, по которым производилась проверка. Секретный ключ на этой форме не показан, чтобы подчеркнуть, что он не используется при проверке.
В общем случае алгоритм цифровой подписи не требует предварительного использования хеш-функции, поэтому в данном режиме хеш-функция не используется. Это упрощает понимание работы алгоритма. Кроме того, на второй экранной форме учащийся может изменить только сообщение, а не его подпись, т.к. если представить подпись в виде текста, то большинство символов не будет видно в текстовом поле вывода. Макеты описанных выше экранных форм приведены в приложении.
7.5. Демонстрация работы атак
При демонстрации атак главное – показать учащемуся, какие исходные данные есть у противника, как он может получить на их основе интересующие его сведения, как он может получить необходимые дополнительные данные.
7.5.1. Криптоанализ алгоритма rsa на основе выбранного шифртекста
В этой атаке можно выделить 3 этапа:
1) Отправитель шифрует сообщение.
2) Противник перехватывает шифртекст и на его основе вычисляет некоторый фиктивный шифртекст.
3) На третьем этапе противник добивается, чтобы отправитель подписал этот фиктивный шифртекст, и тем самым расшифровал его. На основе этого вспомогательного открытого текста противник может вычислить интересующий его текст.
Каждому из этих этапов соответствует своя экранная форма. В первой форме учащийся вводит произвольное сообщение, которое и должен узнать «противник».
Во второй форме приведены: исходные сведения, имеющиеся у противника – шифртекст и открытый ключ; результаты вычислений фиктивного шифртекста.
В третьей форме приведен результат дешифрования фиктивного шифртекста и восстановленное «противником» сообщение, которое пользователь ввел на первой форме.
В этой и последующих атаках учащийся сам вводит сообщение, которое должен получить «противник». Это поможет убедить учащегося, что атака действительно возможна. Иначе пользователь может подумать, что это просто специально подобранный пример.