Федеральный портал "Инженерное образование"
щ электроннь- и журнал
ОБРАЗОВАНИЕ
Инженерное образование Ассоциация технических ВУЗов
#5 май 2006
Ред. совет Специальности Рецензентам Авторам English Koi-8 Win
Найти выделенное
Автоматизация криптоанализа многоконтурных шифров #5 май 2006
Е. А. Ерохин, канд. техн. наук, МИФИ,
А. С. Михайлов, ООО "Артикс-Лайн" (а1т1кИ@таП .ги)
Автоматизация криптоанализа многоконтурных шифров
Исследованы методы автоматизации криптоанализа многоконтурных шифров. Приведены алгоритмы определения периода шифров и методика оценки результатов их работы. Дано описание программного комплекса для проведения криптоанализа в интерактивном режиме.
Введение
В настоящее время в связи с широким использованием информационно-вычислительных сетей проявляется повышенный интерес к проблеме информационной безопасности. Сетевые технологии, обеспечивающие конфиденциальность и аутентификацию сообщений, используют достижения криптологии, которая все в большей степени становится главной наукой обеспечения безопасности информационного обмена в глобальных и корпоративных сетях. Обе ветви криптологии — криптография и криптоанализ — развиваются параллельно. Учитывая специфику криптологии, наилучшим способом познания ее методов, с нашей точки зрения, можно считать создание исследовательского программного комплекса, имитирующего среду криптообмена с широкими возможностями варьирования ее параметров: объема шифротекста, ключевой информации, знаний криптоаналитика, уровня сложности шифров и т. п. Предлагаемая в статье автоматизированная система криптоанализа рассматривается нами как система, обучающая основам гражданской криптографии, которая в настоящее время применяет симметричные и асимметричные алгоритмы.
Метод анализа
Много контурные системы относятся к группе периодических шифров замены и являются усложненным вариантом полиалфавитной подстановки. Отличие их от простой (или однопетлевой) полиалфавитной подстановки заключается в том, что при шифровании используется О наборов алфавитов (т. е. О ключевых слов), применяемых циклически [1] с
периодами и1, и2,..., и Каждый /-кзнак криптограммы получается из уравнения
12 &
e(i) = (m(i) + jt(l,i) mod u^ + £(2,i)niod u^ + ...
+ k(g,i')modu )mod L,
где в{() — /-й символ криптограммы; к — символ ключа; Ь — число букв в алфавите.
Общий период такой подстановки будет равен наименьшему общему кратному всех периодов и1, и2,., и Если это взаимно простые числа, то общий период криптограммы
будет равен их произведению.
Криптоанализ таких шифров делится на два этапа: нахождение периода криптограммы и частотный анализ текста по группам периода. Поясним смысл частотного анализа по группам периода. Все естественные языки имеют характерное частотное распределение букв и других знаков в текстах. При самой примитивной моноалфавитной замене устанавливается взаимно однозначное соответствие между символами открытого текста и криптограммы. Следовательно, при шифровании сохраняется вся статистика появления символов [2]. Криптоаналитик сопоставляет частотные графики распределения символов криптограммы и естественного языка и может легко дешифровать сообщение. Когда используется полиалфавитная подстановка, то картина частотного распределения не сохраняется, поскольку нарушается условие взаимно однозначного соответствия между символами открытого и закрытого текста. Однако если рассматривать частотное распределение не по всему тексту криптограммы, а по выборкам, соответствующим группам периода, то задача сводится к дешифрации нескольких обычных моноалфавитных подстановок.
Для определения периода шифра можно использовать два метода. Первый из них в самом общем виде был сформулирован в прошлом веке Ф. Казиски и состоит в следующем. В исходном тексте встречаются одинаковые сочетания (би-граммы, триграммы) символов. Если каждое такое сочетание переходит в текст криптограммы в результате сложения его с ключом в одной и той же фазе периода, то в тексте криптограммы появляются также одинаковые сочетания символов. Ф. Казиски предложил находить расстояния между такими сочетаниями и раскладывать их на множители. Тогда наиболее часто встречающийся множитель и будет кандидатом на период шифра. Второй способ нахождения периода основан на точном методе оценки суммы квадратов расстояний вероятности появления каждой буквы в тексте.
Использование точного метода определения периода шифра
Криптоаналитик вычисляет теоретическое значение оценки:
где N — длина сообщения; т — число используемых алфавитов (требуемый период шифра).
Коэффициенты А и В определяются следующим образом:
где и 81 — первая и последняя буквы используемого алфавита; Ь — число различных символов в алфавите языка (объем алфавита).
Далее криптоаналитик определяет практическое значение оценки для нужной криптограммы:
где_/(/) — общее число встречаемости 1-й буквы в зашифрованном тексте.
Сопоставляя теоретическое и практическое значения оценки, криптоаналитик находит вероятную длину периода шифра.
Для русского языка определим таблицу теоретической оценки для алфавита, включающего символ пробел, и без него. В первую очередь это связано с тем, что символ пробел имеет самую большую вероятность появления в текстах и, следовательно, наибольшим образом влияет на значение коэффициента А в формуле (1). Для сравнения:
А ¡А
с побелом без побелом
0.0684
= 1.2324.
0.0550
Статистический материал частотного распределения символов алфавита (табл. 1) был получен на основе анализа текстов русской художественной литературы объемом более 2 млн. символов. В этом случае в формуле (1) значения коэффициентов будут соответственно:
Для алфавита без символа пробел (табл. 2)
Таблица 1.
Период Минимальное Максимальное Среднее
криптограммы, значение значение значение
символы оценки оценки оценки
1 0,0684 0,0684 0,0684
2 0,0409 0,0498 0,0453
3 0,0364 0,0436 0,0400
4 0,0335 0,0405 0,0370
5 0,0327 0,0386 0,0356
10 0,0319 0,0350 0,0337
Таблица 2
Период Минимальное Максимальное Среднее
криптограммы, значение значение значение
символы оценки оценки оценки
I 0,0550 0,0550 0,0550
2 0,0383 0,0440 0,0411
3 0,0351 0,0402 0,0376
4 0,0340 0,0383 0,0361
5 0,0335 0,0371 0,0353
10 0,0328 0,0348 0,0338
Как видно из данных таблиц, теоретическое значение оценки нелинейно убывает с увеличением числа используемых при шифровании алфавитов. Причем, если период шифра больше нескольких десятков символов, то применять указанный метод фактически уже не имеет смысла, поскольку полученные данные не будут даже приблизительно указывать на значение истинного периода шифра. Поскольку в многопетлевых подстановках период шифра обычно составляет десятки и сотни символов, то нет возможности напрямую использовать результаты описанного выше метода. В этом случае актуальным становится применение эмпирического подхода, кратко сформулированного в разделе, описывающим метод криптоанализа.
Анализ эмпирического подхода для определения периода шифра
Метод, основанный на анализе расстояний между одинаковыми сочетаниями символов, имеет жесткие ограничения на свое применение. Его использование возможно только в том случае, если в криптограмме есть хотя бы одно сочетание символов, которое встречается не менее трех раз, или двух различных сочетаний, каждое из которых встречается всего два раза. Возможно, конечно, наличие только одного сочетания, которое встречается в тексте только два раза, но в этом случае криптоаналитик получит
последовательность из множителем этого числа, каждое из которых равновероятно может считаться периодом.
Большую опасность для криптоаналитика представляют так называемые "ложные тревоги" (ЛТ), т. е. сочетания, полностью идентичные сочетаниям, обусловленным преобразованием открытого текста с ключом в определенной фазе, но не являющиеся таковыми. При наличии каждой такой ЛТ в шифровке криптоаналитик получит в лучшем случае одно, а в худшем случае два ложных расстояния для разложения их на множители. В общем случае будем считать, что ЛТ встречается (рис. 1) между двумя истинными сочетаниями С1 и С;+ 1 и делит нужное для анализа расстояние Ь на два (Ьу и Ь^) ложных
отрезка. Конкретно при разложении на множители в зависимости от свойств ЛТ возможны три основные ситуации:
• Ьу и Ь^ — простые числа. В этом случае появление ЛТ фактически не скажется на
результатах определения периода шифра, криптоаналитик теряет одно из возможных расстояний Ь, но картина самых часто встречающихся множителей не пострадает.
• Ьу и ¿2 - числа, кратные истинному периоду шифра. В этом случае невольное
разложение их на множители только поможет работе криптоаналитика. Это достаточно редкий, но полезный исход появления ЛТ в тексте криптограммы.
• Ьу и Ь^ — числа, не кратные периоду и не простые. Разложение на множители таких
расстояний может сделать самым часто встречающимся число, не являющееся истинным периодом шифра.
Среди других возможных проблем, связанных с анализом появления истинных сочетаний в криптограмме, особенно интересны еще два случая.
1. Пусть Ьк — наименьшее расстояние между сочетаниями, обусловленными открытым текстом, но большее периода криптограммы. Тогда, если ЬЯ^ — это множество всех множителей, полученных при разложении числа Ь^, а ЬЯ{ — множество всех множителей некоторого расстояния Ь^ то при выполнении условия
где ] - [1,2,...г = ] - 1,г,г +1,..., Ы- 1, А7] и ] Ф к, а N общее число всех расстояний (т. е. все
множества множителей ЬЯ- всегда включают в себя множество ЬЯк), криптоаналитик
окажется в той же ситуации, что и при анализе текста шифровки, в которой имеется всего одно сочетание, встречающееся лишь два раза.
2. Предположим, что в каждом множестве ЬЯ- имеется подмножество элементов Ь£,
содержащее числа, меньшие значения периода. В этом случае криптоаналитик получит картину распределения множителей, каждый из которых имеет одинаковый вес (или частоту появления в разложении). При этом истинным периодом криптограммы является максимальный член упорядоченного подмножества Ь£.
Определение и анализ расстояний между одинаковыми сочетаниями в криптограмме можно автоматизировать, предоставляя криптоаналитику информацию для принятия окончательного решения. В зависимости от этого решения будут определены выборки шифровки для частотного анализа. Были разработаны два алгоритма определения периода поли алфавитной подстановки.
1ШЗ
а
ЧТО^ | I д-ц-.
Се
+1
и
12
Ж
Рис. 1. Появление "ложной тревоги'
Простой алгоритм для нахождения периода шифра.
1. Принимаем, что Ь.. - этоу-е расстояние между /-й парой сочетаний; / = [1, N1, ау = [1, Т-
ч I
- 1] где N — общее число различных сочетаний, Ti — число /-х сочетаний.
2. Раскладываем все Ь. . на множители.
3. Определяем вес каждого множителя, т. е. подсчитываем, сколько раз он встречается во всех разложениях.
4. Принимаем, что имеется всего Я различных множителей; Мк — значение к-го множителя, а Vк - вес к-го множителя, к = [1, Я].
5. Упорядоченное множество Мк по убыванию весов Vk (пусть имеется всего £ различных
весов) разбиваем на £ групп. В каждую группу включаем элементы с одинаковыми весами. Упорядочиваем по убыванию все элементы М где х = [1, £], а у = [1, QЛ и Qx
Л) у Л Л
— размер каждой весовой группы.
6. Заключаем, что элементы множества Мх ^ являются наиболее вероятными периодами
криптограммы.
Данный алгоритм позволяет определить период шифра на основе анализа сочетаний, каждое из которых встретилась всего два раза. Эта ситуация обычно наблюдается в криптограммах небольшого размера (до 300 символов). Слабым местом этого алгоритма является отсутствие всякой защиты от "ложных тревог". Однако этот недостаток можно в какой-то мере компенсировать следующей методикой анализа результатов работы алгоритма.
Методика нахождения "точки периода "для простого алгоритма. Предположим, что из-за появлния ЛТ период криптограммы не вошел в первую весовую группу, а находится в некоторой группе х. Представим графическое распределение предполагаемых периодов и их весов (рис. 2). По вертикали откладываем веса для каждой группы элементов, а по горизонтали — максимальный элемент каждой группы. Максимальный вес имеют числа, кратные периоду и одновременно кратные расстоянию, полученному в результате ЛТ. Так как ЛТ в тексте значительно меньше, чем истинных сочетаний, то веса псевдопериодов будут не намного отличаться один от другого и в конечном счете от веса самого периода (рис. 2). В то же время период шифра имеет вес, значительно превосходящий веса элементов, ему не кратных и появившихся в результате ЛТ либо больших по значению, чем он сам. Таким образом, можно найти "точку периода", т. е. первую большую разницу между весовыми группами элементов. При этом должно выполняться условие:
V! V;
V«, V,
У
*Н
*к Веся
1 ) 1 1 >
----- ■ \ < ■ [ 1 | J
-1 ! Л 1 г
■ 1 ] 1 и 1 1 1 1 1 1 * 1 ■ 1 ■
........1 : ■ 1 * 1 * 1 ____1_1- -к
М,
х-1.1
М,1 Мл+1,1 Периоды
Рис. 2. Определение точки периода
Очевидно, что в том случае, если ЛТ не влияли на анализ сочетаний криптограммы, то х = 1 и период будет первым элементом первой весовой группы.
Помехоустойчивый алгоритм нахождения периода. Если в криптограмме несколько различных сочетаний встречаются более двух раз, то можно использовать следующий помехоустойчивый алгоритм для нахождения периода шифра.
1. Принимаем, что всего анализируется Т различных сочетаний и Ь, ^ - это расстояние
между парой ,-го сочетания, где г = [1, N - 1] и N — общее число ,-х сочетаний в криптограмме.
2. Раскладываем каждое , на множители. Результат разложения сохраняем в матрице Я2(,, г), где ] = [1, £,] и — общее число множителей в разложении всех расстояний по
каждому ,-му сочетанию.
3. В каждой г-й строке матрицы Я1 выбираем все различные элементы и определяем их веса. Результат сохраняем в матрице Я2(,, г), где г = [1, С,] и С, - общее число различных
элементов в каждой ,-й строке.
4. В каждой ,-й строке матрицы Я2 выбираем элементы с максимальными весами и выполняем их сортировку в порядке убывания значений.
Результат сохраняем в матрице Я3(,, г), где г = [1, Ы{] и М, - общее число элементов в группе с максимальными весами в каждой ,-й строке.
5. Из каждой строки матрицы Я3 выбираем первый элемент и сохраняем полученное множество элементов в списке 7(1).
6. Определяем веса всех различных элементов в списке I а результат сохраняем в списке Р(И), где И = [1, К] и К — число всех различных элементов в списке I.
7. Делим элементы из списка Р на группы с одинаковыми весами. Из каждой группы выбираем максимальный по значению элемент. Полученную последовательность элементов сортируем в порядке убывания весов.
8. Получаем, что итоговая отсортированная последовательность будет представлять собой список наиболее вероятных периодов шифра, расположенных в порядке убывания этой вероятности.
Использование описанного алгоритма позволяет локализовать влияние ЛТ в пределах анализа всего одного из возможных сочетаний, не распространяя ее влияние на остальные. Вероятность появления ЛТ для каждого из анализируемых сочетаний очень мала, а надежность алгоритма обеспечивает очень хорошие результаты работы при появлении ЛТ более чем в 50% анализируемых сочетаний. Использование точного метода для криптоанализа полиалфавитных шифров позволяет определить порядок периода, а использование эмпирического подхода дает возможность найти сам период. При этом
часто можно отбросить все ошибочные результаты работы криптоаналитика, не удовлетворяющие порядку периода. Комплексное применение точного и эмпирического подходов обеспечивает нахождение периода в тех случаях, когда по отдельности это было бы затруднительно.
Автоматизированная система криптоанализа
На основе разработанных алгоритмов нахождения периода была создана автоматизированная система криптоанализа шифров замены. Основу системы составляет программный комплекс, состоящий из следующих модулей:
• интерактивной среды для криптоанализа шифров замены;
• конвертора текстовых файлов;
• многоконтурного полиалфавитного шифровальщика и дешифровалыцика;
• определителя индекса соответствия криптограммы;
• определителя составного многоконтурного полиалфавитного ключа;
• создателя тестовых вопросов к системе;
• статистического анализатора криптограммы.
Применяя основной программный модуль системы — интерактивную среду для криптоанализа шифров замены, криптоаналитик может провести полный криптоанализ шифротекста, начиная от определения его периода и заканчивая частотным анализом по группам периода. Процесс работы носит интерактивный характер, когда человек принимает решения и оценивает получаемые результаты, а компьютер проводит все вычислительные операции и предоставляет на выбор несколько возможных решений. Для определения периода шифров пол и алфавитной и многоконтурной подстановки применяется комплексное использование точного метода вычисления индекса соответствия криптограммы и эмпирического метода на основе разработанных алгоритмов в соответствии с подходом Ф. Казиски.
Процесс криптоанализа состоит из нескольких итераций выбора одного из возможных периодов шифра с последующим частотным анализом текста. Если в процессе определения взаимно однозначного соответствия между частотным распределением символов криптограммы и алфавитом естественного языка не получается осмысленного открытого текста, то криптоаналитик имеет возможность, во-первых, экспериментировать со статистическими распределениями символов, а во-вторых, изменять решение относительно предполагаемого периода шифра. Помимо этого существует и поддерживается возможность непосредственной атаки на составной ключ многоконтурного шифра. Криптоаналитик может непосредственно указывать символы предполагаемого ключа и оценивать результаты подобных экспериментов.
Ряд модулей, входящих в состав программного комплекса, позволяет достаточно быстро и легко подготавливать тестовые варианты криптограмм, которые возможно использовать для проведения практических и исследовательских занятий по соответствующим темам. Исходным материалом могут служить обычные тексты из художественной литературы на русском языке. Отрывки из этих текстов конвертируются в формат, пригодный для того, чтобы можно было осуществить шифрование текста. Как правило, в процессе конвертации удаляются лишние символы пробела и буквы не русского алфавита. После этого для получения примера зашифрованного текста используется специальный модуль, предназначенный для закрытия текста с использованием шифров замены, начиная от моноалфавитной подстановки и заканчивая многоконтурной заменой. Полученная в результате криптограмма может быть подключена к интерактивной среде криптоанализа и дешифрована.
Для успешного выполнения задания перед началом работы необходимо предварительно провести анализ текста криптограммы на предмет обнаружения в нем одинаковых сочетаний триграмм. Именно эти сочетания используются для работы алгоритмов определения периода шифра на основе эмпирического метода его нахождения. В составе программного комплекса существует специальный модуль, выполняющий
подобный разбор текста для выявления триграмм. Из информации, подготовленной для дешифрации криптограммы, выбираются несколько (порядка десяти) триграмм, которые будут задействованы для определения периода шифра. Как показывает практика, если период криптограммы соотносится с текстом в пропорции 1:8, то этого материала уже достаточно для работы эмпирического метода определения периода. Следует заметить, что при подготовке вариантов криптограмм с помощью модулей, входящих в состав программного комплекса, имеется возможность для повышения степени сложности последующего криптоанализа. Для этих целей, например, перед началом процесса шифрования следует удалить из исходного текста избыточные символы пробела. Также существенное влияние на сложность криптоанализа на стадии определения периода шифра оказывает выбор возможных сочетаний триграмм, встречающихся в тексте криптограммы.
В соответствии с ориентацией на учебные и исследовательские цели в программном комплексе была разработана возможность проведения контрольного тестирования пользователей по любой предлагаемой теме. Тему тестирования предлагает преподаватель. Им составляется список контрольных вопросов, и в специальном формате указываются возможные правильные и неправильные ответы для каждого вопроса. Список вопросов используется в качестве входных данных для модуля шифрования этих вопросов, и на выходе получается защищенный информационный файл. Этот файл с зашифрованными контрольными вопросами может применяться в интерактивном приложении — среде криптоанализа многоконтурных шифров. В нужный момент система сама расшифровывает необходимую информацию и проводит тестирование пользователя. По окончании
тестирования выдается общее число правильных и неправильных ответов.
* * *
Разработанные на основе эмпирического подхода алгоритмы определения периода многоконтурных шифров позволяют успешно проводить криптоанализ в тех случаях, когда использование точного метода на основе вычисления индекса соответствия криптограммы не дает нужного эффекта. Комплексное же применение точного и эмпирического подходов одновременно повышает эффективность и уменьшает время работы крипто-аналитика, а также расширяет спектр решаемых этими методами задач. Проведенные исследования легли в основу создания криптографического программного комплекса, который является свободно распространяемым программным продуктом и в настоящее время используется в учебных целях в качестве лабораторного практикума студентов, специализирующихся в области сетевых информационных технологий. Априорная ориентация разработки данного комплекса на учебный процесс подтвердилась успешной апробацией его применения для самостоятельного выполнения студентами криптоаналитических исследований как в специальных классах, так и при использовании персональных компьютеров в домашних условиях, что открывает перспективу заочного обучения.
Список литературы.
1. Хоффман Л. Дж. Современные методы защиты информации. М.: Советское радио, 1980.
2. Мельников В. В. Защита информации в компьютерных системах. М.: Финансы и статистика, 1997.
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ, № 7, 1999 ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ
Ключевые слова: Криптоанализ, шифр замены, многоконтурный шифр, период шифра, помехоустойчивое нахождение периода.
Публикации с ключевыми словами: Криптоанализ - шифр замены -многоконтурный шифр - период шифра - помехоустойчивое нахождение
периода
Публикации со словами: Криптоанализ - шифр замены -многоконтурный шифр - период шифра - помехоустойчивое нахождение периода
Написать комментарий >>
Журнал | Портал | Раздел Copyright © 2003 «Инженерное образование» E-mail: magazine@xware.ru | тел.: +7 (495) 263-68-63
Вход для редакторов