— Алиса? С тобой все в порядке?
Мои волосы мгновенно встают дыбом.
— Да, еще бы. А чего?
— Да так, ничего. Ну, тогда, значит, через минуту спускайся?
— О'кей.
Джасмин напоминает очень взрослую версию Рокси. Как я поняла, в последнее время она путешествовала — вот почему старики так долго ее не видели. Она побывала в Индии, Африке и даже в Китае! Никто толком не знает, что происходит в Китае, поэтому битую вечность она рассказывает старикам о том, что видела. Покончив вместе с нами с главным блюдом, Джасмин закуривает длинную черную сигарету и откидывается на стуле с таким видом, будто у нее вообще нет никаких проблем. Почему я не могу так расслабиться? Потом дедушка подает на стол свой знаменитый домашний торт «Черный лес», и в сцене этой есть что-то настолько уютное и мирное, что я чуть не реву. Я хочу разреветься и сказать им всем, что больше никогда не хочу ходить в школу.
— Ну, Питер, так как там, в мире криптографии? — спрашивает Джасмин.
— Ты, конечно, хотела сказать «криптоанализа». — Он смеется.
Она тоже.
— Никогда не была сильна в терминологии. Тогда декодирования — этот термин попроще. Ну, и как идут дела?
— Вполне себе. Я… ну, Алиса и я… у нас сейчас захватывающий проект. Покажу после ужина. Называется «Манускрипт Войнича»… — Его голос становится глуше. Каждый синапс в моей голове поет: «Алиса и я, Алиса и я!..» Дедушка представил это как наш проект! Я так горда, что сейчас лопну. Когда дедушкин голос вновь становится отчетливым, он уже собирается говорить о чем-то ином.
— Однако, раз уж ты спросила про криптографию, — говорит он Джасмин (искорки смеха все еще пляшут в его глазах), — я чувствую, придется рассказать тебе про последние достижения.
— Так что это значит? Не «де-кодирование», а «за-кодирование»? — Она улыбается. — Корень «графия» происходит от греческого глагола «graphein», писать.
— Верно. Ты слышала что-нибудь о «шифровании с открытым ключом» или «RSA-шифрах»?
Джасмин снова смеется.
— Питер, разве я когда-нибудь слышала о чем-нибудь научном, прежде чем ты или Бет мне об этом рассказывали? Давай, выкладывай. Судя по названию, это чертовски сложно.
Дедушка начинает как бы с введения в тему, объясняет проблемы криптографии и говорит, что история показала: даже предположительно неразрешимые шифры рано или поздно всегда поддаются криптоанализу. Рассказывает, как Чарлз Бэббидж сто лет назад взломал шифр Вигенера, а оперативники в Блэтчли-Парке победили «Энигму». В результате все трое принимаются по-всякому комментировать войну, а бабушка рассказывает что-то про Тьюринга и Блэтчли-Парк, пока мы приканчиваем торт.
— Таким образом, — говорит дедушка, встав, чтобы поставить кофе на плитку. — Криптографам был брошен вызов: придумать нечто поистине неразрешимое. После поражения «Энигмы» счет был однозначно не в их пользу. А теперь, Алиса, скажи Джасмин, какова величайшая проблема криптографии.
Это я-то? Нервно сглатываю. Какова величайшая проблема криптографии? Велю мозгу дать задний ход и пытаюсь вспомнить все беседы, которые мы имели по этому поводу.
— Распространение ключа? — неуверенно говорю я.
— Видите? Я же говорил, она гений, — ликует дедушка. — Совершенно верно. Распространение ключа. Большинство шифров кодируются и декодируются одним и тем же ключом — часто это случайный набор цифр и букв или какое-то слово. Я мог бы решить общаться с тобой, используя Вигенеров шифр или даже моноалфавитный. Мы оба знали бы, что слово-ключ — скажем, «лапсанг». Нет проблем. Я использую слово-ключ, чтобы закодировать послание, а ты его декодируешь с помощью того же слова.
— Как закодировать послание словом «лапсанг»? — спрашивает Джасмин.
Моя бабушка улыбается.
— Не спрашивай его. Мы тут всю ночь проторчим.
Мы дружно хохочем. Да уж, это правда.
И все же, чтобы Джасмин было понятно, он быстро объясняет, как составить шифровальный алфавит на основе слова «лапсанг» (только, разумеется, без второй буквы «а»), добавив к нему все остальные буквы алфавита в обратном порядке. Он пишет на клочке бумаге что-то вроде этого:
Если и отправитель, и адресат знают, что слово-ключ — лапсанг, любое послание будет легко расшифровать (впрочем, дедушка не объясняет, что любое послание, так зашифрованное, с легкостью расшифровывается частотным анализом).
— И вот вдруг, скажем, наш ключ попал в руки врага, — продолжает он. — Нам потребуется его изменить. Но как мне, отправителю, сообщить новый ключ тебе, адресату? Что, если, дабы не компрометировать ключ, мы решим менять его каждый день? Нам все равно придется сообщать его друг другу. Я мог бы позвонить тебе по телефону и сказать: «Теперь ключ — слово дарджилинг», но телефон могут прослушивать. Будь мы уверены, что он не прослушивается, могли бы обмениваться секретной информацией по нему, и не надо никаких шифров.
— Понимаю, — кивает Джасмин. — Чтобы отправить тайное послание, зашифрованное с помощью ключа, надо сперва передать адресату не-тайное послание, сообщающее, каков теперь ключ.
— Именно, — говорит дедушка. — И это — ахиллесова пята, точка, в которой враг может перехватить информацию.
— А что, если каждый день посылать шифровку, а потом тем же шифром сообщать новый ключ?
Дедушка переносит чайник на стол и достает из буфета лучшие кофейные чашки.
— Люди пользовались подобными методами, — объясняет он. — Но понимаешь, стоит в такой ситуации врагу расшифровать одно послание, и получается бесконечное кольцо. Взломав лишь один код, они смогут раз за разом взламывать их дальше.
— Ах, — сокрушается Джасмин. — Ну, и как же тогда быть? Я знаю, об этом ты и хочешь мне…
— Ну, есть пара способов. Первый, известный как «система обмена ключами Диффи — Хеллмана — Меркла» — его так назвали в честь изобретателей,[101]— основан на невозвратных функциях и модульной арифметике, о которых Бет знает побольше моего.
Бабушка улыбается:
— Поверь мне, Джасмин, тебе этого знать не надо. Но по сути, это сложный математический трюк: два человека задумывают числа, прогоняют их через функцию — гораздо сложнее, чем «возьмите число, удвойте и прибавьте пять», хотя и похожую, — а потом обмениваются результатами. Замечателен этот метод тем, что даже если оба результата будут перехвачены, враг не сможет взломать код, так как для этого нужно знать не результат, а хотя бы одно из первоначальных чисел. Объяснить это очень сложно, но трюк и впрямь жутко хитрый. Широкого применения он не получил, ибо оказался непрактичным. Отправителю приходится каждый раз загодя связываться с адресатом, если нужно отправить шифровку. Но по крайней мере с математической точки зрения это шедевр. Представь: можно обмениваться ключами не тайно, а на виду у всех; даже если враг подслушает ваши слова — все равно. Полный блеск.