Исследование возможности применения бионических методов пчелиных колоний для реализации криптоанализа классических шифров перестановок
Автор: Чернышв Юрий Олегович, Сергеев Александр Сергеевич, Дубров Евгений Олегович, Рязанов Александр Николаевич
Журнал: Вестник Донского государственного технического университета @vestnik-donstu
Рубрика: Физико-математические науки
Статья в выпуске: 1 (76) т.14, 2014 года.
Бесплатный доступ
Рассматривается возможность применения алгоритмов пчелиных колоний для реализации криптоанализа шифров перестановок. Данная задача является классической оптимизационной задачей, для решения которой применяются известные методы пчелиных колоний, относящихся к сравнительно новому классу биоинспирированных оптимизационных методов. Показано, что данная задача является частным случаем задачи о назначениях и может быть решена с помощью алгоритма пчелиных колоний, основу поведения которых составляет самоорганизация, обеспечивающая достижение общих целей роя. На первом этапе с помощью пчёл-разведчиков формируется множество перспективных областей - источников, на втором этапе с помощью рабочих пчёл-фуражиров осуществляется исследование окрестностей данных областей. При этом основная цель колонии пчёл - найти источник, содержащий максимальное количество нектара. Рассмотрены методы представления решения (позиции в пространстве поиска), приведена формула для определения значения целевой функции (количества нектара). Показано, что целью поиска является определение оптимальной комбинации символов с максимальным значением целевой функции. Приводится описание основных этапов алгоритма пчелиных колоний, а также пример его работы.
Криптоанализ, задача о назначениях, биоинспирированные методы, алгоритм пчелиных колоний, рабочие пчёлы (фуражиры), пчёлы-разведчики, шифр перестановки
Короткий адрес: https://sciup.org/14250050
IDR: 14250050 | DOI: 10.12737/3505
Текст научной статьи Исследование возможности применения бионических методов пчелиных колоний для реализации криптоанализа классических шифров перестановок
Работа выполнена при финансовой поддержке РФФИ (проект 12-01-00474).
дов, инспирированных природными системами, в которых осуществляется поэтапное построение решения задачи (то есть добавление нового оптимального частичного решения к уже построенному частичному оптимальному решению). Одной из последних разработок в области роевого интеллекта является алгоритм пчёл, который довольно успешно используется для нахождения экстремумов сложных многомерных функций [10].
Первые публикации, посвящённые пчелиным алгоритмам для нахождения экстремумов сложных многомерных функций, относятся к 2005 году [12, 13]. В [14] рассмотрена суть этого алгоритма, приведено сравнение алгоритма пчёл с генетическим алгоритмом и алгоритмом, моделирующим поведение муравьев. Описание алгоритма, основанного на поведении колонии пчёл, приводится в [15, 16, 17]. Исследование пчелиных алгоритмов для решения комбинаторных теоретико-графовых задач (задача разбиения графа, раскраска графа, сравнение с другими «биоин-спирированными» методами) приводится в [18, 19]. Можно отметить также работы [20, 21], посвящённые рассмотрению алгоритма решения задачи размещения на основе моделирования поведения пчелиной колонии, основным принципам работы простого пчелиного алгоритма, улучшенного пчелиного алгоритма, алгоритма колонии пчёл, моделирующих поведение пчёл в живой природе в поисках нектара. Алгоритм разложения составных чисел на простые сомножители с использованием пчелиных колоний, используемый при криптоанализе алгоритма RSA, описан авторами в [22, 23]. Обзор актуальных алгоритмов и методов роевого интеллекта (муравьиных, пчелиных алгоритмов, метода роя частиц), их отличительные особенности, достоинства, недостатки и возможности практического применения приведены в [24].
В настоящей работе рассматривается метод криптоанализа классических шифров перестановок, основанный на применении к данной задаче отмеченного выше известного метода моделирования поведения пчелиной колонии и относящегося к сравнительно новому классу биоин-спирированных оптимизационных методов.
Понятие шифров перестановок. В качестве первичного признака, по которому производится классификация шифров, используется тип преобразования, осуществляемого с открытым текстом при шифровании. Если буквы открытого текста при шифровании только меняются местами друг с другом, то данный шифр относится к классу шифров перестановок [25, 26]. Результатом применения данного класса шифров к открытому тексту является строка символов (криптограмма), получаемая путём перестановки символов открытого текста в определённом порядке.
Таким образом, полученная криптограмма включает только те символы, которые составляют открытый текст. Отсюда следует, что задача определения открытого текста заключается в определении позиций для назначения символов криптограммы таким способом, при котором целевая функция, определяющая оптимальность исходного текста, достигает экстремума. То есть данная задача криптоанализа, по сути, является частным случаем задачи о назначениях, цель которой — определить экстремум затрат, необходимых для обмена ресурсами между всеми объектами.
Как и в предыдущих работах [8, 27], для решения задачи криптоанализа определим X ij = 1, если объект i назначен в пункт j , и X j = 0 в противном случае. Предположим, что C ij — вероятность того, что за символом в позиции i должен следовать символ в позиции i + 1. Кроме этого, введём параметр Qi , показывающий, насколько фрагмент текста из i символов носит осмысленный характер, то есть совпадает с словарным запасом языка. В этом случае оптимизационная модель будет иметь вид:
nn
R = ZZ Q icijxij---- > max. (1)
i =1 j =1
Элементы Cij задаются в виде матрицы размерности n х n ( n — число символов текста).
Отметим, что таблицы частот биграмм русского языка приведены, например, в [26].
Таким образом, множество вариантов решений определяется числом перестановок P = л ! без повторений n символов, входящих в шифртекст в n позициях. Даная задача имеет комбинаторный характер, что приводит к необходимости использования метаэвристических алгоритмов. Алгоритм решения. Основу поведения пчелиного роя составляет самоорганизация, обеспечивающая достижение общих целей роя при двухуровневой стратегии поиска. На первом уровне с помощью пчёл-разведчиков формируется множество перспективных областей-источников, на втором уровне с помощью рабочих пчёл-фуражиров осуществляется исследование окрестностей данных областей. При этом основная цель колонии пчёл — найти источник с максимальным количеством нектара [10].
В алгоритме каждое решение представляет собой позицию в пространстве поиска, содержащую определённое количество нектара. При этом данное количество нектара определяет значение целевой функции в этой точке. Решение задачи криптоанализа представляет собой последовательность символов алфавита x 1 , x 2 , ..., xk , пройденных при перемещении агента-пчёлы в пространстве поиска. Целью поиска является определение оптимальной комбинации (последовательности прохождения) символов с максимальным значением R . Значение целевой функции R определяется комбинациями символов, пройденных агентами-пчёлами, в соответствии с (1).
Таким образом, итерационный процесс поиска решений при реализации алгоритма заключается в последовательном перемещении агентов-пчёл в новые позиции в пространстве поиска.
Основная идея пчелиного алгоритма заключается в том, что все пчёлы на каждой итерации будут выбирать как элитные участки для исследования, так и участки в окрестности элитных, что позволяет разнообразить популяцию решений, а также увеличить вероятность обнаружения решений, близких к оптимальным [21].
Таким образом, в соответствии с [10, 21] общую структуру пчелиного алгоритма представим в следующем виде.
-
1. Формирование пространства поиска.
-
2. Оценка целевой функции (ЦФ) пчёл в популяции.
-
3. Поиск агентами-разведчиками перспективных позиций для поиска в их окрестности.
-
4. Выбор пчёл с лучшими значениями ЦФ с каждого участка.
-
5. Отправка пчёл-фуражиров для случайного поиска и оценка их ЦФ.
-
6. Формирование новой популяции пчёл.
-
7. Если условия окончания работы алгоритма выполняются, переход к 8, иначе к 2.
-
8. Конец.
Первым этапом пчелиного алгоритма является формирование пространства поиска. Позиция a s пространства поиска представляет собой размещенный в пространстве символ алфавита текста. При этом будем предполагать, что каждая пчела-агент содержит в памяти упорядоченный список E s = { e s , i = 1,2, ..., л } посещённых символов. Список E s , поставленный в соответствие каждому символу в пространстве поиска, который посетила пчела, фактически представляет решение — исходный текст, для которого может быть определена ЦФ. В случае текстов достаточно большой размерности для оценки ЦФ может быть применена функция Якобсена, использованная для криптоанализа в [28‒30]. В случае строк незначительной длины для оценки качества расшифрования может быть использована формула (1).
Основной операцией пчелиного алгоритма является исследование окрестностей перспективных позиций в пространстве поиска. Пусть пространство поиска, в котором размещены символы алфавита шифртекста, представляет собой прямоугольную матрицу А размером m х m . Назовём окрестностью размера λ позиции a s множество позиций a si , находящихся на расстоянии (определяемом как количество элементов матрицы), не превышающем λ, от позиции a s .
Таким образом, для реализации пчелиного алгоритма необходимо задание следующих параметров: количество пчёл-агентов N , количество итераций L , количество агентов-разведчиков n r , количество агентов-фуражиров n f , значение максимального размера окрестности λ макс .
На / = 1 итерации алгоритма n r агентов-разведчиков случайным образом размещаются в пространстве поиска, то есть выбирается произвольным образом n r символов в матрице А . Поскольку на начальном этапе фрагменты текста не определены (состоят из одного символа), значение ЦФ R на начальном этапе полагается равным малому положительному числу.
На следующем шаге алгоритма выбирается n b базовых (лучших) решений, у которых значения ЦФ R не хуже, чем значения ЦФ у любого другого решения. На начальной итерации этот выбор осуществляется, очевидно, случайным образом. Формируется множество базовых позиций A b = { a bi } в пространстве поиска, соответствующих базовым решениям.
На следующем шаге алгоритма в окрестности каждой базовой позиции направляется заданное число пчёл-фуражиров. Отметим, что в [10] предлагается три основных подхода к определению числа агентов-фуражиров, направляемых в окрестности базовых позиций: равномерное распределение фуражиров по базовым позициям, распределение пропорционально значению ЦФ позиции и вероятностный выбор.
После выбора агентом-фуражиром n fi базовой позиции a i реализуется случайный выбор позиции а s , расположенной в окрестности базовой позиции a i . При этом случайным образом определяется значение окрестности λ в границах 1 ≤ λ ≤ λ макс .
Таким образом, будем предполагать, что каждая пчела-агент содержит в памяти упорядоченный список E s посещённых символов пространства поиска с определённой для этого списка ЦФ, и данная последовательность ставится в соответствие последнему посещённому пчелой-агентом символу (позиции) пространства поиска. Аналогично [10] введём понятие области D i , представляющей собой D i = a i U O i , где O i — множество позиций, выбранных агентами-фуражирами в окрестности позиции а i . В каждой области D i выбирается позиция (символ) а с лучшей оценкой ЦФ R i * , которую назовём оценкой области D i . Среди всех оценок областей R i * выбирается лучшая оценка R i * и соответствующее решение (список E s ). Лучшее решение (вариант исходного текста) запоминается, и осуществляется переход к следующей итерации.
На последующих итерациях алгоритма n rl агентов-разведчиков отправляются на поиск новых позиций ( n r < n ). Множество базовых позиций A b ( / ) формируется из двух частей Ab 1 ( / ) и A b 2 ( / ) :
A b ( / ) = A bi ( / ) U A b 2 ( / ) .
Часть Ab 1 ( / ) содержит nb1 лучших решений а* , найденных в каждой из областей на итерации / - 1, часть A b 2 ( / ) содержит nb2 лучших решений из n r позиций, найденных пчёлами-разведчиками на итерации l .
Следовательно, n b 1 + n b 1 = n b . Далее, как и на первой итерации, определяется число агентов-фуражиров, отправляемых в окрестности каждой базовой позиции. Каждым агентом-фуражиром n f выбирается базовая позиция a i ( / ) , а также позиция a s ( / ) , расположенная в окрестности этой базовой позиции. Формируются области D i ( / ) . В каждой области D i ( / ) выбирается лучшая позиция а i * c лучшей оценкой ЦФ R i * , среди оценок R i * выбирается лучшая R * . Если R ( / ) предпочтительней, чем R ( / - 1 ) , то соответствующее решение запоминается, и осуществляется переход к следующей итерации.
Таким образом, алгоритм криптоанализа на основе пчелиной колонии можно сформулировать в следующем виде:
-
1. Определить начальные параметры алгоритма: количество пчёл-агентов N ; количество итераций L ; количество агентов-разведчиков n r ; количество агентов-фуражиров n f ; значение максимального размера окрестности λ макс ; количество базовых позиций n b ; n b 1 — количество базовых позиций, формируемых из лучших позиций а* , найденных на / - 1 итерации; n r — количество агентов-разведчиков, выбирающих случайным образом новые позиции на итерациях 2, 3, …, L ; n b 2 — количество базовых позиций, формируемых из n rl новых лучших позиций, найденных агентами-разведчиками на l итерации.
-
2. Задать номер итерации / = 1.
-
3. Разместить n r агентов-разведчиков случайным образом в пространстве поиска, то есть выбрать произвольным образом n r символов в матрице А . Положить значение ЦФ R равным малому положительному числу.
-
4. Сформировать множество n b базовых решений и соответствующее множество базовых позиций A b = { аы } с лучшими значениями ЦФ R .
-
5. f = 1 (задание номера агента-фуражира).
-
6. Выбор базовой позиции a i е Ab .
-
7. Выбор позиции a s ( / ) , расположенной в окрестности базовой позиции а , не совпадающей с ранее выбранными на данной итерации позициями, и соответствующего решения (списка E s ).
-
8. Включить позицию a s в множество О , (где О , — множество позиций, выбранных агентами-фуражирами в окрестности позиции а i ).
-
9. Для всех вновь включенных позиций рассчитать и поставить им в соответствие решения E s и соответствующие значения ЦФ R .
-
10. f = f + 1, если f > nf , переход к п. 11, иначе к п. 6.
-
11. Сформировать для каждой базовой позиции а , области D i = a i U O , .
-
12. В каждой области D i выбрать лучшую позицию а i * с лучшим значением ЦФ R i * .
-
13. Среди всех значений R i * выбрать лучшее значение R * и соответствующее решение (список позиций Е*).
-
14. Если значение R *( / ) предпочтительней значения R *( / -1 ) , то сохранить значение R* ( / ) , в противном случае сохранённым остается значение R* ( / -1 ) .
-
15. Если / < L (не все итерации пройдены), / = / + 1, переход к п. 16, иначе к п. 20.
-
16. Начать формирование множества базовых позиций. Во множество А b 1 включается n b 1 лучших позиций, найденных агентами среди позиций а , в каждой из областей D , на итерации / - 1.
-
17. Разместить n rl агентов-разведчиков случайным образом в пространстве поиска для выбора n rl позиций в пространстве поиска.
-
18. Включить в множество А b 2 n b 2 лучших позиций из множества n rl новых позиций, найденных агентами-разведчиками на итерации l . Следовательно, n b 2 + n b 1 = n b .
-
19. Определить множество базовых позиций на итерации / как A b ( / ) = A b1 ( / ) U A b 2 ( / ) . Перейти к п. 5.
-
20. Конец работы алгоритма, список Е* — вариант исходного текста с лучшим значением ЦФ R *.
Демонстрационный пример. Рассмотрим пример реализации представленного выше алгоритма криптоанализа, аналогичный приведённому в [8, 26]. Пусть задана строка символов: БКСОА. Тре- буется определить возможную перестановку символов, входящую в словарный состав языка. Матрица Cij , показывающая частоту биграмм, приведённая в [8, 26], показана на рис. 1.
Определим пространство поиска в виде матрицы А размером 11 х 11, заполненной символами из алфавита шифртекста, размещёнными случайным образом в ячейках с соответствующими координатами (рис. 2). При реализации алгоритма будем предполагать, что выбор позиции а s , расположенной в окрестности базовой позиции а i , производится пропорционально значению ЦФ R полученного решения (списка E s ).
Б К С О А Б 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. Матрица С , элемент С ij которой определяет вероятность соседства в тексте символов i и j |
|||||||||||||
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. Определим количество агентов-разведчиков n r = 7 и разместим их случайным образом в пространстве поиска, то есть выберем произвольным образом n r символов в матрице А . Пусть это будут символы К(5, 6), С(7, 4), А(1, 4), А(1, 6), Б(6, 9), О(10, 4), К(11, 1), выделенные на рис. 2 курсивом. Положим значение ЦФ R для всех позиций равным малому положительному числу R = 0,001.
-
2. Определим множество базовых решений n b = 5 и соответствующие базовые позиции с лучшими значениями ЦФ (на этом этапе их выберем произвольно). Пусть это будут позиции Ab = { К ( 5, 6 ) , Б ( 6, 9 ) , С ( 7, 4 ) , О ( 10, 4 ) , А ( 1, 4 ) } .
-
3. Определим число агентов-фуражиров n f = 6 и размер окрестности Хмакс = 3. Пусть базовые позиции выбираются в следующем порядке А, О, Б, К, С, О и им ставятся в соответствие следующие позиции а s : А → К(2, 2); О → А(9, 4); Б → К(7, 9); К → C(4, 4); С → К(8, 3); О → А(11, 2). Таким образом, на данном шаге мы будем иметь следующий список позиций, решений и соответствующих значений ЦФ: позиции К(5, 6), Б(6, 9), С(7, 4), О(10, 4), А(1, 4), R = 0,001, список Е состоит из одного символа; позиция К(2, 2), E = { АК } , R = 0,6; позиция А(9, 4), E = { ОА } , R = 0,1; позиция К(7, 9), E = { БК } , R = 0,01; позиция C(4, 4), E = { КС } , R = 0,01; позиция К(8,3), R = 0,08; позиция А(11, 2), E = { ОА } , R = 0,1. Области D i будут иметь вид:
-
4. В каждой области D i выберем лучшую позицию а i * с лучшим значением ЦФ R i * . Получим D 1 → К(2, 2), R 1* =0,6; D 2 → А(9, 4), R 2* =0,1; D 3 → К(7, 9), R 3* =0,01; D 4 → С(4, 4), R 4* =0,01; D 5 → К(8, 3), R 5* =0,08.
-
5. Выбирая среди всех значений R i лучшее значение, получим, что R *(1)=0,6; E - ( 1 ) = { АК } .
-
6. Полагаем l = 2.
D = { А ( 1,4 ) ,K ( 2,2 ) } ; D 2 = { О ( 10,4 ) ,А ( 9,4 ) ,А ( 11,2 ) } ; D 3 = { Б ( 6,9 ) ,K ( 7,9 ) } ; D 4 = { К ( 5,6 ) ,С ( 4,4 ) } ; D 5 = { С ( 7,4 ) , К ( 8,3 ) } .
Итерация 2.
-
1. Определим число nb1 = 3. Во множество АЬ1 включается nb1 лучших позиций, найденных агентами среди позиций а i * в каждой из областей D i на итерации 1. Получим Ab1 = { К ( 2, 2 ) , А ( 9, 4 ) , К ( 8, 3 ) } . Этим позициям поставлены в соответствие списки, представленные на рис. 3.
-
2. Определим количество агентов-разведчиков nrl = 5 и разместим их произвольным образом в пространстве поиска. Пусть будут выбраны символы О(7, 6), О(10, 3), Б(8, 1), А(8, 6), К(3, 10).
-
3. Включение в множество Ab 2 nb 2 = 2 лучших позиций из множества nrl новых позиций, найденных агентами-разведчиками на итерации 2. Пусть Ab 2 = { О ( 10, 3 ) , Б ( 8, 1 ) } . Таким образом, П ь1 + П ь 2 = 5 и A b = { К ( 2, 2 ) , А ( 9, 4 ) , К ( 8, 3 ) , О ( 10, 3 ) , Б ( 8, 1 ) } .
-
4. Как и ранее, полагаем n f = 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), E = { АК } , R = 0,6; позиция А(9, 4), E = { ОА } , R = 0,1; позиция К(8, 3), E = { СК } ,
-
5. В каждой области D i выберем лучшую позицию а i * с лучшим значением ЦФ R i * . Получим D 1 → О(2, 3), R 1* =0,66; D 2 → Б(8, 5), R 2* =0,42; D 3 → О(8, 2), R 3* =0,58; D 4 → С(11, 4), R 4* =0,5; D 5 → А(10, 1), R 5* =0,6.
-
6. Выбирая среди всех значений R i лучшее значение, получим, что R *( 2 ) = 0,66; E * ( 1 ) = { АКО } .
-
7. Полагаем l = 3.
11
О
А
О
А
С
О
О
О
К
А
Б
10
Б
С
К
А
Б
О
Б
Б
Б
О
С
9
А
С
А
К
С
Б
К
О
С
О
С
8
К
А
С
К
Б
Б
А
О
К
Б
А
7
С
Б
Б
А
А
К
К
С
К
А
Б
6
А
Б
О
К
К
А
О
А
К
Б
К
5
Б
А
Б
К
О
А
А
Б
С
С
Б
4
А
Б
А
С
А
А
С
А
ОА
О
С
3
О
О
С
Б
К
Б
Б
СК
Б
О
Б
2
О
АК
О
К
А
С
С
О
Б
С
А
1
Б
К
Б
О
Б
К
А
Б
С
А
К
1
2
3
4
5
6
7
8
9
10
11
R = 0,08; позиции О(10, 3), Б(8, 1), R = 0,001, список Е состоит из одного символа; позиция
О(2, 3), E = { АКО } , R = 1,1; позиция Б(8, 5), E = { ОАБ } , R = 0,7; позиция О(8, 2), E = { СКО } ,
R = 0,58; позиция А(11, 2), E = { ОА } , R = 0,1; позиция А(10, 1), E = { БА } , R = 0,6; позиция
С(11, 4), E = { ОС } , R = 0,5. Отметим, что фрагменты текста, состоящие из трёх и более символов, умножим на значения Q i в соответствие с частотой встречаемости. Для списков АКО, ОАБ, СКО положим соответственно Q = 0,6; Q = 0,6; Q = 1. В этом случае для позиции О(2, 3), E = { АКО } , R = 0,66 ; для позиции Б(8, 5), E = { ОАБ } , R = 0,42 ; для позиции О(8, 2), E = { СКО } , R = 0,58. Области D i будут иметь вид D 1 = { К ( 2,2 ) , О ( 2,3 ) } ; D 2 = { А ( 9,4 ) , Б ( 8,5 ) } ; D 3 = { К ( 8,3 ) ,О ( 8,2 ) } ; D 4 = { О ( 10,3 ) , А ( 11,2 ) , С ( 11,4 ) } ; D = { Б ( 8,1 ) , А ( 10,1 ) } .
Рис. 3. Матрица А , представляющая пространство поиска для пчелиного алгоритма после 1 итерации
Итерация 3.
-
1. Определим, как и ранее, число nb1 = 3 . Во множество Ab1 включается nb1 лучших позиций, найденных агентами среди позиций а i * в каждой из областей D i на итерации 2. Получим Ab1 = { О ( 2, 3 ) , А ( 10, 1 ) , О ( 8, 2 ) } . Этим позициям поставлены в соответствие списки, представленные на рис. 4.
-
2. Определим количество агентов-разведчиков n rl = 5 и разместим их произвольным образом в пространстве поиска. Пусть будут выбраны символы К(2, 2), О(1, 11), К(8, 3), А(10, 11), А(3, 9).
-
3. Включение в множество A b 2 nb 2 = 2 лучших позиций из множества n r новых позиций, найденных агентами-разведчиками на итерации 2. На данной итерации, Ab 2 = { К ( 2, 2 ) , К ( 8, 3 ) } . Таким образом, nb 1 + nb 2 = 5 и Ab = { О ( 2, 3 ) , А ( 10, 1 ) , О ( 8, 2 ) , К ( 2, 2 ) , К ( 8, 3 ) } .
-
4. Полагаем n f = 6 и размер окрестности Лмакс = 3. Поставим базовым позициям в соответствие следующие позиции из их окрестностей: О(2, 3) → Б(4, 3); А(10, 1) → К(11, 1); О(8, 2) → А(10, 1); К(2, 2) → О(3, 2); К(8, 3) → А(9, 4); О(8, 2) → Б(8, 1). Таким образом, получаем следующий список позиций, решений и соответствующих значений ЦФ: позиция О(2, 3), E = { АКО } , R = 1,1; позиция А(10, 1), E = { БА } , R = 0,6; позиция О(8, 2), E = { СКО } , R = 0,58; позиция К(2, 2), E = { АК } , R = 0,6; позиция К(8, 3), E = { СК } , R = 0,08; позиция Б(4, 3), E = { АКОБ } , R = 1,7; позиция К(11, 1), E = { БАК } , R = 1,2; позиция А(10, 1), E = { СКОБА } , R = 1,78; позиция О(3, 2), E = { АКО } , R = 1,1; позиция О(9, 4), E = { СКООА } , R = 0,7; позиция Б(8, 1), E = { СКОБ } , R = 1,18 . Фрагменты текста, состоящие из трёх и более символов, умножим на значения Q i в соответствие с частотой встречаемости. Для списков АКО, СКО, АКОБ, БАК, СКОБА, СКООА, СКОБ положим соответственно Q = 0,6; Q = 1; Q = 0,7; Q = 1; Q = 1; Q = 0,8; Q = 1. В этом случае для позиции О(2, 3), E = { АКО } , R = 0,66; для позиции О(8, 2), E = { СКО } , R = 0,58; для позиции Б(4, 3), E = { АКОБ } , R = 1,19 ; для позиции К(11, 1), E = { БАК } , R = 1,2 ; для позиции А(10, 1), E = { СКОБА } , R = 1,78; для позиции О(3, 2), E = { АКО } , R = 0,66 ; для позиции О(9, 4), E = { СКООА } , R = 0,56 ; для позиции Б(8, 1), E = { СКОБ } , R = 1,18 .
Таким образом, на данной итерации позиции А(10, 1) соответствует список E = {СКОБА} с максимальным значением ЦФ R = 1,78. Данная позиция, очевидным образом, будет включена в множество Аb для следующей итерации алгоритма, и списки с лучшим значением ЦФ будут осуществлять постепенное заполнение популяции решений.
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], алгоритмы пчелиных колоний могут являться эффективным способом поиска рациональных решений для данного класса задач.
Список литературы Исследование возможности применения бионических методов пчелиных колоний для реализации криптоанализа классических шифров перестановок
- Макконел, Д. Основы современных алгоритмов/Д. Макконел. -Москва: Техносфера, 2004. -368 с.
- Родзин, С. И. Интеллектуальные системы. О некоторых алгоритмах, инспирированных природными системами: коллективная монография/С. И. Родзин. -Москва: Физматлит, 2009. -С. 34-45.
- Курейчик, В. В. Концепция природных вычислений, инспирированных природными системами/В. В. Курейчик, В. М. Курейчик, С. И. Родзин//Известия ЮФУ. -2009. -№ 4. -С. 16-24.
- Сергеев, А. С. Исследование возможности организации криптографической атаки с использованием эволюционной оптимизации и квантового поиска при разработке систем передачи и защиты информации/А. С. Сергеев//Теоретические и прикладные вопросы современных информационных технологий: мат-лы 6 Всероссийской НТК. -Улан-Удэ, 2005. -С. 61-65.
- Биоинспирированные алгоритмы криптоанализа асимметричных алгоритмов шифрования на основе факторизации составных чисел/А. С. Сергеев [и др.]//Информационная безопасность -актуальная проблема современности. Совершенствование образовательных технологий подготовки специалистов в области информационной безопасности: сб. трудов. -Краснодар, 2011. -С. 41-47.
- Сергеев, А. С. Применение методов генетического поиска для организации криптоанализа блочных криптосистем на примере стандарта DES/А. С. Сергеев//Научная мысль Кавказа: Приложение. -2006. -№ 15. -С. 185-193.
- Сергеев, А. С. Исследование и разработка методов генетического поиска для организации криптоанализа блочных криптосистем в системах управления безопасностью и защиты информации на примере стандарта шифрования DES/А. С. Сергеев//Третья Международная конференция по проблемам управления: Пленарные доклады и избранные труды. -Москва: Ин-т проблем управления, 2006. -С. 328-335.
- Фатхи, В. А. Исследование возможности применения алгоритма муравьиных колоний для реализации криптоанализа шифров перестановок/В. А. Фатхи, А. С. Сергеев//Вестник Дон. гос. техн. ун-та. -2011. -Т. 11, № 1 (52). -С. 10-20.
- Чернышёв, Ю. О. Исследование и разработка методов генетического поиска для реализации криптоанализа алгоритма IDEA и решения основных теоретико-числовых задач криптографии/Ю. О. Чернышёв, А. С. Сергеев, Н. Н. Венцов//Вестник РГУПС. -2009. -№ 3 (35). -С. 70-79.
- Лебедев, В. Б. Модели адаптивного поведения колонии пчёл для решения задач на графах/В. Б. Лебедев//Известия ЮФУ. -2012. -№ 7. -С. 42-49.
- Лебедев, О. Б. Трассировка в канале методом муравьиной колонии/О. Б. Лебедев//Известия ЮФУ. -2009. -№ 4. -С. 46-52.
- The Bees Algorithm. Technical Note, Manufacturing Engineering Centre. Cardiff University, UK, 2005.
- An IDEA based on honey bee swarm for numerical optimization, technical report. Erciyes University, Engineering Faculty. Computer Engineering Department, 2005.
- The Bees Algorithm. -A Novel Tool for Complex Optimisation Problems. Manufacturing Engineering Centre. -Cardiff University, Cardiff CF24 3AA, UK.
- Алгоритм пчёл для оптимизации функции [Электронный ресурс]. -Режим доступа: http://jenyay.net/Programming/Bees (дата обращения: 24.05.2013).
- Алгоритм пчёл для оптимизации функции [Электронный ресурс]. -Режим доступа: http://lit999.narod.ru/soft/ga/index.html (дата обращения: 24.05.2013).
- Курейчик, В. В. Роевой алгоритм в задачах оптимизации/В. В. Курейчик, Д. Ю. Запорожец//Известия ЮФУ. -2010. -№ 7 (108). -С. 28-32.
- Курейчик, В. М. Использование пчелиных алгоритмов для решения комбинаторных задач [Электронный ресурс]/В. М. Курейчик, А. А. Кажаров. -Режим доступа: http://archive.nbuv.gov.ua/portal/natural/ii/2010_3/AI_2010_3/6/00_Kureychik_Kazharov.pdf (дата обращения: 24.05.2013).
- Курейчик, В. М. Применение пчелиных алгоритмов для раскраски графов/В. М. Курейчик, А. А. Кажаров//Известия ЮФУ. -2010. -№ 12 (113). -С. 7-12.
- Лебедев, Б. К. Размещение на основе метода пчелиной колонии/Б. К. Лебедев, В. Б. Лебедев//Известия ЮФУ. -2010. -№ 12 (113). -С. 12-19.
- Курейчик, В. В. Эволюционная оптимизация на основе алгоритма колонии пчёл/В. В. Курейчик, Е. Е. Полупанова//Известия ЮФУ. -2009. -№ 12 (101). -С. 41-46.
- Биоинспирированные методы криптоанализа асимметричных алгоритмов шифрования на основе факторизации составных чисел/А. С. Сергеев [и др.]//Вестник Дон. гос. техн. ун-та. -2011. -Т. 11, № 9 (60). -С. 1544-1554.
- Чернышёв, Ю. О. Применение биоинспирированных методов оптимизации для реализации криптоанализа классических симметричных и асимметричных криптосистем/Ю. О. Чернышёв, А. С. Сергеев, Е. О. Дубров//Системный анализ в проектировании и управлении: сб. науч. трудов 16-й Междунар. науч.-практ. конф. -Санкт-Петербург, 2012. -С. 112-122.
- Зайцев, А. А. Обзор эволюционных методов оптимизации на основе роевого интеллекта/А. А. Зайцев, В. В. Курейчик, А. А. Полупанов//Известия ЮФУ. -2010. -№ 12 (113). -С. 7-12.
- Романец, Ю. В. Защита информации в компьютерных системах и сетях/Ю. В. Романец, П. А. Тимофеев, В. Ф. Шаньгин. -Москва: Радио и связь, 2001. -376 с.
- Основы криптографии/А. П. Алферов [и др.]. -Москва: Гелиос АРВ, 2002. -480 с.
- Чернышев, Ю. О. Применение алгоритма муравьиных колоний для реализации криптоанализа шифров перестановок/Ю. О. Чернышёв, А. С. Сергеев, Е. О. Дубров//Научная сессия, посвящённая Дню радио: сб. докладов 67-й Всероссийской конференции с Международным участием. -Москва, 2012. -С. 71-75.
- Морозенко, В. В. Генетический алгоритм для криптоанализа шифра Вижинера [Электронный ресурс]/В. В. Морозенко, Г. О. Елисеев. -Режим доступа: http://vestnik.psu.ru/files/articles/132_6410.p (дата обращения: 24.05.2013).
- Городилов, А. Ю. Криптоанализ тригонометрического шифра с помощью генетического алгоритма [Электронный ресурс]/А. Ю. Городилов, А. А. Митраков. -Режим доступа: http://vestnik.psu.ru/files/articles/260_27019.p (дата обращения: 24.05.2013).
- Городилов, А. Ю. Криптоанализ перестановочного шифра с помощью генетического алгоритма [Электронный ресурс]/А. Ю. Городилов. -Режим доступа: http://vestnik.psu.ru/files/articles/8_83883 (дата обращения: 24.05.2013).