Исследование методов криптоанализа асимметричных шифров с использованием природных алгоритмов

№86-2,

технические науки

В данной статье рассмотрены природные методы криптоанализа асимметричного шифра RSA. Описаны математические модели природных алгоритмов криптоанализа и была разработана программная система, реализующая разработанные алгоритмы. Эффективность реализованных алгоритмов была экспериментально проверена.

Похожие материалы

Криптоанализ — это наука, изучающая методы взлома криптосистем, позволяющая оценить качество криптосистем. Криптоанализ современных асимметричных криптосистем является трудновыполнимой задачей затрачивающей катастрофически большое количество времени. Поэтому поиск новых и эффективных методов криптоанализа является актуальной задачей. Безопасность шифра зависит от выбора функции ловушки. Функция ловушка — это функция, которая позволяет эффективно вычислить значение, но не позволяет легко обратить вычисление без наличия числа подсказки. Пример функции реализован в алгоритме асимметричного шифрования RSA. Базовый принцип алгоритма RSA строится на том, что можно найти такие числа e, d и n, чтобы возведение шифруемого целого числа m в степень e · d по модулю n для всех целых чисел m были равны m:

(m^e)^d \equiv m\,(mod\,n)

Экспонента d является закрытым ключом и вычислить его крайне сложно, даже если n, e и m известны. Экспонента e и число n в паре являются открытым ключом. Открытый ключ n состоит из произведения 2-ух простых чисел p и q огромного размера, которые отличаются друг от друга на несколько знаков для усложнения криптоанализа. Если p и q огромные, то процесс разложения произведения p · q является трудновычислимой задачей. Числа p и q используются для вычисления закрытого ключа d. Разложение чисел можно осуществить с использованием метода «Квадратичного решета» или «Ро-алгоритма Полларда». Для факторизации числа n в настоящей работе предлагаются природные алгоритмы криптоанализа: алгоритм муравьиных колоний и алгоритм пчелиной колонии.

Алгоритм муравьиных колоний является вероятностным подходом к решению задач, подражающий поведению муравьёв. Алгоритм заключается в следующем: дан граф G = (E, V), m муравьёв. Муравьи размещаются на вершинах графа G и строят маршруты. Муравьи могут быть размещены случайным образом. Во время построения маршрута, муравьи откладывают феромон на пройденном пути. При выборе следующей вершины для перехода, учитывается уровень феромона, отложенного на переходе из текущей вершины в следующую. Вероятность перехода муравья на доступные ему вершины определяется следующей формулой:

P_{xy}^k = \frac{(\tau_{xy}^\alpha)(\eta_{xy}^\beta)}{\sum_{l \in J_k} {(\tau_{xl}^\alpha)(\eta_{xl}^\beta)}}

Где τxy — количество феромона, отложенного муравьём на ребре xy, ηxy — привлекательность маршрута, α, β — факторы, контролирующие влияние параметров τxy и ηxy, Jk — множество рёбер, доступные муравью k из вершины x. После построения маршрутов, значения феромонов на рёбрах обновляются по следующей формуле

\tau_{xy}^k = (1 — \rho) \tau_{xy}^k + \sum_{k}{\Delta \tau_{xy}^k}

Где τxyk — количество феромона на ребре xy муравьём k, ρ — коэффициент испарения, \Delta \tau_{xy}^k — количество феромона, отложенного муравьём на ребре xy во время текущей итерации. Количество отложенного феромона \Delta \tau_{xy}^k определяется по следующей формуле:

\Delta\tau_{xy}^k=\begin{cases}Q/L_k\\0\end{cases}

Где Lk — цена перехода по ребру xy, Q — константа. Если условия остановки алгоритма не выполнены, процедура повторяется. Условиями остановки могут быть ограничения по времени или достижение оптимального решения. Для нахождения простого делителя составного числа N, примем следующие параметры алгоритма:

L_k = \sum_{l \in S_k}{F(l)}

Где Sk — маршрут, построенный муравьём k, F(x) = (N / x) — (N / x) — функция, получающая дробную часть от деления на N. Q определяет уменьшение уровня феромона с увеличением длины маршрута, можно принять равным длине маршрута. Целью алгоритма найти маршрут, L_k \toward \min.

Алгоритм пчелиной колоний — стохастический бионический алгоритм оптимизации, подражающий поведению пчёл. В этом алгоритме выделяются несколько этапов: начальная разведка и локальная разведка. Во время начальной разведки выбираются C точек. Выбор точек может происходить случайным образом. Далее на выбранных точках происходит локальная разведка, где происходит поиск более оптимального решения в радиусе R на выбранных точках. При улучшении значения, значение целевой функции F и набор аргументов X сохраняются. Для разложения составного числа, целевой функцией примем:

F(x) = (N/x) — (N/x)

В качестве радиуса поиска примем значение R = c / 1.442685, где c — количество цифр в двоичной записи искомого числа.

Система реализована в 2 модуля: модуль реализующий алгоритм и графический интерфейс. Такой способ реализации удобен так как позволят легко отделить логику реализации графического интерфейса от алгоритма криптоанализа. При разработке использовались 2 языка программирования: C и C++. C был выбран за счёт популярности и простоты взаимодействия с низким уровнем программирования в результате чего можно просто оптимизировать программу на скорость. C++ выбран из-за зависимости от библиотеки Qt.

Система криптоанализа состоит из следующих компонент:

  • Криптографический модуль libsodium
  • Библиотека, реализующая алгебру с большими числами GMP
  • Графический интерфейс
Структурная схема системы криптоанализа
Рисунок 1. Структурная схема системы криптоанализа

Модуль криптоанализа реализует логику криптоанализа и взаимодействует с криптографическим модулем для проверки промежуточных результатов. Позволяет разложить составное число и тем самым восстанавовить закрытый ключ, отчитывается о проведённых действиях. Модуль реализован на языке программирования C и использует libsodium и GNU MP.

libsodium предоставляет ряд криптографических функций. Используется для генерации качественных случайных чисел. Библиотека написана на языке C и распространяется под лицензией BSD.

GNU MP реализует работу с большими числами и предоставляет ряд математических функций, включая функции теорий чисел. Библиотека написана с использованием языков C и C++ и распространяется под лицензиями LGPL и GPL.

Графический интерфейс используется для контроля модуля криптоанализа и отображения результатов и его работы. Позволяет настроить модуль криптоанализа, запустить процесс криптоанализа и получить результат криптоанализа. Данный модуль написан на C++ и использует библиотеку Qt5.

Особенности системы:

  • Использует оптимизированные алгоритмы (спасибо GNU MP)
  • Использует эвристические методы разложения составного числа
  • Производит криптоанализ в несколько потоков

Для проверки эффективности системы, был проведён ряд экспериментов: сравнение времени работы алгоритмов от размера ключа и время работы алгоритмов в зависимости от параметров. Каждый опыт был запущен 10 раз и в качестве результата взято среднее время исполнения, так как алгоритмы используют случайные числа для работы и время исполнения каждый раз может отличаться. Для первого эксперимента используются следующие параметры:

  • Для алгоритма муравьиных колоний:
    • Количество муравьёв: 4
    • Длина пути: 64
    • Коэффициент испарения феромона: 0.4
  • Для алгоритм пчелиной колонии:
    • Количество пчёл: 4
    • Количество точек для исследования: 4096

Результаты эксперимента приведены на графике:

Результаты сравнительного эксперимента
Рисунок 2. Результаты сравнительного эксперимента

По графику видно, что алгоритм пчелиной колонии справляется лучше с задачей криптоанализа, чем алгоритм муравьиных колоний. Экспериментально были проверены только ключи небольшого размера, не являющиеся криптостойкими. Это связано с ограничением вычислительных ресурсов устройства на котором проводились эксперименты. Далее проведём эксперимент, показывающий влияние увеличения количества потоков на скорость алгоритма. Для проведения эксперимента, были заданы следующие постоянные параметры:

  • Раскладываемое число: 664543753253
  • Диапазон поиска: [903, 815196]
  • Для алгоритма муравьиных колоний:
    • Количество муравьёв: 4
    • Длина пути: 64
    • Коэффициент испарения феромона: 0.4
  • Для алгоритма пчелиной колонии:
    • Количество пчёл: 4
    • Количество точек для исследования: 4096
Результаты сравнительного эксперимента с варьируемым параметром количества потоков
Рисунок 3. Результаты сравнительного эксперимента с варьируемым параметром количества потоков

По графику видно, что затраченное на факторизацию числа время линейно уменьшается с увеличением количества потоков. В алгоритме пчелиной колонии рассмотрим влияние количества исследуемых точек на скорость разложения числа. Для данного эксперимента были приняты следующие постоянные параметры:

  • Раскладываемое число: 664543753253
  • Диапазон поиска: [903, 815196]
  • Количество пчёл: 4
Результаты эксперимента с варьируемым параметром
Рисунок 4. Результаты эксперимента с варьируемым параметром

По графику видно, что увеличение количества исследуемых точек в среднем уменьшает время, затрачиваемое на нахождение простого делителя. В алгоритме муравьиных колоний влияние коэффициента испарения феромона. Для этого эксперимента были использованы следующие постоянные параметры:

  • Раскладываемое число: 664543753253
  • Диапазон поиска: [903, 815196]
  • Количество муравьёв: 4
  • Длина пути: 64
Результаты эксперимента с варьируемым параметром
Рисунок 5. Результаты эксперимента с варьируемым параметром

По графику видно, что увеличение коэффициента испарения приводит к увеличению времени на факторизацию. В этом алгоритме также рассмотрим влияние длины маршрута на скорость разложения. Были использованы следующие постоянные параметры:

  • Раскладываемое число: 664543753253
  • Диапазон поиска: [903, 815196]
  • Количество муравьёв: 4
  • Коэффициент испарения феромона: 0.4
Результаты эксперимента с варьируемым параметром
Рисунок 6. Результаты эксперимента с варьируемым параметром

По графику видно, что оптимальное значение длины маршрута является значение от 16 до 128. Маршруты короче или длиннее приводят к увеличенным временным затратам.

В данной работе были разработаны методики криптоанализа RSA, применяющие природные алгоритмы: муравьиных колоний и пчелиной колонии. Была разработана программная система, реализующая разработанные алгоритмы и эффективность алгоритмов была экспериментально проверена.

Список литературы

  1. Чернышев, Ю.О. Биоинспирированные алгоритмы решения задач криптоанализа / Ю.О. Чернышев, А.С. Сергеев, Е.О. Дубров // Надёжность и качество сложных систем. - 2014. - №2 – С. 27 – 33.
  2. Кажаров, А. Биоинспирированные алгоритмы / А. Кажаров, В. Курейчик - LAP Lambert Academic Publishing – 2013. - 80 с.
  3. Дианский, А.В. Исследование методов криптоанализа асимметричного шифрования с использованием генетических алгоритмов [Электронный ресурс] / А.В. Дианский, Д.Н. Лясин // Студенческий научный форум – 2018 : докл. X междунар. студенч. электрон. науч. конф. Направление «Технические науки» (секция «Проблемы моделирования, проектирования и разработки программных средств») / РАЕ. - Москва, 2018. - Режим доступа: http://www.scienceforum.ru/2018/