Его авторству принадлежит «Трактат о дешифровке криптографических сообщений». Аль-Кинди был не первым арабом, решившим изучать шифрование: до него лабиринт кодов исследовал другой ученый по имени аль-Халиль. Но Абу Юсуф нырнул глубже, причем с восторгом. Он одним из первых заметил, что частое использование одинаковых букв может помочь в дешифровке сообщения. Например, открытый текст[11] «Карл воровал реалы» изобилует буквами К, А, Р и Л. И если мы зашифруем послание, то буква Р, например, превратится в У, но она все равно появится в сообщении целых три раза. Аль-Кинди предполагал, что можно составить таблицу наиболее часто встречающихся закодированных букв, и методом исключения попытаться сложить заново перемешанные слова. Он с легкостью переключался с арабской вязи на греческий и латинский алфавиты.
Арабский – невероятно сложный язык с богатым словарем, очень точным и детализированным в оттенках значений (в нем есть как минимум 14 синонимов слова «любовь»!). Возможно, именно поэтому навык шифрования аль-Кинди достиг таких высот. В начале Средневековья халифат вышел за границы Ближнего Востока, завоевав обширные территории в Африке и Передней Азии. Вместе с тем началась и экспансия арабской культуры. После завоевания Пиренейского полуострова в 718 г. с научными достижениями этой цивилизации познакомилась и Европа.
Культурное и научное развитие халифата во многом было обязано первооткрывателям вроде аль-Кинди, которые работали не покладая рук в прохладных помещениях Дома мудрости. Сам Абу Юсуф впоследствии стал наставником сына халифа, но вскоре правитель умер, сменилась династия, и он оказался никому не нужен. Противники изгнали его из Дома мудрости, и он остался ни с чем. Несмотря на количество написанных им научных трудов – помимо криптографии, он занимался исследованиями в области метеорологии, музыки и метафизики, – их больше никто не читал, а сам он был обречен затеряться в переулках Багдада.
Забыли его надолго, но отблески его открытий, подобно искрам от костра, не желающего угасать, по-прежнему были видны в Европе. Некоторые его труды были переведены на латынь, и теперь об аль-Кинди начали говорить как об одном из гигантов и основателей арабской науки и культуры. Позже в Стамбуле были найдены экземпляры его книг, и интерес к нему вырос еще сильнее.
Говоря конкретнее, исследования лингвистических и математических предпосылок дешифровки, на которые сподвиг аль-Кинди его ненасытный интеллектуальный аппетит, оказали немалое влияние на развитие криптографии. Его идеи находили отзвук в веках и распространялись по всем великим торговым путям мира. И любой современный фанат криптографии отдал бы все ради возможности сесть в машину времени и переместиться в Дом мудрости, когда там работал аль-Кинди.
9. ГОЛОВОЛОМНЫЙ МАГИЧЕСКИЙ КВАДРАТ
Изучать биографии правителей, конечно, интересно, но иногда жизни их приближенных оказываются куда более захватывающими. Особенно если речь идет о верных помощниках королей, которые не родились в аристократических семьях и вышли из грязи в князи. Именно таким человеком был Томас Кромвель, правая рука и незаменимый советник короля Англии Генриха VIII. Хотя и его биография показывает, что незаменимых людей не бывает… Кромвель родился в семье трактирщика в городке Патни, в юности оставил родной дом и отправился скитаться по континенту, где учил языки, заводил связи и набирался жизненного опыта, пока наконец не нашел себе место при дворе Генриха VIII. Там он ведал делами государственной важности и являл собой хрестоматийный пример социального взлета.
В то же время во Франции жил молодой человек, который, может быть, и не достиг головокружительных политических вершин, до которых добрался Томас Кромвель, но тоже оставил значительный след в истории благодаря своей работе с французскими герцогами и королем Генрихом III. Его звали Блез де Виженер. Он был выдающимся дипломатом, писателем и историком. Также увлекался криптографией. Именно ему принадлежит заслуга изобретения невероятно простой системы шифрования, которую, однако, не могли взломать на протяжении нескольких веков. Примечательно, что этот код появился как раз в тот тяжелый для Европы момент, когда религиозные конфликты в Священной Римской империи грозили вылиться в долгую и кровопролитную войну.
Блез де Виженер родился в деревне Сен-Пурсен-сюр-Сьюль в 1523 г., когда вся Европа переживала потрясения и последствия первого этапа Реформации. Его семья была довольно зажиточной, хотя и не принадлежала к высшему обществу. Заметив, что сын питает склонность к науке, мать де Виженера наняла ему наставников, которые учили мальчика греческому, древнееврейскому и итальянскому, а продолжать образование юный Блез отправился в Париж. Одним из его учителей был знаменитый поэт Жан Дора, который ратовал за реформу французского языка.
Неудивительно, что после такого образования де Виженер решил начать дипломатическую карьеру. В 1545 г. он сопровождает посла Франции на Вормсский рейхстаг (рейхстаг – это не то, что вы подумали, а высший законосовещательный орган Священной Римской империи, собиравшийся в моменты международной напряженности). В возрасте 24 лет де Виженер становится секретарем Франсуа I, герцога Неверского, а затем поступает на службу к королю Генриху III. Все эти посты требовали от де Виженера осмотрительности и соблюдения тайны переписки. Поэтому, когда его на два года командировали в Рим, он начал всерьез задумываться об изучении криптографии.
В Италии он встречался с криптографами и изучал известные в то время системы шифрования, такие как диск Альберти и усовершенствованный шифр Тритемия, которым охотно пользовался Джон Ди. Де Виженера увлекли работы Джованни Баттиста Беллазо, который считал, что для шифрования каждой буквы сообщения нужно использовать новый алфавит. Как и в шифре Цезаря, основным принципом этого метода служит сдвиг буквы, но Беллазо предлагал в несколько раз увеличить число вероятных замен путем использования разных символов для кодирования одной и той же буквы. Это называется полиалфавитное шифрование[12].
Но как можно было превратить такой громоздкий замысел в практичную, быструю и удобную, но в то же время не поддающуюся декодированию систему шифрования? Блез де Виженер нашел поистине революционный ответ на этот вопрос. Вдохновившись идеей Беллазо, он нарисовал большой квадрат. Это основа шифра с ключом[13]. Квадрат представлял собой таблицу 26 × 26. В самую первую ячейку вписывалась латинская буква A. За ней писали все остальные буквы алфавита: сначала горизонтально (первая строка), потом вертикально (первый столбец). Затем переходили к заполнению строк. Вторая строка начиналась с буквы B. Значит, за ней вписывали C, D, E и так далее, а последней буквой в этой строке была буква A. Далее в каждой строке начало алфавита сдвигалось на одну букву. Последняя строка начиналась с буквы Z и оканчивалась Y. Такую же таблицу можно сделать для любого алфавита, только надо изменять количество строк и столбцов. Например, для русского алфавита таблица должна иметь размер 33 × 33.
После составления таблицы можно было приступать к шифровке. Для этого сначала нужно придумать кодовое слово и сообщить о нем получателю. В нашем случае пусть таким словом будет Pope, а текст послания: Kill them now. Затем ключ сопоставляется с текстом следующим образом:
Kill them now
Pope pope pop
Далее для шифрования первого слова надо найти место пересечения первой буквы ключевого слова (в нашем случае это P) и первой буквы обычного слова (это K) и записать символ из этой ячейки. Потом ищем место пересечения O и I, P и L, E и L и т. д. В итоге должна получиться такая абракадабра: ZWAPIVTQCCL. Чтобы расшифровать ее, получателю придется проделать обратный процесс:
ZWAPIVTQCCL
POPEPOPEPOP
В ряду P ему надо было найти букву Z и посмотреть, к какому столбцу она принадлежит. Буква этого столбца ему и нужна. Потом в ряду O найти W, выписать букву этого столбика и т. д. Краткость ключевого слова делала этот шифр достаточно защищенным, а многообразие подходящих слов позволяло каждый раз использовать новый ключ.
В 1586 г. уже пожилой де Виженер написал трактат об этом шифре и представил его королю Генриху III. С тех пор этот код называют шифром Виженера. Он быстро завоевал репутацию неразгадываемого, так как без ключевого слова все попытки дешифровки были обречены на провал.
Европа стояла на пороге очередного кровопролития. Начавшаяся в 1618 г. Тридцатилетняя война унесла жизни миллионов людей и ввергла многие государства в пучину хаоса. Все стороны этого конфликта пользовались шифровальной системой французского дипломата. Но это было не единственное его достижение: за свою жизнь он написал более 20 книг на разные темы. Шифр Виженера был популярен не только среди европейцев: в 1860-х гг. им активно пользовались обе стороны Гражданской войны в США. Вместо таблиц у них были специальные медные диски, но принцип работы остался прежним.
Только во второй половине XIX в. математики заинтересовались этим шифром и стали искать способ его декодировать, не имея ключевого слова. В 1863 г. немецкий археолог и шифровальщик Фридрих Касиски представил миру свой способ взлома шифра Виженера, получивший название «метод Касиски». Сначала требуется рассчитать длину ключевого слова. После этого можно начинать частотный анализ других элементов кода, ища самые часто употребляемые буквы. Также всегда есть шанс, что в повторяющихся словах иногда будут встречаться одни и те же буквы. Это заметил американский криптограф Уильям Фридман, который через 60 лет после Касиски предложил уравнение, позволявшее рассчитать вероятность повторного появления случайных символов шифра. Это уравнение строилось на нескольких теориях, в том числе и на теории вероятностей.
Все это достойная дань уважения гению де Виженера (и тех, кто его вдохновлял). Он создал шифр, который не могли взломать на протяжении трех веков, а на понимание великолепных алгоритмов его работы и вовсе ушло почти 400 лет. И все это время бесчисленное множество военных и дипломатических сообщений было под надежной охраной благодаря рвению и интересу к криптографии молодого француза, жившего в XVI в.
11
Открытый текст – в криптографии исходный текст, который планируется закодировать. Либо уже расшифрованный текст.
12
Полиалфавитный шифр – совокупность шифров простой замены (как шифр Цезаря, например), которые используются для кодирования каждого символа открытого текста согласно определенной закономерности.
13
Шифр с автоключом – шифр, который включает открытый текст сообщения и ключ. Ключом обычно служит оговоренное заранее слово.