УДК 004.056.55 й01: 10.12737/3505
Исследование возможности применения бионических методов пчелиных колоний для реализации криптоанализа классических шифров перестановок*
Ю. О. Чернышёв, А. С. Сергеев, Е. О. Дубров, А. Н. Рязанов
Рассматривается возможность применения алгоритмов пчелиных колоний для реализации криптоанализа шифров перестановок. Данная задача является классической оптимизационной задачей, для решения которой применяются известные методы пчелиных колоний, относящихся к сравнительно новому классу биоин-спирированных оптимизационных методов. Показано, что данная задача является частным случаем задачи о назначениях и может быть решена с помощью алгоритма пчелиных колоний, основу поведения которых составляет самоорганизация, обеспечивающая достижение общих целей роя. На первом этапе с помощью пчёл-разведчиков формируется множество перспективных областей-источников, на втором этапе с помощью рабочих пчёл-фуражиров осуществляется исследование окрестностей данных областей. При этом основная цель колонии пчёл — найти источник, содержащий максимальное количество нектара. Рассмотрены методы представления решения (позиции в пространстве поиска), приведена формула для определения значения целевой функции (количества нектара). Показано, что целью поиска является определение оптимальной комбинации символов с максимальным значением целевой функции. Приводится описание основных этапов алгоритма пчелиных колоний, а также пример его работы.
Ключевые слова: криптоанализ, задача о назначениях, биоинспирированные методы, алгоритм пчелиных колоний, рабочие пчёлы (фуражиры), пчёлы-разведчики, шифр перестановки.
Введение. В последние годы интенсивно разрабатывается новое научное направление под названием «природные вычисления», объединяющее математические методы, в которых заложен принцип природных механизмов принятия решений. Как отмечено в [1], научное направление «природные вычисления» объединяет такие разделы, как эволюционное программирование, нейросетевые вычисления, алгоритмы роевого интеллекта, муравьиные и генетические алгоритмы. В моделях и алгоритмах эволюционных вычислений ключевым элементом является построение начальной модели и правил, по которым она может изменяться (эволюционировать). В течение последних лет были предложены разнообразные схемы эволюционных вычислений, в том числе генетические алгоритмы, генетическое программирование, эволюционные стратегии, эволюционное программирование. Общие концепции и методологический подход к построению эволюционных вычислений, основанных на природных системах, а также основные гипотезы, закономерности и положения концепции эволюционных вычислений отмечены в [2, 3]. В настоящее время известны применения генетических алгоритмов для оптимизации широкого круга задач, в том числе задач криптоанализа. В [4-9] авторами рассматривались методы организации криптографических атак на традиционные симметричные криптосистемы, использующие шифры перестановки и замены, а также на блочные криптосистемы с использованием биоинспирированных методов. Следует заметить, что задачи такого типа относятся к переборным задачам с экспоненциальной временной сложностью. Побудительным мотивом для разработок новых алгоритмов являются возникшие потребности в решении задач большой размерности [10]. Анализ исследований показывает, что наиболее успешными в данных условиях являются методы, в которых заложены принципы природных механизмов принятия решений. Недостатком генетических алгоритмов является наличие «слепого» поиска, что приводит к увеличению времени поиска, генерации большого количества одинаковых и плохо приспособленных решений, что может привести к попаданию в локальный оптимум [11]. Поэтому представляет интерес применение эвристических мето-
* Работа выполнена при финансовой поддержке РФФИ (проект 12-01-00474).
62
дов, инспирированных природными системами, в которых осуществляется поэтапное построение решения задачи (то есть добавление нового оптимального частичного решения к уже построенному частичному оптимальному решению). Одной из последних разработок в области роевого интеллекта является алгоритм пчёл, который довольно успешно используется для нахождения экстремумов сложных многомерных функций [10].
Первые публикации, посвящённые пчелиным алгоритмам для нахождения экстремумов сложных многомерных функций, относятся к 2005 году [12, 13]. В [14] рассмотрена суть этого алгоритма, приведено сравнение алгоритма пчёл с генетическим алгоритмом и алгоритмом, моделирующим поведение муравьев. Описание алгоритма, основанного на поведении колонии пчёл, приводится в [15, 16, 17]. Исследование пчелиных алгоритмов для решения комбинаторных теоретико-графовых задач (задача разбиения графа, раскраска графа, сравнение с другими «биоин-спирированными» методами) приводится в [18, 19]. Можно отметить также работы [20, 21], посвящённые рассмотрению алгоритма решения задачи размещения на основе моделирования поведения пчелиной колонии, основным принципам работы простого пчелиного алгоритма, улучшенного пчелиного алгоритма, алгоритма колонии пчёл, моделирующих поведение пчёл в живой природе в поисках нектара. Алгоритм разложения составных чисел на простые сомножители с использованием пчелиных колоний, используемый при криптоанализе алгоритма RSA, описан авторами в [22, 23]. Обзор актуальных алгоритмов и методов роевого интеллекта (муравьиных, пчелиных алгоритмов, метода роя частиц), их отличительные особенности, достоинства, недостатки и возможности практического применения приведены в [24].
В настоящей работе рассматривается метод криптоанализа классических шифров перестановок, основанный на применении к данной задаче отмеченного выше известного метода моделирования поведения пчелиной колонии и относящегося к сравнительно новому классу биоин-спирированных оптимизационных методов.
Понятие шифров перестановок. В качестве первичного признака, по которому производится классификация шифров, используется тип преобразования, осуществляемого с открытым текстом при шифровании. Если буквы открытого текста при шифровании только меняются местами друг с другом, то данный шифр относится к классу шифров перестановок [25, 26]. Результатом применения данного класса шифров к открытому тексту является строка символов (криптограмма), получаемая путём перестановки символов открытого текста в определённом порядке.
Таким образом, полученная криптограмма включает только те символы, которые составляют открытый текст. Отсюда следует, что задача определения открытого текста заключается в определении позиций для назначения символов криптограммы таким способом, при котором целевая функция, определяющая оптимальность исходного текста, достигает экстремума. То есть данная задача криптоанализа, по сути, является частным случаем задачи о назначениях, цель которой — определить экстремум затрат, необходимых для обмена ресурсами между всеми объектами.
Как и в предыдущих работах [8, 27], для решения задачи криптоанализа определим X s = 1, если объект i назначен в пункт j и X s = 0 в противном случае. Предположим, что C 9 —
вероятность того, что за символом в позиции i должен следовать символ в позиции i +1. Кроме этого, введём параметр Qi, показывающий, насколько фрагмент текста из i символов носит осмысленный характер, то есть совпадает с словарным запасом языка. В этом случае оптимизационная модель будет иметь вид:
R = £ ±QC X j-> max. (1)
i=1 j=1
Элементы C 9 задаются в виде матрицы размерности пх n (n — число символов текста). Отметим, что таблицы частот биграмм русского языка приведены, например, в [26].
Таким образом, множество вариантов решений определяется числом перестановок Р = п! без повторений п символов, входящих в шифртекст в п позициях. Даная задача имеет комбинаторный характер, что приводит к необходимости использования метаэвристических алгоритмов. Алгоритм решения. Основу поведения пчелиного роя составляет самоорганизация, обеспечивающая достижение общих целей роя при двухуровневой стратегии поиска. На первом уровне с помощью пчёл-разведчиков формируется множество перспективных областей-источников, на втором уровне с помощью рабочих пчёл-фуражиров осуществляется исследование окрестностей данных областей. При этом основная цель колонии пчёл — найти источник с максимальным количеством нектара [10].
В алгоритме каждое решение представляет собой позицию в пространстве поиска, содержащую определённое количество нектара. При этом данное количество нектара определяет значение целевой функции в этой точке. Решение задачи криптоанализа представляет собой последовательность символов алфавита х2,...,хк, пройденных при перемещении агента-пчёлы в пространстве поиска. Целью поиска является определение оптимальной комбинации (последовательности прохождения) символов с максимальным значением Л. Значение целевой функции Л определяется комбинациями символов, пройденных агентами-пчёлами, в соответствии с (1).
Таким образом, итерационный процесс поиска решений при реализации алгоритма заключается в последовательном перемещении агентов-пчёл в новые позиции в пространстве поиска.
Основная идея пчелиного алгоритма заключается в том, что все пчёлы на каждой итерации будут выбирать как элитные участки для исследования, так и участки в окрестности элитных, что позволяет разнообразить популяцию решений, а также увеличить вероятность обнаружения решений, близких к оптимальным [21].
Таким образом, в соответствии с [10, 21] общую структуру пчелиного алгоритма представим в следующем виде.
1. Формирование пространства поиска.
2. Оценка целевой функции (ЦФ) пчёл в популяции.
3. Поиск агентами-разведчиками перспективных позиций для поиска в их окрестности.
4. Выбор пчёл с лучшими значениями ЦФ с каждого участка.
5. Отправка пчёл-фуражиров для случайного поиска и оценка их ЦФ.
6. Формирование новой популяции пчёл.
7. Если условия окончания работы алгоритма выполняются, переход к 8, иначе к 2.
8. Конец.
Первым этапом пчелиного алгоритма является формирование пространства поиска. Позиция а,; пространства поиска представляет собой размещенный в пространстве символ алфавита текста. При этом будем предполагать, что каждая пчела-агент содержит в памяти упорядоченный список Е; ={е5/, i = 1,2,...,п} посещённых символов. Список Е;, поставленный в соответствие
каждому символу в пространстве поиска, который посетила пчела, фактически представляет решение — исходный текст, для которого может быть определена ЦФ. В случае текстов достаточно большой размерности для оценки ЦФ может быть применена функция Якобсена, использованная для криптоанализа в [28-30]. В случае строк незначительной длины для оценки качества расшифрования может быть использована формула (1).
Основной операцией пчелиного алгоритма является исследование окрестностей перспективных позиций в пространстве поиска. Пусть пространство поиска, в котором размещены символы алфавита шифртекста, представляет собой прямоугольную матрицу А размером т х т. Назовём окрестностью размера Л позиции а, множество позиций а; находящихся на расстоянии (определяемом как количество элементов матрицы), не превышающем Л, от позиции а,.
64
Таким образом, для реализации пчелиного алгоритма необходимо задание следующих параметров: количество пчёл-агентов N, количество итераций L, количество агентов-разведчиков пг, количество агентов-фуражиров п, значение максимального размера окрестности Лмакс.
На I = 1 итерации алгоритма пг агентов-разведчиков случайным образом размещаются в пространстве поиска, то есть выбирается произвольным образом пг символов в матрице А. Поскольку на начальном этапе фрагменты текста не определены (состоят из одного символа), значение ЦФ Я на начальном этапе полагается равным малому положительному числу.
На следующем шаге алгоритма выбирается пь базовых (лучших) решений, у которых значения ЦФ Я не хуже, чем значения ЦФ у любого другого решения. На начальной итерации этот выбор осуществляется, очевидно, случайным образом. Формируется множество базовых позиций Аы = \аы} в пространстве поиска, соответствующих базовым решениям.
На следующем шаге алгоритма в окрестности каждой базовой позиции направляется заданное число пчёл-фуражиров. Отметим, что в [10] предлагается три основных подхода к определению числа агентов-фуражиров, направляемых в окрестности базовых позиций: равномерное распределение фуражиров по базовым позициям, распределение пропорционально значению ЦФ позиции и вероятностный выбор.
После выбора агентом-фуражиром п базовой позиции а- реализуется случайный выбор позиции а;, расположенной в окрестности базовой позиции а. При этом случайным образом определяется значение окрестности Л в границах 1 < Л < Лмакс.
Таким образом, будем предполагать, что каждая пчела-агент содержит в памяти упорядоченный список Е; посещённых символов пространства поиска с определённой для этого списка ЦФ, и данная последовательность ставится в соответствие последнему посещённому пчелой-агентом символу (позиции) пространства поиска. Аналогично [10] введём понятие области D/> представляющей собой 0 = а и О, где О,- — множество позиций, выбранных агентами-фуражирами в окрестности позиции а. В каждой области 0,- выбирается позиция (символ) а с лучшей оценкой ЦФ Я,*, которую назовём оценкой области 0. Среди всех оценок областей Я,* выбирается лучшая оценка Я* и соответствующее решение (список Е;). Лучшее решение (вариант исходного текста) запоминается, и осуществляется переход к следующей итерации.
На последующих итерациях алгоритма пг/ агентов-разведчиков отправляются на поиск новых позиций (пг/< п). Множество базовых позиций Аы (/) формируется из двух частей Аы1 (/)
и А (/) :
Аы (/) = Аы (/) и Аы2 (/).
Часть Аы1 (/) содержит пы1 лучших решений а*, найденных в каждой из областей на итерации / -1, часть Аы2 (/) содержит пы2 лучших решений из п позиций, найденных пчёлами-разведчиками на итерации /.
Следовательно, пы1 + пы1 = пы. Далее, как и на первой итерации, определяется число агентов-фуражиров, отправляемых в окрестности каждой базовой позиции. Каждым агентом-фуражиром п выбирается базовая позиция а (/), а также позиция а; (/), расположенная в
окрестности этой базовой позиции. Формируются области 0 (/). В каждой области 0 (/) выбирается лучшая позиция а* с лучшей оценкой ЦФ Я,*, среди оценок Я,* выбирается лучшая Я*. Если Я* (!) предпочтительней, чем Я* (/ -1), то соответствующее решение запоминается, и осуществляется переход к следующей итерации.
Таким образом, алгоритм криптоанализа на основе пчелиной колонии можно сформулировать в следующем виде:
1. Определить начальные параметры алгоритма: количество пчёл-агентов N количество итераций L; количество агентов-разведчиков пг; количество агентов-фуражиров п; значение максимального размера окрестности Лмакс; количество базовых позиций пь; пЬ1 — количество базовых
V I и * и I 4
позиций, формируемых из лучших позиций а, найденных на I-1 итерации; пГ1 — количество агентов-разведчиков, выбирающих случайным образом новые позиции на итерациях 2, 3, ..., L; пЬ2 — количество базовых позиций, формируемых из пг/ новых лучших позиций, найденных агентами-разведчиками на I итерации.
2. Задать номер итерации I = 1.
3. Разместить пг агентов-разведчиков случайным образом в пространстве поиска, то есть выбрать произвольным образом пг символов в матрице А. Положить значение ЦФ Л равным малому положительному числу.
4. Сформировать множество пь базовых решений и соответствующее множество базовых позиций Аь = {аы} с лучшими значениями ЦФ Л.
5. f = 1 (задание номера агента-фуражира).
6. Выбор базовой позиции а, е Аь.
7. Выбор позиции а; (/), расположенной в окрестности базовой позиции а,, не совпадающей с ранее выбранными на данной итерации позициями, и соответствующего решения (списка Е;).
8. Включить позицию а, в множество О-, (где О-, — множество позиций, выбранных агентами-фуражирами в окрестности позиции а).
9. Для всех вновь включенных позиций рассчитать и поставить им в соответствие решения Е; и соответствующие значения ЦФ Л.
10. f = f +1, если f > nf, переход к п. 11, иначе к п. 6.
11. Сформировать для каждой базовой позиции а, области D¡ = а, и О.
12. В каждой области й выбрать лучшую позицию а* с лучшим значением ЦФ Л*
13. Среди всех значений Л, выбрать лучшее значение Л* и соответствующее решение (список позиций Е*).
14. Если значение Л* (/) предпочтительней значения Л* (/ -1), то сохранить значение
Л* (/), в противном случае сохранённым остается значение Л* (/ -1).
15. Если / < L (не все итерации пройдены), / = / +1, переход к п. 16, иначе к п. 20.
16. Начать формирование множества базовых позиций. Во множество Ам включается пЬ1
и * и ^ и к I л
лучших позиций, найденных агентами среди позиций а, в каждой из областей й на итерации / -1.
17. Разместить пг/ агентов-разведчиков случайным образом в пространстве поиска для выбора пг/ позиций в пространстве поиска.
18. Включить в множество АЬ2 пЬ2 лучших позиций из множества пг/ новых позиций, найденных агентами-разведчиками на итерации /. Следовательно, пЬ2 + пЬ1 = пь.
19. Определить множество базовых позиций на итерации / как Аь (/) = АЬ1 (/) и АЬ2 (/). Перейти к п. 5.
20. Конец работы алгоритма, список Е* — вариант исходного текста с лучшим значением ЦФ Л*.
Демонстрационный пример. Рассмотрим пример реализации представленного выше алгоритма криптоанализа, аналогичный приведённому в [8, 26]. Пусть задана строка символов: БКСОА. Тре-
буется определить возможную перестановку символов, входящую в словарный состав языка. Матрица Су, показывающая частоту биграмм, приведённая в [8, 26], показана на рис. 1.
Определим пространство поиска в виде матрицы А размером 11 х 11, заполненной символами из алфавита шифртекста, размещёнными случайным образом в ячейках с соответствующими координатами (рис. 2). При реализации алгоритма будем предполагать, что выбор позиции а, расположенной в окрестности базовой позиции а, производится пропорционально значению ЦФ Я полученного решения (списка Е)
Б К С О А
Б 0,01 0,01 0,1 0,5 0,6
К 0,01 0,01 0,01 0,5 0,4
С 0,05 0,08 0,05 0,6 0,3
О 0,6 0,3 0,5 0,02 0,1
А 0,6 0,6 0,6 0,1 0,01
Рис. 1. Матрица С, элемент Су которой определяет вероятность соседства в тексте символов i и у
11 О А О А С О О О К А Б
10 Б С К А Б О Б Б Б О С
9 А С А К С Б К О С О С
8 К А С К Б Б А О К Б А
7 С Б Б А А К К С К А Б
6 А Б О К К А О А К Б К
5 Б А Б К О А А Б С С Б
4 А Б А С А А С А А О С
3 О О С Б К Б Б К Б О Б
2 О К О К А С С О Б С А
1 Б К Б О Б К А Б С А К
1 2 3 4 5 6 7 8 9 10 11
Рис. 2. Матрица А, представляющая пространство поиска для пчелиного алгоритма
Итерация 1.
1. Определим количество агентов-разведчиков пг = 7 и разместим их случайным образом в пространстве поиска, то есть выберем произвольным образом пг символов в матрице А. Пусть это будут символы К(5, 6), С(7, 4), А(1, 4), А(1, 6), Б(6, 9), 0(10, 4), К(11, 1), выделенные на рис. 2 курсивом. Положим значение ЦФ Я для всех позиций равным малому положительному числу Я = 0,001.
2. Определим множество базовых решений пь = 5 и соответствующие базовые позиции с лучшими значениями ЦФ (на этом этапе их выберем произвольно). Пусть это будут позиции Аь ={К (5, 6), Б (6, 9), С (7, 4), О (10, 4), А (1, 4)} .
3. Определим число агентов-фуражиров nf = 6 и размер окрестности Лмакс = 3. Пусть базовые позиции выбираются в следующем порядке А, О, Б, К, С, О и им ставятся в соответствие следующие позиции а: А^К(2, 2); О^А(9, 4); Б^К(7, 9); К^С(4, 4); С^К(8, 3); О^А(11, 2). Таким образом, на данном шаге мы будем иметь следующий список позиций, решений и соответствующих значений ЦФ: позиции К(5, 6), Б(6, 9), С(7, 4), О(10, 4), А(1, 4), Я = 0,001, список Е
состоит из одного символа; позиция К(2, 2), Е = {АК}, Я = 0,6; позиция А(9, 4), Е = {ОА}, Я = 0,1; позиция К(7, 9), Е = {БК}, Я = 0,01; позиция С(4, 4), Е = {КС}, Я = 0,01; позиция К(8, 3), Я = 0,08; позиция А(11, 2), Е = {ОА}, Я = 0,1. Области Di будут иметь вид:
Д ={А (1,4), К (2,2)}; й2 ={О (10,4) ,А (9,4) ,А (11,2)}; Оъ ={Б (6,9) ,К (7,9)}; О, ={К (5,6) ,С (4,4)}; й ={С (7,4) ,К (8,3)}.
4. В каждой области О, выберем лучшую позицию а* с лучшим значением ЦФ Л* Получим 0^К(2, 2), Л1*=0,6; О^А(9, 4), Л2*=0,1; Д^К(7, 9), Л*=0,01; 0^С(4, 4), Л4*=0,01; 0^К(8, 3), Л5*=0,08.
5. Выбирая среди всех значений Л, лучшее значение, получим, что Л*(1)=0,6;
Е*(1) = {АК).
6. Полагаем / = 2. Итерация 2.
1. Определим число пЬ1 = 3. Во множество АЬ1 включается пЬ1 лучших позиций, найденных агентами среди позиций а* в каждой из областей О, на итерации 1. Получим АЬ1 = {К (2, 2), А (9, 4), К (8, 3)}. Этим позициям поставлены в соответствие списки, представленные на рис. 3.
2. Определим количество агентов-разведчиков пг/ = 5 и разместим их произвольным образом в пространстве поиска. Пусть будут выбраны символы О(7, 6), О(10, 3), Б(8, 1), А(8, 6), К(3, 10).
3. Включение в множество АЬ2 пЬ2 = 2 лучших позиций из множества пг/ новых позиций, найденных агентами-разведчиками на итерации 2. Пусть АЬ2 ={О (10, 3), Б (8, 1)}. Таким образом, пЬ1 + пЬ2 = 5 и Аь ={К (2, 2), А (9, 4), К (8, 3), О (10, 3), Б (8, 1)}.
4. Как и ранее, полагаем nf = 6 и размер окрестности Лмакс = 3. Пусть базовым позициям ставятся в соответствие следующие позиции из их окрестностей: К(2, 2)^О(2, 3); А(9, 4)^Б(8, 5); К(8, 3)^О(8, 2); О(10, 3)^А(11, 2); Б(8, 1)^А(10, 1); О(10, 3)^С(11, 4). Таким образом, на данном шаге мы будем иметь следующий список позиций, решений и соответствующих значений ЦФ: позиция К(2, 2), Е = {АК}, Л = 0,6; позиция А(9, 4), Е = {ОА}, Л = 0,1; позиция К(8, 3), Е = {СК}, Л = 0,08; позиции О(10, 3), Б(8, 1), Л = 0,001, список Е состоит из одного символа; позиция О(2, 3), Е = {АКО}, Л = 1,1; позиция Б(8, 5), Е = {ОАБ}, Л = 0,7; позиция О(8, 2), Е = {СКО}, Л = 0,58; позиция А(11, 2), Е = {ОА}, Л = 0,1; позиция А(10, 1), Е = {БА}, Л = 0,6; позиция С(11, 4), Е = {ОС}, Л = 0,5. Отметим, что фрагменты текста, состоящие из трёх и более символов, умножим на значения Q¡ в соответствие с частотой встречаемости. Для списков АКО, ОАБ, СКО положим соответственно Q = 0,6; Q = 0,6; Q = 1. В этом случае для позиции О(2, 3), Е = {АКО},
Л = 0,66 ; для позиции Б(8, 5), Е = {ОАБ}, Л = 0,42 ; для позиции О(8, 2), Е = {СКО}, Л = 0,58. Области Д будут иметь вид О1 ={К(2,2),О(2,3)}; О2 ={А(9,4),Б(8,5)}; О3 ={К(8,3),О(8,2)}; О4 ={О (10,3), А (11,2), С (11,4)}; О5 ={Б (8,1), А (10,1)}.
5. В каждой области О, выберем лучшую позицию а* с лучшим значением ЦФ Л*. Получим О1^О(2, 3), Л1*=0,66; О2^Б(8, 5), Л2*=0,42; Д^О(8, 2), Л*=0,58; 0^(11, 4), Л4*=0,5; 05^А(10, 1), Л5*=0,6.
6. Выбирая среди всех значений Л, лучшее значение, получим, что Л* (2) = 0,66; Е* (1) = {АКО}.
7. Полагаем / = 3.
11 О А О А С О О О К А Б
10 Б С К А Б О Б Б Б О С
9 А С А К С Б К О С О С
8 К А С К Б Б А О К Б А
7 С Б Б А А К К С К А Б
6 А Б О К К А О А К Б К
5 Б А Б К О А А Б С С Б
4 А Б А С А А С А ОА О С
3 О О С Б К Б Б СК Б О Б
2 О АК О К А С С О Б С А
1 Б К Б О Б К А Б С А К
1 2 3 4 5 6 7 8 9 10 11
Рис. 3. Матрица А, представляющая пространство поиска для пчелиного алгоритма после 1 итерации
Итерация 3.
1. Определим, как и ранее, число пЬ1 = 3 . Во множество АЬ1 включается пЬ1 лучших позиций, найденных агентами среди позиций а* в каждой из областей Di на итерации 2. Получим АЬ1 = {О (2, 3), А (10, 1), О (8, 2)}. Этим позициям поставлены в соответствие списки, представленные на рис. 4.
2. Определим количество агентов-разведчиков пг1 = 5 и разместим их произвольным образом в пространстве поиска. Пусть будут выбраны символы К(2, 2), О(1, 11), К(8, 3), А(10, 11), А(3, 9).
3. Включение в множество АЬ2 пЬ2 = 2 лучших позиций из множества п новых позиций, найденных агентами-разведчиками на итерации 2. На данной итерации, АЬ2 ={К (2, 2), К (8, 3)}. Таким образом, пЬ1 + пЬ2 = 5 и Аь ={О (2, 3), А (10, 1), О (8, 2), К (2, 2), К (8, 3)}.
4. Полагаем nf = 6 и размер окрестности Лмакс = 3. Поставим базовым позициям в соответствие следующие позиции из их окрестностей: О(2, 3)^5(4, 3); А(10, 1)^К(11, 1); О(8, 2)^А(10, 1); К(2, 2)^О(3, 2); К(8, 3)^А(9, 4); О(8, 2)^Б(8, 1). Таким образом, получаем следующий список позиций, решений и соответствующих значений ЦФ: позиция О(2, 3), Е = {АКО}, Я = 1,1; позиция А(10, 1), Е = {БА}, Я = 0,6; позиция О(8, 2), Е = {СКО}, Я = 0,58;
позиция К(2, 2), Е = {АК}, Я = 0,6; позиция К(8, 3), Е = {СК}, Я = 0,08; позиция Б(4, 3), Е = {АКОБ}, Я = 1,7; позиция К(11, 1), Е = {БАК}, Я = 1,2; позиция А(10, 1), Е = {СКОБА}, Я = 1,78; позиция О(3, 2), Е = {АКО}, Я = 1,1; позиция О(9, 4), Е = {СКООА}, Я = 0,7; позиция Б(8, 1), Е = {СКОБ}, Я = 1,18 . Фрагменты текста, состоящие из трёх и более символов, умножим
на значения Q¡ в соответствие с частотой встречаемости. Для списков АКО, СКО, АКОБ, БАК, СКОБА, СКООА, СКОБ положим соответственно Q = 0,6; Q = 1; Q = 0,7; Q = 1; Q = 1; Q = 0,8; Q = 1. В этом случае для позиции О(2, 3), Е = {АКО}, Я = 0,66; для позиции О(8, 2), Е = {СКО}, Я = 0,58; для позиции Б(4, 3), Е = {АКОБ}, Я = 1,19; для позиции К(11, 1), Е = {БАК}, Я = 1,2; для позиции А(10, 1), Е = {СКОБА}, Я = 1,78; для позиции О(3, 2), Е = {АКО}, Я = 0,66 ; для позиции О(9, 4), Е = {СКООА}, Я = 0,56 ; для позиции Б(8, 1), Е = {СКОБ}, Я = 1,18 .
Таким образом, на данной итерации позиции А(10, 1) соответствует список Е = {СКОБА} с максимальным значением ЦФ Я = 1,78. Данная позиция, очевидным образом, будет включена в
множество Аь для следующей итерации алгоритма, и списки с лучшим значением ЦФ будут осуществлять постепенное заполнение популяции решений.
11 О А О А С О О О К А Б
10 Б С К А Б О Б Б Б О С
9 А С А К С Б К О С О С
8 К А С К Б Б А О К Б А
7 С Б Б А А К К С К А Б
6 А Б О К К А О А К Б К
5 Б А Б К О А А Б С С Б
4 А Б А С А А С А ОА О С
3 О АКО С Б К Б Б СК Б О Б
2 О АК О К А С С СКО Б С А
1 Б К Б О Б К А Б С БА К
1 2 3 4 5 6 7 8 9 10 11
Рис. 4. Матрица А, представляющая пространство поиска для пчелиного алгоритма после 2 итерации
Заключение. Рассмотрена возможность применения метода пчелиной колонии для решения задачи криптоанализа перестановочного шифра, приведён пример, иллюстрирующий схему реализации алгоритма. В отличие от классических подходов, описанных, например, в [10, 15], в задаче криптоанализа осуществляется поиск экстремума немонотонной функции, то есть построение списка Е с наилучшим значением ЦФ не означает его оптимальность на последующих итерациях. В связи с этим при реализации алгоритма может оказаться целесообразным учитывать следующие отличительные особенности:
• пространство поиска должно быть достаточно большим для предотвращения попадания в локальный оптимум;
• на каждой последующей итерации сохраняются списки, поставленные в соответствие каждому символу пространства поиска на предыдущей итерации (как показано на рис. 4);
• при наличии временных и вычислительных ресурсов подсчёт целевой функции для каждого списка может производиться после достижения списком длины шифруемого текста (как при реализации муравьиного алгоритма криптоанализа, описанного в [8]);
• для предотвращения попадания в локальный оптимум могут также использоваться операторы, применяемые в эволюционном моделировании (например, оператор мутации).
Заметим, что при достаточно большом количестве итераций количество списков становится достаточно большим, и работа алгоритма может осуществляться аналогично работе генетического алгоритма. Отметим также, что поскольку задача криптоанализа является оптимизационной задачей и в общем случае может интерпретироваться как задача формирования упорядоченных списков, то, как отмечено в [10], алгоритмы пчелиных колоний могут являться эффективным способом поиска рациональных решений для данного класса задач. Библиографический список
1. Макконел, Д. Основы современных алгоритмов / Д. Макконел. — Москва : Техносфера, 2004. — 368 с.
2. Родзин, С. И. Интеллектуальные системы. О некоторых алгоритмах, инспирированных природными системами : коллективная монография / С. И. Родзин. — Москва : Физматлит, 2009. — С. 34-45.
3. Курейчик, В. В. Концепция природных вычислений, инспирированных природными системами / В. В. Курейчик, В. М. Курейчик, С. И. Родзин // Известия ЮФУ. — 2009. — № 4. — С. 16-24.
4. Сергеев, А. С. Исследование возможности организации криптографической атаки с использованием эволюционной оптимизации и квантового поиска при разработке систем передачи и защиты информации / А. С. Сергеев // Теоретические и прикладные вопросы современных информационных технологий : мат-лы 6 Всероссийской НТК. — Улан-Удэ, 2005. — С. 61-65.
5. Биоинспирированные алгоритмы криптоанализа асимметричных алгоритмов шифрования на основе факторизации составных чисел / А. С. Сергеев [и др.] // Информационная безопасность — актуальная проблема современности. Совершенствование образовательных технологий подготовки специалистов в области информационной безопасности : сб. трудов. — Краснодар, 2011. — С. 41-47.
6. Сергеев, А. С. Применение методов генетического поиска для организации криптоанализа блочных криптосистем на примере стандарта DES / А. С. Сергеев // Научная мысль Кавказа : Приложение. — 2006. — № 15. — С. 185-193.
7. Сергеев, А. С. Исследование и разработка методов генетического поиска для организации криптоанализа блочных криптосистем в системах управления безопасностью и защиты информации на примере стандарта шифрования DES / А. С. Сергеев // Третья Международная конференция по проблемам управления : Пленарные доклады и избранные труды. — Москва : Ин-т проблем управления, 2006. — С. 328-335.
8. Фатхи, В. А. Исследование возможности применения алгоритма муравьиных колоний для реализации криптоанализа шифров перестановок / В. А. Фатхи, А. С. Сергеев // Вестник Дон. гос. техн. ун-та. — 2011. — Т. 11, № 1 (52). — С. 10-20.
9. Чернышёв, Ю. О. Исследование и разработка методов генетического поиска для реализации криптоанализа алгоритма IDEA и решения основных теоретико-числовых задач криптографии / Ю. О. Чернышёв, А. С. Сергеев, Н. Н. Венцов // Вестник РГУПС. — 2009. — № 3 (35). — С. 70-79.
10. Лебедев, В. Б. Модели адаптивного поведения колонии пчёл для решения задач на графах / В. Б. Лебедев // Известия ЮФУ. — 2012. — № 7. — С. 42-49.
11. Лебедев, О. Б. Трассировка в канале методом муравьиной колонии / О. Б. Лебедев // Известия ЮФУ. — 2009. — № 4. — С. 46-52.
12. The Bees Algorithm. Technical Note, Manufacturing Engineering Centre. Cardiff University, UK, 2005.
13. An IDEA based on honey bee swarm for numerical optimization, technical report. Erciyes University, Engineering Faculty. Computer Engineering Department, 2005.
14. The Bees Algorithm. — A Novel Tool for Complex Optimisation Problems. Manufacturing Engineering Centre. — Cardiff University, Cardiff CF24 3AA, UK.
15. Алгоритм пчёл для оптимизации функции [Электронный ресурс]. — Режим доступа : http://jenyay.net/Programming/Bees (дата обращения : 24.05.2013).
16. Алгоритм пчёл для оптимизации функции [Электронный ресурс]. — Режим доступа : http://lit999.narod.ru/soft/ga/index.html (дата обращения : 24.05.2013).
17. Курейчик, В. В. Роевой алгоритм в задачах оптимизации / В. В. Курейчик, Д. Ю. Запорожец // Известия ЮФУ. — 2010. — № 7 (108). — С. 28-32.
18. Курейчик, В. М. Использование пчелиных алгоритмов для решения комбинаторных задач [Электронный ресурс] / В. М. Курейчик, А. А. Кажаров. — Режим доступа : http://archive.nbuv.gov.ua/portal/natural/ii/2010_3/AI_2010_3/6/00_Kureychik_Kazharov.pdf (дата обращения : 24.05.2013).
19. Курейчик, В. М. Применение пчелиных алгоритмов для раскраски графов / В. М. Курейчик, А. А. Кажаров // Известия ЮФУ. — 2010. — № 12 (113). — С. 7-12.
20. Лебедев, Б. К. Размещение на основе метода пчелиной колонии / Б. К. Лебедев, В. Б. Лебедев // Известия ЮФУ. — 2010. — № 12 (113). — С. 12-19.
21. Курейчик, В. В. Эволюционная оптимизация на основе алгоритма колонии пчёл /
B. В. Курейчик, Е. Е. Полупанова // Известия ЮФУ. — 2009. — № 12 (101). — С. 41-46.
22. Биоинспирированные методы криптоанализа асимметричных алгоритмов шифрования на основе факторизации составных чисел / А. С. Сергеев [и др.] // Вестник Дон. гос. техн. ун-та. — 2011. — Т. 11, № 9 (60). — С. 1544-1554.
23. Чернышёв, Ю. О. Применение биоинспирированных методов оптимизации для реализации криптоанализа классических симметричных и асимметричных криптосистем / Ю. О. Чернышёв, А. С. Сергеев, Е. О. Дубров // Системный анализ в проектировании и управлении : сб. науч. трудов 16-й Междунар. науч.-практ. конф. — Санкт-Петербург, 2012. —
C. 112-122.
24. Зайцев, А. А. Обзор эволюционных методов оптимизации на основе роевого интеллекта / А. А. Зайцев, В. В. Курейчик, А. А. Полупанов // Известия ЮФУ. — 2010. — № 12 (113). — С. 7-12.
25. Романец, Ю. В. Защита информации в компьютерных системах и сетях / Ю. В. Романец, П. А. Тимофеев, В. Ф. Шаньгин. — Москва : Радио и связь, 2001. — 376 с.
26. Основы криптографии / А. П. Алферов [и др.]. — Москва : Гелиос АРВ, 2002. — 480 с.
27. Чернышев, Ю. О. Применение алгоритма муравьиных колоний для реализации криптоанализа шифров перестановок / Ю. О. Чернышёв, А. С. Сергеев, Е. О. Дубров // Научная сессия, посвящённая Дню радио : сб. докладов 67-й Всероссийской конференции с Международным участием. — Москва, 2012. — С. 71-75.
28. Морозенко, В. В. Генетический алгоритм для криптоанализа шифра Вижинера [Электронный ресурс] / В. В. Морозенко, Г. О. Елисеев. — Режим доступа : http://vestnik.psu.ru/ /files/articles/132_6410.p (дата обращения : 24.05.2013).
29. Городилов, А. Ю. Криптоанализ тригонометрического шифра с помощью генетического алгоритма [Электронный ресурс] / А. Ю. Городилов, А. А. Митраков. — Режим доступа : http://vestnik.psu.rU/files/articles/260_27019.p (дата обращения : 24.05.2013).
30. Городилов, А. Ю. Криптоанализ перестановочного шифра с помощью генетического алгоритма [Электронный ресурс] / А. Ю. Городилов. — Режим доступа : http://vestnik.psu.ru/ /files/articles/8_83883 (дата обращения : 24.05.2013).
Материал поступил в редакцию 17.05.2013.
References
1. McDonnell, J. Osnovy sovremennykh algoritmov. [Analysis of algorithms.] Moscow : Tehnosfera, 2004, 368 p. (in Russian).
2. Rodzin, S. I. Intellektualnyye sistemy. O nekotorykh algoritmakh, inspirirovannykh prirodnymi sistemami : kollektivnaya monografiya. [Intelligent systems. On some algorithms inspired by natural systems : multi-author book.] Moscow : Fizmatlit, 2009, pp. 34-45 (in Russian).
3. Kureychik, V. V., Kureychik, V. M., Rodzin, S. I. Kontseptsiya prirodnykh vychisleniy, inspirirovannykh prirodnymi sistemami. [Concept of natural calculations inspired by natural systems.] Izvestiya YuFU, 2009, no. 4, pp. 16-24 (in Russian).
4. Sergeyev, A. S. Issledovaniye vozmozhnosti organizatsii kriptograficheskoy ataki s ispolzovani-yem evolyutsionnoy optimizatsii i kvantovogo poiska pri razrabotke sistem peredachi i zashchity infor-matsii. [Study into feasibility of cryptographic attack using evolutional optimization and quantum search under developing data transfer and protection systems.] Teoreticheskiye i prikladnyye voprosy sovremennykh informatsionnykh tekhnologiy : materialy 6 Vserossiyskoy NTK. [Theory and application of modern information technologies: Proc. VI All-Russ. Sci. Tech. Conf.] Ulan-Ude, 2005, pp. 61-65 (in Russian).
5. Sergeyev, A. S., et al. Bioinspirirovannyye algoritmy kriptoanaliza asimmetrichnykh algoritmov shifrovaniya na osnove faktorizatsii sostavnykh chisel. [Bioinspired algorithms of asymmetric encryption algorithm cryptanalysis based on composite factorization.] Informatsionnaya bezopasnost — aktualnaya problema sovremennosti. Sovershenstvovaniye obrazovatelnykh tekhnologiy podgotovki spetsialistov v oblasti informatsionnoy bezopasnosti : sbornik trudov. [Cybersecurity — contemporary pressing challenge. Educational technology development for specialist training in information security : coll. of research papers.] Krasnodar, 2011, pp. 41-47 (in Russian).
6. Sergeyev, A. S. Primeneniye metodov geneticheskogo poiska dlya organizatsii kriptoanaliza blochnykh kriptosistem na primere standarta DES. [Application of genetic search techniques for block cryptosystem cryptanalysis with the reference to DES standard.] Nauchnaya mysl Kavkaza : Prilozheniye, 2006, no. 15, pp. 185-193 (in Russian).
7. Sergeyev, A. S. Issledovaniye i razrabotka metodov geneticheskogo poiska dlya organizatsii kriptoanaliza blochnykh kriptosistem v sistemakh upravleniya bezopasnostyu i zashchity informatsii na primere standarta shifrovaniya DES. [R&D of genetic search techniques for block cryptosystem cryptanalysis in control data transfer and protection systems with the reference to DES standard.] Tretya Mezhdunarodnaya konferentsiya po problemam upravleniya : Plenarnyye doklady i izbrannyye trudy. [III Int. Sci. Conf. on control problems : Plenary reports and selecta.] Moscow : Institut problem upravleniya, 2006, pp. 328-335 (in Russian).
8. Fatkhi, V. A., Sergeyev, A. S. Issledovaniye vozmozhnosti primeneniya algoritma muravinykh koloniy dlya realizatsii kriptoanaliza shifrov perestanovok. [Application of ant colony algorithm for realization of transposition ciphers crypt analysis.] Vestnik of DSTU, 2011, vol. 11, no. 1 (52), pp. 10-20 (in Russian).
9. Chernyshev, Y. O., Sergeyev, A. S., Ventsov, N. N. Issledovaniye i razrabotka metodov geneticheskogo poiska dlya realizatsii kriptoanaliza algoritma IDEA i resheniya osnovnykh teoretiko-chislovykh zadach kriptografii. [R&D of genetic search techniques for IDEA algorithm cryptanalysis and solution to basic number-theoretic cryptographical problems.] Vestnik RGUPS, 2009, no. 3 (35), pp. 70-79 (in Russian).
10. Lebedev, V. B. Modeli adaptivnogo povedeniya kolonii pchel dlya resheniya zadach na grafakh. [Bee colony adaptive behaviour models for solving graph problems.] Izvestiya YuFU, 2012, no. 7, pp. 42-49 (in Russian).
11. Lebedev, O. B. Trassirovka v kanale metodom muravinoy kolonii. [Channel routing through ant colony method.] Izvestiya YuFU, 2009, no. 4, pp. 46-52 (in Russian).
12. The Bees Algorithm. Technical Note, Manufacturing Engineering Centre. Cardiff University, UK, 2005.
13. An IDEA based on honey bee swarm for numerical optimization, technical report. Erciyes University, Engineering Faculty. Computer Engineering Department, 2005.
14. The Bees Algorithm. — A Novel Tool for Complex Optimisation Problems. Manufacturing Engineering Centre. — Cardiff University, Cardiff CF24 3AA, UK.
15. Algoritm pchel dlya optimizatsii funktsii. [Bee algorithm for function optimization.] Available at : http://jenyay.net/Programming/Bees (accessed : 24.05.2013) (in Russian).
16. Algoritm pchel dlya optimizatsii funktsii. [Bee algorithm for function optimization.]. Available at : http://lit999.narod.ru/soft/ga/index.html (accessed : 24.05.2013) (in Russian).
17. Kureychik, V. V., Zaporozhets, D. Y. Royevoy algoritm v zadachakh optimizatsii. [Swarm algorithm in optimization problems.] Izvestiya YuFU, 2010, no. 7 (108), pp. 28-32 (in Russian).
18. Kureychik, V. M., Kazharov, A. A. Ispolzovaniye pchelinykh algoritmov dlya resheniya kombi-natornykh zadach. [Bee algorithm application for combinatorial problem solution.] Available at :
http://archive.nbuv.gov.Ua/portal/natural/ii/2010_3/AI_2010_3/6/00_Kureychik_Kazharov.pdf (accessed : 24.05.2013) (in Russian).
19. Kureychik, V. M., Kazharov, A. A. Primeneniye pchelinykh algoritmov dlya raskraski grafov. [Bee algorithm application for graph coloring.] Izvestiya YuFU, 2010, no. 12 (113), pp. 7-12 (in Russian).
20. Lebedev, B. K., Lebedev, V. B. Razmeshcheniye na osnove metoda pchelinoy kolonii. [Allocation based on bee colony technique.] Izvestiya YuFU, 2010, no. 12 (113), pp. 12-19 (in Russian).
21. Kureychik, V. V., Polupanova, E. E. Evolyutsionnaya optimizatsiya na osnove algoritma kolonii pchel. [Evolutionary optimization based on bee colony technique.] Izvestiya YuFU, 2009, no. 12 (101), pp. 41-46 (in Russian).
22. Sergeyev, A. S., et al. Bioinspirirovannyye metody kriptoanaliza asimmetrichnykh algoritmov shifrovaniya na osnove faktorizatsii sostavnykh chisel. [Cryptanalysis bioinspired methods of asymmetric key on the basis of composite number factorization.] Vestnik of DSTU, 2011, vol. 11, no. 9 (60), pp. 1544-1554 (in Russian).
23. Chernyshev, Y. O., Sergeyev, A. S., Dubrov, E. O. Primeneniye bioinspirirovannykh metodov optimizatsii dlya realizatsii kriptoanaliza klassicheskikh simmetrichnykh i asimmetrichnykh kriptosistem. [Bioinspired optimization methods application for implementing cryptanalysis of classical symmetric and asymmetric cryptosystems.] Sistemnyy analiz v proyektirovanii i upravlenii : sb. nauch. tr. 16 Mezhdu-narodnoy nauch.-prakt. konf. [System analysis in design and management : collection of research papers of XVI Int. Sci.-Pract. Conf.] Saint Petersburg, 2012, pp. 112-122 (in Russian).
24. Zaytsev, A. A., Kureychik, V. V., Polupanov, A. A. Obzor evolyutsionnykh metodov optimizatsii na osnove royevogo intellekta. [Overview of evolutionary optimization methods on the basis of Swarm Intelligence.] Izvestiya YuFU, 2010, no. 12 (113), pp. 7-12 (in Russian).
25. Romanets, Y. V., Timofeyev, P. A., Shangin, V. F. Zashchita informatsii v kompyuternykh sistemakh i setyakh. [Information security in computer systems and networks.] Moscow : Radio i svyaz, 2001, 376 p. (in Russian).
26. Alferov, A. P., et al. Osnovy kriptografii. [Cryptography basics.] Moscow : Gelios ARV, 2002, 480 p. (in Russian).
27. Chernyshev, Y. O., Sergeyev, A. S., Dubrov, E. O. Primeneniye algoritma muravinykh koloniy dlya realizatsii kriptoanaliza shifrov perestanovok. [Ant colony algorithm application for implementing cryptanalysis of transposition ciphers.] Nauchnaya sessiya, posvyashchennaya Dnyu radio : sb. dokladov 67 Vserossiyskoy konf. s Mezhdunarodnym uchastiyem. [Scientific session dedicated to Radio Day : Proc. 67 All-Russ.-Int. Conf.] Moscow, 2012, pp. 71-75 (in Russian).
28. Morozenko, V. V., Yeliseyev, G. O. Geneticheskiy algoritm dlya kriptoanaliza shifra Vizhenera. [Genetic algorithm for Vigenere cipher cryptanalysis.] Available at : http://vestnik.psu.ru/files/articles/ /132_6410.p (accessed : 24.05.2013) (in Russian).
29. Gorodilov, A. Y., Mitrakov, A. A. Kriptoanaliz trigonometricheskogo shifra s pomoshchyu ge-neticheskogo algoritma. [Trigonometric cipher cryptanalysis through genetic algorithm.] Available at : http://vestnik.psu.ru/files/articles/260_27019.p (accessed : 24.05.2013) (in Russian).
30. Gorodilov, A. Y. Kriptoanaliz perestanovochnogo shifra s pomoshchyu geneticheskogo algoritma. [Transposition cipher cryptanalysis through genetic algorithm.] Available at : http://vestnik.psu.ru/files/articles/8_83883 (accessed : 24.05.2013) (in Russian).
RESEARCH ON APPLICABILITY OF BIONIC TECHNIQUES OF ARTIFICIAL BEE COLONIES FOR IMPLEMENTATION OF CLASSICAL TRANSPOSITION CIPHER CRYPTANALYSIS*
Y. O. Chernyshev, A. S. Sergeyev, E. O. Dubrov, A. N. Ryazanov
The applicability of the bionic techniques of artificial bee colonies for the implementation of the classical transposition cipher cryptanalysis is considered. The problem is a classical optimization problem to the solution of which the known techniques of artificial bee colonies fallen within a relatively new class of bioinspired optimization methods are applied. It is shown that this is a subproblem of allocation, and it can be solved with an artificial bee colony algorithm, as the bee behavior principle is a self-organization delivering a collective swarm goal. At the first stage, a set of promising areas-sources is formed with the aid of scout-bees, at the second stage, the neighborhood of these areas is explored with the aid of foraging bees. At this, the main goal of the bee colony is to find a source with a maximum amount of nectar Solution representation methods (positions in search space) are considered, a formula for determining an object function value (amount of nectar) is given. It is shown that the target search is the determination of an optimal symbol combination with the highest value of the objective function. Principle stages of the artificial bee colony algorithm, as well as an example of its application, are given.
Keywords: cryptanalysis, problem of allocation, bioinspired methods, artificial bee colony algorithm, worker-bees (foragers), scout-bee, transposition cipher.
* The research is done with the financial support from the Russian Foundation for Basic Research (project 12-01-00474).
75