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

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

Б. Н. Воронков (Воронежский государственный университет,

угпку@таИ. ги),

И. И. Проскурин (Воронежский государственный университет,

рго@аиОриШк ги)

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

Известно несколько компьютерных обучающих программ, позволяющих быстро и достаточно полно ознакомиться с алгоритмами шифрования и расшифрования данных, используемыми в традиционных симметричных и современных асимметричных криптосистемах [1 - 3]. К сожалению, эти программы, представленные в сети Интернет, не сопровождаются исходными текстами, ограничиваются краткой справочной информацией и содержат большое число ошибок и недочетов. К тому же в них приводятся только зарубежные стандарты. В [4] рассматривается упрощенный вариант обучающей программы по изучению российского стандарта шифрования, реализующий лишь один из режимов шифрования. Ниже описывается модифицированная и более полная версия.

1. Принципы работы алгоритма ГОСТ 28147-89 [5]

• криптосистема симметричная (одноключевая);

• блочная, с длиной блока 64 бит, однако в режимах гаммирования и гамми-рования с обратной связью реализуется поточное шифрование;

• длина ключа 256 бит, для генерации псевдослучайной последовательности, используемой при поточном шифровании, требуется синхропосылка длиной 64 бит;

• используется лишь один метод шифрования - метод замены, структура алгоритма базируется на использовании схемы Фейстеля [6], применяется сложение по модулю 2, 232 и (232-1);

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

• количество раундов шифрования - 32, а в режиме выработки ими-

товставки - 16;

• нелинейность преобразования информации в функции шифрования

обеспечивается применением динамических таблиц замены;

• циклы шифрования и расшифрования являются взаимнообратимыми

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

Сформулированные принципы позволяют выявить различия между

американским стандартом шифрования DES (Data Encryption Standard), рядом других симметричных алгоритмов и российским ГОСТ 28147 -89.

2. Описание программы

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

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

Для успешного освоения алгоритма необходимо уметь переводить числа из двоичной и шестнадцатиричной систем счисления в десятичную и обратно, а также выполнять операции сложения по модулям 2, 232, (232 - 1).

2.1. Общие сведения

Название программного продукта «ГОСТ 28147: обучение». Программа реализована в среде программирования Borland Delphi 7. Программный продукт состоит из одного запускаемого модуля ГОСТ89.ехе. Программа функционирует в операционных системах Windows 2000, Windows XP, Windows Vista Business.

2.2. Функциональное назначение

Данный программный продукт позволяет выполнять 3 основных действия:

1. «Обучение и тестирование» - в данном пункте предлагается изучить алгоритм шифрования ГОСТ 28147-89 (в режиме гаммирования), в ходе последовательных шагов обучения. Для этого необходимо ввести открытый текст, ключ и синхропосылку, служащую для рандомизации процесса шифрования. После прохождения всех необходимых этапов

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

2. «Шифрование файла» - в данном пункте можно зашифровать или расшифровать любой файл, одним из возможных способов: простая замена; гаммирование; гаммирование с обратной связью. После выполнения действий выдается статистика о скорости чтения, шифрования, и записи информации.

3. «Шифрование с клавиатуры» - в данном пункте можно зашифровать или расшифровать любой текст, введенный с клавиатуры, одним из возможных способов: простая замена; гаммирование; гаммирование с обратной связью.

Режим ввода организован таким образом, что данные можно вводить как в символьном представлении, так и в шестнадцатиричном.

2.3. Описание алгоритма работы программы

После запуска приложения ГОСТ89.ехе загружается главная форма программы. В данной форме вводятся первоначальные данные: ключ (32 байта), синхропосылка (8 байт) и предлагается выбрать режим работы программы: «Обучение и тестирование», «Шифрование файла» или «Шифрование с клавиатуры» (рис. 1). Переключение между режимами осуществляются с помощью закладок.

В режиме «Обучение и тестирование» можно пройти все этапы обучения или просмотреть предыдущие результаты тестирования. Для выбора режима обучения необходимо ввести открытый текст и нажать кнопку «Начать тест». Для выбора просмотра результатов предыдущих тестирований необходимо нажать кнопку «Загрузить результат». После нажатия на кнопку «Начать тест» открывается окно теста, сам тест разбит на 12 последовательных шагов, с подробным описанием действий, которые нужно сделать, и диаграммой, на которой графически отображается необходимый шаг обучения. Кроме подробного описания на форме( в большинстве шагов) присутствует кнопка «Демонстрация», с помощью которой можно получить дополнительную подсказку. Для перехода на следующий шаг необходимо нажимать кнопку «Далее>>», для возврата на предыдущий шаг кнопку «<<Назад» (рис. 2).

