Криптографические приключения — страница 38 из 38

Так что мы поделили клад на три части — между мной, Катей и дядей Русланом. Сделали просто — кучку каждого типа монет разделили на три и раздали каждому. У меня получилось 127 монет, у Кати столько же, а у дяди Руслана — 125. На том и успокоились.

Я спросил у отца:

— А где же золотые монеты?

— Я их оставил пока у себя. Буду оценивать более тщательно, поскольку каждая из них должна стоить довольно много, и так просто поделить нельзя. Тем более что их всего пять штук.

Из дневника Кирилла:

14 августа. Мы сделали это! Мы нашли клад, который не могли найти многие, кто пробовал до нас. Мы смогли расшифровать тайное послание, а потом нашли спрятанное. Как же приятно. Лето удалось!

* * *

До конца отпуска дяди Руслана и его семейства оставалось восемь дней. В общем, мы как-то расслабились после того, как нашли клад, и теперь бездельничали. Август выдался очень тёплым, дождей не было. Мы каждый день купались и часто ездили на Кермись — ту реку в поле, где мы выкопали клад. Мы ходили в лес за грибами, хотя из-за сухой погоды это были в основном сыроежки. Однажды мы съездили в дремучие леса под Альдией и набрали там несколько корзин прекрасных лисичек. В общем, начался полноценный отдых.

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

Мы расселись, и папа начал:

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

Мы открыли свои рабочие блокноты, и я всё вспомнил. Буква А кодируется как 00000, а буква Я — как 11111. Все остальные буквы тоже кодируются как числа в двоичной системе счисления, состоящие из пяти знаков. Отец говорил, что самое главное — использовать именно пять битов, даже если первые представляют собой 0.

Тем временем отец продолжил:

— Итак, вы вспомнили, что каждая буква кодируется при помощи пяти битов. Помните, вы передавали друг другу сообщения по телеграфу? Каждый бит передавался как короткий или длинный звонок. Другими словами, чтобы мы могли отличить два битовых значения друг от друга, нам требуется что-то такое, что имеет два различимых состояния. Так?

Мы с Катей с готовностью кивнули. И тут отец внезапно сменил тему:

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

Катя сказала, вернее, даже спросила:

— При помощи криптографии мы скрываем смысл сообщения, а при помощи стеганографии — само сообщение?

— Да, всё так. Мы как будто бы ничего не передаём, и если кто-то не знает заранее, то он может даже не обратить внимания на то, что мы общаемся. Кто может придумать какой-нибудь стеганографический метод?

Думать совершенно не хотелось, потому что было жарко. Поэтому я покачал головой и стал ждать объяснений. Но Катя продолжила:

— Может быть, можно написать какое-то письмо для отвода глаз, а настоящее послание сфотографировать и уменьшить до размера точки в этом письме. Ну и спрятать в точке.

— Молодец, Катерина! Этот метод так и называется — микроточки. Его часто используют в шпионской деятельности. Ты сама придумала?

— Нет. Как раз читала в одной книге про шпионов.

— Ну хорошо. А если придумать что-нибудь математическое? Я же не зря напомнил вам про пятибитный код.

Тут мне в голову пришла интересная идея. Я даже вскочил:

— Придумал! А что если кодировать биты при помощи разных букв? Ну ты же сам нам говорил, что знаки «0» и «1» выбраны просто для удобства. А на самом деле можно взять два любых различающихся предмета. Так вот пусть такими различающимися предметами будет разный вид букв. Тогда мы напишем какой-нибудь текст для отвода глаз, а его буквами закодируем скрытое сообщение пятибитным кодом. Например, можно использовать обычные и жирные буквы.

Отец воскликнул, что я абсолютно прав и именно этот способ он хотел нам показать.

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

Привет, Катя. Будь готова завтра прямо с утра ехать с нами в Муханские овраги. Похоже, что мы подошли к разгадке очень близко, так что завтра есть все шансы найти клад. Надеюсь, что удача будет нам сопутствовать.

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

— По сути всё так, ты правильно закодировал скрытое послание. Но по форме ужасно. Ну что ты написал в своём открытом письме? Разве такое можно писать? А если кто-то перехватит, что будет?

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

В общем, это был очень интересный метод. Мы написали ещё по одному письму и скрыли в них важные сообщения. А потом отец сказал:

— А вы знаете, что можно в одном открытом письме скрыть много тайных?

Мы опять переглянулись и пожали плечами. Отец всегда любил и умел удивлять.

— Смотрите. Мы уже определили, что тайные послания можно кодировать при помощи разных свойств символов. Мы выбрали жирное начертание. Но ведь символы могут быть не только простыми и жирными. Они могут быть, например, ещё курсивными, и при этом жирность и курсив не зависят друг от друга. В математике это называется «ортогональными свойствами». Поэтому жирное начертание символа можно использовать для кодирования одного сообщения, а курсивное — для другого. А ещё можно использовать, например, размер букв. Это третье скрытое сообщение. Четвёртое можно кодировать цветом — скажем, чёрные и красные буквы. А пятое, к примеру, тем, что буква написана как обычно или при помощи контура. Итого — пять сообщений скрыто в одном. Только при этом надо очень внимательно подбирать вид букв. Они могут быть одновременно жирные, курсивные, заглавные, цветные и контурные. Красота?

Я сказал:

— Это довольно сложно.

— Подумайте дальше. Я назвал пять способов кодирования. Обратите внимание: пять.

Катя воскликнула:

— Ага! Пять ортогональных свойств могут кодировать один символ скрытого сообщения, поскольку для него требуется пять бит.

— Молодец, Катерина. Ты всё правильно сказала. Давайте попробуем что-то такое закодировать.

Мы принялись за дело, и через час усердного труда у меня получилась вот такая надпись:

Из дневника Кирилла:

18 августа. Интересно всё-таки получается. При помощи математики можно придумывать огромное количество всяких штук. Вот пятибитный код — казалось бы, что сложного? Однако его можно использовать, чтобы прятать в текстах скрытые послания. А что, если использовать не такие явные свойства, как жирность букв, а что-то менее заметное? Ведь если посмотреть на текст, в котором обычные и жирные буквы написаны вперемежку, то сразу ясно, что здесь что-то не то. Надо придумать более тонкий способ. Например, использовать рубленый шрифт и шрифт с засечками. В общем, надо подумать…

Эпилог

Двадцать второго августа мы на четырёх машинах выехали из деревни. Перед этим отец закрыл все постройки и места, которые мы использовали в деревне во время наших каникул. Мы заехали к тёте Кате попрощаться, а проезжая мимо Альдии, заехали и к тётушкам. И вот при выезде на асфальтовую дорогу мы попрощались с Катей и её родителями — мы повернули направо и двинулись на Москву, а они свернули налево, в сторону Самары.

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

Отец ехал молча. Дорога была длинной, и в конце концов я не выдержал и спросил:

— Почему ты такой суровый?

— Я просто задумчивый.

— Что-то случилось?

— Да нет, ничего такого. Просто я думаю, как быть дальше. Мы же не нашли то, что искали.

Я был ошарашен.

— Как не нашли? Мы же выкопали клад и даже разделили его.

— Да. Но ты уверен, что это именно тот клад, о котором речь шла в шифровке?

Об этом я не подумал.

— И ты считаешь, что это другой клад?

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

— И что же делать?

— Вот я и думаю, что…