ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА Математика. Механика. Информатика 2011 Вып. 4(8) ИНФОРМАТИКА. ИНФОРМАЦИОННЫЕ СИСТЕМЫ УДК 004.021 Криптоанализ тригонометрического шифра с помощью генетического алгоритма А. Ю. Городилов, А. А. Митраков Пермский государственный национальный исследовательский университет Россия, 614990, Пермь, ул. Букирева, 15 [email protected]; (342) 2-396-594 Рассматривается возможность применения генетического алгоритма к задаче криптоанализа тригонометрического шифра, разработанного В.П.Сизовым [1]. Описывается схема построения генетического алгоритма и анализ получаемых с его помощью результатов для произвольных текстов на естественном языке. Предложенная модель гарантирует получение достаточно хорошего результата за приемлемое время. Ключевые слова: генетический алгоритм; криптография; тригонометрический шифр. Введение Среди различных криптоатак выделяются два основных вида: 1) с известной парой шифр-текст – исходный текст; 2) только с известным шифр-текстом (при этом предполагается, что исходный текст содержит какие-либо известные статистические закономерности). Надежность современных систем шифрования определяется, как правило, с нескольких основных позиций: теоретическое исследование свойств криптосхемы, исследование получаемого шифр-текста на наличие в нем статистических закономерностей, стойкость шифра к различным видам криптоатак. На настоящее время существует ряд достаточно надежных криптографических протоколов, стойкость которых обоснована формально и проверена на практике. Однако технологии активно развиваются, вычислительные ресурсы совершенствуются. Это дает повод к разработке новых шифров, а следовательно, и к поиску новых способов криптоанализа как вновь создаваемых, так и уже существующих криптосхем. В данной статье рассматривается один из таких новых алгоритмов, предложенный В.П.Сизовым [1] (отличающийся "бесконечным" периодом гаммирования). Мы рассмотрим атаку второго вида. При этом будем предполагать, что исходный текст являлся осмысленным текстом на некотором естественном языке. Раз исходная последовательность символов представляет собой осмысленный текст на естественном языке и алгоритм шифрования заведомо известен (что является одним из основополагающих принципов криптографии), то задача сводится к исследованию шифр-текста и подбору ключа таким образом, чтобы результат дешифровки отражал поведение естественного языка. То есть мы приходим к задаче поиска решения, а для управления поиском возможно применение алгоритмов комбинаторной оптимизации. © А. Ю. Городилов, А. А. Митраков, 2011 75 А. Ю. Городилов, А. А. Митраков Ниже будет рассмотрен генетический алгоритм, направленный на подбор ключа, близкого к истинному решению (достаточно близкого, чтобы расшифрованный текст получился легко восстанавливаемым вручную). 1 y3 3.5 33 cos( 3 * 7) 2 25,59 7.40 (mod 33) Ж . В результате имеем "КХЖ". Расшифровка выполняется по формуле (2): 1 х1 11.5 33 cos( 1 * 7) 0.06 А 2 1 y 2 22.5 33 cos( 2 * 7) 2 34.21 1.21 (mod 33) Б 1 y 3 7.5 33 cos( 3 * 7) 2 36.59 3.59 (mod 33) Г . 1. Тригонометрический шифр Шифр, разработанный Владимиром Сизовым [1], классифицируется как поточный шифр простой подстановки с использованием закрытого симметричного ключа. В основе шифрования лежит использование непрерывных на всем числовом промежутке периодических функций. В простейшем варианте рассматривается y = cos(x) и соответствующее уравнение волны y = cos(x+n∙dx). Далее мы будем рассматривать именно эту схему. В данном случае шифрование выполняется по формуле y x N cos( z n dx ) Напомним, что криптостойкость обеспечивается только за счет секретного ключа – пары вещественных чисел z и dx. В работе В.П.Сизова доказывается, что при dx ≠ 2π/n, nZ алгоритм имеет бесконечный период гаммирования (т.е. последовательность "добавок" в виде значения косинуса никогда не повторится). По предположению автора, при больших объемах текста "вскрыть" шифр, не зная ключа, является невозможным. В работе хорошо исследованы получаемые шифр-тексты на предмет наличия в них статистических закономерностей. В этом плане у шифра действительно уязвимостей не наблюдается. Однако в данной статье мы рассмотрим другой аспект – возможную атаку на эту криптосхему на основе шифр-текста и знаний о наличии в исходном тексте определенных статистических закономерностей. (mod N ) , (1) y – новый символ, x – исходный символ, n – номер шифруемого символа (n = 1,2,3,…), z и dx – ключ (пара вещественных чисел), N – мощность алфавита. При шифровании/дешифровке число округляется до целого. Для расшифрования используется та же формула (1), выраженная через х: x y N cos( z n dx ) (mod N ) . (2) На выходе алгоритма шифрования мы получаем текст той же длины в том же алфавите, что и исходный текст. В качестве примера зашифруем текст "АБГ" в 33-буквенном русском алфавите. Положим ключом значения z = ½, dx = 7. Каждому символу алфавита ставится в соответствие полуинтервал: 2. Генетический алгоритм Наша криптосистема работает с текстами на естественном языке, а также использует вещественные числа. Поэтому перед разработкой генетического алгоритма требуется формализации задачи. Следует иметь в виду, что успех алгоритма во многом определяется как способом кодирования решений, так и качеством фитнесс-функции, позволяющей ранжировать их некоторым способом. В связи с этим еще раз зафиксируем некоторые ограничения: Для шифрования используется классическая схема: А 0..1 Б 1..2 В 2..3 В качестве х берем центр соответствующего полуинтервала и подставляем в формулу (1): 1 y1 0.5 33 cos( 1 * 7) 11.93 К 2 1 y 2 1.5 33 cos( 2 * 7) 2 10.21 22.79 (mod 33) Х . 76 Криптоанализ тригонометрического шифра с помощью генетического алгоритма y x N cos( z n dx ) Пусть z* и dx* – секретные параметры схемы и m – длина анализируемого текста. (mod N ) . Исходным является осмысленный текст на русском языке. Рассмотрим некоторые числа z и dx , такие, что 3. Представление особи z z* Для реализации генетического алгоритма требуется представить решение задачи в виде, удобном для вычислений, а также определить последовательность генетических операторов. Решением задачи служит пара действительных чисел z и dx. Первая проблема – отображение этого решения в виде одной хромосомы. Вторая, и более неприятная проблема, – пространство решений получается неограниченным (Х = R²). На начальном этапе следует изучить свойства криптосистемы с математической точки зрения. Согласно [1] вместо тригонометрических функций можно взять любые периодические непрерывные функции, определённые на всей числовой прямой. В нашем примере мы выбрали косинус, имеющий период 2π. Тогда рассмотрим следующие выражения: 1 1 , dx dx * . 2N 2 Nm Тогда z n dx z * n dx * 1 1 2N 2N 1 , n m. N В силу свойств функции cos, а именно, что ее производная всегда не превосходит 1: cos cos . Следовательно, cos z n dx cos z * n dx * 1 N. Значения шифр-текста (т.е. элементы yn) известны. Обозначим правильный символ исходного текста xn = yn-dn, где d n round ( N cos z * n dx * ) и "приближенный" символ x n y n d n , где d n round ( N cos z n dx ) . cos(( z 2 ) n dx) cos( z n dx) cos( 2 ) sin( z n dx) sin( 2 ) cos( z n dx), С учетом приведенного выше неравенства можно заключить, что d n d n 1 , а это, в свою очередь, означает, что символ xn отличается от правильного символа не более чем на 1. Таким образом, для получения текста, близкого к исходному, в качестве решения можно рассматривать не точку (пару секретных параметров), а некоторую ее окрестность. Из предложенных выше выкладок следует, что теоретически радиус такой окрестности должен cos( z n(dx 2 )) cos( z n dx) cos( 2n) sin( z n dx) sin( 2n) cos( z n dx). Второе выражение справедливо только для целого n, что, вообще говоря, выполняется. Таким образом, задача имеет не одно решение, а целое множество, каждое из которых отличается на 2π по любой координате. Это "уязвимое место" справедливо и для остальных модификаций криптосхемы – достаточно лишь знать период функции. Этот факт снижает пространство поиска с R² до прямоугольника находиться в пределах пределах 1 для параметра z и в 2N 1 для параметра dx. Для алфавита 2 Nm из N = 256 символов и текстов длиной порядка m = 500 символов эти величины имеют порядок 10-4 и 10-6 соответственно. Очевидно, что чем больше длина текста, тем меньше требуется радиус окрестности для корректной его дешифровки. Простые практические исследования показали, что начальный фрагмент текста уже 0 z 2 0 dx 2 . Окончательно проблема с конечностью пространства может быть решена следующим образом. 4 является читабельным в окрестности 10 77 А. Ю. Городилов, А. А. Митраков истинного решения (см. табл. 1). В 4. Фитнесс-функция 10 5 окрестности в тексте уже легко прослеживается смысл (200-символьные тексты расшифровываются полностью), а в Фитнесс-функция отображает множество хромосом (решений задачи) на множество действительных чисел. При этом наиболее приспособленные особи должны получить наибольшее (либо наименьшее, в зависимости от задачи) значение функции. Во многих задачах выбор функции приспособленности достаточно тривиален, однако в нашем примере мы работаем с осмысленными текстами на естественном языке, и нам требуется установить зависимость между числами {z, dx} и "осмысленностью" дешифруемых с их помощью строк. 6 10 окрестности полностью расшифровываются даже 400-символьные тексты. Итак, проблема с конечностью пространства решена. На прямоугольнике 0 dx 2 0 z 2 . построим равномерную сетку с шагом h = 105. Решениями будут служить точки в узлах сетки. Для их представления потребуется хранить 5 разрядов после запятой по каждой координате. Нетрудно посчитать, что количество элементов в пространстве решений составит 2 105 4 1011 . Однако решить даже такую задачу полным перебором за приемлемое время не представляется возможным. Для кодирования мы будем использовать двоичный алфавит {0,1}. Хромосома будет представлять собой конкатенацию двух битовых строк. В структуре особи будет храниться дробная часть чисел z и dx. Так как log 2 100 000 16.684 , то для хранения 5 десятичных разрядов потребуется 17 двоичных. Вывод – особь есть упорядоченная последовательность 34 бит, хранящая дробные части ключа (рис. 1). Напомним также, что возможны другие формы кодирования целых чисел, например двоичные коды Грея и Джонсона. 2 Рис. 1. Структура особи Ответ, казалось бы, прост – чем больше текст по смыслу похож на нормальную речь, тем лучше особь должна быть приспособлена, и тем выше должно быть значение фитнессфункции. Осталось только этому "смыслу" придать математическое описание. Существует несколько способов заставить машину "понимать" нормальный текст на естественном языке. Мы рассмотрим модель, предложенную Т.Якобсеном в 1995 г. [2]. Общая идея – собрать информацию о распределении частотностей биграмм во множестве реальных текстов на естественном языке. И далее полученные частотности использовать как эталон. 78 Криптоанализ тригонометрического шифра с помощью генетического алгоритма function Fitness ( s S N , x X ) R Рассмотрим следующую модель. Алфавит A есть множество мощности N, состоящее из прописных букв русского алфавита и некоторых знаков препинания, наиболее часто используемых в письменной речи. Под биграммой будем понимать упорядоченный набор из двух символов данного алфавита a a1 , a2 , a1 , a2 A . Множество B, содержащее всевозможные биграммы, будет состоять из N2 элементов. Определим функцию частотности g (a ) : B R , которая каждой биграмме ставит в соответствие число (это дискретная { c D ( s , x), c {a1 , a 2 , , a m } {a1 , a 2 , , a m 1 } (4) Fitness 1 m 1 g (ai ) m i 1 } На вход фитнесс-функции поступают строка шифр-текста и ключ {z, dx}, на выходе получаем число, равное средней частотности Таблица 2. Неадекватность фитнесс-функции на коротких текстах (слово "Цена" было Таблица 1. Зависимость результата дешифровки от окрестности решения (текст был зашифровано с ключом z = 2, dx = 3) зашифрован с ключом z=6, dx=8) Шифр-текст z dx Fitness Результат z dx Результат расшифрования 4?НЖ 2.00000 3.00000 ЦЕНА 5.05 5.9 7.9 ??ФК7М:117ВЧ А?А?2ЮСЫЗЧРЙ,:8 5.99 7.99 ЖАГЛРЁЛ!ХНКЛЯАНЛЧЛР!ЪЦ7ДЪК:Т 4?НЖ 4.27256 0.14479 ВЕНА 5.89 5.999 7.999 ЗАБЛТЕЙВШЙЙРЯ ПТУЁЧДТТАЕОНЗЛ 4?НЖ 3.87591 0.72168 ТОМ_ 6.44 5.9999 7.9999 ЗАБЛУДИВШИЙСЯ ПУУЕШЕСТВЕННИК 4?НЖ 6.08764 2.27589 КОРА 6.53 5.99999 7.99999 ЗАБЛУДИВШИЙСЯ ПУТЕШЕСТВЕННИК 4?НЖ ПУТЕШЕСТВЕННИК 3.19664 5.16387 КТО_ 6.93 6.00000 8.00000 ЗАБЛУДИВШИЙСЯ функция, заданная таблицей, которая показывает, насколько часто комбинация встречается в естественном языке) и функцию дешифрования: D( s , x ) : S N S N , (3) биграмм, содержащихся в дешифрованной строке. Понятно, что такой способ не идеален (см. табл. 2), но с ростом m в случае осмысленных текстов функция приспособленности даёт очень хорошие результаты: чем больше строка похожа на фрагмент нормальной речи, тем выше значение функции. Таблицы частотностей биграмм g (a ) выбираются в зависимости от конкретного естественного языка. x {z, dx} X где – ключ шифра, z,dx[0..2π); X – множество всех ключей; S N {s | s {a1 , a2 ,am }} – множество символьных строк длины m, состоящих из букв алфавита A. Функция дешифрования (3) преобразует входную строку шифр-текста в строку такой же длины с помощью ключа x по формуле (2). И теперь, наконец, конструктивно определяем фитнесс-функцию порядка m в виде последовательности трех шагов: дешифрование строки; представление ее в виде биграмм; нахождение средней частотности. 5. Генетические операторы Все операторы преобразуют одну популяцию фиксированного размера. В качестве операторов редукции/репродукции используется отбор усечением (особи сортируются по приспособленности, делятся на несколько групп, и далее для скрещивания случайно выбираются особи из первой и второй группы, в то время как последняя группа покидает популяцию). Для скрещивания применяется модификация соответствующего кроссинговера. В ходе скрещивания два родителя дают единственного потомка. Суть подхода заключается в том, что биты 79 А. Ю. Городилов, А. А. Митраков родителей с вероятностью 1/3 складываются по модулю 2 либо с такой же вероятностью наследуются от одного из них. Кроме того, на практике дополнительно возможен второй вариант скрещивания для особо удачных особей (принцип строительных блоков). В этом случае сохраняются несколько первых бит дробной части для каждого из чисел z и dx. Такой способ гарантирует, что потомок окажется в окрестности одного из своих родителей (например, в окрестности 10-3). Это используется лишь для улучшения возможно найденного решения. В качестве оператора мутации можно использовать инвертирование битов хромосомы с вероятностью 1/2. Напомним, что особи хранят только дробную часть чисел z и dx. Так как мы 0 z 2 , 0 dx 2 рассматриваем прямоугольник то целая часть каждого параметра варьируется от 0 до 6 и таким образом генетический алгоритм запускается 49 раз (по одному разу для каждой пары целых частей чисел z и dx). 7. Исследование на практике 7.1. Влияние параметров На практике пользователь уполномочен регулировать следующие параметры генетического алгоритма: n – размер популяции, M – количество поколений, m – порядок фитнесс-функции, p – процент скрещивания особей в популяции, λ – процент мутации особей в популяции. 6. Общая схема работы Приведем пошаговое описание работы алгоритма. 1. Формируется начальная популяция. Количество особей задается пользователем. 2. Выбирается число M – количество поколений. Параметр вновь задается пользователем. 3. Каждая особь расшифровывает шифртекст, и далее фитнесс-функция применяется либо ко всему тексту, либо к его части (порядок фитнесс-функции m задается пользователем). Таким образом, каждой особи ставится в соответствие число, показывающее ее приспособленность. 4. Происходит сортировка всей популяции. 5. Отсортированная популяция делится на 5 групп (их размер также задается пользователем). 6. Первые 2 группы (с лучшими хромосомами) допускаются к кроссоверу. 7. Четвертая группа (с особями низкой приспособленности) претерпевает мутацию. 8. Последняя группа (худшие особи) удаляется из популяции, а их место занимают потомки, полученные после скрещивания первых двух групп. В нашем случае каждые два родителя дают одного потомка, так что размер популяции не изменится. 9. Если количество поколений не превышает M, то эволюция продолжается (возвращаемся к шагу 3). Также по желанию пользователя возможно регулирование таких параметров, как вероятность мутации, вероятность унаследования генов конкретного родителя и т. д. К сожалению, теоретических рекомендаций к подбору параметров нет. Более того, экспериментальные значения также будут сильно варьироваться, ведь для их получения следует испытать огромную массу текстов на естественном языке различной формы и содержания. Реализованный по классической схеме генетический алгоритм даёт приемлемые результаты после 200 поколений эволюции 200 особей. Это означает, что придется перебрать порядка 4104 решений. При этом получаемый текст легко восстановить вручную. Для сравнения, полный перебор потребует дешифрования приблизительно 41011 решений (для сетки с шагом h = 10-5). Временнáя оценка сложности при достаточно больших параметрах может быть выражена полиномом 3-й степени: T 36 M O(mn) . 80 (5) Криптоанализ тригонометрического шифра с помощью генетического алгоритма Таким образом, решающий вклад в сложность алгоритма привносят размер популяции n, количество поколений M и размер реально дешифруемой строки (порядок фитнесс-функции m). Среднее время выполнения на современных ЭВМ при M = n = 200 и m = 60 составит порядка 1–2 мин. 1) К!БЯ61.СФУЫЙ.ГЦХП5ЗТ Б9ЬЕ8 А9ЩЦ1БМ ГПРЩЯ2! ПЖ,ВОЁ2! ФЦ0ЕБЛГ8ЧЛЛЕ07Г3ИЧ.5А?СХ 2) ЛШЙ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 символьных осмысленных текстов приближается к единице. Разумеется, алгоритм на выходе выдает не только строку, но и само значение ключа, поэтому для вскрытия текстов больших объемов потребуется лишь начальный фрагмент. Затем по найденному ключу расшифровывается весь текст, и дальнейшая доработка легко выполняется вручную. В дополнение стоит отметить, что кроме алгоритма, представленного выше, также была реализована модификация в форме распределённого генетического алгоритма по типу островной модели. В этом случае аналогичные по качеству результаты можно получить при куда более меньших параметрах (M = n = 100) за то же самое время (параметры предоставлены для количества узлов, равного двум). 7.2. Анализ результатов Рассмотрим работу генетического алгоритма на практике. Для примера возьмем два текста: 1) "МЫ НЕ ПОЛУЧИЛИ ЗЕМЛЮ В НАСЛЕДСТВО ОТ ПРЕДКОВ, МЫ ОДОЛЖИЛИ ЕЕ У НАШИХ ДЕТЕЙ" (поговорка американских индейцев). 2) "НЕВОЗМОЖНО УВИДЕТЬ БЕРЕГА НОВОГО СВЕТА, НЕ ПОТЕРЯВ ИЗ ВИДУ СТАРОГО" (Андре Жид). Тексты были зашифрованы параметрами z = 6, dx = 14. с Вот результат шифрования: Таблица 3. Результат работы генетического алгоритма M=n 25 50 75 100 25 50 75 100 Результат МЪ НЁ ПОЛУЦИЛИ ЗЁМЛЮ Г НАТЛДГСТВН ОУ9ОСЕДЙОГ,9ЛЬ.НГПМЖЗЛЙ ДЕ.Ф9МАЩИУ ЕЁСДК МЫ.НЕ РОКУЧИКИ.ЗЕМЛЯ В НАСЛЕДСТВО ОТ ПРЕДКОВ, МЫ ОГОЛЖИЛИ ЕЕ У НАШИФ ДЕСЕК МЫ.НЕ РОКУЧИКИ.ЗЕЛЛЯ В ОБСЛЕДССВО НТ ПРЕЕКОВ, МЫ ОДОЛЖИЛИ ЕЕ У НАШИФ ДЕТЕЙ МЫ НЕ ПОЛУЧИЛИ ЗЕМЛЮ В НАСЛЕДСТВО ОТ ПРЕДКОВ, МЫ ОДОЛЖИЛИ ЕЕ У НАШИХ ДЕТЕЙ ПААСЛЙЛИРО6ТЕКВГФЮ9:ЕТЕБ:,ОНАПДО9СВЁСА, НЕ ПОУЕПЯГ.ЗЖ.ДИВТ,ТР!СРВЛ НЕГОЗМПЖМО УБИЕЕТЬ ВЕРЕДА НОВОВО СВЕТА, НЕ ПОТЕРЯВ ИЗ ВИДУ СТАРОГО НЕГНЗМПЖМО УБИЕЕТЬ ВЕРЕДА НОВОВО СВЕТА, НЕ ПОТЕРЯВ ИЗ ВИДУ СТАРОГО НЕВОЗМОЖНО УВИДЕТЬ БЕРЕГА НОВОГО СВЕТА, НЕ ПОТЕРЯВ ИЗ ВИДУ СТАРОГО 81 Время с 5.91 16.97 36.51 60.17 5.26 15.37 31.93 54.46 А. Ю. Городилов, А. А. Митраков естественном языке, тем самым подтверждая правильность теоретических выводов. Заключение Генетические алгоритмы хорошо зарекомендовали себя для решения сложных комбинаторных задач оптимизации, в которых множество допустимых решений велико, но конечно. Задача криптоанализа тригонометрического шифра в первоначальном виде к таковым не относится, поэтому прямое применение к ее решению классических генетических алгоритмов представляется невозможным. В статье показано, что в решаемой задаче криптоанализа можно рассматривать не бесконечное множество допустимых решений, а лишь его конечное подмножество. При этом корректность такого перехода строго математически обоснована. Реализованный на практике эффективный генетический алгоритм успешно дешифрует осмысленные тексты на Список литературы 1. Сизов В.П. Криптографические алгоритмы на основе тригонометрических функций. URL: http://www.ruscrypto.ru/sources/conference/rc2005/ 2. Jakobsen T. A Fast Method for the Cryptanalysis of Substitution Ciphers, 1995. 3. Харин Ю.С., Берник В.И., Матвеев Г.Е. Математические и компьютерные основы криптологии: учеб. пособие. Минск: Новое знание, 2003. 4. Гладков Л.А., Курейчик В.В., Курейчик В.М. Генетические алгоритмы / под ред. В.М.Курейчика. М.: Физматлит, 2006. Cryptanalysis of trigonometric cipher with genetic algorithm A. Yu. Gorodilov, A. A. Mitrakov Perm State National Research University, Russia, 614990, Perm, Bukireva st., 15 [email protected]; (342) 2-396-594 In the article the possibility of applying genetic algorithms to cryptanalysis of trigonometric cipher designed by V.P. Sizov is considered. The way of designing the algorithm and an analysis of its results using any text in natural language are also proposed here. Suggested model guarantees a good result for reasonable time. Key words: genetic algorithms; cryptology; trigonometric cipher. 82