...И мир загадочный за занавесом цифр. Цифровая связь — страница 6 из 50

"Начинку" робота составляли главный компьютер и 50 управляемых им микрокомпьютеров, ведающих всеми суставами и пальцами. Но ведь любой компьютер - и микроминиатюрный, занимающий всего один кристалл, и гигантский, размещаемый в большом зале, - оперирует только с двоичными цифрами. Значит, и интеллектуальные роботы (а среди них и шахматисты, и штангисты, и няньки для детей, и даже актеры) "предпочитают" пользоваться двоичными цифрами.

Но, что самое удивительное, робот-музыкант, "зная" только цифры 0 и 1, способен читать нотную запись, понимать человеческую речь и отвечать осмысленными фразами. Как все это происходит? Какими "магическими" свойствами обладают цифры 0 и 1, позволяющие выразить и нотную запись, и человеческую речь, и звуки бессмертной музыки? Об этом и пойдет речь в следующих главах. 

Искусство шифрования

Варкалось. Хливкие шорьки

Пырялись по наве.

И хрюкотали зелюки.

Как мюмзики в мове.

Л. Kэролл


Это строки стихотворения "Бармаглот" из знакомой всем веселой детской книжки "Алиса в Зазеркалье". Если предложить разным людям "распознать", какую конкретную информацию несут в себе эти строки, то вариантов будет столько, сколько и людей, пытающихся их расшифровать. В них не заложено никакого смысла! Это знаменитые "Джабберуокки" (что-то вроде бессмыслицы) — математика и логика Льюиса Кэрролла.

А вот такая фраза:

аеефикцыге рмчии,

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

Правило перестановки может быть, конечно, любым. Однако, чтобы прочесть исходный текст, нужно сделать правило легко запоминаемым. Мы осуществили перестановку следующим образом. Сначала записали шифруемый текст в квадратную таблицу под ключевым словом "шифр":



Затем пронумеровали столбцы в соответствии с очередностью появления букв слова "шифр" в алфавите (например, буква "и" идет по алфавиту раньше буквы "р" и остальных букв слова "шифр", поэтому второму столбцу присвоен номер 1, четвертому — номер 2 и т. д.). И наконец, переписали буквы всех столбцов в соответствии с присвоенными номерами,т. е. сначала буквы столбца под номером 1, затем под номером 2 и т. д. Читатели из интереса могут придумать какой-нибудь другой способ шифровки.

Способы буквенного шифрования текстов (или еще говорят "кодирования") известны очень давно. Так, знаменитый в истории римский диктатор Гай Юлий Цезарь для тайной переписки со своими сторонниками среди римских политиков применял такой способ кодирования: сдвигал весь алфавит на определенное число букв влево или вправо. Если каждую букву текста "Магические цифры" заменить предшествующей буквой алфавита (при этом букве "а" предшествует буква "я"), то получится фраза

лявзцдризд хзупъ,

зашифрованная кодом Цезаря.

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

Попробуйте расшифровать следующую запись:

301 033 020 016 052 402 163 502 230 403.

Вы, наверное, уже догадались, что приведенным набором цифр представлена все та же фраза "Магические цифры". Цифровой ее код получен так. Буквы русского алфавита были расположены в прямоугольной таблице 4x8 произвольным образом:



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

На первый раз, думаем, это удалось.

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

По-видимому, одним из первых, кто понял это, был Фрэнсис Бэкон — лорд-канцлер Англии, барон Веруламский и виконт Сент-Обланский.

Ф. Бэкон являлся не только высшим должностным лицом в английском государстве XVII в. Потомкам он больше известен как родоначальник английского материализма, оказавший огромное влияние на развитие науки и философии. Его перу принадлежат бессмертные страницы философских трудов "Новый органон" и "О принципах и началах", в которых звучит гимн всепобеждающей мощи разума, но одновременно описываются "враги" разума — "идолы" (или "призраки рода", "пещеры", "рынка", "театра"), приводящие его к заблуждению.


Но вернемся к проблеме шифрования. Так вот, лорд и философ Ф. Бэкон был первым, кто понял, что для кодирования любых текстов достаточно… двух символов. Все гениальное просто, нужно только догадаться. Бэкон занимался проблемами криптографии (тайнописи) и использовал в своих шифрах двоичный код. В коде Ф. Бэкона каждая буква заменялась кодовым словом, составленным комбинацией из пяти символов 0 и L: например, буква "р" заменялась словом 0L0L0, буква "т" — словом LL00L. Этот код уместно называть 5-разрядным двоичным кодом, а комбинацию символов 0 и L типа LL00L — 5-разрядным кодовым словом.

Нам неизвестна таблица кодов Бэкона, но мы можем сами, раз принцип известен, придумать какой-либо двоичный код.

Давайте в последней таблице, с помощью которой кодировали фразу "Магические цифры" (см. с. 31), десятичные номера строк и столбцов запишем в двоичной системе счисления:



Будем, как и раньше, заменять буквы номерами строк и столбцов, на пересечении которых они стоят, но номерами, представленными двоичными числами. Тогда буквенный текст "Магические цифры" в 5-разрядном двоичном коде примет следующий вид:



Еще раз обращаем ваше внимание на то, что буквы в таблице размещены произвольно, порядок нумерации строк и столбцов также может быть каким угодно. Поэтому можно придумать множество кодов, отображающих буквы выбранного алфавита 5-разрядной комбинацией цифр 0 и 1. Такую комбинацию будем называть, как и в коде Бэкона, двоичным кодовым словом. К примеру, букве "м" соответствует двоичное кодовое слово 11000.

Важно другое. Если двоичное кодовое слово состоит из пяти разрядов (т. е. содержит пять бит), то всевозможных комбинаций цифр 0 и 1 в таком слове будет 25 = 32. Значит, 5-разрядными двоичными словами можно закодировать алфавит, число букв (или других знаков) которого не превышает 32. Если же исходный алфавит содержит большее число знаков, двоичные слова должны содержать большее число разрядов (бит). Так, словами из шести бит удается заменить 26 = 64 буквы и знака; словами, содержащими семь бит, — 2 7 = 128 букв и знаков; словами из восьми бит — 28 = 256 букв и знаков и т. д.

В десятом томе "Всеобщей истории" древнегреческого историка Полибия (ок. 201–120 гг. до н. э.) описан способ передачи сообщений на расстояние с помощью факелов (факельный телеграф[1]), изобретенный александрийскими учеными Клеоксеном и Демоклитом. Попробуем, не вникая в суть описанного Полибием изобретения, сами построить факельную систему передачи сообщений.

Имеющиеся в нашем распоряжении световые сигналы не отличаются разнообразием: горящий факел может быть поднят для передачи сообщения вверх или опущен вниз и спрятан за укрытие. Таким образом, налицо всего два состояния — 1, когда горящий факел поднят для передачи сообщения, и 0, когда он опущен. В греческом алфавите 24 буквы. Чтобы представить эти буквы двоичным кодом, потребуется пять разрядов (бит), так как 24 = 16, а 25 =32. А это значит, что для технической реализации системы передачи сообщений нам понадобятся пять факелов. Составим кодовую таблицу:



Чтобы яснее различать, когда факелы подняты, а когда убраны, спроектируем стену с зубцами, между которыми имеется пять промежутков (проемов). В промежутки будут вставляться горящие факелы в соответствии с двоичным кодом.

Допустим, нам надо передать слово ОМЕГА (так называется буква Q греческого алфавита). Каждой последовательно "зажигаемой" букве будет соответствовать определенная 5-разрядная двоичная комбинация:



Это означает, что при передаче буквы О горящие факелы должны быть выставлены в первом и четвертом промежутках стены, буквы М — во втором, третьем и пятом промежутках и, наконец, буквы Е — только в третьем, а буквы Г — только в четвергом промежутках. При передаче же буквы А ни один из факелов не должен выставляться.

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

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



Передача каждой буквы у Клеоксена и Демоклита осуществлялась двумя 5-разрядными двоичными словами. Например, код слова ОМЕГА имел бы в этой системе вид:



Почему александрийцы выбрали именно такой код? Ведь для технической реализации этой системы кодирования приходилось строить две (а не одну, как у нас) стены с зубцами. Да только потому, что количество факелов на одной из стен сразу же указывало номер строки, а количество факелов на другой стене — номер столбца таблицы, на пересечении которых стояла буква. Факельный телеграф, изобретенный александрийскими учеными Клеоксеном и Демоклитом и описанный греческим историком Полибием, использовался без существенных изменений на протяжении многих веков. В Рим