Пьеру де Ферма исполнилось сорок два года, он был среднего роста, с одутловатым и скорее невыразительным лицом. Жидкие волосы падали ему на плечи.
— Мсье Фронсак? — нерешительно осведомился он, встав со своего места и обогнув стол. — Вы друг моего друга Блеза Пасшаля? Как его здоровье?
— Мсье Паскаль обладает большим мужеством, — сказал Луи. — Он приехал ко мне — я живу рядом с Шантийи, — невзирая на все тяготы путешествия в такую пору, чтобы доставить ваш ответ. Благодарю вас, что вы согласились так быстро принять меня. Моего спутника зовут Гофреди. Я ему полностью доверяю.
— Садитесь же, господа. Крайне сожалею, что не пригласил вас на обед, но вот уже много лет мы делим трапезу с председателем палаты прошений, советником которого я состою. Он поручил мне вести весьма тягостный процесс. Обвиняется некий священник. Если суд признает его виновным, канонику уготовано сожжение на костре.[83]
Он указал им на кресла, а сам уселся на простой стул, прямо перед ними.
— Блез изложил мне вашу проблему очень кратко и, несомненно, частично, — вновь заговорил Ферма. — Признаюсь, не совсем понимаю, что вы ищете и почему решили обратиться ко мне. Вы, конечно, знаете, что я особенно интересуюсь геометрией, подобиями и дистанциями. Впрочем, несколько лет назад я издал вот это сочинение.
Он встал, чтобы взять с полки книгу, и протянул Луи, который открыл ее на титульной странице. Название было латинским: Ad locos pianos et solidos isagoge.[84]
— Совсем недавно я проникся настоящей страстью к максимальным и минимальным значениям. Мы даже повздорили с мсье Пасшалем по поводу соприкасающихся кривых! Не уверен, что смогу быть вам полезным, как я и писал Блезу.
— Речь идет о проблеме, связанной с теорией вероятностей и, точнее, с системой кодов, — ответил Луи. — Вы позволите мне объяснить?
— Конечно!
— Прежде чем начать, я вынужден предупредить вас, что речь идет о сугубо конфиденциальной просьбе. Она касается шифровки дипломатических депеш королевства. Все сказанное мною должно остаться строго между нами.
— Я понял это из письма моего друга. Вы же знаете, я чиновник на королевской службе. Ни одно слово из того, что вы скажете, не выйдет за пределы этой комнаты.
Луи начал со своего расследования в шифровальном бюро: рассказал о краже депеш и нападениях, жертвой которых стали он сам и его друг.
— Я говорю об этом, чтобы вы ясно понимали, мсье: существует партия могущественных врагов королевства, возможно связанных с Испанией, которые убивают без колебаний с целью раздобыть нужные им сведения. Именно по этой причине мсье Гофреди всюду сопровождает меня. Положение в шифровальной службе мсье Россиньоля таково: осталось только два шифровальщика, и я в них совсем не уверен. Не могу сказать также, какую часть реестров для кодирования предатели передали Испании. Минимальную, конечно, но, попав в руки талантливых логиков, она позволит им, быть может,
расшифровать все наши послания. Это было бы катастрофой, поскольку в Мюнстере начинаются переговоры о мире в Европе и разделении земель между воюющими сторонами. По моему мнению, решением стал бы новый код, который нельзя раскрыть на основе системы вероятностей. Я говорил об этом с отцом Мерсеном, он послал меня к мсье Паскалю, а тот посоветовал обратиться к вам.
— Теперь я понимаю лучше, — промолвил Ферма. — И полагаю, что сумею вам помочь. Я немного знаком с методами Антуана Россиньоля. Их недостаток состоит в том, что используются реестры из целых слов. Следовало бы отказаться от такого подхода и прибегнуть скорее к реестру из слогов, сохранив при этом несколько необходимых букв. Шифровка была бы тогда более быстрой, а реестры — не столь громоздкими. Достаточно ограничиться гласными в окружении согласных. Хотите убедиться на примере?
— Разумеется.
Ферма встал и вернулся к рабочему столу. Схватив листок бумаги и обмакнув перо в одну из стоявших перед ним чернильниц, он очень быстро что-то написал, а затем протянул листок Луи:
— Я представил здесь простейший реестр. К какому-нибудь числу добавляется слог…
Луи увидел следующие строки:
22en
46mi
124 les
125 ne
345 s
25le
65roi
17est
80mort
300 vi
290 ve
123 le
— Теперь дайте мне на секунду этот листок.
Луи протянул ему бумагу, Ферма быстро добавил одну строчку и вернул листок гостю.
— Я написал фразу из чисел, вы понимаете ее?
Луи изучил каждое число, сверяясь с реестром.
— Вы написали: 124 22 125 46 345. Дайте-ка я посмотрю… Это означает: les ennemis. Враги.
— Верно!
— Но этот код можно раскрыть, если наши противники узнают часть реестра. Не вижу разницы с методом Россиньоля.
— Вы правы! Итак, теперь нужно обезопасить нашу фразу. Мсье Фронсак, знаете ли вы, что такое скитал?
— Мсье Россиньоль объяснил мне этот способ, — сказал Луи, не понимая, куда клонит Ферма. — Необходима палка или свиток, но это не слишком практично…
— Согласен, но скитал, в сущности, всего лишь инструмент, облегчающий транспозицию. Есть и другие. Простейший представляет собой таблицу, решетку с поперечными и продольными линиями, в которую мы поместим наши слоги. Затем можно нарушить порядок расстановки, чтобы сделать текст совершенно непонятным. Это я называю взаимозаменой или транспозицией.[85] Сейчас вы убедитесь сами. — Взяв в руки листок, Ферма продолжил: — Зашифровав с помощью реестра текст и выбрав таблицу с установленным заранее числом колонок, мы записываем его таким образом, чтобы каждая цифра, означающая слог, находилась в одной ячейке. Затем посылаем текст колонками, и для расшифровки получатель должен произвести обратную операцию. Вот вам пример: возьмем фразу «Le roi est mort vive le roi»[86] и применим наш реестр. Таблица у нас будет из трех колонок, но количество их значения не имеет. Итак, мы получим…
Пьер де Ферма написал несколько слов, нарисовал таблицу, заполнил ячейки, а затем отдал листок Луи.
Выглядело все это следующим образом:
le (25)roi (65)est (17)
mort (80) vi (300) ve (290)
le (123) roi (65) 0
Конечное послание: 25 80 123 65 300 65 17 290 0
Пьер де Ферма ликующе продолжил, как только увидел, что Луи понял:
— Размеры таблицы могут меняться для каждой депеши и устанавливаться по предварительной договоренности. Например, исходя из определенной даты. Можно также усложнять кодификацию посредством ключевого слова, но с этим мсье Россиньоль справится и без моей помощи. Тем не менее, я приготовил бы для вас несколько способов транспозиции посредством квадрата, в которых используется один ключ для создания нового алфавита внутри самой таблицы. Можно также использовать позиции в строчках и колонки букв в тексте для шифрования. Таким способом каждая буква текста будет представлена двумя шифрами, записанными вертикально. Эти две кодировки затем подвергаются транспозиции, замещая друг друга на одной строчке. Это немного сложновато, признаю, зато весьма эффективно. Хотите, я запишу для вас все?
— Буду вам очень признателен. Пока мне удается следить за вашей мыслью, и, думаю, я смогу объяснить все это мсье Россиньолю, но, конечно же, предпочтительнее дать ему письменное описание.
— Я занесу его вечером во дворец Кастельбажак. Вас это устроит?
— Было бы прекрасно, тогда мы сможем выехать в Париж завтра… — Помолчав, Луи продолжил: — Мсье Паскаль желает получить от вас еще одно…
— Знаю! Мое решение теоремы Диофанта?
— Куб никогда не может быть суммой двух кубов, четвертая степень никогда не может быть суммой двух четвертых степеней, и в целом ни одна степень, превосходящая вторую, не может быть суммой двух аналогичных степеней, — с улыбкой процитировал Луи.
83
Этого священника действительно сожгли.
84
«Введение в изучение плоских и объемных тел» (лат.).
85
Подобный способ кодирования будут применять немцы во время Первой мировой войны. Наиболее известный шифр на основе этого метода — ADFGFX, названный так, поскольку лишь эти шесть букв фигурировали в криптограммах. Шифр раскрыла одна француженка.
86
«Король умер, да здравствует король» (франц.).