Коды и их назначение

adm  •  15 April, 2008

К шифрам не относятся и коды - системы условных обозначений или названий, применяемых при передаче информации в дипломатии, коммерции и военном деле. Кодирование часто применяется для повышения качества передачи.
Хорошо известны и широко используются коды, исправляющие ошибки при передаче сообщений по каналам связи или хранении данных в памяти ЭВМ. Так, код Хемминга хорошо себя зарекомендовал себя в аппаратуре оперативной памяти ЭВМ СМ-4. Другой многочисленный класс кодов представлен средствами сжатия данных, наподобие программ архивации ARC, ARJ, ICE, ZIP и сжатия дисков на IBM PC. Употребление этих кодов вызвано не секретностью, а стремлением сэкономить на стоимости передачи или хранения сообщения. Файлы текстов, изображений и программ содержат информацию с сильно отличающимися свойствами и программы их кодирования должны быть разными. Если архиватор хорошо сжимает текст, вовсе не значит, что он так же хорош для сжатия изображений или других данных.
Для текстовых файлов чаще других употребляется кодировка Хаффмена, заключающаяся в том, что символы текста заменяются цепочками бит разной длины. Чем чаще символ, тем короче обозначающая его цепочка. Рассмотрим пример кодирования Хаффмена текста МАМА МЫЛА РАМЫ с такой таблицей кодирования:

СИМВОЛ ЧИСЛО В ТЕКСТЕ КОД
А 4 00
М 4 01
пробел 2 100
Ы 2 101
Р 1 110
Л 1 111

Получим сообщение: 0100010010001101111001001100001101

Легко теперь подсчитать, что поскольку исходный текст состоит из 14 символов, то при кодировке ASCII он занимает 112 бит, в то время как кодированный по Хаффмену лишь 34 бита. При кодировании Лемпела и Зива, представляющим собой развитие метода Хаффмена, кодируются не символы, а часто встречаемые последовательности бит вроде слов и отдельных фраз. Текстовые файлы сжимаются в 2-3 раза, но очень плохо, всего лишь на 10-15% сжимаются программы. Нередко используют готовые кодовые таблицы, так как статистические свойства языка сообщения обычно хорошо известны и довольно устойчивы.

Несколько особняком стоит сжатие звуковой информации, расширяющее мультимедийные возможности аппаратуры и программ. Кодирование Лемпела и Зива сжимает объем звуковой информации всего лишь на 10%. Несомненно, что для более эффективного ее уплотнения нужны специальные алгоритмы, учитывающие физическую природу звука. Практически все алгоритмы кодирования звуковой информации используют два основных приема: кодирование пауз между отдельными звуками и дельта-модуляцию. При записи человеческого голоса важнее кодирование пауз, так как не только фразы, но и слова разделены достаточно длительными перерывами. Эффективность такого кодирования может быть очень высока, но платить за нее приходится потерей четкости высоких коротких звуков, например, С и Ц. Это легко наблюдать при передаче естественной речи по голосовому модему. А вот дельта-модуляция чаще применяется для качественной записи музыки и очень; похожа на замену представления чисел в формате фиксированной точки на формат с плавающей запятой. Потери от нее выражаются в некоторой приглушенности звуков, но мало искажаются тона.

Однако самая большая работа по кодированию ведется над изображениями, скажем, при передаче факсов. Если бы образ стандартного машинописного листа формата А4 не был бы сжат, то его передача даже при низком разрешении заняла около часа. В самых распространенных факсах, принадлежащих группе III по классификации Международного консультативного комитета по телеграфии и телефонии, использованы фиксированные таблицы кодировки. Похожую схему кодирования дает хорошо известный формат представления графических файлов PCX. В нем очередной байт кода может означать либо счетчик повторений, если он начинается битами 11, либо байтом точек исходного изображения. Число повторений задается младшими 6 битами байта повторения, то есть имеет значение до 63. Изображение чистого листа бумаги при этом будет сжато больше чем в 30 раз. Более сложные схемы сжатия дают форматы обмена и хранения графической информации GIF и TIF. Они кодируют уже не строки точек изображения, а полоски строк и тем самым достигают большего сжатия. Следует предостеречь читателей от попыток сжатия любой информации с помощью программ. оперирующих с изображениями. Ряд алгоритмы эффективного сжатия изображений, вроде JPEG могут искажать информацию, что почти незаметш в изображениях, но фатально для программ и числовых данных. Именно за счет некоторой "чистки" исходного сообщения JPEG удается достигать сжатия в 100 раз и больше. Без сжимающего объем сообщения кодирования невозможно было создать и приобретающий все большую популярность видеотелефон. Для использования в нем МККТТ( (MKKTT - международный консультативный комитет по телеграфии и телефонии.) рекомендовал стандарт Н.261 - первую систему сжатия изображения.

Порой возникают затруднения в пересылке программ, ключей, шифротекста и других бинарных файлов по системам связи, допускающим лишь текстовые сообщения, например, в почте UNIX. Для этого файлы превращают в текст формата RADIX-50. Шифровку разбивают на группы по 3 байта из которых формируют 4 группы по 6 бит. Каждую группу из 6 бит, принимающую значения от 0 до 63, превращают в печатный символ ASCII по следующей таблице:

значение 0 1 2-11 12-37 38-63
символы + / 0-9 A-Z a-z

Это увеличивает длину бинарного сообщения лишь на треть, в то время как привычная для программистов шестнадцатеричная запись удваивает его. Так, слово МОСКВА дает код AuMY886U. Если длина сообщения не кратна 3, то при кодировании в конец его добавляют нули. Точную длину сообщения приходится приписывать в конце. Вот как выгладит открытый пароль Филиппа Циммермана, переданный по Интернет в коде RADIX-64:

-----BEGIN PGP MESSAGE-----
Version: 2.6

iQBVAgUALeF27VUFZvpNDE7hAQFBFAH/Y
OQ52xOCH5yKSG/HgSV+N52HSm21zFEw
Ocu5LDhYxmOILr7Ab/KdxVA6LMIou2wKtyo.
ZVbYWXPCvhNXGDg7 4Mw==
=wstv

-----END PGP MESSAGE-----

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

Молчит придурок адъютант, молчит штабная свита,
В свои блокноты странный текст все пишут деловито.
От смеха давятся они, читая с постной миной:
"Не вздумай с Бэнгзом танцевать -
распутней нет мужчины!"

Первый коммерческий код для уменьшения длины и стоимости телеграмм ввел в 1845 году Френсис Смит, компаньон Морзе. В конце XIX века Клаузен первым предложил для этой цели код АВС, a Маркони несколько позже первый многоязычный код. Сейчас аналогичных кодов тьма-тьмущая и все они представляют собой замену отдельных слов или фраз группами цифр или букв. Традиционно связисты, а не только шпионы, для этого обычно используют пятизначные группы букв или цифр, так как группы проще записывать. Широко применяется по настоящее время в связи и "Международный свод сигналов", который последний раз был пересмотрен в 1969 году. Хотя криптологи различают шифры и коды, потому что для практических работ это разные системы, но коды представляют собой шифр простой замены слов. Обычно кодовые таблицы состоят из словаря, где каждому слову присвоен кодовый эквивалент. Фактически требуются две кодовые таблицы. Для кодирования применяется таблица алфавитно упорядоченная по словам, а для декодирования алфавитно упорядочивают коды - иначе поиск в таблице становится необычайно трудоемким. Для применяющегося в коммерции телеграфного кода Маркони на английском языке начала этих таблиц выглядят так:

Таблица кодирования Таблица декодирования
VANOL A, an ABABA It is hoped
LANEX Abandon-ing-s ABACA Assignment
STUGH Abandoned ABBCO Shipped
TBYNT Abate-ing-s ACAYT As to
RIZLB Abated ACDZR Terminated

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

Коды часто похожи на шифры и это обстоятельство породило массу курьезных случаев. До революции был сорван шахматный турнир по переписке Петербург-Москва, так как непонятные жандармам почтовые карточки со знаками записи ходов перехватывались до тех пор, пока не попали начальнику, наложившему резолюцию: "Шахматы-с!" Не исключено, что среди репрессированных в советское время было немало любителей игры на гитаре, пытавшихся вести запись своих произведений необычным для музыкантов цифровым методом. Любопытно, каким образом могло НКВД отреагировать на срочную телеграмму за рубеж такого содержания: SER VAL MET LYS ARG ARG PHE LEU. Удалось бы доказать подозреваемому в шпионаже, что в телеграмме дан ряд аминокислот в сердечной мышце свиньи? Да и обнаруженный при аресте в записной книжке Н. И. Вавилова текст K3C7AO+3G5 вряд ли был бы воспринят следователем за формулу строения цветка. Интересно упомянуть о телефонном коде, применяемом некоторыми зарубежными фирмами. Так, встретив, номер телефона технической службы (1)206-DID-DEMA, не надо смущаться - это телефон корпорации Aldus в Сиэтле. Кодовая таблица соответствия букв цифрам здесь такая:

1 2 3 4 5 6 7 8 9
АВС DEF GHI JKL MNO PRS TUV WXY

Поэтому номер телефона корпорации 343-3362. Хотя, увидев на рекламном щите телефон предварительных заказов ночного клуба GUE-STS-ONLY, не пытайтесь набирать 483-787-6659, а просто переведите с английского: "только для приглашенных". Эта запись в рекламе означает, что заказы принимаются по телефону, указанному в пригласительном или членском билете.
Надеюсь, читатели поймут сообщение "Женя Дмитрий Ульяна Борис Ольга Роберт Игорь Света", принятое по плохо работавшему телефону. Хотя моряки говорили бы при этом так: "Живете Добро Ухо Буки Он Рцы Иже Слово" или "Juliet Delta Uniform Bravo Oscar Romeo India Sierra". Такое кодирование называется акрокодом (Akro - по-гречески край. первые буквы слов или строк.). А телеграфное сообщение: "Железная дорога уведомлена. Буду обмер работ исполнять сам" представляет собой особый код, вводящий неосведомленного получателя в заблуждение. Если читать только первые буквы слов. то получится скрытое сообщение "ЖДУ Борис". Одна армейская газета в начале шестидесятых годов к революционному празднику опубликовала стихотворение, начинающееся словами "Хвала тебе." и последующим официозным содержанием. И что же? Редактор был немедленно уволен, тираж газеты изъят из читалок и библиотек, а вот автора найти не удалось. Первые буквы строк стихов складывались нелестную для главы государства Хрущева фразу. Никите Сергеевичу не повезло и с инициалами - акрокодом имени и отчества. Произнесенные по-английски его инициалы NS на слух сильно напоминают слово an ass - осел. Поэтому для именования этого политика в прессе, употреблялось лишь режущее отечественные уши фамильярное обращение - Никита Хрущев.

Несомненно, что коды могут служить и для сокрытия смысла сообщений. Вспомним, в 1936 году сообщение "Над всей Испанией ясное небо" отнюдь не предвещало безоблачной погоды, а послужило кодовым сигналом начала гражданской войны. Однако область применения кодирования для сокрытия смысла ограничена одиночными сообщениями. Румынская разведка сигуранца могла читать в двадцатые годы радиограммы РККА лишь потому, что кодовые таблицы не менялись, пока не протирались до дыр. Краткое кодированное сообщение, не имея ключа в виде кодовых таблиц, вскрыть очень трудно, а то и невозможно. Практическое использование кодов стратегической авиацией США иллюстрируют кадры кинофильма "Доктор Стренджлав", когда пилот стратегического бомбардировщика, приняв радиограмму из группы цифр, достал секретную кодовую таблицу из сейфа и нашел там содержание приказа: ядерный удар по СССР.

Комментарии

Нет комментариев. Вы можете быть первым!

Оставить комментарий


Warning: Parameter 1 to NP_Captcha::event_FormExtra() expected to be a reference, value given in /home/bh52645/public_html/hacktheplanet.ru/nucleus/libs/MANAGER.php on line 370