Электронная библиотека » Роман Душкин » » онлайн чтение - страница 3


  • Текст добавлен: 8 февраля 2018, 17:20


Автор книги: Роман Душкин


Жанр: Прочая образовательная литература, Наука и Образование


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 3 (всего у книги 14 страниц) [доступный отрывок для чтения: 4 страниц]

Шрифт:
- 100% +

Я сказал:

– Это минимальная единица кодирования информации, возможная на устройстве.

Отец кивнул и продолжил:

– Какой самый простой способ кодирования можно создать, используя длительность включения сигнала?

Я предложил:

– Можно каждой букве дать номер от 1 до 33, а пробел пусть будет 34, и тогда можно передавать буквы по номерам, а сам номер кодировать длительностью сигнала в секундах.

Отец одновременно улыбнулся и укоризненно покачал головой:

– Ты прекрасно знаешь, что пробел в сообщениях встречается чаще всего, так что использовать для его кодирования число 34 просто неэкономно. Это во-первых. Во-вторых, а так ли уж нужен пробел?

Действительно, ведь при помощи шифромашины мы с Марком передавали сообщения без пробелов. Тем временем отец продолжил:

– Но проблема даже не в этом. Нужно будет очень точно отмерять секунды, а при длинной передаче внимание оператора наверняка собьётся, и декодировать сигнал будет трудно. Давайте придумаем что-то более компактное и удобное для распознавания. Екатерина, ты знакома с двоичной системой счисления?

– Нет.

– Хорошо. Тогда как ты думаешь, почему мы считаем до десяти, то есть почему используем для записи чисел десять цифр от 0 до 9?

– Наверное, потому, что у нас десять пальцев на руках.

– Ты права, есть такая гипотеза. Но если подумать, то число «10» ничем не лучше и не хуже других чисел. Просто мы привыкли, что у нас именно десять цифр. А что получится, если использовать только две цифры: 0 и 1?

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

0 = 0

1 = 1

2 =…

– Как получить 2? Нам надо к 1 прибавить ещё 1. Правила сложения очень простые:

0 + 0 = 0

0 + 1 = 1

1 + 1 = 10

– Почему это 10?

– Смотри. У нас есть только две цифры. Цифра 1 – последняя в ряду (как цифра 9), поэтому, если прибавить к ней единицу, произойдет перенос разряда, так же как если к девяти прибавить один. Но можно просто запомнить эти правила и не задумываться.

Отец блаженно улыбался, слушая моё объяснение. Похоже, этого он от меня и ожидал. Ободрённый, я спросил Катю:

– Теперь ты можешь сказать, как записать «3»?

Катя подумала и сказала, что «3» надо записывать как «11». Я подтвердил, что это абсолютно правильно, и сразу же спросил, как записывать «4». Но тут уже возникли сложности, и пришлось объяснять, как происходит перенос разряда и почему в итоге получается «100». После этого мы записали двоичные числа до 31 (так попросил папа).

Тем временем папа рассказал нам, как из двоичной записи числа перейти к десятичной. Оказалось, что каждому разряду соответствует степень двойки: 1 (20), 2 (21), 4 (22), 8 (23), 16 (24), 32 (25), 64 (26), 128 (27), 256 (28), 512 (29), 1024 (210) и т. д. Нужно взять те степени, которым в записи двоичного числа соответствуют единицы, а потом сложить их. Например, двоичному числу 10111 соответствует десятичное 16 + 4 + 2 + 1 = 23.

Затем папа сказал, что в математике числа «0» и «1» называются битами и что любую информацию можно представить при помощи битов. После этого мы наконец перешли к разработке системы кодирования.

Папа составил таблицу из трёх столбцов. В первый он выписал все буквы русского алфавита, пропустив букву Ё. Во втором записал их номера (от 0 до 31). А в третий столбец он записал те же номера в двоичном представлении, но каждый номер состоял из пяти битов – от 00000 до 11111. Получилось вот что:



– Теперь договоримся, как передавать биты 0 и 1. Тут можно использовать и метод Морзе. Пусть «0» будет коротким сигналом, а «1» – длинным, раза в три длиннее. При этом между каждым сигналом надо делать небольшую паузу, а между буквами, то есть между каждыми пятью сигналами – паузу подлиннее.

Отец взял мой передатчик и попросил записывать за ним. Мы взяли карандаши, а папа стал выбивать последовательность сигналов: длинный, короткий, короткий, длинный, короткий… Я записывал за ним: 10010 00101 01011 00101 00011 10000 00000 10100. Получилось слово «ТЕЛЕГРАФ».

Мы ещё немного потренировались – я выстукивал слова, Катя записывала, потом наоборот. Вроде бы всё понятно и довольно просто. Потом папа сказал:

– Ну вот, я хотел начать с протокола, а потом перейти к кодированию, а получилось наоборот. Давайте же изучим, что такое протокол. Скажи, Екатерина, как ты поймёшь, что надо начинать записывать передачу Кирилла?

– Я услышу звонок и увижу мигающую лампочку.

– Но ведь ты наверняка в этот момент будешь что-то делать, а карандаша и бумаги рядом не окажется. А может быть, и самой тебя поблизости не будет. Как быть?

Мы задумались. А ведь действительно. Чтобы успешно передать сообщение, нам обоим надо быть около своих устройств, но как это сделать, если мы друг друга не видим? Но отец продолжил:

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

Мы с Катей переглянулись, а отец тем временем говорил:

– Мы введём несколько служебных символов: «Запрос на начало передачи», «Ответ о готовности приёма» и «Окончание передачи». Подумайте и ответьте мне, для чего нужны эти символы.

Я сказал:

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

Отец согласился, а потом обратился к Кате:

– Екатерина, ты можешь придумать, как будут выглядеть эти три служебных символа?

– Думаю, что они должны состоять из последовательности сигналов, которые непохожи на наши биты «0» и «1».

– Почему?

– Так будет проще понять, что это служебная информация, а не текст телеграммы.

– Здорово, молодец! Это, в общем, необязательно: в компьютерных системах используются только биты и ничего другого. Но мы действительно можем позволить себе применить другие символы, чтобы проще отличать. Поэтому предлагаю такую схему…

И папа записал на листке рядом с таблицей букв три строки.

Для запроса на начало передачи – три длинных звонка.

Для указания готовности к приёму – один длинный звонок.

Для окончания передачи – два длинных звонка.

Длительность каждого из этих звонков была в два раза больше, чем длительность бита «1».

Затем он сказал:

– Определим алгоритм. Пусть Кирилл хочет передать Екатерине сообщение. Он посылает служебный символ «запрос на передачу», после чего ждёт ответа. Если ответ не пришёл в течение минуты, то Кирилл может послать запрос ещё раз, а потом ещё, пока не получит ответ, либо заняться своими делами и снова послать запрос через некоторое время. Если же он получает сигнал готовности к приёму, это означает, что Екатерина готова записывать. После этого Кирилл передаёт своё предварительно закодированное сообщение, а после него ставит символ окончания передачи. Далее Екатерина может выбрать из двух вариантов. Она может закончить сессию приёма-передачи, послав в ответ символ окончания. Это значит, что у Екатерины нет ответа, и передача закончена. Или она может передать свой закодированный ответ и закончить его символом окончания передачи. И тогда уже Кирилл получает возможность выбирать, заканчивать ли передачу. Если да, то он передаёт символ окончания. Если нет, то пишет ответ и передаёт слово Екатерине. И так далее, до конца.

Рассказав всё это, папа нарисовал схему:


– Так выглядит формальное представление алгоритма в специальной нотации, которая позволяет описывать взаимодействие нескольких лиц. Запоминайте эти хорошие слова: «алгоритм», «нотация» и другие. Потом они помогут вам понимать многие важные вещи.

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

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

Вечером папа задал мне странный вопрос:

– Как ты думаешь, почему я купил пять лампочек на замену тем, которые у нас выйдут из строя?

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


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

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

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

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

Оказывается, в математике встречаются одинаковые вещи, которые с первого взгляда могут показаться совсем различными. Папа рассказывал мне нечто похожее про топологию. Как интересно!

Или папа специально подгадал и купил именно пять лампочек, чтобы я на практике убедился в этом?

Глава 5

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

– Привет, Кирилл. Как дела? Прием!

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

Сказано – сделано. Скоро мы уже катили в сторону школы, поскольку решили посмотреть на Школьный пруд. По пути я показывал разные места в деревне и рассказывал о них. Мы увидели крест на холме, на том месте, где был клуб, который потом сгорел, школу, дом «председателя». Затем мы подъехали к пруду. По сравнению с Новым прудом он оказался не таким уж большим.

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

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

Когда тетя Катя увидела Катю, то разулыбалась:

– Вот и невеста!

Я смутился, а Катя фыркнула. Потом я заявил:

– Это Катя, она моя сестра.

– Ох, тоже? И я Катя.

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

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

Я решил сделать как он и распланировать свои дела на день, неделю и так далее, определяя долгосрочные цели. Взяв блокнот и карандаш, я задумался. Какие цели можно было бы поставить на это лето? Первое, что пришло в голову, – закрепить знания по криптографии, а это можно сделать как на практике, так и читая дополнительную литературу. Без отца доступ в интернет очень ограничен, так что новые материалы я доставать не мог. А вот практикой можно позаниматься.

И я решил просто поделиться своими знаниями со своей новой знакомой, рассказывая и показывая ей то, что умею. Ведь один из лучших способов собственного обучения – это объяснение другим. И тогда я записал у себя в блокноте новую задачу: «Заниматься с Катей криптографией».

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

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

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

И вот у меня в руках оказался сложенный листок бумаги. Я развернул его и увидел:



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

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

Прямо за завтраком я начал составлять ответное письмо. Тётя Катя надела очки и всмотрелась, но потом сказала, что ничего в этом не понимает. Потом добавила:

– Твой отец в детстве тоже всякие такие штуки делал. Ох и непрост был.

– Да он и сейчас непрост.

Мы с тётей Катей посмеялись, я доел кашу, выпил стакан молока и дописал ответ. Получилось неплохо:



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

– Вот я и предлагаю научить тебя всему тому, что умею я.

Она согласилась.

– Но перед тем, как мы начнём, покажи мне символы для оставшихся четырёх букв, которых не было в твоём письме, то есть Ф, Ц, Щ и Ъ.

Катя нарисовала:



Что ж, по крайней мере, все символы выполнены в одном стиле.

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

Мне хотелось самостоятельно (а не в наведённых воспоминаниях) составить таблицу частот букв для русского языка. Тем более что готовой у нас сейчас не было. Но, поразмыслив, мы решили найти таблицу в интернете. Хотя канал был очень слабым, нам удалось получить нужную информацию, и я выписал все частоты к себе в рабочий блокнот.

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

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

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

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

11 июня. Ночью мне приснился сон, в котором я не мог решить задачу и мучился. Задача состояла в том, чтобы уравновесить весы при помощи металлических шариков. Но все шарики имели различный вес: я не смог найти и двух одинаковых среди всей россыпи. И вот я подбирал шарики, но весы так и не уравновешивались. Я проснулся с чувством, что не доделал какое-то важное дело, про которое никак не мог вспомнить.

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

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

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

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

Я взял блокнот и выписал в порядке уменьшения частоты встречаемости все символы русского алфавита, начиная с пробела. Затем я разделил полученный ряд на две части, чтобы в каждой из них сумма частот равнялась примерно 50 %. Точно разделить не получилось, получилось вот так:

После этого я нарисовал первый уровень дерева выбора. Левая ветвь обозначала те символы, которые лежат слева от разделительной черты, а правая, соответственно, правые. Левую ветвь я обозначил символом «0», а правую – символом «1».

Затем каждую половину символов я разделил ещё на две части так, чтобы сумма частот каждой равнялась примерно 25 %. Сделать это точно оказалось ещё сложнее, так что получилось так, как получилось:

Я продолжал делить множества символов снова и снова пополам, чтобы при каждом делении получались два новых множества примерно с одинаковой суммой частот. К моему удивлению, множества, расположенные левее, быстро закончились, то есть я дошёл до отдельных символов. А вот множества с правой стороны делились несколько дольше. Соответственно, дерево выбора получилось не равномерным и симметричным, а скособоченным на правую сторону.

После этого пришло время собрать коды для каждого символа. Получилась вот такая таблица:





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

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

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



Прошло три дня с того моего странного сна. Сегодня должен был вернуться папа. Я прямо с утра был в нетерпении и ничего не мог с собой сделать: постоянно смотрел на дорогу, ездил на велосипеде на край села и смотрел вдаль. Но отец не появлялся.

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

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

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

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

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

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

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

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

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

– Это потому, что у вас не было под рукой телеграфа. Если бы попробовали отправлять сообщения при помощи этого нового кода, то сразу поняли бы.

– И все-таки расскажи, пожалуйста.

– Всё просто. В том коде, который я вам дал, каждая буква представлена пятью битами. А в твоём коде длина представления буквы зависит от её частоты: чем чаще, тем короче. Теперь понимаешь?

– То есть для длинных передач моим кодом надо будет меньше раз жать на ключ, чем для передач твоим?

– Абсолютно верно. Давай попробуем. У Кати есть копия этого кода?

– Должна быть, она перерисовала его себе.

– Тогда включай телеграф и вызывай её.

Прежде всего я закодировал при помощи нового кода сообщение: «КАТЯ ПРИЕЗЖАЙ ПАПА РАССКАЖЕТ НОВУЮ ТЕМУ». Получилось довольно длинно и необычно. Я включил телеграф и передал сигнал начала сессии. Пять минут не было никакого ответа, и тогда я снова передал этот сигнал. На этот раз ответ пришёл через две минут. Что ж, алгоритм установки сессии работал.

Я передал подготовленный шифр и стал ждать. В ответ пришло сообщение: «01101 01000 10111 00101 00011 01110 01101 00101 01111 01110 01101 01000 01100 00000 11110», что соответствовало тексту «НИЧЕГО НЕ ПОНИМАЮ». Тогда я передал обычным кодом: «ИСПОЛЬЗУЙ НОВЫЙ КОД». Через какое-то время пришло сообщение: «0100 11001 11010 11111100 11001 0110 1000 0100», что при декодировании новым кодом значило «ЕДУ ЖДИТЕ».

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

Папа рассказывал:

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

Папа расхаживал из стороны в сторону:

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

Затем он взял мой блокнот и раскрыл его на той странице, где был записан придуманный мною код. Отец продолжил свой рассказ:

– То, что вы придумали, впервые было разработано Клодом Шенноном. Другой учёный, Роберт Фано, создал то же самое независимо от Шеннона, поэтому код носит двойное имя: Шеннона – Фано. Этот код – сжимающий и, как вы сами поняли, он основан на частотности символов: чем чаще встречается символ, тем короче его код. Но он также префиксный, то есть ни один код символа не является началом другого, и это свойство удобно использовать при декодировании. Можно посылать поток символов без разделения, а отделять для декодирования надо начальные биты последовательности, и это произойдёт однозначно. Давайте попробуем сделать это с какой-нибудь фразой.

Папа быстро написал на чистом листке последовательность бит без разделителей: 01100111111111100001101011000010110000110101110101. Но действительно, её декодирование было простым и однозначным. Мы с Катей закончили работу над этим упражнением практически одновременно. Тогда папа продолжил:

– Наверняка, когда вы считали частоты и их суммы, вы столкнулись с тем, что разделить пополам сумму частот было трудно. Суммы всё больше и больше не совпадали. Поэтому-то код Шеннона – Фано не считается оптимальным. Давайте я научу вас другому коду, у которого нет такого недостатка.


Страницы книги >> Предыдущая | 1 2 3 4 | Следующая
  • 0 Оценок: 0

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации