УДК 004.056.55
Биоинспирированные методы криптоанализа асимметричных алгоритмов шифрования на основе факторизации составных чисел
А. С. Сергеев
(Донской государственный технический университет),
О. П. Третьяков, А. Е. Васильев (филиал Военной академии связи),
Ю. О. Чернышёв
(Донской государственный технический университет)
Рассматривается возможность применения биоинспирированных методов для решения задачи криптоанализа асимметричных алгоритмов шифрования на основе факторизации составных чисел. Представлены алгоритмы муравьиных и пчелиных колоний для разложения составных чисел на множители путём определения делителя числа с заданной точностью в заданном интервале. Описаны отличительные особенности представленных методов, в том числе возможность эффективной параллельной реализации.
Ключевые слова: криптоанализ, пчелиный алгоритм, муравьиный алгоритм, феромон, факторизация числа, асимметричные криптосистемы, биоинспирированные методы.
Введение. В настоящее время в науке и технике находят широкое применение алгоритмы, основанные на природных системах. Это новое научное направление под названием «природные вычисления» объединяет математические методы, в которых заложен принцип природных механизмов принятия решений. К ним относятся методы моделирования отжига, генетические, эволюционные методы, алгоритмы роевого интеллекта и др. [1].
Однако, как отмечено в [2], недостатком эволюционных методов является использование «слепого» поиска, что в общем случае приводит к следующим проблемам: генерация решений с нарушениями и, как следствие, увеличение времени поиска и необходимость дополнительного контроля; генерация большого количества одинаковых решений; генерация большого количества плохо приспособленных решений, что в общем случае может привести к попаданию в локальный оптимум. Поэтому представляет интерес применение эвристических методов, инспирированных природными системами, в которых осуществляется поэтапное построение решения задачи (т. е. добавление нового оптимального частичного решения к уже построенному частичному оптимальному решению). К методам данного вида относят муравьиные и пчелиные алгоритмы, основные идеи и принципы которых описаны, например, в [1]. Известны случаи применения алгоритмов роевого интеллекта для оптимизации широкого круга задач, в том числе в криптоанализе. Вместе с тем следует заметить, что наряду с классическими симметричными алгоритмами шифрования в настоящее время используются методы асимметричной криптографии — сравнительно молодой области науки. Один из её первых алгоритмов — кБА [3, 4], сложность которого определяется трудностью факторизации больших чисел. Как отмечено в [5], факторизация (задача разложения числа на простые множители) — одна из основных теоретико-числовых задач, используемых в криптографии.
Постановка задачи криптоанализа асимметричных криптосистем. Как отмечено в [6], во всех асимметричных криптосистемах (в т. ч. (^БА) используются два ключа: один для шифрования (КоткР), другой для дешифрования (Ксекр). Ключи представляют собой пары (КоТкр, IV), (/Секр, /V), где N — модуль, при этом N = Р ■ <2 где Р и ф— случайные большие простые числа. При этом возможны несколько вариантов криптоанализа:
1544
1. На основе известного открытого текста и шифртекста подобрать такой секретный ключ КсекР, чтобы выполнялось равенство М-, = С№екр(тос1 IV), где М,— открытый текст, С — шифртекст.
2. Опытным путём определить функцию Эйлера ср (IV) = (Р - 1)(<2 - 1), разложив модуль N на множители Р И О и секретный КЛЮЧ /Секр ИЗ соотношения /Секр 1 Лоткр = 1(тос1 ф (IV)).
3. Подобрать такие числа Р и <?, чтобы выполнялось соотношение N = Р ■ <?.
Поскольку в варианте 1 нахождение секретного ключа /Ссекр имеет комбинаторную сложность (в общем случае может потребоваться полный перебор), как и в варианте 2 (требуется полный перебор всех взаимно простых чисел в интервале [1, ср (IV)], то актуальна задача исследования возможности применения современных технологий природных алгоритмов для определения всех возможных делителей составного числа N.
Отметим, что ранее в [7] был представлен генетический алгоритм (ГА) для решения задачи определения вариантов разложения заданного числа N на множители. Однако при реализации данного алгоритма основной также является задача определения числа 1/а!, являющегося делителем числа N. Для решения этой задачи в [7, 8] предлагается алгоритм, сущность которого заключается в определении на отрезке [О, Щ методом генетического поиска точки Я, удовлетворяющей условиям (/V - Я) / Я = п— целое (т. е. № - Я) / Я - [(/V - Я) / Я] = 0),
Я ■ (п + 1) = /V, (1)
где [х] — целая часть числа х, или множества точек Я, Я1г Я2, ..., Як, удовлетворяющих условиям Я1 / Я = Пи (Яг -/?!)//?= П2, (Яз - Яг) / Я = П3, ..., (Як - Як-1) / Я = Пк, Я х х (Л1 + п2 + ... + пк) = /V, где Я, пк — целые числа. Очевидно, что выражение (1) может быть использовано в качестве целевой функции в ГА.
Однако основной проблемой при реализации данного ГА является нахождение экстремума немонотонной функции, т. е. функции, значение f(x) которой в каждой точке хявляется, по сути, случайной величиной и не даёт информации о приближении к глобальному экстремуму. Таким образом, при нахождении экстремума функции f(R) = (/V - Я) / Я - [(/V - Я) / Я] (т. е. значения Я, для которого f(R) = ((/V- Я) / Я - [(/V- Я) / Я] = 0)) с использованием структуры ГА фактически имеет место «слепой» поиск, и, как отмечено в [2], это является основным недостатком большинства структур ГА.
На основе логарифмического закона распределения простых чисел [9] в работе [6] описана модель ГА для нахождения разложения составного числа N на 2 простых множителя. В данной модели на отрезке [0, N1 осуществляется генерация популяции простых чисел. Случайным выбором битов генерируется случайное п-битовое число С. Далее на отрезке [С - 1п (б), С + 1п (б)] осуществляется поиск наиболее вероятного простого числа. Каждое х е [С - 1п (б), б + 1п (б)] последовательно проверяется на делимость с простыми числами в интервале [3, 2 1 1п (б)]. Так как реальное значение б составляет порядка б « 2512, то радиус поиска представляется как г = = 1п б= 1од2б/ 1од2е = 1од2б/ 1,442695 = л / 1,442695.
Далее к полученной популяции простых чисел применяется множество генетических операций для получения простых чисел-потомков. Для этого используется описанная методика поиска наиболее вероятного простого числа в окрестности декодированного числа. Однако, учитывая реальную размерность задачи (как отмечено в [3, 6], разработчикам криптоалгоритмов на базе [^БА приходится применять числа длиной не менее 200 десятичных знаков, на данный момент криптостойким считается ключ размерностью 21024), этот алгоритм может потребовать значительных временных ресурсов (при операции формирования большой популяции простых чисел и их получении при проведении генетических операций) и оказаться достаточно трудоёмким при практической реализации. Отметим также, что при использовании известных технологий распараллеливания ГА (например, «островной» модели), описанных, в частности, в [8, 10], необходимо организовать межпроцессорные связи между «островами» (группами процессоров, моделирующих
1545
развитие популяции), чтобы предотвратить потери хороших решений и попадание в локальный оптимум. Как отмечено в [10], частота миграции является наиболее существенным фактором и должна быть установлена на основе экспериментальных результатов, что также может потребовать временных ресурсов и снизить эффективность работы ГА.
Поэтому представляет несомненную актуальность разработка новых методов, использующих модели процессов живой природы и ликвидирующих отмеченные недостатки ГА путём отмеченного выше поэтапного построения оптимальных решений. Рассмотрим возможный подход для решения задачи разложения составного числа на простые сомножители с помощью другого класса биоинспирированных методов — алгоритмов муравьиных и пчелиных колоний.
Разработка метода муравьиных колоний для факторизации составных чисел. Основные положения теории муравьиных алгоритмов и описание их работы приводятся в [1, 11, 12, 13]. В соответствии с [1], для того, чтобы построить подходящий муравьиный алгоритм для решения задачи, необходимо представить задачу как набор компонент и переходов или как набор неориентированных взвешенных графов, на которых муравьи могут строить решения. Поэтому рассмотрим возможный подход для сведения задачи разложения составного числа на множители к задаче нахождения кратчайшего пути в графе. Пусть задано достаточно большое число /V, которое необходимо проверить на простоту и определить его делители на отрезке [л,> /?7] с заданной степенью точности, т. е. найти такие числа х„ для которых ((/V/ х,) - [/V/ *,]) тт. Пусть числа хк е [л,> Л/] содержатся в оперативной памяти одного процессора (или «острова» процессоров) и являются вершинами полного графа С = (X\ Ц), где |Л1 = л,- - л,- + 1 — множество вершин, \и\ = = (/7, - г)-, + 1) (л, - л,) / 2 — множество рёбер, при этом вес вершины х] равен ^ (х7) = (/V/ х;) -
- [IV/ Ху\, т. е. равен дробной части частного, полученного от деления /V на Ху. Сформулируем задачу нахождения кратчайшего пути в следующей форме: найти маршрут Т в графе С, содержащий заданное число л? вершин, удовлетворяющий условию
Таким образом, задачей муравьиного алгоритма в данном случае является определение маршрута, имеющего минимальный вес Ц и содержащего л? вершин и вершину графа хк, для которой Р(хк) = (/V/ хк) - [/V/ хк\ тт, т. е. которая является наиболее точным делителем числа N. Так как цикл по времени жизни колонии продолжается до тех пор, пока не будут просмотрены все вершины графа С, то вершина хк е [л,> Л/] будет определена за число временных циклов С алгоритма не менее
где М— размер популяции Муравьёв, т— число вершин в маршруте.
Предположим, что муравьи обладают свойствами поведения (память, зрение, обоняние), описанными в [11,12]. Так как веса вершин Р(х^) априорно неизвестны и определяются в процессе работы алгоритма, то вероятность перехода муравья к из вершины х, в устанавливается на основе соотношения
где _7* — множество вершин, доступных муравью к, находящемуся в вершине ту (£) — уровень феромона в момент времени £на ребре х^, параметр цикла времени жизни колонии.
1546
Вес каждого маршрута ^определим как (Ц, ^), где
(3)
После прохождения к-м муравьем маршрута из я? вершин подсчитывается длина пути. Она равна сумме всех весов вершин, по которым прошёл муравей. На каждом ребре х^ маршрута количество отложенного феромона составляет
где <?— параметр порядка длины оптимального пути (определяющий уменьшение Ат*. с увеличением длины маршрута /.*(£)).
Обновление феромона производится в соответствии с выражением
где Р — множество Муравьёв, использовавших в маршруте ребро х^, р — интенсивность испарения (в [13] предлагается выбирать р = 0,6).
Отметим, что в соответствии с [12] на начальном этапе задаётся начальное расположение муравьиной колонии. В общем случае для данной задачи может быть использована стратегия «дробовика», когда ограниченное количество агентов М случайным образом размещается в вершинах графа без повторений. При такой стратегии в оптимальном случае число циклов жизни колонии Сопределяется выражением (2).
Итак, муравьиный алгоритм для задачи нахождения делителей числа N можно сформулировать следующим образом.
1. Задание начальных значений параметров <?, М, р, 4,акс.
2. Определение минимальных весов рёбер на основе начальной концентрации феромона.
3. Задание оценки С — длина кратчайшего маршрута, оценки /^—точность решения.
4. Цикл по времени жизни колонии: Ь = 1.
5. Размещение популяции ММуравьёв в случайные вершины графа без совпадений.
6. Цикл по муравьям: к= 1.
7. Муравей к строит маршрут Тк (г) длиной Ц (г) на основе распределения вероятности по рёбрам в соответствии с формулой (3).
8. к = к + 1, если к< М, переход к 7.
9. Проверка всех маршрутов Тк на лучшее решение по сравнению с 1*и Р*.
10. В случае, если получен маршрут Тк (£) длиной Ц (£), которая предпочтительнее С, и маршрут содержит вершину для которой Р(х^) < Г, обновить С и Г.
11. Цикл по рёбрам графа /'= 1.
13. Обновить неминимальные следы феромона на ребре Ху в соответствии с (4).
14. У = У + 1, если У < П] - /7/ + 1, перейти к 13.
15. / = / + 1, если /'< П] - п/г перейти к 12.
1Ь. Ь= Ь + 1, если условия остановки не выполнены, переход к 5.
17. Вывести маршрут кратчайшей длины Ц, а также вершину х, для которой ^ (х) минимально.
Условиями остановки могут быть Ь > £„акс/ прекращение минимизации длины маршрутов, определение вершины х, для которой Р(х) = 0.
Таким образом, данный алгоритм позволяет определять маршрут, содержащий заданное число вершин X/, для которых 2 Р(х1) = тт (т. е. являющихся самыми точными делителями числа N на отрезке [п/, /7/]), а также найти вершину х„ для которой Р(х1) = тт, т. е. которая является делителем числа N с заданной степенью точности.
Рассмотрим пример. Пусть N = 893 и в памяти процессора (или «острова» процессоров)
содержится отрезок [5, 45], т. е. в этом случае 1x1 =41. Определим М = 4 (количество Муравьёв),
дтИО = <?/**(*)'
(4)
12. ]■ = 1.
1547
m = 4 (число вершин в маршруте), <5=4. Начальную концентрацию феромона при t = 0 зададим равной ту (0) = 0,25. Для решения задачи нахождения маршрута, содержащего m вершин, и значения х, для которого F(x) = min, разместим М Муравьёв в случайно выбранные вершины графа, например в вершины 5, 10, 30, 39. Так как на t = 1 итерации веса рёбер одинаковы, определим случайным образом 4 маршрута.
7i (1): 5-12-18-25 Ц (1) = 0,6 + 0,42 + 0,61 + 0,72 = 2,35
Тг (1): 10 - 22 - 18 - 36 I2 (1) = 0,3 + 0,59 + 0,61 + 0,81 = 2,31
Т3 (1): 30 - 25 - 17 - 40 L3 (1) = 0,77 + 0,72 + 0,53 + 0,33 = 2,35
Г4 (1): 39-37- 11 -24 Ц (1) = 0,90 + 0,14 + 0,18 + 0,21 = 1,43
Таким образом, на рёбрах маршрута к количество отложенного феромона после 1 итерации т* (0) + Ат*. = т*. (0) + Q/Lk (1) составит:
т) (0) + Дт* = 0,25 +1,7 = 1,95; т) (0) + Дт’ = 0,25 +1,73 = 1,98;
т)-(0) + Дт^. =0,25 + 1,7 = 1,95; т* (0) + Дт* =0,25 + 2,8 = 3,05.
После испарения получим следующие значения концентрации на рёбрах графа, соответствующих маршрутам: т*. (1) = 0,78; т*. (1) = 0,79; т? (1) = 0,78; т*. (1) = 1,22. Рёбра графа после
1-й итерации будут иметь веса: т5д2 (1) = ti2,i8 (1) = ti8;25 (1) = т30;25 (1) = т25Д7 (1) = ti7;40 (1) = = 0,78; тю,22 (1) = т22д8 (1) = т 18,36 (1) = 0,79; тзд;з7 (1) = тз7;ц (1) = тц;24 (1) = 1,22. При этом Fx = min (F(x,.)) = F( 12) = 0,42; F2 = F{ 10) = 0,3; F3 = F{40) = 0,33; F4 = F (37) = 0,14; F* =
X/ eT^ (1)' ' ' '
= 0,14. Для остальных рёбер веса ту (1) = 0,25.
Перейдём к следующей итерации при t = 2. Разместим Муравьёв в случайно выбранные позиции, например, в 33, 42, 44,10, и пусть определены следующие маршруты.
7i (2): 33-27-37- 11 Ц (2) = 0,06 + 0,07 + 0,14 + 0,18 = 0,45
Тг (2): 42-9-39-37 12 (2) = 0,26 + 0,22 + 0,90 + 0,14 = 1,52
Т3 (2): 44 - 10 - 26 - 27 L3 (2) = 0,30 + 0,30 + 0,35 + 0,07 = 1,02
Г4 (2): 10-13-25-17 Ц (2) = 0,30 + 0,69 + 0,72 + 0,53 = 2,24
Таким образом, на рёбрах маршрутов количество отложенного феромона составит:
Дт‘ = Q/L, (2) = 4/0,45 = 8,89; Дт^ = Q/L, (2) = 4/1,52 = 2,63;
Дт= = Q/Ц (2) = 4/1,02 = 3,92; Дт^ = Q/Ц (2) = 4/2,24 = 1,79.
Таким образом, после испарения феромона рёбра графа будут иметь следующие веса:
т5,12 (2) = Т12Д8 (2) = Т18,25 (2) = Тзо,25 (2) = Т25Д7 (2) = Т17;4о (2) = 0,31; Тю,22 (2) = Т22Д8 (2) =
= ^18,36 (2) = 0,32; тюдз (2) = Т1з;25 (2) = т25д7 (2) = 0,82; Т44Д0 (2) = тю,2б (2) = т2б,27 (2) = 1,67; т42,9 (2) = тд;з9 (2) = 1,15; тзд;з7 (2) = 1,54; тзз;27 (2) = т27;з7 (2) = 3,66; тз7д1 (2) = 4,04; тц;24 (2) = = 0,49.
После 2-й итерации F± = F{33) = 0,06; F2 = F{9) = 0,22; F3 = F{27) = 0,07; F4 = F(10) = = 0,3, F* = 0,06. Для остальных рёбер веса ту (2) = 0,25.
Таким образом, данная итерация показывает, как маршрут, проходящий по вершинам с наименьшим весом, максимально обогащается феромоном.
Перейдём к итерации t = 3 и разместим Муравьёв в вершинах 19, 8, 32, 10. Пусть определены следующие маршруты.
7-i(3) 7-2(3) 7-3 (3) 7-4(3)
19 - 37 - 27 - 33 Ц (3) = 0,0 + 0,14 + 0,07 + 0,06 = 0,27
8-13-10-22 L2 (3) = 0,63 + 0,69 + 0,30 + 0,59 = 2,21
32 - 33 - 27 - 37 Із (3) = 0,91 + 0,06 + 0,07 + 0,14 = 1,18
10- 17-39-37 Ц (3) = 0,30 + 0,53 + 0,90 + 0,14 = 1,87
1548
Таким образом, после 3-й итерации количество отложенного феромона на рёбрах, входящих в маршруты, составит
Дт‘ = <?//, (3) = 4/0,27 = 14,81; Дт^. = 0/1^ (3) = 4/2,21 = 1,80;
Дт= = (2/Ц (3) = 4/1,18 = 3,39; Дт< = (}/Ц (3) = 4/1,87 = 2,14.
Таким образом, после испарения феромона рёбра графа будут иметь следующие веса: т5,12 (3) = Т12Д8 (3) = X18,25 (3) = Тзо,25 (3) = Т25Д7 (3) = 117,40 (3) = 0,124; Тю,22 (3) = 0,84; Т22Д8 (3) = = "с18,36 (3) = 0,128; тз9,з7 (3) = 1,47; тз7,ц (3) = 1,62; тц,24 (3) = 0,20; 142,9 (3) = 19,39 (3) = 0,46; ^44,10 (3) = Тю,26 (3) = Т26,27 (3) = 0,67; 113,25 (3) = Т25Д7 (3) = 0,33; 119,37 (3) = 6,02; Т37,27 (3) = = ^27,33 (3) = 8,74; тздз (3) = 0,82; т^до (3) = 1,05; тз2,зз (3) = 1,46; тюд7 (3) = 117,39 (3) = 0,96.
После 3-й итерации = ^(19) = 0; Р2 = Т(10) = 0,30; Р3 = Т(33) = 0,06; Рл = ^(37) = = 0,14; Я* = 0. Для остальных рёбер веса ту (3) = 0,25.
Таким образом, данный пример демонстрирует, как на 3-й итерации маршрут, содержащий вершины с наименьшим весом (19 — 37 — 27 — 33), наиболее сильно обогащается феромоном. Значения, соответствующие этим вершинам, являются, очевидным образом, делителями числа N с максимальной степенью точности е (для данных вершин 0 < е < 0,14). Очевидно, что на последующих итерациях по этому маршруту пойдёт наибольшее количество агентов, в то время как другие пути будут исчезать.
Таким образом, отличительными особенностями данного подхода являются:
- возможность эффективной параллельной реализации, связанной с отсутствием миграции особей между процессорами (в отличие от классического ГА);
- возможность определения множества значений х„ являющихся наилучшим приближением делителя числа Л/с заданной степенью точности.
Отметим, что, как следует из приведённого примера, веса вершин графа могут определяться в процессе работы алгоритма (при формировании маршрута Муравьёв), т. е. после этого задача сводится к реализации классического муравьиного алгоритма для определения кратчайшего маршрута заданной длины.
Экспериментальные результаты показывают, что эффективность муравьиных алгоритмов растёт с увеличением размерности решаемых задач оптимизации. При этом сходимость и качество решения зависят от начального расположения колонии и выбранных параметров. В качестве теоретической оценки размерности колонии для данной задачи можно принять М> (л, - п-, + 1) / т. Так как в этом случае маршруты Муравьёв с высокой степенью вероятности пересекаются, также высока и вероятность того, что муравей повернёт на оптимальный путь, пройдёт по нему и обогатит его феромоном.
Алгоритм разложения составных чисел на простые сомножители с использованием пчелиных колоний. Необходимо решить следующую задачу. На отрезке [л,> /?7] определить целочисленные делители числа Л/, являющиеся простыми числами, т. е. осуществить разложение числа Л/на простые множители. Поскольку простые числа, как отмечено в [6, 9], на заданном интервале распределены по логарифмическому закону, то целью поиска является определение в г-окрестности точки л-всех простых чисел У/ И ТОЧНОСТИ 6, с которой данное простое число //является делителем числа N. Как и в предыдущем случае, значение е определим как значение функции /г(//) = (Л// /,) - [Л// у,].
Рассмотрим применение для реализации данного подхода алгоритмов пчелиных колоний, являющихся относительно новым «природным» алгоритмом, используемым, как отмечено в [14], в первую очередь, для оптимизации сложных многомерных функций. Так как в данном случае ищется экстремум немонотонной функции Р(х), поэтому исследование возможности применения для решения данной задачи эвристических методов, не использующих непосредственным образом
1549
аппарат математического анализа, является, несомненно, актуальной задачей. Отметим, что описание алгоритма, основанного на поведении колонии пчёл, приводится в [14, 15, 16]. Исследование пчелиных алгоритмов для решения комбинаторных теоретико-графовых задач (задача разбиения графа, раскраска графа, сравнение с другими биоинспирированными методами) приводится в [17, 18]. Таким образом, на основе математической модели алгоритма, основанного на поведении колонии пчёл, и его описания в [16] алгоритм факторизации числа сформулируем в следующей форме. Как и ранее, будем предполагать, что поиск простого делителя х, осуществляется на заданном отрезке [п„ п;].
1. Определить параметры алгоритма: количество пчёл-разведчиков О, количество рабочих пчёл В, количество участков для исследования окрестностей 2, точность нахождения делителя е.
2. Выбрать на отрезке [л,> пД Означений аргумента х1г..., х0.
3. В выбранные точки х, направить В рабочих пчёл для поиска в их л-окрестности простых чисел в соответствии со следующим алгоритмом [6].
3.1. Определить для каждого значения х, значение окрестности г = п / 1,442695 (где п — число бит в двоичной записи числа).
3.2. Каждое число у е [х, - г, х, + г\ последовательно проверяется на делимость с простыми числами в интервале [2, 2 1 г\.
3.3. К числам, которые прошли тест проверки делимости, применяются известные тесты проверки простоты числа, описанные в [19], например, тест Миллера — Рабина, алгоритм, основанный на матрице Сандарама [20].
4. После определения множества простых чисел У для каждого у, е У определить значение функции Р(у1), найти тт Р(уЛ. Определить у,> для которых /г(//) < е.
у,еУ ^ 7
5. Из множества У выбрать случайным образом 7элементов, данные значения обозначить как х1г ..., хг. Отправить О пчёл-разведчиков для поиска на отрезке [л,> пД Означений аргумента Хг+1, ■■■/ Хг+о- Если условия остановки не выполнены, переход к 3, иначе к 6.
6. Конец работы алгоритма.
Условиями остановки алгоритма могут являться окончание временного ресурса; определение величины (или множества величин) X/, для которых ^ (X,) = 0 или ^ (X,) < е; определение значений функции Р(х1) для всех X, е [л,> /7,].
Таким образом, в данном алгоритме выбор значений аргумента х, е [л,> пД имитирует поведение пчёл-разведчиков, а поиск в г-окрестности наиболее вероятных простых чисел имитирует поведение рабочих пчёл (пчёл-фуражиров). Поскольку в данном случае определяется экстремум немонотонной функции, то выбор точек х, на отрезке [п■„ /7/] для поиска простых чисел в их окрестности производится на каждой итерации случайным образом, что приводит в общем случае к равновероятной возможности получения глобального оптимума на каждой итерации (в отличие от направленного схождения к экстремуму в классическом пчелином алгоритме, описанном в [16]).
Отличительной особенностью разработанного алгоритма, как и в [16], является динамическое разбиение поискового пространства на случайные области, что, с одной стороны, уменьшает время работы алгоритма, а с другой — повышает вероятность нахождения глобального оптимума на каждой итерации. В то же время благодаря случайному равновероятному поиску по всей длине отрезка становится возможным применение эффективных стратегий распараллеливания, приводящих к сокращению временных затрат. На каждой итерации временные затраты равны поиску в самой большой г-окрестности.
Рассмотрим пример применения итерационного алгоритма. Пусть N = 15589 и в памяти процессора содержится отрезок [п„ /7,] = [115, 140]. Определим О = 2 и выберем случайным об-
1550
разом точки Xi = 123, х2 = 133. Так как лі = (123)ю = (1111011)2, то определим п = 7 и г = = п/ 1,442695 = 5.
Выделим интервал чисел [118, 128]. Проверим делимость чисел в данном интервале на простые числа в интервале [2, 2 1 г] = [2, 10], т. е. на {2, 3, 5, 7}. Получим числа {121, 127}. Однако, т. к. число (121 - 1) / 2 = 60 содержится в матрице Сандарама в позиции (5, 5), то число 121 является составным. Для числа 127 F(127) = 0,75.
Так как *2 = (133)ю = (10000101)2, то п = 8 и г= 6.
Рассмотрим интервал чисел [127, 139]. Проверим делимость чисел из интервала на простые числа в интервале [2, 12], т. е. на {2, 3, 5, 7, 11}. Получим числа Y = {127, 131, 137, 139}. Так как для всех у є Y(у, - 1) / 2 не содержится в матрице Сандарама, то данные числа являются простыми. При этом F( 127) = 0,75; (131) = 0,0; F( 137) = 0,79; F(139) = 0,15. Таким образом,
на данной итерации определено значение х, є [nir nj\, являющееся точным делителем числа N.
Отметим, что в общем случае задачу проверки простоты числа N с помощью матрицы Сандарама можно свести к проверке принадлежности числа N' = (N - 1) / 2 множеству арифметических прогрессий, составляющих строки (столбцы) матрицы, приведённой в [20]. То есть задача сводится к определению целочисленного п из соотношений
4 + 3 ■ (п - 1) = /V', 7 + 5 ■ (п - 1) = /V',..., ak + dk- (п- 1) = /V', где ак = 4 + 3 ■ (к - 1), dk = 3 + + 2 ■ (к- 1), т. е. п- 1 = (N1- (4 + 3 ■ (к- 1)))/(3 + 2- (к- 1)).
Поскольку определение целого значения п имеет смысл при
ЛГ-(4 + 3.(<г-1))
3 + 2-((г-1)
то определим значение к — число прогрессий (строк или столбцов матрицы), которые надо проверить для определения, является ли N' основой простого числа (в предположении, ЧТО N’Ф 4 не является первым членом первой прогрессии). Преобразуя (5), получим N' - 3 - к- 1 > 2 ■ к + 1, откуда
AN'-2
к <
(6)
5
где ]х[ — ближайшее целое снизу к числу х. Таким образом, если число /V' не является членом первых к арифметических прогрессий матрицы Сандарама (где к определяется выражением (6)), то число N достоверно является простым. Отметим, что для предлагаемого в [6, 19] вероятностного теста Миллера — Рабина рекомендуется в общем случае проверка ц = 1од2Л/ свидетелей простоты, после чего вероятность того, что N составное, не превышает 4“9.
Поскольку наиболее целесообразными являются криптосистемы, в которых простые сомножители Р и ф, составляющие модуль М, имеют порядок 2512, то максимальное значение г = = 355, поэтому длина интервала 12, 2 ■ г| = 700. Простые числа в этом промежутке могут быть найдены с помощью известных таблиц, поэтому их определение не влияет на временную сложность алгоритма.
Выводы. Таким образом, в данной работе был представлен возможный подход к факторизации составных чисел с использованием биоинспирированных методов (алгоритмов муравьиных и пчелиных колоний), описаны основные отличительные особенности методов (в частности, возможность эффективной параллельной реализации), были также представлены демонстрационные примеры, иллюстрирующие возможность практического использования предложенных алгоритмов.
1551
Библиографический список
1. Зайцев, А. А. Обзор эволюционных методов оптимизации на основе роевого интеллекта / А. А. Зайцев, В. В. Курейчик, А. А. Полупанов // Известия ЮФУ. — 2010. — № 12 (113). — С. 7—12.
2. Лебедев, О. Б. Трассировка в канале методом муравьиной колонии / О. Б. Лебедев // Известия ЮФУ. — 2009. — № 4 (93). — С. 46—52. (Интеллектуальные САПР).
3. Романец, Ю. В. Защита информации в компьютерных системах и сетях / Ю. В. Романец, П. А. Тимофеев, В. Ф. Шаньгин. — М.: Радио и связь, 2001. — 376 с.
4. Беляев, А. В. Методы и средства защиты информации / А. В. Беляев. Электрон, ресурс. Режим доступа: http://docs.luksian.com/security/articles/methods/ (дата обращения 27.12.2011).
5. Основные тенденции развития открытой криптографии. Электрон, ресурс. Режим доступа: http://bre.ru/security/12050.html (дата обращения 27.12.2011).
6. Кажаров, А. А. Разработка модели криптоанализа РБА при помощи генетических алгоритмов / А. А. Кажаров, X. А. Кажаров. Электрон. ресурс. Режим доступа: http://www.contrterror.tsure.ru/index.php/index.php?option=com_content&view=article&id=13 (дата обращения 28.11.2011).
7. Сергеев, А. С. О возможности применения методов генетического поиска для реализации криптоанализа асимметричного алгоритма шифрования данных РБА / А. С. Сергеев // Изв. вузов. Сев.-Кавк. регион. Техн. науки. — 2008. — № 3. — С. 48—52.
8. Чернышёв, Ю. О. Исследование и разработка методов генетического поиска для реализации криптоанализа алгоритма ЮЕА и решения основных теоретико-числовых задач криптографии / Ю. О. Чернышёв, А. С. Сергеев, Н. Н. Венцов // Вестник РГУПС. — 2009. — № 3 (35). — С. 70-79.
9. Цагир, Д. Первые 50 миллионов простых чисел / Д. Цагир. Электрон, ресурс. Режим доступа: http://ega-math.narod.ru/Liv/Zagier.htm (дата обращения 25.11.2011).
10. Дискретная математика: алгоритмы. Электрон. ресурс. Режим доступа:
http://rain.ifmo.ru/cat/view.php/theory/unsorted/genetic-2005 (дата обращения 18.12.2011).
11. Кажаров, А. А. Муравьиные алгоритмы для решения транспортных задач /
A. А. Кажаров, В. М. Курейчик // Известия РАН. Теория и системы управления. — 2010. — № 1. —
С. 32-45.
12. Муравьиные алгоритмы. Электрон. ресурс. Режим доступа: http://rain.ifmo.ru/cat/data/theory/unsorted/ant-algo-2006/article.pdf (дата обращения 27.12.2011).
13. Алгоритмы муравьиной колонии. Электрон. ресурс. Режим доступа: Ьир:/Муууу^к12пап1е.ги/плл/2/^ех.рЬр/Алгоритмы_муравьиной_колонии (дата обращения
27.12.2011).
14. Алгоритм пчёл для оптимизации функции. Электрон, ресурс. Режим доступа: http://jenyay.net/Programming/Bees (дата обращения: 27.12.2011).
15. Алгоритм пчёл для оптимизации функции. Электрон, ресурс. Режим доступа: http://lit999.narod.ru/soft/ga/index.html (дата обращения: 27.12.2011).
16. Курейчик, В. В. Роевой алгоритм в задачах оптимизации / В. В. Курейчик,
Д. Ю. Запорожец // Известия ЮФУ. — 2010. — № 7 (108). — С. 28—32.
17. Курейчик, В. М. Использование пчелиных алгоритмов для решения комбинаторных задач / В. М. Курейчик, А. А. Кажаров. Электрон. ресурс. Режим доступа: http://www.nbuv.gov.Ua/portal/natural/ii/2010_3/AI_2010_3/6/00_Kureychik_Kazharov.pdf (дата обращения: 27.12.2011).
18. Курейчик, В. М. Применение пчелиных алгоритмов для раскраски графов /
B. М. Курейчик, А. А. Кажаров // Известия ЮФУ. — 2010. — № 12 (113). — С. 7—12.
1552
19. Тест простоты / Википедия. Электрон. ресурс. Режим доступа: http://ru.wikipedia.org/wiki/TecrjipocroTbi (дата обращения: 27.12.2011).
20. Аврутин, В. А. Алгоритм поиска простых чисел в заданном интервале / В. А. Аврутин. Электрон, ресурс. Режим доступа: http://library.mephi.ru/data/scientific-sessions/2003/12/024.html (дата обращения 17.11.2011).
Материал поступил в редакцию 27.12.2011.
References
1. Zajcev, A. A. Obzor e'volyucionny'x metodov optimizacii na osnove roevogo intellekta / A. A. Zajcev, V. V. Kurejchik, A. A. Polupanov // Izvestiya YuFU. — 2010. — # 12 (113). — S. 7—12. — In Russian.
2. Lebedev, О. B. Trassirovka v kanale metodom murav' inoj kolonii / О. B. Lebedev // Izvestiya YuFU. — 2009. — # 4 (93). — S. 46—52. (Intellektual'ny'e SAPR). — In Russian.
3. Romanecz, Yu. V. Zashhita informacii v komp'yuterny'x sistemax i setyax / Yu. V. Romanecz, P. A. Timofeev, V. F. Shan'gin. — М.: Radio i svyaz', 2001. — 376 s. — In Russian.
4. Belyaev, A. V. Metody' i sredstva zashhity' informacii / A. V. Belyaev. E' lektron. resurs. Rezhim dostupa: http://docs.luksian.com/security/articles/methods/ (data obrashheniya: 27.12.2011). — In Russian.
5. Osnovny'e tendencii razvitiya otkry'toj kriptografii. E'lektron. resurs. Rezhim dostupa: http://bre.ru/security/12050.html (data obrashheniya: 27.12.2011). — In Russian.
6. Kazharov, A. A. Razrabotka modeli kriptoanaliza RSA pri pomoshhi geneticheskix algoritmov /
A. A. Kazharov, X. A. Kazharov. E'lektron. resurs. Rezhim dostupa:
http://www.contrterror.tsure.ru/index.php/index.php?option=com_content&view=article&id=13 (data obrashheniya: 28.11.2011). — In Russian.
7. Sergeev, A. S. 0 vozmozhnosti primeneniya metodov geneticheskogo poiska dlya realizacii kriptoanaliza asimmetrichnogo algoritma shifrovaniya danny'x RSA / A. S. Sergeev // Izv. vuzov. Sev.-Kavk. region. Texn. nauki. — 2008. — # 3. — S. 48—52. — In Russian.
8. Cherny'shyov, Yu. O. Issledovanie i razrabotka metodov geneticheskogo poiska dlya realizacii kriptoanaliza algoritma IDEA i resheniya osnovny'x teoretiko-chislovy'x zadach kriptografii / Yu. 0. Cherny'shyov, A. S. Sergeev, N. N. Venczov // Vestnik RGUPS. — 2009. — # 3 (35). — S. 70— 79. — In Russian.
9. Czagir, D. Pervy'e 50 millionov prosty'x chisel / D. Czagir. E'lektron. resurs. Rezhim dostupa: http://ega-math.narod.ru/Liv/Zagier.htm (data obrashheniya: 25.11.2011). — In Russian.
10. Diskretnaya matematika: algoritmy'. E'lektron. resurs. Rezhim dostupa:
http://rain.ifmo.ru/cat/view.php/theory/unsorted/genetic-2005 (data obrashheniya: 18.12.2011). — In Russian.
11. Kazharov, A. A. Murav'iny'e algoritmy' dlya resheniya transportny'x zadach / A. A. Kazharov, V. M. Kurejchik // Izvestiya RAN. Teoriya i sistemy' upravleniya. — 2010. — # 1. — S. 32—45. — In Russian.
12. Murav'iny'e algoritmy'. E'lektron. resurs. Rezhim dostupa: http://rain.ifmo.ru/cat/data/theory/unsorted/ant-algo-2006/article.pdf (data obrashheniya:
27.12.2011). — In Russian.
13. Algoritmy' murav'inoj kolonii. E'lektron. resurs. Rezhim dostupa: http://www.wikiznanie.ru/ru-wz/index.php/Anr0pHTMbi_MypaBbHH0£ij«^0HHH (data obrashheniya:
27.12.2011). — In Russian.
14. Algoritm pchyol dlya optimizacii funkcii. E'lektron. resurs. Rezhim dostupa:
http://jenyay.net/Programming/Bees (data obrashheniya: 27.12.2011). — In Russian.
15. Algoritm pchyol dlya optimizacii funkcii. E'lektron. resurs. Rezhim dostupa:
http://lit999.narod.ru/soft/ga/index.html (data obrashheniya: 27.12.2011). — In Russian.
16. Kurejchik, V. V. Roevoj algoritm v zadachax optimizacii / V. V. Kurejchik,
D. Yu. Zaporozhecz // Izvestiya YuFU. — 2010. — # 7 (108). — S. 28—32. — In Russian.
1553
17. Kurejchik, V. M. Ispol'zovanie pcheliny'x algoritmov dlya resheniya kombinatorny'x zadach/ V. M. Kurejchik, A. A. Kazharov. E'lektron. resurs. Rezhim dostupa: http://www.nbuv.gov.Ua/portal/natural/ii/2010_3/AI_2010_3/6/00_Kureychik_Kazharov.pdf (data obrashheniya 24.01.2012). — In Russian.
18. Kurejchik, V. M. Primenenie pcheliny'x algoritmov dlya raskraski grafov / V. M. Kurejchik, A. A. Kazharov // Izvestiya YuFU. — 2010. — # 12 (113). — S. 7—12. — In Russian.
19. Test prostoty' / Vikipediya. E'lektron. resurs. Rezhim dostupa: http://ru.wikipedia.org/wiki/TecT_npocroTbi (data obrashheniya 17.01.2012). — In Russian.
20. Avrutin, V. A. Algoritm poiska prosty'x chisel v zadannom intervale / V. A. Avrutin. E' lektron. resurs. Rezhim dostupa: http://library.mephi.ru/data/scientific-sessions/2003/12/024.html (data obrashheniya 17.11.2011). — In Russian.
CRYPTANALYSIS BIOINSPIRED METHODS OF ASYMMETRIC KEY ON THE BASIS OF COMPOSITE NUMBER FACTORIZATION
A. S. Sergeyev
(Don State Technical University),
O. P. Tretyakov, A. E. Vasilyev
(Krasnodar branch of Military Academy of Communication),
Y. O. Chernyshev
(Don State Technical University)
The application of the bioinspired methods for handling the cryptanalysis problem of the asymmetric encryption algorithms on the basis of the composite number factorization is considered. The algorithms of ant and bee colonies for the composite number factorization by the definition of the integer divisor to the specif led accuracy in the stated interval are adduced. The properties of the methods presented, including the efficient parallel feasibility, are described.
Keywords: cryptanalysis, bee algorithm, ant colony algorithm, pheromone, factorization of numbers, asymmetric cryptosystems, bioinspired methods.
1554