- •Федеральное агенство по образованию Государственное образовательное учреждение высшего профессионального образования «Санкт-Петербургский государственный электротехнический университет» («лэти»)
- •Введение
- •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.5.2. Криптоанализ алгоритма rsa для случая общего модуля
В этой атаке можно выделить 2 этапа:
1) Пользователь отправляет одно и то же сообщение двум другим пользователям, зашифровав это сообщение разными открытыми ключами.
2) Противник перехватывает оба шифртекста и вычисляет исходное сообщение.
Каждому из этапов соответствует своя экранная форма. В первой форме учащийся вводит произвольное текстовое сообщение. После окончания ввода сообщение шифруется, результат также показывается в этой форме. Во второй форме приведены исходные данные, имеющиеся у противника: открытые ключи обоих пользователей и оба шифртекста; последовательность вычисления исходного сообщения и само сообщение, введенное в первой форме.
8. Оценка скорости работы алгоритма
Для обработки достаточно длинных сообщений в программе имеется возможность шифровать или подписывать заданный файл. Структура, содержание и размер файла не имеют значения.
Для шифрования файла требуется задать файл с открытым текстом и файл, в который требуется поместить зашифрованный текст. Это должны быть два разных файла. При этом файл с открытым текстом не изменяется. Точно так же можно провести и дешифрование ранее зашифрованного файла.
При создании цифровой подписи она помещается в отдельный заданный файл. Для проверки подписи требуется задать файл с сообщением и файл с подписью.
После завершения операции с файлом выводятся: время обработки, включая время, затраченное на чтение и запись в файл; размер исходного файла; размер файла с шифртекстом; результат проверки подписи. Для измерения продолжительности операции замеряется системное время до и после выполнения операции.
9. Структура диалога
Каждый прямоугольник означает экранную форму. Стрелка между формами означает, что пользователь может перейти от одной форме к другой в направлении, показанном стрелкой.
Форма «Выбор алгоритма» предназначена для выбора методов шифрования и цифровой подписи, которые будут использоваться при действиях с файлами.
10. Заключение
Создана обучающая программа, которая предназначена помочь освоить некоторые разделы современной криптографии. Программа не содержит электронного учебника. Предполагается, что учащийся уже знаком с материалом, а к программе обращается, чтобы углубить свои знания и сделать выводы. В результате работы с программой студент может узнать:
Принципы работы итеративных блочных шифров.
Принципы работы асимметричных шифров.
Назначение цифровой подписи.
Оценки скорости работы шифров.
Оценки скорости генерации ключей.
Основные стандарты, существующие в современной криптографии: российский стандарт шифрования (ГОСТ 28147-89), российский стандарт цифровой подписи (ГОСТ 34.10-94), американский стандарт цифровой подписи (DSS).
Изучение атак, реализованных в программе, поможет студенту научиться:
1) Формировать цифровую подпись.
2) Генерировать и распределять ключи для асимметричных алгоритмов.
В качестве примеров были выбраны одноключевые блочные шифры Blowfishи ГОСТ 28147-89, двухключевые алгоритмы шифрованияRSAи схема Эль-Гамаля, двухключевые алгоритмы цифровой подписи –RSA, схема Эль-Гамаля,DSA, ГОСТ 34.10-94. Все вышеперечисленные алгоритмы были реализованы. Для некоторых алгоритмов длина ключа не соответствует стандартам.