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

Компиляционная зависимость между двумя модулями показана стрелкой, выходящей из зависимого модуля.

Диаграмма модулей симметричных шифров

Модуль CryptoObjectsне содержит определений классов. В заголовкеCryptoObjects.hобъявлены имена указателей на объекты классов, которые реализуют криптографические алгоритмы. Объявлены также функцииGenerateKeys() иDestroyAll(), которые обеспечивают размещение этих объектов в динамической памяти и их удаление соответственно. Выделение отдельного модуля для этих целей было необходимо, поскольку:

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

  • Объект для шифрования должен создаваться в одном месте с дешифратором, поскольку их ключи должны быть согласованы.

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

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

  1. Заключение

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

  1. Принципы работы итеративных блочных шифров.

  2. Принципы работы асимметричных шифров.

  3. Назначение цифровой подписи.

  4. Оценки скорости работы шифров.

  5. Оценки скорости генерации ключей.

  6. Основные стандарты, существующие в современной криптографии: российский стандарт шифрования (ГОСТ 28147-89), российский стандарт цифровой подписи (ГОСТ 34.10-94), американский стандарт цифровой подписи (DSS).

Изучение атак, реализованных в программе, поможет студенту научиться:

  1. Формировать цифровую подпись.

  2. Генерировать и распределять ключи для асимметричных алгоритмов.

В качестве примеров были выбраны одноключевые блочные шифры Blowfishи ГОСТ 28147-89, двухключевые алгоритмы шифрованияRSAи схема Эль-Гамаля, двухключевые алгоритмы цифровой подписи –RSA, схема Эль-Гамаля,DSA, ГОСТ 34.10-94. Все вышеперечисленные алгоритмы были реализованы. Для некоторых алгоритмов длина ключа не соответствует стандартам.

Предложенная структура диалога имеет следующие недостатки:

  1. Основное время пользователь работает с вторичными окнами (окнами диалога). Следовательно, он не может использовать все пространство на экране или даже его большую часть для вывода данных.

  2. Первый недостаток приводит к тому, что все поля для ввода и вывода очень малы.

  3. Структура диалога слишком сложна. Это вызвано тем, что порядок появления диалоговых окон неочевиден.

  4. Структура диалога замедляет работу с программой, особенно опытных пользователей.

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