Неделя 12. Одноразовый блокнот

 

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

Представьте себе шифрограмму, в которой текст зашифрован при помощи банальной многоалфавитной замены (напомню, что мы проходили этот метод на второй неделе и затем вновь вернулись к нему на четвёртой, когда изучали операцию XOR). Ничего сложного, правда? Но что, если длина ключа равна длине скрываемого текста, а сам ключ представляет собой абсолютно случайный набор символов? Как такое можно взломать?

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

Пусть необходимо скрыть слово «КИБЕРНЕТИКА», а в качестве ключа будем использовать последовательность «ЫУДЛДЫЯУПЛИ». Результат применения операции XOR к этим двум строкам такой: «ЦЭЖЙУСШЖШЖЗ». Как может попытаться взломать эту шифрограмму криптоаналитик? Поскольку символов здесь всего 11, он может попытаться перебрать все возможные варианты ключей (хотя это очень много даже для современных вычислительных устройств и полный перебор займёт много времени: 3211= 36 028 797 018 963 968; и если пробовать миллиард комбинаций в секунду, то вся работа будет выполнена за 36 028 797 секунд, то есть примерно за полтора года). Допустим, у криптоаналитика имеется в распоряжении квантовый компьютер с достаточным количеством кубитов, тогда он сможет попробовать все 3211вариантов за один раз, но что это даст?

Ничего. Пусть криптоаналитик пробует ключ «ЪУИНЦЪКУПЛИ». Тогда в результате дешифровки получится текст «ЛИНГВИСТИКА». А если криптоаналитик попробует ключ «ЗФДАЪЩЦЕЦНН», то в результате расшифровки получится текст «ЯЗЫКОЗНАНИЕ». Другими словами, после перебора всех возможных ключей длиной в 11 символов получится очень много хаотической белиберды, среди которой встретятся все, абсолютно все слова длиной в 11 букв (а также фрагменты каких‑нибудь фраз длиной в 11 символов). И что должен выбрать бедный криптоаналитик? Никаких зацепок, ничего.

Тот, кто шифрует свои сообщения при помощи одноразового блокнота, должен соблюдать два несложных правила:

1. Ключ должен быть абсолютно случайным. Если в нём будут какие‑либо регулярности и закономерности, это сразу даст криптоаналитику (у которого в арсенале много инструментов статистического анализа) зацепки, и в конце концов он сможет расшифровать текст.

2. Ключ никогда и ни при каких условиях не должен повторяться дважды. Никогда! Потому метод и называется «одноразовым блокнотом» – каждый ключ применяется только один раз. Если вы примените один и тот же ключ дважды, это будет фиаско, поскольку взломать два текста, зашифрованные одним и тем же ключом – это всё равно, что расшифровать шифр многоалфавитной замены, так как для этого используется банальный частотный анализ. Всё дело в свойстве операции XOR – как только криптоаналитик получит два разных текста, зашифрованных одним и тем же ключом, он тут же сложит их друг с другом, и неизвестный ему ключ самоуничтожится, а дальше – дело техники.

Что же такое «одноразовый блокнот»? Этот метод шифрования был придуман очень давно. Им активно пользовались во время Второй мировой войны для шифровки самых важных сообщений. Способ же шифрования был довольно незамысловатым. В двух экземплярах печатались блокноты, содержащие случайные последовательности букв. Один блокнот выдавался тайному агенту, а второй оставался в штабе. Для шифровки бралась первая страница блокнота, и символы, напечатанные на ней, использовались в качестве ключа. После шифрования страницу вырывали из блокнота и очень скрупулёзно уничтожали (сжигали с тщательным перемешиванием и развеиванием пепла по ветру). Адресат, получивший шифрограмму, брал свою копию одноразового блокнота, расшифровывал послание при помощи текущей первой страницы, вырывал страницу и так же уничтожал её.

Этот метод был настолько надёжен, что криптоаналитики, получавшие послания, которые заведомо были зашифрованы одноразовым блокнотом, даже не пытались их расшифровывать. Впрочем, они складывали их в архив, и не зря, поскольку тайные агенты иногда ленились и шифровали послания при помощи одной и той же страницы. А иногда они не уничтожали использованные страницы, и они тем или иным способом попадали в руки криптоаналитикам. И всё.

Таким образом, вот план работ на эту неделю:

1. Придумать текст, который необходимо зашифровать.

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

3. Вписать шифрограмму в открытый текст очередного письма.

4. Послать письмо.

5. Подготовить для юного криптографа какой‑нибудь замечательный подарок в честь окончания базового курса по криптографии и значительного укрепления математических способностей.

6. Вручить подарок вернувшемуся домой ребёнку.

Это будет просто замечательно. В результате выполнения задачи ребёнок сможет на собственном опыте убедиться в абсолютной стойкости описанной системы шифрования.

 

Заключение

 

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

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

Далее я хочу сказать о математике. Криптография без математики состояться никак не может. Человек может уметь пользоваться криптографическими методами, но если он не понимает базовых механизмов, лежащих в их основе, то это использование будет только поверхностным, на уровне «запустить утилиту, чтобы зашифровать файл». Изучение криптографии само по себе очень развивает математические способности. Но и для того чтобы усваивать некоторые криптографические методы, необходимы хорошие математические познания и возможность быстро научиться зачастую довольно непростым вещам.

Немного об информатике. Сегодня никто уже не использует ручные методы криптографии (хотя в некоторых случаях они могут быть востребованы). Вся серьёзная криптография реализуется при помощи компьютеров, а потому владение языками программирования и алгоритмическим мышлением помогает развивать и криптографические навыки. Но, как говорил один из моих преподавателей криптографии: «Никогда не используйте свои собственные разработки». Это из‑за того, что в одиночку очень сложно продумать все возможные способы, которыми злоумышленник или криптоаналитик будет пробовать шифр на прочность. Есть примеры, когда шифр взламывался по измерению времени отклика на посылаемые запросы – по микросекундам разницы делались заключения и подбирались ключи. А разработчик, который делал эту систему шифрования, даже и помыслить не мог, что его система настолько уязвима с этой точки зрения. При этом, однако, желательно попробовать реализовать системы шифрования самостоятельно, чтобы разбираться в их внутреннем устройстве.

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

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

Другими словами, примерная дорожная карта развития в этом направлении следующая:

1. Постоянно усиливать математические навыки ребёнка, развивать его абстрактное мышление.

2. Если он ещё не умеет, начинать учить его программированию. Советовать что‑либо здесь я не могу. Возможно, что имеет смысл отдать ребёнка в какой‑либо кружок по информатике.

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

4. В институте, получив необходимые базовые навыки и знания, осваивать квантовые вычисления и теорию квантовой информации.

Вот так.

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

Конечно же, я жду отзывов своих читателей – присылайте их на адрес электронной почты: roman.dushkin@gmail.com.

 

Список литературы

 

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

1. Стивенсон Н. Барочный цикл. Это очень большое произведение, в котором в крайне замысловатой манере описывается история перехода Европы от Средневековья к Просвещению и становления естественнонаучного мировоззрения. Цикл очень интересный, в нём поднимается множество научно‑философских вопросов. Также вспомогательными сюжетами постоянно проводятся истории о шифровании и дешифровке, и их описания дают много интересных идей.

2. Стивенсон Н. Криптономикон. Как бы продолжение «Барочного цикла», но общими остались только фамилии персонажей и наличие одного «бессмертного» героя. В этой книге рассказывается история экспоненциального развития криптографии в годы Второй мировой войны, взлом немецкой шифровальной машины «Энигма» и множество иных интересных историй из области математики, информатики и криптографии. Обязательно почитайте эту книгу.

3. Кан Д. Взломщики кодов. Популяризаторская книга о криптографии: как начиналась эта наука, как развивалась, каких успехов достигла. Рассказывается много историй о том, как взламывались те или иные системы шифрования, и в том числе о немецкой машине «Энигма».

4. Сингх С. Книга шифров. Тайная история шифров и их расшифровки. Занятная книга о криптографии, в которой приводится уйма интересных историй и познавательных описаний систем шифрования. Чтение несложное, книга популярная и простая.

5. Жельников В. Криптография от папируса до компьютера. Более или менее популярная книга для старших школьников, в которой простыми словами рассказывается история криптографии с самых древних времён и до наших дней. Приводятся описания некоторых систем криптографии.

6. Чёрчхаус Р. Коды и шифры, Юлий Цезарь, «Энигма» и Интернет. Ещё одна книга исторических очерков о криптографии – как всё начиналось и куда это привело на современном этапе развития науки. Написана достаточно легко, так что будет понятна и интересна старшеклассникам.

7. Бауэр Ф. Расшифрованные секреты. Методы и принципы криптологии. Это уже более академическая книга, в ней меньше научно‑популярных слов, но больше формул. Книга должна быть интересна продвинутым криптографам и криптоаналитикам, которые постигли основы и хотят развиваться дальше. В первой её части описываются системы шифрования, а во второй – методы их взлома («атаки»).

8. Дориченко С., Ященко В. 25 этюдов о шифрах: Популярно о современной криптографии. Достаточно строгая книга, в которой с использованием серьёзного математического аппарата даётся описание многих методов криптографии (как с точки зрения шифрования, так и с точки зрения дешифровки). Рекомендуется для студентов младших курсов.

 

 


[1]  Фридрих Вильгельм Касиски – Немецкий криптограф и археолог. В 1863 году опубликовал труд «Тайнопись и искусство дешифрования», в котором детально описал методы расшифровки текстов, зашифрованных шифрами многоалфавитной замены. При помощи этих методов был взломан шифр, который считался неприступным более четырехсот лет.

 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: