Исторические термины

Исторически термин код относится к криптосистеме, связанной с лингвистическими единицами: словами, фразами, предложениями и так далее. Например, слово "ОЦЕЛОТ" может кодировать целую фразу "ПОВОРОТ НАЛЕВО НА 90 ГРАДУСОВ", слово "ЛЕДЕНЕЦ" - фразу "ПОВОРОТ НАПРАВО НА 90 ГРАДУСОВ", а слова "ПОДСТАВЬ УХО" могут кодировать слово "ГАУБИЦА". Коды такого типа не рассматриваются в данной кн и-ге, см. [794,795]. Коды полезны только при определенных обстоятельствах. Если у вас нет кода для "МУРАВЬЕДЫ", вы не сможете передать это понятие. А используя шифр можно сказать все.

1.2 Стеганография

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

Ближе к сегодняшнему дню люди начали прятать секреты в графических изображениях, заменяя младший значащий бит изображения битом сообщения. Графическое изображение при этом менялось совсем незаметно -большинство графических стандартов определяют больше цветовых градаций, чем способен различить челов е-ческий глаз - и сообщение извлекалось на противоположном конце . Так в черно-белой картинке 1024x1024 пик­села можно спрятать можно спрятать сообщение в 64 Кбайт. Многие общедоступные программы могут проде­лывать подобный фокус.

Имитационные функцииПитера Уэйнера (Peter Wayner) маскируют сообщения. Эти функции изменяют сообщение так, что его статистический профиль становится похожим на что-нибудь еще: раздел The New York


Times, а пьесу Шекспира или телеконференцию в Internet [1584,1585]. Этот тип стеганографии не одурачит че­ловека, но может обмануть большой компьютер, ищущий нужную информацию в Internet.

1.3 Подстановочные и перестановочные шифры

До появления компьютеров криптография состояла из алгоритмов на символьной основе . Различные крипто­графические алгоритмы либо заменяли одни символы другими, либо переставляли символы. Лучшие алгоритмы делали и то, и другое, и по много раз.

Сегодня все значительно сложнее, но философия остается прежней. Первое изменение заключается в том, что алгоритмы стали работать с битами, а не символами. Это важно хотя бы с точки зрения размера алфавита -с 26 элементов до двух. Большинство хороших криптографических алгоритмов до сих пор комбинирует подст а-новки и перестановки.

Подстановочные шифры

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

Простой подстановочный шифрили моноалфавитный шифр,- это шифр, который каждый символ открытого текста заменяет соответствующим символом шифротекста . Простыми подстановочными шиф­рами являются криптограммы в газетах.

Однозвучный подстановочный шифрпохож на простую подстановочную криптосистему за исключ е-нием того, что один символ открытого текста отображается на несколько символов шифротекста . Напри­мер, "А" может соответствовать 5, 13, 25 или 56, "В" - 7, 19, 31 или 42 и так далее.

Полиграмный подстановочный шифр- это шифр, который блоки символов шифрует по группам. На­пример, "ABA" может соответствовать "RTQ", "ABB" может соответствовать "SLL" и так далее.

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

Знаменитый шифр Цезаря,в котором каждый символ открытого текста заменяется символом, находящег о-ся тремя символами правее по модулю 26 ("А" заменяется на "D," "В" - на "Е", ... "W" - на " Z ", "X" - на "А", "Y" - на "В", "Z" - на "С"), представляет собой простой подстановочный фильтр . Он действительно очень прост, так как алфавит шифротекста представляет собой смещенный, а не случайно распределенный алфавит открыт о-го текста.

ROTI3 - это простая шифровальная программа, обычно поставляемая с системами UNIX. Она также являет­ся простым подстановочным шифром. В этом шифре "А" заменяется на "N," "В" - на "О" и так далее. Каждая буква смещается на 13 мест. Шифрование файла программой ROTI3 дважды восстанавливает первоначальный файл.

P = ROT13 (ROT13 (P))

ROTI3 не используется для безопасности, она часто применяется в почте, закрывая потенциально неприя т-ный текст, решение головоломки и тому подобное.

Простые подстановочные шифры легко раскрываются, так как шифр не прячет частоты использования ра з-личных символов в открытом тексте. Чтобы восстановить открытый текст, хорошему криптоаналитику требуе т-ся только знать 26 символов английского алфавита [1434]. Алгоритм вскрытия таких шифров можно найти в [578, 587, 1600, 78, 1475, 1236, 880]. Хороший компьютерный алгоритм приведен в [703].

Однозвучные подстановочные шифры использовались уже в 1401 году в герцогстве Мантуа [794]. Они более сложны для вскрытия, чем простые подстановочные шифры, хотя и они не скрывают всех статистических свойств языка открытого текста. При помощи вскрытия с известным открытым текстом эти шифры раскрыв а-ются тривиально. Вскрытие с использованием только шифротекста более трудоемко, но и оно занимает на ко м-пьютере лишь несколько секунд. Подробности приведены в [1261].

Полиграмные подстановочные шифры - это шифры, которые кодируют сразу группы символов . Шифр Play-fair ("Честная игра"), изобретенный в 1854 году, использовался англичанами в Первой мировой войне [794]. Он шифрует пары символов, и его криптоанализ обсуждается в [587,1475,880]. Другим примером полиграмного подстановочного шифра является шифр Хилла (Hill) [732]. Иногда можно видеть как вместо шифра использует­ся кодирование по Хаффману (Huffman), это небезопасный полиграмный подстановочный шифр .

Полиалфавитные подстановочные шифры были изобретены Лином Баттистой (Lean Battista) в 1568 году


[794]. Они использовались армией Соединенных Штатов в ходе Гражданской войны в Америке . Несмотря на то, что они легко могут быть взломаны [819, 577, 587, 794] (особенно с помощью компьютеров), многие ком­мерческие продукты компьютерной безопасности используют такие шифры [1387,1390, 1502]. (Подробности того, как вскрыть эту схему шифрования, используемую программой WordPerfect, можно найти в [135,139].) Шифр Вигенера (Vigenere), впервые опубликованный в 1586 году, и шифр Бофора (Beaufort) также являются примерами полиалфавитных подстановочных шифров.

У полиалфавитных подстановочных шифров множественные однобуквенные ключи, каждый из которых и с-пользуется для шифрования одного символа открытого текста. Первым ключом шифруется первый символ от­крытого текста, вторым ключом - второй символ, и так далее. После использования всех ключей они повторя­ются циклически. Если применяется 20 однобуквенных ключей, то каждая двадцатая буква шифруется тем же ключом. Этот параметр называется периодомшифра. В классической криптографии шифры с длинным перио­дом было труднее раскрыть, чем шифры с коротким периодом. Использование компьютеров позволяет легко раскрыть подстановочные шифры с очень длинным периодом.

Шифр с бегущим ключом(иногда называемый книжным шифром), использующий один текст для шифр о-вания другого текста, представляет собой другой пример подобного шифра. И хотя период этого шифра равен длине текста, он также может быть легко взломан [576,794].