Взломщики кодов
Шрифт:
Всякий, кто желает овладеть каким-то языком, предварительно должен узнать лингвистические правила, которые, собственно, и порождают присущую вожделенному языку избыточность. Знание этих правил позволяет находить и исправлять ошибки, появляющиеся при передаче сообщений. Если, например, в телеграмме на английском языке будет пропущена одна точка и буква «i» («..») в слове «individual» 132 превратится в «е» («.»), получатель телеграммы сообразит, что сделана ошибка, так как в английском языке слова «endividual» нет. Когда в языке нет избыточности, как в случае с телефонными номерами, где одна неправильно набранная цифра приводит к вызову другого абонента, люди сами привносят ее. Они повторяют номер, сообщая его кому-либо, а при передаче фамилий они обычно говорят: «б –
132
«Индивидуальный».
133
«Компания».
Этот процесс корректорской правки сродни криптоанализу, ибо при вскрытии шифров криптоаналитики также используют свое знание правил фонетики, грамматики, идиом, слов-функций и фонетических склонностей, которые в совокупности и придают языку избыточность. Способы, применяемые людьми в обыденной жизни для обнаружения опечаток, криптоаналитики употребляют для отыскания деформаций открытого текста. Разумеется, криптограмма несравненно более сложна и запутанна, но в ней заложена скрытая закономерность, какой нет в изолированной, случайной описке. Именно такое построение криптограммы помогает во многих ее «исправлениях», составляющих сущность криптоанализа, и подтверждает их правильность.
С чего начинается криптоанализ? При исправлении ошибки все избыточные элементы, используемые для правки, лежат в готовом виде на поверхности. В криптограмме все наоборот – они незаметны. Криптоаналитик начинает с того, что дробит эти элементы до тех пор, пока не получит их простейшей формы – буквенной. Затем он сравнивает буквы с избыточными элементами языка, приведенными к общему знаменателю. Иными словами, криптоаналитик производит подсчет частот букв криптограммы и соотносит полученные результаты с известными частотами букв предполагаемого языка, на котором записан открытый текст. Методику подсчета иногда приходится менять в зависимости от построения шифра. Для многоалфавитного шифра подсчет необходимо сделать для каждого алфавита, а если перехвачено кодированное сообщение, то простейшей формой избыточных элементов являются слова, и считать надо их.
Откуда у криптоаналитика уверенность в том, что частоты букв открытого текста данной криптограммы примерно совпадают с частотами эталонного открытого текста? Разве не может это соответствие нарушиться из-за различий в словарном запасе корреспондентов и в темах их переписки? Нет, не может, ибо избыточные элементы языка превалируют над остальными: 75-процентная избыточность английского языка подавляет влияние его «свободной» части, хотя не настолько, чтобы она не могла воспрепятствовать точному совпадению частот встречаемости букв в различных текстах.
Именно избыточные элементы в совокупности обеспечивают стабильность таблицы частот встречаемости для любого текста. Действительно, из-за постоянного употребления артикля «the» нередко случается, что буква «h» оказывается среди часто встречающихся букв английского языка. Склонность англичан к использованию альвеолярных согласных приводит к тому, что буквы «n», «t», «г», «s», «d», «1» имеют высокую или среднюю частоту встречаемости. А поскольку в Англии не жалуют буквы «р» и «k», они незаслуженно попали в разряд редко встречающихся. Однако такие избыточные элементы постоянны, заранее известны и поэтому дают стабильные данные для таблиц частот встречаемости. В немецком языке доминирующее влияние избыточности наглядно проявилось в весьма близких пропорциях буквы «е» при подсчетах частот встречаемости букв, произведенных Кёдингом и К°. И конечно же оно проявляется в повседневных успехах криптоаналитиков.
Сила ума Шеннона, его огромный вклад в теорию шифровального дела выразились в открытии избыточности как основы криптоанализа: «Вскрытие большинства шифров становится возможным только благодаря существованию избыточности в открытых текстах». Шеннон первым сумел объяснить постоянство частот встречаемости букв, а тем самым и такое зависящее от него явление, как криптоанализ, дав возможность глубоко понять процесс аналитического вскрытия шифров.
Понимание этого процесса позволяет сделать ряд выводов. Получается, что чем меньше избыточность, тем труднее аналитическим путем прочесть криптограмму. Это видно из двух примеров, иллюстрирующих две крайности в избыточности и приведенных самим Шенноном. Книга «Поминки по Финнегану» заканчивается словами:
«End here. Us then, Finn, again! Take. Bussoftlee, mememor mee! Till thousends thee. Lps. The keys to. Given! A way a lone a last a loved a long the».
Криптоаналитику прочтение такого открытого текста доставит значительно больше хлопот, чем получение отрывка из Нового Завета на «бэйсик инглиш»:
«And the disciples were full of wonder at his words. But Jesus said to them again: Children, how hard it is for those who put faith in wealth to come into the kingdom of God!» 134
134
«И изумились ученики словам Его. Но Иисус сказал им: Как трудно, дети мои, войти в царство Божье верующим в богатство!»
Криптограммы, помещаемые для занимательности в журналах для широкой публики, достигают поставленной цели – в максимальной степени затруднить их отгадывание – за счет того, что для них подбирают архаические и редкие слова, соединяемые в почти бессмысленные тексты. Избыточность в таких криптограммах сравнительно низкая. Вот образец открытого текста одной такой криптограммы:
«Tough cryptos contain traps snaring unwary solvers abnormal frequencies, consonantal combinations unthinkable, terminals freakish, quaint twisters like „myrrth“ 135 .
135
«В стойких криптограммах есть ловушки, в которые попадаются неосторожные люди, пытающиеся раскрыть их ненормальные частоты, немыслимые сочетания согласных, странные окончания, необычные головоломки вроде „мирра“.
Но даже в этом случае избыточные элементы берут верх. Хотя от некоторых из них отделываются, другие все-таки остаются. Они-то и дают искомое решение задачи. Правда, никогда не проверялся интересный вопрос о том, создают ли отмечаемые среди естественных языков различия в избыточности дополнительные трудности при вскрытии криптограмм аналитическими способами.
Проблема низкой избыточности особенно актуальна, когда криптоаналитик работает над вскрытием кода с перешифровкой. Для того чтобы снять перешифровку и выделить кодированный текст, требуется прочесть криптограмму, открытый текст которой состоит из кодовых обозначений и может выглядеть как бессмысленный набор букв «I X К D Y W U K J T P L K J E…». Здесь избыточность очень низка из-за более равномерного использования букв, большей свободы их сочетания, нивелировки частот путем употребления омофонов и т. д. Но при неизбежном наличии в переписке повторяющихся фраз давление избыточности языка, внутренне присущей коду, а также необходимость подбора структуры кодовых обозначений с учетом возможности их исправления в случае искажения при передаче – все это превращает скрытый кодированный текст в достаточно прочный материал, из которого криптоаналитик делает опору для всего здания успешного вскрытия кода с перешифровкой.
Из сказанного выше следует, что сокращение избыточности значительно затрудняет криптоанализ. Перед зашифрованием Шеннон рекомендует обязательно проделывать над открытым текстом операцию,
«которая убирает все излишества… То обстоятельство, что из текста можно без особого вреда убрать гласные буквы, дает простейший способ существенного усовершенствования почти любой шифрсистемы. Сначала уберите все гласные буквы или ту максимально большую часть сообщения, без которой не будет риска разночтения при восстановлении его слов, а затем зашифровывайте то, что осталось».