2. Шифрование как наука

Вадим Гребенников
По сравнению с европейской «цивилизацией» в криптологии арабского мира наблюдалось успешное развитие и значительные достижения. Тайнопись и её важность отмечала даже «Книга 1001-й ночи», памятник персидской литературы средних веков. В 855-м арабским писателем, алхимиком и египтологом Абу Бакр Ахмад ибн Али ан-Набати, известным как Ибн Вахшия, была написана книга «Kitab Shawq al-Mustaham», в которой описывались применяемые криптосистемы.

Это было первая арабская книга о криптологии с описанием некоторых древних письменностей, кодов алфавитной замены и расшифровки древнеегипетских надписей. Например, код «daudi», названный в честь еврейского правителя Давида, применялся для засекречивания «черномагических» текстов и содержал видоизменённые древнееврейские буквы иврита.

Самым ранним описанием способа применения частотного анализа встречаемости знаков для «вскрытия» кодов был труд учёного Абу Юсуф Якуб ибн Исхак ибн Сабах аль-Кинди, известного просто как аль-Кинди (800-879), написанный в 850-м. Он написал почти 300 трудов по теории математики, медицины, лингвистики, астрологии и музыки. Его знаменитая книга о расшифровке криптографического сообщения была обнаружена только в 1987-м в стамбульских архивах. Это был серьёзный труд по статистическому, фонетическому и синтаксическому анализу арабской письменности, а также созданию авторской криптоаналитической системы аль-Кинди.

Он писал, что одним из методов прочтения зашифрованного сообщения при известном языке его написания является следующий. С помощью другого незашифрованного текста, который должень иметь размер не менее страницы, надо посчитать количество появлений каждой буквы. Пусть самая встречаемая буква будет называться «1-я», буква, имеющая 2-е место по встречаемости, - «2-я», буква, имеющая 3-е место по встречаемости, - «3-я» и так далее до полного подсчёта всех символов незашифрованного текста.

Потом надо провести такое же сортирование знаков зашифрованного текста, который нам на-до прочесть. После определения самого встречаемого шифрознака надо заменить его на «1-ю» букву открытого сообщения, 2-й по встречаемости шифрознак заменить на «2-ю» букву, 3-й шифрознак на «3-ю» букву и так далее до полной замены всех шифрознаков алфавитными буквами.

Следущим арабским криптологом был Шихаб ад-Дин Абу-л-Аббас ибн Али ибн Ахмад аль-Калкашанди, известный просто как аль-Калкашанди (1355-1412), написавший в 1412-м 14 томов энциклопедии «Субх алаша фи синат алинша" (Светоч для слепого в чистописании). В главе о тайнописи автором были изложены применяемые в ту эпоху арабского мира системы кодирования. Она состояла из двух частей: в первой описывались символические действия и намёки, а в другой - симпатические чернила и криптология.

В труде излагалось 7 криптосистем, ранее разработанные Ибн ад-Дурайхимом (1312-1361), который первый применил для дешифровки метод буквенно-частотного анализа:
- замена одного знака на другой;
- запись слова в зеркальном отображении;
- замена букв цифрами по арабской системе;
- замена каждого знака первоначального сообщения двумя арабскими буквами, используемыми в качестве чисел, при этом их сумма должна равняться цифровому значению шифруемого знака;
- замена каждого знака на имя какого-то лица;
- применение словаря замен, описывающего лунные положения, название государств, ягод, растений и т. п.

Эта энциклопедия впервые содержала наиболее полный перечень криптосистем того времени: описывалась и перестановка, и замена. Пятый пункт перечня приводил код, который характеризовался больше, чем одной заменой символов. Впервые за всю криптоисторию книга содержала описание подробного лингвистического криптоанализа закодированного текста.

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

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

Потом надо определить знаки, больше всех встречающиеся в тексте, и сравнивать их с ранее сделанным расчётом частоты их появления. Когда будет видно, что какой-то знак встречается больше остальных в тексте, вы можете принять его за букву «А». Потом примите очередной знак по частоте появления за букву «Б». Верность таких предположений подтверждается тем, что в тексте, как правило, «Б» будет следовать за «А»...

Следующий этап - разгадка первых слов, содержащих два знака. Это делаете, оценивая самые вероятные буквенные комбинации до той поры, пока не убедитесь в правильности сво-его варианта. Потом смотрите на их знаки и записываете их значения по всему тексту. По такому же принципу надо проанализировать трёхбуквенные слова в тексте, пока опять не удостоверитесь в правильности хода своей мысли. Затем напишите их значение по всему тексту. Точно также надо проанализировать слова, состоящие из 4-х и 5-и знаков, причём способ действий остаётся прежним. При возникновении какого-либо сомнения надо продумать несколько вариантов решения и записать каждый, пока он не будет подтверждён.

Приведя эти чёткие разъяснения, учёный рассматривает примерный порядок декодирования какой-то криптограммы. Декодированный текст содержит две стихотворные строки, закодированные при помощи определённых знаков. В конце автор подчеркнул, что 8 знаков не пришлось использовать и это как раз те знаки, что записаны в конце составленного ранее частотного списка. Этот факт тем не менее может быть и случайным - никто от ошибки не застрахован. Такие рассуждения автора свидетельствуют о его большом опыте в криптоаналитической области. Калкашанди рассматривает также и другой пример криптологического анализа объёмной кодограммы. Этим рассмотрением криптологическая часть его труда была завершена.

Надо отдать арабам должное, они первые использовали стандартные слова и выражения для кодирования. Например, специалист по филологии арабского мира Халиль ибн Ахмад аль-Фарахиди (718-791), которому удалось прочитать зашифрованное послание, полученное от византийского императора, понял, что начало текста может быть всегда одинаковым и содержать типичную фразу того времени, например: «Во имя Аллаха». С учётом этого надо определить начальные знаки и затем постепенно рас-шифровать весь текст. На базе созданного им способа декодирования он издал «Книгу секретного языка».

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