Криптографические приключения: таинственные шифры - Страница 30


К оглавлению

30


За своим занятием я не заметил, как приехала Катя. Она тихо стояла надо мной и смотрела на мои упражнения. Потом сказала:

— Ты точно учишься в пятом классе?

Я поднял на неё глаза и ответил:

— Ты ведь уже познакомилась с моим папой. Мы с ним давно занимаемся всякими науками.

Катя вздохнула, а потом спросила:

— А что это за график?

— Это гистограмма, которая показывает распределение частот букв в старой орфографии. Помнишь, когда я разгадал твою шифровку, мы применяли частотный анализ для подбора букв. Так вот тут то же самое. Папа нашёл довольно большой текст, примерно один миллион букв, посчитал в нём количества и частоты всех букв, которые в него входят…

Катя недоумённо воскликнула:

— Он посчитал миллион букв?!

Я засмеялся и ответил:

— Нет, конечно. Вернее, он сам ничего не считал. Он никогда не делает ничего сам, если может это поручить компьютеру. И тут он нашёл этот текст в интернете, написал программу, и она всё посчитала буквально за пару секунд. Я сам видел. А писал он её минут пять. И теперь я построил гистограмму, чтобы сравнить частоты старой орфографии и современной. Вот видишь, всё вроде бы не сильно отличается, кроме одной буквы.

— Да, я вижу. Это как раз твёрдый знак, про который говорил твой папа.

— Ага. Удивительно, как вылезла его частота.

Катя покрутила в руках нарисованную мной гистограмму, потом заявила:

— Но я всё равно не понимаю, зачем ты это нарисовал.

Похоже, она сегодня была не в духе. Теперь уже я вздохнул и ответил:

— Как минимум я начинаю понимать, что задумал папа со своими генетическими алгоритмами.

— И что же?

— Он пытается подобрать такое распределение чисел из шифровки по буквам старого алфавита, чтобы при перекодировании шифровки и подсчёте частот каждой буквы полученный результат максимально близко подходил к гистограмме.

— Но почему просто не посчитать частоты чисел в шифрограмме?

— Ну как же! Мы же уже посчитали и определили, что они практически равны. В этом смысл пропорционального шифра.

— А, точно.



Объясняя Кате, я сам начал чуть-чуть понимать. Действительно, надо найти такую расстановку чисел по буквам, чтобы при замене в шифровке всех чисел на буквы их частота оказалась очень близкой к эталонной. Но почему это так сложно сделать, я всё-таки ещё не понимал.

Пришёл отец и выдал нам по горсти спелой земляники. Оказалось, что он ходил к Раёву, на наш передний огород, проверял телеграфную линию и заодно собрал земляники. Он сказал, что телеграфную линию надо разобрать, чтобы она не мозолила глаза местным жителям, а то ещё кто-нибудь покусится на хороший кабель.

Отец сел на скамейку и начал, как мне показалось, новое занятие:

— Я придумал, как оптимизировать наши поиски. Нам надо построить вычислительный грид. Думаю, что рабочих компьютеров сотрудников моей лаборатории будет достаточно. Я напишу программу, которую установлю на их компьютеры, и эта программа в фоновом режиме будет делать генетический подбор. У нас в лаборатории примерно двадцать пять компьютеров, развернём грид на всех. Мой ноутбук сделаем базовым хостом, будем через него обмениваться информацией и распределять наиболее интересные варианты для дальнейших вычислений по всем компьютерам грида. Понятно?

Мы с Катей только помотали головами. Отец вздохнул и попробовал ещё раз:

— Я напишу программу и распространю её среди сотрудников своей лаборатории. Каждый из них установит её на свой рабочий компьютер. Эта программа будет работать в фоновом режиме на нескольких устройствах одновременно. Результаты работы будут приходить ко мне на ноутбук, который будет отбирать самые лучшие и посылать команды всем компьютерам в этой сети, чтобы они использовали новые варианты для дальнейшей работы. Это должно очень сильно ускорить процесс.

Я спросил:

— Если в этой работе будут участвовать твои сотрудники, то когда мы взломаем шифровку, славой придётся поделиться и с ними?

Отец задумался, но потом сказал:

— Никто не будет знать, что вычисляет программа. Я сделаю так, что это будут абстрактные строки без каких-либо пояснений. Только на моём ноутбуке мы сможем прочесть результаты.

В разговор вступила Катя:

— А если распространить эту программу на ещё большее количество компьютеров? Это возможно?

— Да, примерно так работают так называемые «ботнеты». При помощи компьютерных вирусов люди распространяют свои вычислительные модули, которые, заражая чужие компьютеры, производят на них какие-либо вычисления и отправляют результаты в командный центр. Также ботнеты используются, чтобы организовывать атаки, взламывать банковские счета, вычислять криптовалюты и ещё для многого другого. Но мы же не будем писать вирус и заражать им компьютеры тех, до кого удастся дотянуться. Я официально как руководитель лаборатории попрошу своих сотрудников установить и запустить эту программу. Всё будет честно.

После этих объяснений папа быстро свернул занятия и ушёл в штаб. Я так понял, что ему пришла в голову какая-то идея, и он сразу же отправился воплощать её. Поскольку в таком состоянии от отца добиться чего-либо было сложно, мы с Катей сели на велосипеды и поехали к тёте Кате.

Вернулся я поздно, когда уже стало темнеть. Отец даже не обратил внимания, когда я вошёл. Он сидел за компьютером и разговаривал с кем-то через мессенджер. Большую часть слов я не понимал, хотя они разговаривали вроде бы по-русски. Похоже, что отец обсуждал с кем-то из своих коллег тонкости развёртывания грида, как он это называет.

30