Исследование возможности применения бионических методов пчелиных колоний для реализации криптоанализа классических шифров перестановок

Автор: Чернышв Юрий Олегович, Сергеев Александр Сергеевич, Дубров Евгений Олегович, Рязанов Александр Николаевич

Журнал: Вестник Донского государственного технического университета @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).
Еще
Статья научная