Рис 1. Главная форма программы

в peknuc глилдаззликн Разделение аргумента по 32 бита

сневдэ ног абрэбстм сжсхгсш»« S cchbw ц»^ зэдоссеог+р !расо«щенм

лове!

ИсхжлЛтвст г гггбеапя w бюи поЗ байт и « ¿«а*- задорэвьеаеге= pect>«rr^*i та<ыо li*- do: -асгта

Б «о* дагги *гзее«егс=' i« jp»Ttt* r«peri

пх*оз55ге%«осп4 «сег' РГПЧ;

Ьессы**»« раэигнтъ г»э: «доек гыисг? iwte >50лхы*х на сгасое - нша« 32 биё

начало гг s) s = оси urtcl 3alhop s)

S *• * CTi£u*e32, S ' S3 » иташмВ' S !

»-доом?*

S = |S1 so i 1

5iCCKUMi3U!irap.$ w

Нсгаяная госпедоеяеяйюстъ бмт«е 5

|iioiiiii ошкои отию -:i«nco: dgi:oioi lioniso оюкпо аогоик Старше 32 (жл 51 Vr-auiMf 32 бита SO

«oai.'ti

Рис. 2. Шаг №1 в режиме «Обучение и тестирование»

После окончания обучения выдается окно с результатами тестирования, в котором показывается результат по каждому шагу, с деталиров-

кой на каком шаге, и какое количество бит было введено неправильно. Также отображается открытый текст, зашифрованный текст, ключ, син-хропосылка и имя пользователя который проходил тестирование. Открытый и зашифрованный тест отображаются как в шестнадцатиричном, так и в символьном представлении. «шж чичмп^^^^и^^—-

Рис. 3. Результат тестирования При желании можно сохранить результат тестирования.

Рис. 4. Сохранение результатов тестирования

В режиме «Шифрование файла» можно зашифровать или расшифровать файл любого формата. Для этого необходимо ввести ключ и син-хропосылку (в режиме «простой замены» синхропосылка не используется). Также необходимо ввести имя файла с открытыми данными и имя файла для зашифрованного результата. Для начала шифрования необ-

ходимо нажать кнопку «Зашифровать/Расшифровать». После выполнения шифрования/расшифрования выводится статистика о времени и скорости выполнения.

Рис. 5. Главная форма режима шифрования файлов

Для работы в режиме «Шифрование с клавиатуры» необходимо ввести ключ, синхропосылку и открытый текст. Далее нажать кнопку «Зашифровать/Расшифровать». После выполнения шифрования/расшифрования на экран выводится обработанная информация. Данные можно вводить как в символьном, так и в шестнадцатиричном представлении. В режиме простой замены длина обрабатываемой информации должна быть кратна 8 символам.

Рис. 6. Главная форма режима шифрования с клавиатуры

Обучающая программа дает возможность пользователю детально разобраться в алгоритме шифрования ГОСТ 28147-89, на ее основе можно организовать проведение лабораторной работы. Данная разработка может служить основой для создания обучающих программ по другим алгоритмам, использующим сходные шаги (арифметические и логические операции, битовые перестановки, замены, сдвиги, модулярную арифметику).

Литература

1. Кабанов Е. В. Программа обучения алгоритму шифрования DES / Е. В. Кабанов, М. В. Прокопов [электронный ресурс], 2001г. -

2. Витер В. Обучающая программа El-Gamal. Версия 1.0 / В. Витер [электронный ресурс], 1999 г. - ( vvvslava@hotmail.ru).

3. Вычисления, полезные в криптографии : Crypto03.exe, v. 10.11.03 [электронный ресурс]. - Ставрополь : КубГТУ, 2003.

4. Воронков Б. Н. Разработка обучающей программы по изучению российского стандарта шифрования ГОСТ 28147 - 89 / Б. Н. Воронков, И. А. Терпугов // Из режима функционирования - в режим развития: сб. н. тр. регион. межвуз. НПК 23 - 26 апреля 2007 г. В 2 - х частях. - Воронеж : ВФ МГЭИ, 2007. - Ч. 2. - С. 14 - 20.

5. Система обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. ГОСТ 28147 - 89. - М. : ИПК издательство стандартов, 1996. - 28 с.

6. Хоффман Л. Дж. Современные методы защиты информации : Пер. с англ. Под ред. В. А. Герасименко / Л. Дж. Хоффман . - М. : Советское радио, 1980. - 264 с.