
ЧАСТОТНЫЙ АНАЛИЗ
Метод частотного анализа известен уже больше тысячи лет! Изобретателем его является знаменитый ученый арабского мира IX века (приготовься это прочитать): Абу Юсуф Якуб ибн-Исхак ибн-Ас-Сабах ибн-Умран ибн-Исмалил аль-Кинди. На самом деле, если знать, что приставка «абу» означает отец, «ибн» - сын, а «аль» - уроженец, то имя легко можно перечитать по-русски, а сокращенно ученого у нас принято называть Аль Кинди. Для рассказа о методе возьмем в качестве примера головоломку из X-Puzzle ][ #58 «Глупенькая секретарша», условие которой звучит так:
Глупенькая, но хорошенькая секретарша устраивалась на работу к одному эксцентричному директору. Директор решил над ней подшутить. На рабочем компьютере он поменял местами некоторые клавиши и попросил ее напечатать «на время» одно предложение. Т.к. секретарша не умела печатать вслепую, то напечатала предложение, не отрывая глаз от клавиатуры, и вот что у нее получилось:
Мъэшл эзё етиг сяхкиг рфунцащмкиг чаьок, ву дыпэй юэ буж.
Какое предложение продиктовал эксцентричный директор?
Подсказка: директор поменял местами всего десять пар клавиш.
Понятно, что буквы в шифротексте просто заменяются другими буквами. Если ты читал рассказ Конан Дойля «Пляшущие человечки», то наверняка помнишь, что каждый человечек в шифре соответствовал определенной букве алфавита – наша задача зашифрована аналогично, просто буква прячется не за изображением человечка, а за другой буквой. Именно для разгадывания таких шифров и предназначен частотный анализ! Вот суть метода непосредственно из уст самого Аль Кинди:
«Есть способ прочесть зашифрованное послание, написанное на известном тебе языке. Нужно найти нешифрованный текст на этом языке, размером на страницу или около того, пересчитать все буквы в нем и увидеть, сколько раз встречается каждая из букв. Букву, что встречается чаще всех, назови «первая», ту, что на втором месте по частоте - «вторая» и так далее, пока не назовешь все буквы алфавита. Затем возьми шифрованный текст и посчитай все его знаки. Также выбери тот, что встречается чаще других, «второй», «третий» и так далее. «Первый» знак служит для замены «первой» буквы, «второй» - для «второй» буквы и т.д.»
Приблизительные частоты распределения букв уже давно составлены практически для всех языков мира (см. таблицы распределения букв).
Таким образом, нам нужно только подсчитать частоты букв в нашем зашифрованном предложении и заменить эти буквы буквами с аналогичными или близкими частотами из таблицы. И все! Все, да не совсем, т.к. частоты точно можно определить только в больших шифротекстах, а у нас всего одно маленькое предложение. Но рискнуть, думаю, стоит :).
|