49
В первую очередь для решения данной задачи необходимо располагать
алгоритмами шифрования и дешифрования. В качестве алгоритмов
исследования были выбраны алгоритмы DES и AES. Количество раундов
алгоритма DES определено в реализации «16». При реализации алгоритма AES
была предусмотрена возможность выбирать параметр размера ключа.
Исходный текст для шифрования считывается из файла «input.txt». Ключ
шифрования «CotaFota» задан при реализации.
Так как основной задачей работы является криптоанализ, на реализации
криптоалгоритмов не будем останавливаться.
Следующей задачей является реализация природных алгоритмов
шифрования, в качестве которых выбраны муравьиный и генетический.
Должна быть реализована возможность выбора пары алгоритм
шифрования — алгоритм криптоанализа с дальнейшим выбором
«тестирование» или криптоанализ с исследуемыми параметрами.
Каждый из алгоритмов криптоанализа
обладает набором параметров,
которые используются, как для вычисления фитнесс-функции, так и для
реализации алгоритма криптоанализа. Система должна иметь возможность
ввода параметров из файла, и запись результатов
криптоанализа в файл или
вывод на экран. Вариантом по умолчанию является вывод на экран результатов
в режиме «тестирование».
Для удобства пользователя в случае рабочего режима в консоль
выводиться сообщение о текущем раунде работы алгоритма криптоанализа.
Режим «тестирования» реализует один раунд с двумя итерациями
криптоанализа, при этом в файл тестирования будут записаны: значения
входных параметров, основные промежуточные результаты расчета фитнесс-
функции, формирование тестовых ключей и другие.
Входные данные должны быть записаны в файлы согласно таблице 3.5.
50
Таблица 3.5
Определение наименования файлов с
входными параметрами
криптоанализ - шифрование Режим тестирования
Рабочий режим
Муравьиный - AES
data_ant_aes_test.txt
data_ant_aes.txt
Муравьиный - DES
data_ant_des_test.txt
data_ant_des.txt
Генетический - AES
data_gen_aes_test.txt
data_gen_aes.txt
Генетический - DES
data_gen_des_test.txt
data_gen_des.txt
Входные
параметры
для
работы
алгоритмов
криптоанализа
перечислены в таблице 3.6. Входные параметры записаны в файле в строку
через пробел.
Таблица 3.6
Определение параметров для входных файлов алгоритмов криптоанализа
Параметр
Тип
Описание
1
2
3
Муравьиный
&cfg.alpha
double Эмпирические коэффициенты, используемые для вычисления
вероятностей переходов муравья по формуле (2-2)
&cfg.beta
double
&cfg.rho
double
Коэффициент, регулирующий скорость испарения феромонов
от 0 до 1
&cfg.gamma
double
Значение фитнесс-функции, при достижении которого
считается,
что найден оптимальный ключ
&cfg.delta
double
Заданное значение (от 0 до 1), используется для установки
значения бита. Принцип использования описан ниже.
&cfg.kappa
integer
Параметр, при достижении значения, которого в тестируемом
ключе фиксируются биты
количество найденных оптимальных ключей, после которого
включается алгоритм фиксации бит, см. delta
&rounds
integer Количество раундов криптоанализа
&iterations
integer Количество итераций в раунде
&ant_count
integer Количество муравьев
Параметры специфичные для
алгоритмов шифрования
AES
&seed_count
&seed.text_cnt
integer
размер
популяции,
используется
для
формирования
начального значения феромонов
51
Продолжение таблицы 3.6
1
2
3
&key_len
integer
Длина ключа шифрования
DES
&seed.text_cnt
integer
размер
популяции,
используется
для
формирования
начального значения феромонов
&des_rounds
integer Количество раундов шифрования
Генетический
&cfg.parents_to_keep integer
количество наилучших
особей родительского поколения,
которые сохраняются в следующем поколении. Значение не
может превышать размер популяции population_size
&cfg.mutation_rate
double вероятность мутации
&cfg.delta
double
заданное значение (от 0 до 1), используется для установки
значения бита. Принцип использования описан ниже.
&generations
integer количество поколений
&population_size
integer размер популяции (количество особей)
Параметры специфичные для алгоритмов шифрования
AES
&key_len
integer Длина ключа шифрования
DES
&des_rounds
integer Количество раундов шифрования
Результаты работы алгоритма будут записываться в файлы согласно
таблице 3.7.
Таблица 3.7
Определение наименования файлов с полученными результатами
криптоанализ - шифрование
Режим тестирования
Рабочий режим
Муравьиный - AES
out_ant_aes_test.txt
out_ant_aes.txt
Муравьиный - DES
out_ant_des_test.txt
out_ant_des.txt
Генетический - AES
out_gen_aes_test.txt
out_gen_aes.txt
Генетический - DES
out_gen_des_test.txt
out_gen_des.txt
Файл для записи результатов открывается в режиме «a» - Добавление в
конец файла. Если на диске уже есть файл с таким именем, новые данные
дописываются в конец файла. Если такого файла нет, то он будет создан.
52
Поэтому в начале работы следует проверить
существует ли файл с данными,
которые надо сохранить, в противном случае будет получен файл с большим
количеством данных.
Для муравьиного алгоритма в тестовом файле будут отражены
результаты: начального распределения феромонов, формирование тестовых
ключей, расчет величин изменения феромонов
при увеличении и испарении,
расчет вероятностей перехода, выявление случая оптимального ключа.
Do'stlaringiz bilan baham: