Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #62, ФЕВРАЛЬ 2004 г.

Криптоанализ — наука решения головоломок

Иван Скляров

Xakep, номер #062, стр. 062-072-2


Хотя и несложно произвести расчет для одного предложения вручную, я все равно попробовал поискать для этого в интернете специализированную программу и, как и ожидалось, нашел, причем на русском языке – программа с говорящим названием Freq 2.0. Программу можно взять на диске к журналу или поискать в файловых интернет-архивах, типа www.download.ru. В самой программе указан сайт artelvyv.chat.ru, но на момент написания статьи он был в нерабочем состоянии. Несмотря на небольшую глючность Freq 2.0, работу частотного анализа далее мы рассмотрим в нем. Запустим Freq и откроем в нем наше зашифрованное предложение (шифротекст должен быть предварительно сохранен в текстовый файл), см. рисунок 1.

Далее перейдем на вкладку «Подсчет» и рассчитаем сначала все частоты появления букв (не по эталону), см. рисунок 2.

Как видишь, определилось всего несколько разных частот, что не есть хорошо. Если бы у нас был большой текст, частоты распределились бы более точно для каждой буквы шифротекста. Но попробуем провести анализ с тем, что есть. Для этого во вкладке «Эталон» откроем так называемый эталон для русского теста (RusEtln.txt), см. рисунок 3.

В папке с программой присутствуют два текстовых файла RusEtln.txt и LatEtln.txt. В них хранятся последовательности букв в убывающем порядке согласно распределениям эталонных частот (см. таблицы распределения букв). Снова перейдем на вкладку «Подсчет» и произведем уже подсчет по эталону. Теперь каждая буква из нашего шифротекста соответствует определенной эталонной букве, см. рисунок 4.

Откроем вкладку «Новый файл» и нажмем кнопку «В окно», чтобы предложение отобразилось в нижнем окне с подставленными эталонными буквами, см. рисунок 5.

Правда, понять что-либо все равно невозможно, но это, как я уже говорил, из-за того, что у нас очень маленькое предложение. Если бы это был большой текст, то наверняка уже можно было бы прочитать ответ. Но не будем отчаиваться. Если ты внимательно посмотришь на таблицы распределения букв, то заметишь, что многие буквы имеют одинаковую частоту. Следовательно, в эталоне нашей программы мы можем смело поменять их местами. Так, перейдем на вкладку «Эталон» и поменяем местами буквы «а» и «и» - у них одинаковая частота 0,062. Далее нужно снова вернуться на вкладку «Подсчет» и сделать подсчет по эталону. Теперь, если перейти на вкладку «Новый файл» и нажать «В окно», мы получим следующее предложение:

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

Смотри, последнее слово в предложении приобрело осмысленные очертания. Это может быть случайностью, а может быть, и нет. Попробуем сделать еще какие-нибудь изменения в эталоне. Поменяем теперь буквы не с одинаковыми частотами, а с близкими, т.е. рядом стоящие в эталоне. Нам никто не запрещает это сделать, т.к. эталонные частоты это лишь приблизительные частоты, и для разных типов текста они могут различаться (проза, сленг, технический язык). Поменяем местами, к примеру, первые буквы в эталоне: «о» и «е». Повторим операции, проделанные выше, и получим следующее предложение:

Назад на стр. 062-072-1  Содержание  Вперед на стр. 062-072-3