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