За стенами амбара грохотали раскаты грома. Отец сказал:
— Знаете, почему гроза? Потому что вчера был Перунов день, день бога-громовержца. Поэтому он мечет громы и молнии и будет делать это ещё дней десять.
Меня аж передёрнуло, и я воскликнул:
— А не путаешь ли ты, папенька, причину со следствием?
— Поясни…
— Я думаю, что в древности люди заметили, что по каким-то природным причинам в это время лета происходят грозы, вот и стали эти дни посвящать богу-громовержцу.
Отец посмотрел на Катю и спросил:
— Ты понимаешь, о чём мы?
Катя покачала головой. Тогда отец рассказал:
— Давным-давно, когда у людей ещё не было точных часов и ведение календаря было делом незаурядным, все равно надо было планировать хозяйство: когда посадить пшеницу, когда начинать косить и тому подобные дела. Единственная возможность, какая была у людей тогда, — наблюдение за природными явлениями. Систематические наблюдения дали возможность проанализировать особенности климата и погоды. Так возникли погодные приметы. Но так же возникло и понимание длинных циклов в развитии природы. Для простоты один такой цикл, который мы называем годом, разделили на более короткие периоды. Границами таких периодов стали естественные солнечные события — равноденствия и солнцестояния, то есть сутки с равной длиной дня и ночи и сутки с самым длинным днём летом и самой длинной ночью зимой. Именно эти дни и начинают собой то, что сейчас мы называем сезонами.
Катя слушала. Тем временем отец продолжал:
— Эти четыре дня люди посвящали разным богам. Это было так давно, что эти традиции примерно одинаковы у многих народов мира. Ведь раньше, если человек что-то не понимал, он валил это на какие-то высшие силы. Вот и изменения погоды непременно объяснялись действиями неких высших существ. Ну да ладно. Но в климате, кроме смены сезонов, есть некоторые другие особенности. Например, в наших широтах практически каждый год в двадцатых числах июля происходят грозы. Потому-то двадцатого июля, вернее, в тот день в древности, который сегодня соответствует двадцатому июля, праздновался день бога-громовержца. На Руси его называли Перун, у балтских племён — Перкунас, в Скандинавии — Тор, в Индии — Парджанья. Вот такие интересные штуки бывают связаны с календарём.
Папа рассказал ещё много интересных историй о разных божествах разных народов мира. Ещё в детстве у него была книга про все известные мифологии, и он её внимательно читал, выписывал оттуда сведения, строил семантические карты и всё остальное. Потом, уже в институте, он изучал историю религий и узнал еще больше, а теперь делится с нами.
Так прошло несколько дней. Поскольку дождь лил, просто не переставая, мы с папой передвигались только на машине. Мы приезжали к Кате в первой половине дня, и папа вел научные занятия и демонстрировал опыты, рассказывал всякие удивительные истории. Всё это было очень интересно, но как-то раз он вновь вспомнил о протоколе Диффи — Хеллмана. Он спросил:
— А думали ли вы, как можно взломать протокол обмена секретными ключами по открытому каналу, который мы с вами изучили не так давно?
Мы с Катей, конечно же, не думали. Тогда папа сказал:
— Кажется, что протокол безупречен. Его стойкость основана на гипотезе, что обратную операцию для возведения в степень по модулю проделать очень сложно. Пока что эту гипотезу никто не опроверг. Но давайте посмотрим на проблему с другой стороны. Для этого воспользуемся той аналогией с перемешиванием цветов, которую придумала Катя, поскольку так будет проще объяснять.
Папа раздал нам листочки бумаги и напомнил, что надо сделать. Мы должны загадать по одному секретному цвету и взять один цвет открытый. Катя взяла себе секретный белый цвет, а я взял зелёный секретный и красный — открытый. Затем я написал на листочке два слова: «красный» и «коричневый» и уже хотел передать его Кате, но папа остановил меня:
— А теперь представьте такую ситуацию. Вы же обмениваетесь информацией по открытому каналу, то есть как и куда она может попасть, вы не знаете. Давайте представим, что я сижу между вами и все ваши передачи идут через меня. Почему бы и нет? Ведь канал открытый. Так что, Кирилл, давай мне листочек.
Я протянул листочек отцу, уже чувствуя что-то не то. Отец отложил его в сторону, взял новый листок и написал на нём — «синий» и «оранжевый», после чего передал Кате. Катя недоумённо посмотрела на него, а он объяснил:
— Смотрите, я заменил информацию. Поскольку канал открыт, никто из вас не может гарантировать, что передача информации произойдёт без искажений. Вот я и исказил данные. Теперь Катерина должна взять у меня листок и использовать его так, как будто бы получила от Кирилла. То есть взять оранжевый цвет, которым я заменил коричневый, и использовать его для получения итогового цвета. А красный цвет смешать со своим секретным, после чего передать его Кириллу. Что получается?
— Розовый.
Катя взяла новый листок и, написав на нём слово «розовый», передала его отцу. Он положил новый листок перед собой и продолжил:
— Теперь Катерина должна получить свой ключ. Она смешивает оранжевый и свой секретный цвет. Я пока не знаю новый цвет, но его использует Катерина для шифровки. А Кириллу я передаю данные так, как будто от Катерины пришёл цвет, полученный от смешения красного и, например, синего.
Отец взял новый листок, написал на нём «фиолетовый» и передал его мне. Затем он нарисовал диаграмму взаимодействия.
— Вы поняли, что получилось, откуда я взял оранжевый и фиолетовый? Я не знаю ваших секретных цветов, но вместо них придумал новые — жёлтый для Кирилла и синий для Катерины, и использовал их так же, как и вы. Но теперь я буду использовать для общения с Кириллом один цвет, а для общения с Катериной — другой.
Затем он продолжил:
— Видите, в диаграмме появилось новое лицо, то есть я. Я нахожусь между вами. Все ваше взаимодействие происходит через меня. И у меня есть возможность заменить ваши ключи так, чтобы они стали мне известны. И когда Кирилл посылает Катерине сообщение — оно попадает ко мне, и я могу его расшифровать ключом Кирилла, а потом зашифровать ключом Катерины и передать его ей. И наоборот — сообщения от Катерины я расшифровываю её ключом, а зашифровываю ключом Кирилла. И вы ничего не узнаете. Подумайте, что я ещё могу сделать, кроме того, что узнаю ваши сообщения?
Я сразу выпалил:
— Ты можешь, как хочешь, менять их содержание, и мы тоже ничего не узнаем.
— Молодец, Кирилл. Всё правильно. И этот способ взлома называется «человек посередине», или по-английски «man in the middle», а для краткости просто MITM. Это одна из самых мощных атак на практически любую систему защиты, от неё сложно защититься. Но скоро мы узнаем как.
Катя вздохнула и спросила:
— А есть ли вообще системы шифрования, не поддающиеся взлому?
— Теоретически есть. Проблема в том, что на практике всегда возникают разные нюансы, которыми может воспользоваться злоумышленник или криптоаналитик. Вот, например, так называемый одноразовый блокнот, который мы скоро изучим. В теории это абсолютно стойкая криптосистема, однако опять возникает проблема распространения ключей. Для неё есть решение, но оно может быть взломано при помощи атаки MITM.
Но давайте не будем торопить события: сегодня мы и так очень много занимались. Обдумайте всё, что сегодня изучили. Посмотрите на этот способ атаки: теперь вы всегда будете пробовать эту атаку, изучая новые системы шифрования, чтобы понять, насколько они слабые или сильные. Впрочем, опытный и проницательный криптоаналитик подбирает такие атаки, которые специфичны для конкретной криптографической системы.
Наконец дожди закончились. За это время отец рассказал нам столько, сколько мы не узнали бы за целый год обучения в школе. Впрочем, про криптографические штуки он больше не вспоминал, резонно решив, что нам с Катей надо осмыслить всё, что мы узнали о протоколе распределения ключей по открытым каналам. Так что он рассказывал про мир вокруг нас. Для Кати все эти рассказы были в диковинку, а я вспомнил, как мы с ним занимались, когда мне было четыре года и я называл себя «учёный по природе» — тогда мы каждый день что-нибудь придумывали, делали опыты, собирали гербарии и коллекции насекомых, наблюдали за погодой. Где-то даже сохранились мои журналы наблюдений за природой и проведения научных опытов, где я корявыми буквами записывал всё, что узнал.
На второй день ясной погоды солнце светило уже вовсю, и прямо с утра в тени было под тридцать градусов. Вся небесная вода, обрушившаяся на нас за эти дни, высохла уже к обеду. Я наблюдал за всеми этими изменениями и удивлялся, как здесь вообще могут расти хоть какие-то культурные растения. Но отец сказал, что раньше тут собирали хорошие урожаи, а Тамбовская губерния вообще была одним из богатейших сельскохозяйственных регионов в России. А всё дело в прекрасном чернозёме, на котором всё растёт, как тесто на дрожжах.
После обеда отец с загадочным видом собрал в холщовую сумку всякой еды и повесил на спину какой-то тубус, которого я раньше не видел. Мы поехали на велосипедах к Кате, и он объяснил, что хочет показать нам знаменитые болота, в которых он когда-то ловил рыбу со своим дядей. Тогда они добирались до рыбных мест на мотоцикле, а мы сегодня попробуем на велосипедах.
Катя уже ждала нас. Мы проехали по заднему огороду тёти Кати и попали на тропинку, которая шла вдоль огородов. Через минут пять мы стояли около того самого въезда в лес, и на меня опять нахлынули воспоминания. Отец остановился и сказал, что мы направляемся в чащу, где можно заблудиться, поэтому он поедет позади, чтобы видеть нас, и будет кричать, куда ехать, так что нам надо быть внимательными. Я поехал первым, Катя — за мной. Так мы оказались в лесу.
И дальше мы попали именно туда, куда вместе с Марком я ездил в своих воспоминаниях. Сначала мы проехали два квартала — я специально высматривал просеки и столбы — и тут папа крикнул, чтобы я поворачивал налево. Через пару минут передо мной открылась огромная прог