Взломщики кодов
В Европе криптография находилась в состоянии застоя вплоть до наступления эпохи Возрождения. Применявшиеся шифрсистемы были предельно просты – фразы писались по вертикали или в обратном порядке, гласные заменялись точками, использовались иностранные алфавиты (например, древнееврейский и армянский), каждая буква открытого текста заменялась следовавшей за ней буквой. Кроме того, в течение всех этих лет криптология была поражена болезнью, которая сохранилась до более позднего времени, а именно – убежденностью многих людей в том, что криптография и криптоанализ являются разновидностями черной магии.
С первых дней своего существования криптография преследовала цель спрятать содержание важных разделов письменных документов, имевших отношение к таким сферам магии, как гадание и заклинание. В одной из рукописей о магии, датируемой III веком, используется шифр, чтобы скрыть важные части колдовских рецептов. Криптография часто была на службе магии во времена средневековья, и даже в эпоху Возрождения с помощью шифров алхимики засекречивали важные части формул получения философского камня.
Сходство между магией и криптографией подчеркивалось и другими факторами. Помимо криптографии, таинственные символы использовались в таких понятных лишь посвященным областях магических знаний, как астрология и алхимия, где, подобно знакам открытого текста, каждая планета и каждое химическое вещество имели специальный знак. Как и зашифрованные слова, заклинания и магические формулы, вроде «абракадабры», походили на чепуху, но в действительности были сильны скрытым значением.
Вдобавок многие люди, которые хвастались своей способностью разгадывать шифры, одновременно похвалялись и умением слышать человеческие голоса, будучи глубоко под землей, или даром телепатии. Естественно, что впоследствии эти две области стали обсуждаться вместе – поскольку, мол, они всегда развивались бок о бок.
Мнение о том, что криптоанализ является по своей природе черной магией, происходит и от поверхностного сходства между криптоанализом и гаданием. Извлечение смысла из шифртекста казалось точно таким же делом, что и получение знаний путем изучения расположения звезд и планет, длины линий и мест их пересечения на ладони, внутренностей овец, положения кофейного осадка в чашке. Видимость брала верх над реальностью. Простодушные усматривали магию даже в обычном процессе расшифрования. Другие, более искушенные, видели ее в криптоанализе, так как вскрытие чего-то глубоко спрятанного казалось им непостижимым и сверхъестественным.
Ни в одном из упомянутых выше случаев применения тайнописи нет подтверждения существованию криптоанализа как науки. Время от времени факт дешифрования текста имел место. Подтверждением тому служат истории с пророком Даниилом или с какими-нибудь египтянами, которые разгадали отдельные иероглифические надписи на могильных памятниках. Но научного криптоанализа не существовало ни в Египте с Индией, ни в Европе в период до 1400 г. Была только криптография.
Первыми открыли и описали методы криптоанализа арабы. Этот народ создал одну из самых развитых цивилизаций, которую когда-либо знала история. Арабская наука процветала. Медицина и математика у арабов стали самыми лучшими в мире. Распространились ремесла. Мощная созидательная энергия арабской культуры, которую ислам лишил живописи и скульптуры, дала плоды на ниве литературы. Получило широкое распространение составление словесных загадок, ребусов и каламбуров. Грамматика стала главным учебным предметом и включала в себя тайнопись.
Интерес к криптографии у арабов проявился рано. В 855 г. арабский ученый по имени Абу Бакр тамед бен-Али бен-Вахшия ан-Набати включил несколько классических шифралфавитов в свою «Книгу о большом стремлении человека разгадать загадки древней письменности». Один такой шифралфавит, называвшийся «дауди» (по имени израильского царя Давида), использовался для зашифрования трактатов по черной магии. Он был составлен из видоизмененных букв древнееврейского алфавита. Другой – сохранился до более позднего времени: в 1775 г. он был использован в письме шпиона, направленном регенту Алжира.
Познания арабов в области криптологии были подробно изложены в произведении Шехаба Калкашанди, которое представляет собой громадную 14-томную энциклопедию, написанную в 1412 г. для того, чтобы дать систематический обзор всех важных областей знания. Раздел под общим заголовком «Относительно сокрытия в буквах тайных сообщений» содержал две части: одна касалась символических действий и намеков, а другая была посвящена симпатическим чернилам и криптологии. Первый раз за всю историю шифров в энциклопедии приводился список как систем перестановки, так и систем замены. Более того, в пятом пункте списка впервые упоминался шифр, для которого была характерна более чем одна замена букв открытого текста. Однако каким бы замечательным и важным этот факт ни был, он затмевается первым в истории описанием криптоаналитического исследования шифртекста.
Его истоки, очевидно, следует искать в интенсивном и скрупулезном изучении Корана многочисленными школами арабских грамматиков. Наряду с другими исследованиями, они занимались подсчетом частоты встречаемости слов, пытаясь составить хронологию глав Корана, изучали фонетику слов, чтобы установить, являлись ли они подлинно арабскими или были заимствованы из других языков. Большую роль в обнаружении лингвистических закономерностей, приведших к возникновению криптоанализа у арабов, сыграло также развитие лексикографии. Ведь при составлении словаря автору фактически приходилось учитывать частоту встречаемости букв, а также то, какие буквы могут стоять рядом, а какие – никогда не встречаются по соседству.
Калкашанди начинает изложение криптоаналитических методов с главного: криптоаналитик должен знать язык, на котором написана криптограмма. Поскольку арабский язык, «самый благородный и самый прекрасный из всех языков», является «одним из наиболее распространенных», далее дается пространное описание его лингвистических характеристик. Приводятся перечни букв, которые никогда не стоят вместе в одном слове, и букв, которые редко появляются по соседству, а также буквенные комбинации, которые в словах встретить невозможно. Последним идет список букв в порядке «частоты их использования в арабском языке в свете результатов изучения священного Корана». Автор даже отмечает, что «в произведениях, не связанных с Кораном, частота использования может быть иной».
Калкашанди продолжает:
«Если вы хотите прочесть сообщение, которое вы получили в зашифрованном виде, то прежде всего начните подсчет букв, а затем сосчитайте, сколько раз повторяется каждый знак, и подведите итог в каждом отдельном случае. Если изобретатель шифра был очень внимателен и скрыл в сообщении все границы между словами, то первая задача, которая должна быть решена, заключается в нахождении знака, разделяющего слова. Это делается так: вы берете букву и работаете, исходя из предположения, что следующая буква является знаком, делящим слова. И таким образом вы изучаете все сообщение с учетом различных комбинаций букв, из которых могут быть составлены слова… Если получается, тогда все в порядке; если нет, то вы берете следующую по счету букву и т. д., пока вы не сможете установить знак раздела между словами. Затем нужно найти, какие буквы чаще всего встречаются в сообщении, и сравнить их с образцом частоты встречаемости букв, о котором упоминалось прежде. Когда вы увидите, что одна буква попадается чаще других в данном сообщении, вы предполагаете, что это буква „Алиф“. Затем вы предполагаете, что следующая по частоте встречаемости будет буквой „Лам“. Точность вашего предположения должна подтверждаться тем фактом, что в большинстве контекстов буква „Лам“ следует за буквой „Алиф“… Затем первые слова, которые вы попытаетесь разгадать в сообщении, должны состоять из двух букв. Это делается путем оценки наиболее вероятных комбинаций букв до тех пор, пока вы не убедитесь в том, что вы стоите на правильном пути. Тогда вы глядите на их знаки и выписываете их эквиваленты всякий раз, когда они попадаются в сообщении. Нужно применять точно такой же принцип по отношению к трехбуквенным словам этого сообщения, пока вы не убедитесь, что вы на что-то напали. Вы выписываете эквиваленты из всего сообщения. Этот же принцип применяется по отношению к словам, состоящим из четырех и пяти букв, причем метод работы прежний. Всякий раз, когда возникает какое-либо сомнение, нужно высказать два, три предположения или еще больше и выписать каждое из них, пока оно не подтвердится на основании другого слова».