Ничего. Пусть криптоаналитик пробует ключ «ЪУИНЦЪКУПЛИ». Тогда в результате дешифровки получится текст «ЛИНГВИСТИКА». А если криптоаналитик попробует ключ «ЗФДАЪЩЦЕЦНН», то в результате расшифровки получится текст «ЯЗЫКОЗНАНИЕ». Другими словами, после перебора всех возможных ключей длиной в 11 символов получится очень много хаотической белиберды, среди которой встретятся все, абсолютно все слова длиной в 11 букв (а также фрагменты каких-нибудь фраз длиной в 11 символов). И что должен выбрать бедный криптоаналитик? Никаких зацепок, ничего.
Тот, кто шифрует свои сообщения при помощи одноразового блокнота, должен соблюдать два несложных правила:
1. Ключ должен быть абсолютно случайным. Если в нём будут какие-либо регулярности и закономерности, это сразу даст криптоаналитику (у которого в арсенале много инструментов статистического анализа) зацепки, и в конце концов он сможет расшифровать текст.
2. Ключ никогда и ни при каких условиях не должен повторяться дважды. Никогда! Потому метод и называется «одноразовым блокнотом» — каждый ключ применяется только один раз. Если вы примените один и тот же ключ дважды, это будет фиаско, поскольку взломать два текста, зашифрованные одним и тем же ключом — это всё равно, что расшифровать шифр многоалфавитной замены, так как для этого используется банальный частотный анализ. Всё дело в свойстве операции XOR — как только криптоаналитик получит два разных текста, зашифрованных одним и тем же ключом, он тут же сложит их друг с другом, и неизвестный ему ключ самоуничтожится, а дальше — дело техники.
Что же такое «одноразовый блокнот»? Этот метод шифрования был придуман очень давно. Им активно пользовались во время Второй мировой войны для шифровки самых важных сообщений. Способ же шифрования был довольно незамысловатым. В двух экземплярах печатались блокноты, содержащие случайные последовательности букв. Один блокнот выдавался тайному агенту, а второй оставался в штабе. Для шифровки бралась первая страница блокнота, и символы, напечатанные на ней, использовались в качестве ключа. После шифрования страницу вырывали из блокнота и очень скрупулёзно уничтожали (сжигали с тщательным перемешиванием и развеиванием пепла по ветру). Адресат, получивший шифрограмму, брал свою копию одноразового блокнота, расшифровывал послание при помощи текущей первой страницы, вырывал страницу и так же уничтожал её.
Этот метод был настолько надёжен, что криптоаналитики, получавшие послания, которые заведомо были зашифрованы одноразовым блокнотом, даже не пытались их расшифровывать. Впрочем, они складывали их в архив, и не зря, поскольку тайные агенты иногда ленились и шифровали послания при помощи одной и той же страницы. А иногда они не уничтожали использованные страницы, и они тем или иным способом попадали в руки криптоаналитикам. И всё.
Таким образом, вот план работ на эту неделю:
1. Придумать текст, который необходимо зашифровать.
2. Использовать для шифровки одноразовый блокнот, подготовленный с самого начала занятий. Один экземпляр блокнота должен находиться у ребёнка.
3. Вписать шифрограмму в открытый текст очередного письма.
4. Послать письмо.
5. Подготовить для юного криптографа какой-нибудь замечательный подарок в честь окончания базового курса по криптографии и значительного укрепления математических способностей.
6. Вручить подарок вернувшемуся домой ребёнку.
Это будет просто замечательно. В результате выполнения задачи ребёнок сможет на собственном опыте убедиться в абсолютной стойкости описанной системы шифрования.
Заключение
Как автор я очень надеюсь на то, что идеи и примеры, изложенные в этой книге, найдут живой отклик в сердцах моих читателей, и в итоге многие ребята и девчонки узнают о тайнах и чудесах криптографии.
Если эта тема «зацепила» ребёнка, и он хотел бы заниматься дальше, то можно посоветовать ему уже самостоятельно прочитать несколько более серьёзных книг по криптографии, которые можно найти в интернете. В книге для ребёнка я рекомендую несколько таких книг, но и здесь я также приведу несколько ссылок на довольно интересные тексты.
Далее я хочу сказать о математике. Криптография без математики состояться никак не может. Человек может уметь пользоваться криптографическими методами, но если он не понимает базовых механизмов, лежащих в их основе, то это использование будет только поверхностным, на уровне «запустить утилиту, чтобы зашифровать файл». Изучение криптографии само по себе очень развивает математические способности. Но и для того чтобы усваивать некоторые криптографические методы, необходимы хорошие математические познания и возможность быстро научиться зачастую довольно непростым вещам.
Немного об информатике. Сегодня никто уже не использует ручные методы криптографии (хотя в некоторых случаях они могут быть востребованы). Вся серьёзная криптография реализуется при помощи компьютеров, а потому владение языками программирования и алгоритмическим мышлением помогает развивать и криптографические навыки. Но, как говорил один из моих преподавателей криптографии: «Никогда не используйте свои собственные разработки». Это из-за того, что в одиночку очень сложно продумать все возможные способы, которыми злоумышленник или криптоаналитик будет пробовать шифр на прочность. Есть примеры, когда шифр взламывался по измерению времени отклика на посылаемые запросы — по микросекундам разницы делались заключения и подбирались ключи. А разработчик, который делал эту систему шифрования, даже и помыслить не мог, что его система настолько уязвима с этой точки зрения. При этом, однако, желательно попробовать реализовать системы шифрования самостоятельно, чтобы разбираться в их внутреннем устройстве.
Продвигаясь дальше, можно подойти к теории информации. Это уже более серьёзная тема, к которой ребёнок вряд ли сможет подступиться ранее старшей школы или даже начальных курсов института. Но без теории информации криптография слаба. Это наука, лежащая в основании криптографии, так же как и математика с информатикой.
Наконец, высшим пилотажем будет постижение квантовых вычислений и теории квантовой информации. Конечно, к этим темам можно будет подступиться только после получения значительных знаний по математике, физике и кибернетике, которые обычно получают в серьёзном техническом университете. Но теория квантовой информации сейчас находится на острие науки, и в будущем это одна из самых востребованных специальностей.
Другими словами, примерная дорожная карта развития в этом направлении следующая:
1. Постоянно усиливать математические навыки ребёнка, развивать его абстрактное мышление.
2. Если он ещё не умеет, начинать учить его программированию. Советовать что-либо здесь я не могу. Возможно, что имеет смысл отдать ребёнка в какой-либо кружок по информатике.
3. Если всё пойдёт успешно, то в старшей школе можно начинать с популярных книг по кибернетике, а дальше плавно переходить к теории информации.
4. В институте, получив необходимые базовые навыки и знания, осваивать квантовые вычисления и теорию квантовой информации.