Криптоанализ тригонометрического шифра с помощью генетического алгоритма
Возможность применения генетического алгоритма к задаче криптоанализа тригонометрического шифра, разработанного В.П. Сизовым. Схема построения генетического алгоритма и анализ получаемых результатов для произвольных текстов на естественном языке.
Рубрика | Математика |
Вид | статья |
Язык | русский |
Дата добавления | 26.04.2019 |
Размер файла | 73,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на Allbest.ru
Рассматривается возможность применения генетического алгоритма к задаче криптоанализа тригонометрического шифра, разработанного В. П. Сизовым [1]. Описывается схема построения генетического алгоритма и анализ получаемых с его помощью результатов для произвольных текстов на естественном языке. Предложенная модель гарантирует получение достаточно хорошего результата за приемлемое время.
Ключевые слова: генетический алгоритм; криптография; тригонометрический шифр.
Введение
генетический алгоритм криптоанализ
Надежность современных систем шифрования определяется, как правило, с нескольких основных позиций: теоретическое исследование свойств криптосхемы, исследование получаемого шифр-текста на наличие в нем статистических закономерностей, стойкость шифра к различным видам криптоатак. На настоящее время существует ряд достаточно надежных криптографических протоколов, стойкость которых обоснована формально и проверена на практике.
Однако технологии активно развиваются, вычислительные ресурсы совершенствуются. Это дает повод к разработке новых шифров, а следовательно, и к поиску новых способов криптоанализа как вновь создаваемых, так и уже существующих криптосхем. В данной статье рассматривается один из таких новых алгоритмов, предложенный В. П. Сизовым [1] (отличающийся «бесконечным» периодом гаммирования).
Среди различных криптоатак выделяются два основных вида:
с известной парой шифр-текст - исходный текст;
только с известным шифр-текстом (при этом предполагается, что исходный текст содержит какие-либо известные статистические закономерности).
Мы рассмотрим атаку второго вида. При этом будем предполагать, что исходный текст являлся осмысленным текстом на некотором естественном языке.
Раз исходная последовательность символов представляет собой осмысленный текст на естественном языке и алгоритм шифрования заведомо известен (что является одним из основополагающих принципов криптографии), то задача сводится к исследованию шифр-текста и подбору ключа таким образом, чтобы результат дешифровки отражал поведение естественного языка. То есть мы приходим к задаче поиска решения, а для управления поиском возможно применение алгоритмов комбинаторной оптимизации.
Ниже будет рассмотрен генетический алгоритм, направленный на подбор ключа, близкого к истинному решению (достаточно близкого, чтобы расшифрованный текст получился легко восстанавливаемым вручную).
1. Тригонометрический шифр
Шифр, разработанный Владимиром Сизовым [1], классифицируется как поточный шифр простой подстановки с использованием закрытого симметричного ключа.
В основе шифрования лежит использование непрерывных на всем числовом промежутке периодических функций. В простейшем варианте рассматривается y = cos (x) и соответствующее уравнение волны y = cos (x+n•dx). Далее мы будем рассматривать именно эту схему. В данном случае шифрование выполняется по формуле
, (1)
y - новый символ, x - исходный символ, n - номер шифруемого символа (n = 1, 2, 3, …), z и dx - ключ (пара вещественных чисел), N - мощность алфавита.
При шифровании/дешифровке число округляется до целого. Для расшифрования используется та же формула (1), выраженная через х:
. (2)
На выходе алгоритма шифрования мы получаем текст той же длины в том же алфавите, что и исходный текст.
В качестве примера зашифруем текст «АБГ» в 33-буквенном русском алфавите. Положим ключом значения z = Ѕ, dx = 7. Каждому символу алфавита ставится в соответствие полуинтервал:
В качестве х берем центр соответствующего полуинтервала и подставляем в формулу (1) :
В результате имеем «КХЖ». Расшифровка выполняется по формуле (2) :
Напомним, что криптостойкость обеспечивается только за счет секретного ключа - пары вещественных чисел z и dx.
В работе В. П. Сизова доказывается, что при dx ? 2р/n, nZ алгоритм имеет бесконечный период гаммирования (т. е. последовательность «добавок» в виде значения косинуса никогда не повторится). По предположению автора, при больших объемах текста «вскрыть» шифр, не зная ключа, является невозможным.
В работе хорошо исследованы получаемые шифр-тексты на предмет наличия в них статистических закономерностей. В этом плане у шифра действительно уязвимостей не наблюдается. Однако в данной статье мы рассмотрим другой аспект - возможную атаку на эту криптосхему на основе шифр-текста и знаний о наличии в исходном тексте определенных статистических закономерностей.
Генетический алгоритм
Наша криптосистема работает с текстами на естественном языке, а также использует вещественные числа. Поэтому перед разработкой генетического алгоритма требуется формализации задачи.
Следует иметь в виду, что успех алгоритма во многом определяется как способом кодирования решений, так и качеством фитнесс-функции, позволяющей ранжировать их некоторым способом.
В связи с этим еще раз зафиксируем некоторые ограничения:
Для шифрования используется классическая схема:
.
Исходным является осмысленный текст на русском языке.
Представление особи
Для реализации генетического алгоритма требуется представить решение задачи в виде, удобном для вычислений, а также определить последовательность генетических операторов.
Решением задачи служит пара действительных чисел z и dx. Первая проблема - отображение этого решения в виде одной хромосомы. Вторая, и более неприятная проблема, - пространство решений получается неограниченным (Х = RІ).
На начальном этапе следует изучить свойства криптосистемы с математической точки зрения. Согласно [1] вместо тригонометрических функций можно взять любые периодические непрерывные функции, определённые на всей числовой прямой. В нашем примере мы выбрали косинус, имеющий период 2р. Тогда рассмотрим следующие выражения:
Второе выражение справедливо только для целого n, что, вообще говоря, выполняется. Таким образом, задача имеет не одно решение, а целое множество, каждое из которых отличается на 2р по любой координате. Это «уязвимое место» справедливо и для остальных модификаций криптосхемы - достаточно лишь знать период функции.
Этот факт снижает пространство поиска с RІ до прямоугольника
Окончательно проблема с конечностью пространства может быть решена следующим образом.
Пусть z* и dx* - секретные параметры схемы и m - длина анализируемого текста. Рассмотрим некоторые числа и , такие, что
.
Тогда
В силу свойств функции cos, а именно, что ее производная всегда не превосходит 1:
.
Следовательно,
.
Значения шифр-текста (т. е. элементы yn) известны. Обозначим правильный символ исходного текста xn = yn-dn, где
и «приближенный» символ , где
.
С учетом приведенного выше неравенства можно заключить, что , а это, в свою очередь, означает, что символ отличается от правильного символа не более чем на 1. Таким образом, для получения текста, близкого к исходному, в качестве решения можно рассматривать не точку (пару секретных параметров), а некоторую ее окрестность. Из предложенных выше выкладок следует, что теоретически радиус такой окрестности должен находиться в пределах для параметра z и в пределах для параметра dx. Для алфавита из N = 256 символов и текстов длиной порядка m = 500 символов эти величины имеют порядок 10-4 и 10-6 соответственно.
Очевидно, что чем больше длина текста, тем меньше требуется радиус окрестности для корректной его дешифровки.
Простые практические исследования показали, что начальный фрагмент текста уже является читабельным в окрестности истинного решения (см. табл. 1). В окрестности в тексте уже легко прослеживается смысл (200-символьные тексты расшифровываются полностью), а в окрестности полностью расшифровываются даже 400-символьные тексты.
Итак, проблема с конечностью пространства решена. На прямоугольнике
построим равномерную сетку с шагом h = 105. Решениями будут служить точки в узлах сетки. Для их представления потребуется хранить 5 разрядов после запятой по каждой координате. Нетрудно посчитать, что количество элементов в пространстве решений составит .
Однако решить даже такую задачу полным перебором за приемлемое время не представляется возможным.
Для кодирования мы будем использовать двоичный алфавит {0, 1}. Хромосома будет представлять собой конкатенацию двух битовых строк. В структуре особи будет храниться дробная часть чисел z и dx. Так как , то для хранения 5 десятичных разрядов потребуется 17 двоичных. Вывод - особь есть упорядоченная последовательность 34 бит, хранящая дробные части ключа (рис. 1).
Напомним также, что возможны другие формы кодирования целых чисел, например двоичные коды Грея и Джонсона.
Фитнесс-функция
Фитнесс-функция отображает множество хромосом (решений задачи) на множество действительных чисел. При этом наиболее приспособленные особи должны получить наибольшее (либо наименьшее, в зависимости от задачи) значение функции. Во многих задачах выбор функции приспособленности достаточно тривиален, однако в нашем примере мы работаем с осмысленными текстами на естественном языке, и нам требуется установить зависимость между числами {z, dx} и «осмысленностью» дешифруемых с их помощью строк.
Размещено на Allbest.ru
Ответ, казалось бы, прост - чем больше текст по смыслу похож на нормальную речь, тем лучше особь должна быть приспособлена, и тем выше должно быть значение фитнесс-функции.
Осталось только этому «смыслу» придать математическое описание. Существует несколько способов заставить машину «понимать» нормальный текст на естественном языке. Мы рассмотрим модель, предложенную Т. Якобсеном в 1995 г. [2]. Общая идея - собрать информацию о распределении частотностей биграмм во множестве реальных текстов на естественном языке. И далее полученные частотности использовать как эталон.
Рассмотрим следующую модель. Алфавит A есть множество мощности N, состоящее из прописных букв русского алфавита и некоторых знаков препинания, наиболее часто используемых в письменной речи. Под биграммой будем понимать упорядоченный набор из двух символов данного алфавита . Множество B, содержащее всевозможные биграммы, будет состоять из N2 элементов. Определим функцию частотности , которая каждой биграмме ставит в соответствие число (это дискретная функция, заданная таблицей, которая показывает, насколько часто комбинация встречается в естественном языке) и функцию дешифрования:
, (3)
где - ключ шифра, z, dx[0.. 2р) ; X - множество всех ключей; - множество символьных строк длины m, состоящих из букв алфавита A.
Функция дешифрования (3) преобразует входную строку шифр-текста в строку такой же длины с помощью ключа x по формуле (2).
И теперь, наконец, конструктивно определяем фитнесс-функцию порядка m в виде последовательности трех шагов: дешифрование строки; представление ее в виде биграмм; нахождение средней частотности.
(4)
На вход фитнесс-функции поступают строка шифр-текста и ключ {z, dx}, на выходе получаем число, равное средней частотности биграмм, содержащихся в дешифрованной строке. Понятно, что такой способ не идеален (см. табл. 2), но с ростом m в случае осмысленных текстов функция приспособленности даёт очень хорошие результаты: чем больше строка похожа на фрагмент нормальной речи, тем выше значение функции.
Таблицы частотностей биграмм выбираются в зависимости от конкретного естественного языка.
Генетические операторы
Все операторы преобразуют одну популяцию фиксированного размера.
В качестве операторов редукции/репродукции используется отбор усечением (особи сортируются по приспособленности, делятся на несколько групп, и далее для скрещивания случайно выбираются особи из первой и второй группы, в то время как последняя группа покидает популяцию).
Для скрещивания применяется модификация соответствующего кроссинговера. В ходе скрещивания два родителя дают единственного потомка. Суть подхода заключается в том, что биты родителей с вероятностью 1/3 складываются по модулю 2 либо с такой же вероятностью наследуются от одного из них.
Кроме того, на практике дополнительно возможен второй вариант скрещивания для особо удачных особей (принцип строительных блоков). В этом случае сохраняются несколько первых бит дробной части для каждого из чисел z и dx. Такой способ гарантирует, что потомок окажется в окрестности одного из своих родителей (например, в окрестности 10-3). Это используется лишь для улучшения возможно найденного решения.
В качестве оператора мутации можно использовать инвертирование битов хромосомы с вероятностью 1/2.
Общая схема работы
Приведем пошаговое описание работы алгоритма.
1. Формируется начальная популяция. Количество особей задается пользователем.
2. Выбирается число M - количество поколений. Параметр вновь задается пользователем.
3. Каждая особь расшифровывает шифр-текст, и далее фитнесс-функция применяется либо ко всему тексту, либо к его части (порядок фитнесс-функции m задается пользователем). Таким образом, каждой особи ставится в соответствие число, показывающее ее приспособленность.
4. Происходит сортировка всей популяции.
5. Отсортированная популяция делится на 5 групп (их размер также задается пользователем).
6. Первые 2 группы (с лучшими хромосомами) допускаются к кроссоверу.
7. Четвертая группа (с особями низкой приспособленности) претерпевает мутацию.
8. Последняя группа (худшие особи) удаляется из популяции, а их место занимают потомки, полученные после скрещивания первых двух групп. В нашем случае каждые два родителя дают одного потомка, так что размер популяции не изменится.
9. Если количество поколений не превышает M, то эволюция продолжается (возвращаемся к шагу 3).
Напомним, что особи хранят только дробную часть чисел z и dx. Так как мы рассматриваем прямоугольник , то целая часть каждого параметра варьируется от 0 до 6 и таким образом генетический алгоритм запускается 49 раз (по одному разу для каждой пары целых частей чисел z и dx).
7. Исследование на практике
7. 1. Влияние параметров
На практике пользователь уполномочен регулировать следующие параметры генетического алгоритма:
n - размер популяции,
M - количество поколений,
m - порядок фитнесс-функции,
p - процент скрещивания особей в популяции,
л - процент мутации особей в популяции.
Также по желанию пользователя возможно регулирование таких параметров, как вероятность мутации, вероятность унаследования генов конкретного родителя и т. д.
К сожалению, теоретических рекомендаций к подбору параметров нет. Более того, экспериментальные значения также будут сильно варьироваться, ведь для их получения следует испытать огромную массу текстов на естественном языке различной формы и содержания.
Реализованный по классической схеме генетический алгоритм даёт приемлемые результаты после 200 поколений эволюции 200 особей. Это означает, что придется перебрать порядка 4104 решений. При этом получаемый текст легко восстановить вручную.
Для сравнения, полный перебор потребует дешифрования приблизительно 41011 решений (для сетки с шагом h = 10-5).
Временнбя оценка сложности при достаточно больших параметрах может быть выражена полиномом 3-й степени:
. (5)
Таким образом, решающий вклад в сложность алгоритма привносят размер популяции n, количество поколений M и размер реально дешифруемой строки (порядок фитнесс-функции m).
Среднее время выполнения на современных ЭВМ при M = n = 200 и m = 60 составит порядка 1-2 мин.
В дополнение стоит отметить, что кроме алгоритма, представленного выше, также была реализована модификация в форме распределённого генетического алгоритма по типу островной модели. В этом случае аналогичные по качеству результаты можно получить при куда более меньших параметрах (M = n = 100) за то же самое время (параметры предоставлены для количества узлов, равного двум).
Анализ результатов
Рассмотрим работу генетического алгоритма на практике. Для примера возьмем два текста:
«Мы не получили землю в наследство от предков, мы одолжили ее у наших детей» (поговорка американских индейцев).
«Невозможно увидеть берега нового света, не потеряв из виду старого» (Андре Жид).
Тексты были зашифрованы с параметрами z = 6, dx = 14.
Вот результат шифрования:
К! БЯ61. СФУЫЙ. ГЦХП5ЗТ Б9ЬЕ8 А9ЩЦ1БМ ГПРЩЯ2! ПЖ, ВОЁ2! ФЦ0ЕБЛГ8ЧЛЛЕ07Г3ИЧ. 5А? СХ
ЛШЙ09Д ЙЦО? Ф1Г1ТЭД66 ЕП-ДСЕПВВЧУСН8С7В ЙЙЦЗ4. Ф ОЫЖ, Ч2ЙРЬ8. И! СЛШ52Ж8ЁЩ
Для генетического алгоритма использовались следующие параметры:
m = 60 - порядок фитнесс-функции
p = 20% - процент скрещивания особей в популяции
л = 10% - процент мутации особей в популяции
Параметры n (размер популяции) и M (количество поколений) будем изменять. Результаты работы алгоритма и затраченное время представлены в табл. 3.
Как видно в нашем случае, уже при M = n = 100 результат дешифровки полностью совпадает с оригиналом. Исследования показали, что начиная с M = n = 200, вероятность полной расшифровки 60-100 символьных осмысленных текстов приближается к единице.
Разумеется, алгоритм на выходе выдает не только строку, но и само значение ключа, поэтому для вскрытия текстов больших объемов потребуется лишь начальный фрагмент. Затем по найденному ключу расшифровывается весь текст, и дальнейшая доработка легко выполняется вручную.
Заключение
Генетические алгоритмы хорошо зарекомендовали себя для решения сложных комбинаторных задач оптимизации, в которых множество допустимых решений велико, но конечно. Задача криптоанализа тригономет-рического шифра в первоначальном виде к таковым не относится, поэтому прямое применение к ее решению классических генетических алгоритмов представляется невозможным.
В статье показано, что в решаемой задаче криптоанализа можно рассматривать не бесконечное множество допустимых решений, а лишь его конечное подмножество. При этом корректность такого перехода строго математически обоснована. Реализованный на практике эффективный генетический алгоритм успешно дешифрует осмысленные тексты на естественном языке, тем самым подтверждая правильность теоретических выводов.
Список литературы
Сизов В. П. Криптографические алгоритмы на основе тригонометрических функций. URL: http: //www. ruscrypto. ru/sources/conference/rc2005/
Jakobsen T. A Fast Method for the Cryptanalysis of Substitution Ciphers, 1995.
Харин Ю. С., Берник В. И., Матвеев Г. Е. Математические и компьютерные основы криптологии: учеб. пособие. Минск: Новое знание, 2003.
Гладков Л. А., Курейчик В. В., Курейчик В. М. Генетические алгоритмы / под ред. В. М. Курейчика. М. : Физматлит, 2006.
Размещено на Allbest.ru
...Подобные документы
Понятие генетического алгоритма и механизм минимизации функции многих переменных. Построение графика функции и ее оптимизация. Исследование зависимости решения от вида функции отбора родителей для кроссинговера и мутации потомков, анализ результатов.
контрольная работа [404,7 K], добавлен 04.05.2015Нахождение минимального пути от фиксированной до произвольной вершины графа с помощью алгоритма Дейкстры, рассмотрение основных принципов его работы. Описание блок-схемы алгоритма решения задачи. Проверка правильности работы разработанной программы.
курсовая работа [495,4 K], добавлен 19.09.2011Минимальное остовное дерево связного взвешенного графа и его нахождение с помощью алгоритмов. Описание алгоритма Краскала, возможность строить дерево одновременно для нескольких компонент связности. Пример работы алгоритма Краскала, код программы.
курсовая работа [192,5 K], добавлен 27.03.2011Остовное дерево связного неориентированного графа. Алгоритм создания остовного дерева, его нахождение. Сущность и главные особенности алгоритма Крускала. Порядок построения алгоритма Прима, вершина наименьшего веса. Промежуточная структура данных.
презентация [140,8 K], добавлен 16.09.2013Изучение основных вопросов теории графов и области ее применения на практике. Разработка алгоритма кластеризации по предельному расстоянию и построение минимального остовного дерева каждого кластера. Результаты тестирований работы данного алгоритма.
курсовая работа [362,9 K], добавлен 24.11.2010Теория случайных графов, модели сетей (графы Барабаши-Альберт, Эрдеша-Реньи, Уотса-Строгатса и др.) Разработка ускоренного алгоритма калибровки больших сетей по коэффициенту кластеризации на языке Java в среде Eclipse. Анализ экспериментальных данных.
дипломная работа [2,0 M], добавлен 19.11.2013Суть метода Зейделя. Расчет разностных схемам относительно неизвестной сеточной функции. Параллельное решение систем линейных алгебраических уравнений. Процедура построения параллельного алгоритма Зейделя. Оценка ускорения представленного алгоритма.
контрольная работа [98,1 K], добавлен 09.01.2011Методы решения задачи коммивояжера. Математическая модель задачи коммивояжера. Алгоритм Литтла для нахождения минимального гамильтонова контура для графа с n вершинами. Решение задачи коммивояжера с помощью алгоритма Крускала и "деревянного" алгоритма.
курсовая работа [118,7 K], добавлен 30.04.2011Теоретические основы метода отсечения, его назначение и функции в решении задач целочисленного линейного программирования. Сущность и практическая реализация первого и второго алгоритма Гомори. Применение алгоритма Дальтона, Ллевелина и Данцига.
курсовая работа [208,1 K], добавлен 12.10.2009Способы решения задач дискретной математики. Расчет кратчайшего пути между парами всех вершин в ориентированном и неориентированном графах с помощью использования алгоритма Флойда. Анализ задачи и методов ее решения. Разработка и характеристика программы.
курсовая работа [951,4 K], добавлен 22.01.2014Форма для ввода целевой функции и ограничений. Характеристика симплекс-метода. Процесс решения задачи линейного программирования. Математическое описание алгоритма симплекс-метода. Решение задачи ручным способом. Описание схемы алгоритма программы.
контрольная работа [66,3 K], добавлен 06.04.2012Обоснование алгоритма уточнения решения. Свойства последовательности стохастических матриц, которые гарантируют существование предельного конуса. Условия, при которых уточнённое по последовательности конусов оптимальное решение является единственным.
дипломная работа [117,9 K], добавлен 14.01.2011Понятие и содержание теории графов. Правила построения сетевых графиков и требования к ним. Сетевое планирование в условиях неопределенности. Теория принятия решений, используемые алгоритмы и основные принципы. Пример применения алгоритма Дейкстры.
курсовая работа [1,0 M], добавлен 26.09.2013Оптимальная настройка параметров "алгоритма отжига" при решении задачи коммивояжера. Влияние начальной температуры, числа поворотов при одной температуре и коэффициента N на результат. Сравнение и определение лучшей функции для расчётов задачи.
контрольная работа [329,9 K], добавлен 20.11.2011Условия разложения функций для тригонометрического ряда. Определение коэффициентов разложения с помощью ортогональности систем тригонометрических функций. Понятие периодического продолжения функции, заданной на отрезке. Ряд Фурье функции у=f(x).
презентация [30,4 K], добавлен 18.09.2013Численное решение уравнения методом Эйлера и Рунге-Кутта в Excel. Программа на языке Turbo Pascal. Блок-схема алгоритма. Метод Рунге-Кутта для дифференциального уравнения второго порядка. Модель типа "хищник-жертва" с учетом внутривидового взаимодействия.
курсовая работа [391,5 K], добавлен 01.03.2012Особенности решения задач Диофантовой "Арифметики", которые решаются с помощью алгебраических уравнений или системы алгебраических уравнений с целыми коэффициентами. Характеристика великой теоремы Ферма, анализ и методы приминения алгоритма Евклида.
реферат [36,8 K], добавлен 03.03.2010Особенности построения вектора А, удовлетворяющего заданному множеству условий и ограничений, если даны величины упорядоченных множеств. Характеристика алгоритма перебора вектора А и оценка его временной сложности. Анализ графического изображения вектора.
курсовая работа [164,1 K], добавлен 11.03.2010Система Ляпунова - случай одной степени свободы. Необходимые и достаточные условия существования периодических решений. Применение алгоритма Ляпунова для построения приближенного периодического решения задачи Коши для системы дифференциальных уравнений.
курсовая работа [243,8 K], добавлен 11.05.2012Построение диаграммы псевдографа, матрицы инцидентности и матрицы соседства вершин. Восстановление дерева по вектору с помощью алгоритма Прюфера. Построение таблицы истинности для функции и совершенной конъюнктивной и дизъюнктивной нормальной форм.
контрольная работа [181,9 K], добавлен 25.09.2013