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