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