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