Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Криптография / ОБУЧАЮЩИЕ ПРОГРАММЫ / Пояснительная записка.doc
Скачиваний:
39
Добавлен:
01.05.2014
Размер:
411.65 Кб
Скачать

1.Постановка задачи 3

2.Обзор современного состояния темы 4

3.Выбор алгоритмов и атак 4

3.1.Критерии выбора алгоритмов 4

3.2.Выбор симметричных алгоритмов шифрования 5

3.3.Выбор алгоритмов шифрования с открытым ключом 6

3.4.Выбор алгоритмов цифровой подписи 6

3.5.Выбор криптографических атак 6

4.Описание использованных криптографических алгоритмов 7

4.1.Симметричные алгоритмы шифрования 7

4.1.1.Blowfish 7

4.1.2.Алгоритм ГОСТ 9

4.2.Асимметричные алгоритмы шифрования 10

4.2.1.RSA 10

4.2.2.Схема шифрования Эль-Гамаля 11

4.3.Алгоритмы цифровой подписи 11

4.3.1.RSA 11

4.3.2.DSA 11

4.3.3.Схема подписи Эль-Гамаля 12

4.3.4.Алгоритм ГОСТ 13

4.3.5.Хеш-функция SHA 13

5.Описание использованных атак 15

5.1.Атака на общий модуль против алгоритма RSA 15

5.2.Атака на выбранный шифртекст против алгоритма RSA 15

5.3.Атака против алгоритма DSA 16

6.Особенности реализации алгоритмов 17

6.1.Управление ключами 17

6.1.1.Генерация ключей 17

6.1.2.Хранение ключей 19

6.1.3.Длина ключа 19

6.2.Особенности реализации асимметричных алгоритмов 20

6.2.1.Модульная арифметика 20

6.2.2.Представление многозначных чисел 20

6.2.3.Сложение многозначных чисел 20

6.2.4.Умножение многозначных чисел 21

6.2.5.Деление многозначных чисел 21

6.3.Особенности реализации симметричных алгоритмов 21

6.3.1.Дополнение сообщений 21

6.3.2.Таблицы подстановки для алгоритма шифрования ГОСТ 28147-89 21

6.3.3.Подключи и таблицы подстановки для алгоритма Blowfish 22

6.3.4.Режим использования блочных шифров 23

7.Проектирование интерфейса 23

7.1.Сценарии использования программы 23

7.2.Пошаговое выполнение симметричных алгоритмов 24

7.3.Пошаговое выполнение асимметричных шифров 25

7.4.Пошаговое выполнение алгоритмов цифровой подписи 26

7.5.Демонстрация работы атак 26

7.6.Оценка скорости работы алгоритма 27

7.7.Структура диалога 28

8.Архитектура программы 29

8.1.Использование объектов-функций 29

8.2.Использование потоков 31

8.3.Использование генераторов ключей 32

8.4.Структура модулей 32

9.Заключение 34

Список литературы 36

Приложение 1…………………………………………………………………………………...37

Приложение 2…………………………………………………………………………………...45

Приложение 3…………………………………………………………………………………...46

  1. Постановка задачи

Целью данной работы является разработка программного средства, которое помогло бы студентам, изучающим криптографию, научиться сравнивать, выбирать и правильно использовать некоторые криптографические алгоритмы. Основные ограничения и требования к создаваемой системе сформулированы следующим образом.

  1. Программа должна быть полезной при изучении трех видов алгоритмов: симметричные шифры, асимметричные шифры, цифровая подпись. Выбор конкретных алгоритмов является одной из задач работы.

  2. Важным критерием при выборе алгоритмов являются требования рабочей программы курса «Криптография и защита информации» для подготовки магистров по направлению «Прикладная математика и информатика».

  3. С помощью данной программы учащийся должен иметь возможность оценить скорость работы криптографических алгоритмов и скорость генерации ключей для них.

  4. Там где это возможно, учащийся должен иметь возможность задавать длину ключа. Длина ключа может быть как очень малой, что делает анализ результатов более удобным, так и достаточно большой, что позволит оценить скорость работы алгоритма в реальных приложениях.

  5. В программе должен быть предусмотрен режим выполнения алгоритмов в пошаговом режиме, в котором можно видеть, как преобразуются данные на каждом шаге.

  6. Создаваемая система предназначена только для обучения, но ни в коей мере не для криптографической защиты какой-либо значимой информации. Следовательно, задачи управления ключами, т.е. их создание, хранение, передача и уничтожение, решаются ровно настолько, насколько это необходимо для обучения. Не требуется никаких средств защиты, например, от похищения ключа или специальных средств безопасного уничтожения ключей. Не требуется создавать криптографически безопасный генератор случайных чисел.

  7. Не предъявляется никаких особых требований к скорости работы алгоритмов. Это вызвано тем, что программа все равно не предназначена для защиты какой-либо важной информации, а в качестве примеров можно брать короткие сообщения.

  1. Обзор современного состояния темы

В настоящее время владение основами криптографии необходимо каждому специалисту по информационным технологиям. Поэтому в учебном плане имеется дисциплина «Криптография и защита информации», которая предусматривает выполнение учащимся ряда лабораторных работ. Перечислим те из них, которые относятся к изучению криптографических методов защиты информации:

  1. Симметричная криптография. Оценка скорости работы алгоритма шифрования с секретным ключом.

  2. Асимметричная криптография. Оценка скорости работы алгоритма генерации пары ключей.

  3. Асимметричная криптография. Оценка скорости работы алгоритма шифрования.

  4. Цифровая подпись. Формирование цифровой подписи. Оценка скорости работы алгоритмов цифровой подписи.

Для полного выполнения каждой из этих работ требуется реализовать соответствующие алгоритмы, что требует времени, и потому не всегда возможно. Создаваемая обучающая программа может быть полезной при выполнении этих работ, позволяя проанализировать криптографический алгоритм без его реализации.

Рассмотрение рабочей программы курса показало также, что в ней не уделяется достаточного внимания вопросам криптоанализа. Поэтому второй задачей обучающей программы является демонстрация работы нескольких атак. Это должно помочь студенту научиться правильно использовать изученные алгоритмы.

Сегодня во всем мире существует большой интерес к дистанционному обучению. Обычно дистанционный курс обучения включает в себя следующие компоненты: учебный материал в мультимедийной форме, интерактивную систему тестирования, полнотекстовую поисковую систему по материалу учебника. Такая форма подходит для изучения основных понятий криптографии, первоначального знакомства с криптографическими алгоритмами, протоколами и атаками. Но в данной работе эти компоненты обучающей программы рассматриваться не будут.