3.2.2 Общая часть реализации
В ходе работы был реализованы муравьиный и генетический алгоритмы
для криптоанализа алгоритмов шифрования DES и AES.
Модульная диаграмма, диаграмма use-case приведены в приложении
№1. Интерфейс описан в файлах *.h, реализация функций в файлах *.c
Программа состоит из 4 основных частей:
1. алгоритмы шифрования /дешифрования;
2. вспомогательная прослойка, позволяющая работать с выбранными
алгоритмами шифрования единым образом – интерфейс ops;
3. муравьиный алгоритм;
4. генетический алгоритм;
В приложении 2 приведены детальные описания основных функций,
переменных, структур, которые использованы при реализации системы.
Так как интерфейсы des и aes отличаются, а работать с ними
необходимо единообразно, то был реализован интерфейс, описанный в ops.h.
(ops — original population seed).
Реализованный интерфейс позволяет работать с оригинальным текстом,
зашифрованным текстом и ключом шифрования. Для определения с каким
типом данных будет происходить работа используется enum ops_data_type.
В программе создана структура ops_data, описывающая операции с
данными: выделение памяти, освобождение памяти, получение значения бит на
53
определенной позиции, установка значения бит, печать данных вызов функции
шифрования. Данная структура содержит определенный набор параметров и
функций, которые позволяют наиболее унифицировано обрабатывать данные.
В представленной работе исходные данные, а именно текст читается из
исходного файла «input.txt», так же есть возможность использовать данные
сформированные случайным образом в виде битовой строки исходного текста.
Выбор данного подхода обусловлен тем, что в качестве фитнесс-функции
используется достаточно простое сравнение битовых строк. Таким образом для
проводимого исследования нет необходимости в осмысленном тексте, так как
возможности использования фитнесс-функций, основанных на биграммах или
триграммах, не будут использоваться.
Работа с тем или иным алгоритмом шифрования определяется
вариантом, выбранным при запуске программы.
Для исследования генетического алгоритма реализованы две функции
необходимые для обеспечения работы алгоритма:
1. функция порождения потомка
2. функция мутации генов потомка
Заголовочные файлы ops_aes.h и ops_des.h и соответствующие им *.с
файлы содержат определение специфичных функций для AES и DES
соответственно.
В случае алгоритма AES предусмотрена возможность определять длину
ключа, так как в алгоритме AES длина ключа может быть определена 128, 192,
256 бит. В работе проводился анализ строк длиной 128 бит, что обусловлено
техническими ресурсами.
Инициализация ops_data для работы с алгоритмом DES. В данном
случае длина ключа фиксирована — 56 бит. Но есть возможность изменить
количество раундов шифрования. При тестировании данных использовалось
число раундов 1, 2, 18.
В случае DES биты ключа идут не совсем подряд. Из каждого байта
ключа используется только первых семь бит, таким образом, 56 битовый ключ
54
хранится в 64-битовой последовательности. Эта особенность учтена при
реализации функций генерации текста, получения, установки бита, печати и
копировании данных: allocate, random, get_bit, set_bit, print, copy.
Do'stlaringiz bilan baham: |