За последние два дня Аня с Максимом обклеили записями весь номер. Поначалу спускались к хозяйке гостиницы за новыми блокнотами, затем добрались до канцелярского магазина – купили несколько пачек цветных листов, карандашей и скотча. Сверяясь с интернетом, разбирались в тонкостях частотного анализа, заодно экспериментировали с зашифрованным текстом. Сейчас их номер напоминал тайное убежище Джона Нэша из «Игр разума». Дима так и сказал. Он любил этот фильм.
– Всё просто. – Максим нехотя начал объяснение. Сомневался, что Дима ему поможет. – У каждой буквы алфавита – своя, всегда примерно одинаковая частота появления. Ну, по крайней мере, если говорить о действительно больших текстах.
– Ты поэтому не пробовал частотный анализ раньше, с письмом Сергея Владимировича, так?
– Да, письмо совсем короткое. А здесь двадцать три тысячи символов. Этого достаточно. И мы понимаем, что тут, скорее всего, обычный текст, а не… ну, скажем, какой-нибудь научный труд с обилием физических терминов. Хотя бог его знает… Так вот, все буквы повторяются примерно с одинаковой частотой. Самые распространённые в русском языке – О, Е, А, И, Н, С и так далее. Например, буква «А» от общего объёма букв занимает сразу восемь процентов. Точнее…
Максим заглянул в блокнот и выписал для Димы её показатель: «А – 7,9 %». Следом записал ещё несколько показателей: «Е – 8,4 %, И – 7,3 %, О – 10,9 %, Р – 4,7 %, Т – 6,3 %».
– Вон у нас отдельно висит общая частотность, – Максим указал на заполненную от руки таблицу, которую ещё позавчера приклеил прямиком на зеркало.
– То есть нужно посчитать частотность букв из шифровки и потом сопоставить её с частотностью нормального алфавита? – Дима поставил пустую тарелку на прикроватную тумбу и теперь никак не мог устроиться сразу на трёх подушках.
– Нет. Это было бы слишком легко, и мы бы тут не ломали голову. Просто сопоставить частотность букв и понять, что какая-нибудь «Г» из шифра – это, скорее всего, обыкновенная «О», потому что её частотность превышает десять процентов…
– …можно было бы в случае с Цезарем, то есть с одноалфавитным шифрованием, – догадался Дима.
– Верно. У нас же шифрование многоалфавитное. И ключ, длину которого мы не знаем. Тут начинаются танцы с бубном, – Максим неопределённо повёл рукой, показывая на десятки исписанных страниц. – Вначале предполагаем, что длина ключа – две буквы.
– Делим зашифрованный текст пополам и для каждой половины проводим отдельный частотный анализ! – Дима настойчиво всматривался в развешенные по стенам листки. Наконец не удержался и, несмотря на возражения сестры, встал с кровати. Подхватил трость и, прихрамывая, отправился изучать таблицы.
– Не просто
– В каком смысле?
– Смотри. Предположим, текст зашифрован «Изидой». Значит, по алфавиту буквы «З» зашифрована вторая буква открытого текста, затем седьмая, потом двенадцатая, семнадцатая и так далее. То есть, разбивая текст на фрагменты, нужно не просто разрéзать его на равные куски, нужно вычленить из него буквы в строгой последовательности. Если при «Изиде» мы вычленим каждую пятую букву, то получим бессмысленный текст, но он будет целиком принадлежать одному алфавиту, а значит…
– …будет подчиняться общему закону частотности, и самый повторяемый символ, скорее всего, окажется буквой «О».
– Всё верно.
– Что-то получилось?
– Ничего. Мы дошли до ключа в тридцать букв. То есть разбили общую шифровку на тридцать частей и проанализировали каждую из них по отдельности.
– Постой, а как вы делили текст?
– Я его перепечатал. В «Ворде» делить несложно. Муторно, конечно, но…
– Тут есть компьютер?
– Да, Дима, в гостинице есть общий компьютер, и нет, русская клавиатура к нему не прилагается, но я как-то справился. Ты действительно хочешь это обсудить?
Дима передёрнул плечами. Наконец отыскал на стене соответствующие листы и остановился возле них.
– Вообще, нужно учитывать ещё два момента, – уже спокойнее продолжил Максим. – Во-первых, помимо частотности букв есть частотность биграмм, то есть буквенных последовательностей. В русском чаще всего встречаются сочетания, – Максим заглянул в блокнот, – СТ, ЕН, НО, НИ, РА, ВО и так далее. На это тоже нужно обращать внимание.
– А во-вторых? – спросил Дима.
– Что? Да… Во-вторых, нужно учитывать, что у каждой буквы своя наиболее вероятная связь с другой буквой.
– Это как?
– Это уже дремучий лес, мы туда даже не совались.
– Там точно голову сломаешь, – подтвердила Аня.
– Если коротко, – Максим открыл соответствующую страницу в блокноте, – то в расшифровке помогает предпочтительная связь букв. Смотри, например буква «Н». Слева от неё чаще всего встречаются Д, Ь, Н, О, а справа – О, А, Е, Н. Причём в восьмидесяти двух процентах справа стоит именно гласная. Если взять букву «Э», то справа встречаются исключительно согласные, стопроцентная гарантия. Справа от А в девяноста процентах пишут согласную, слева – в девяносто семи. И так далее.
– Да уж… – Дима вернулся в кровать. – И что дальше?
– Дальше – биться головой об стенку, вот что.