Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Жельников Владимиp Кpиптогpафия от папиpуса до компьютеpа .doc
Скачиваний:
77
Добавлен:
20.05.2014
Размер:
1.53 Mб
Скачать

1. Текст и шифр лишь кажутся независимыми, по-

тому что имеются детерминированные алгорит-

мы, отображающие их друг в друге - шифрова-

ния и расшифрования. Однако, предположив

независимость текста и его шифровки, пытаются

ее опровергнуть, беря пары выборок {текст,

шифр} и вычисляя их статистику. Так можно

заменить криптографическую стойкость шифра

на статистическую безопасность и считать, что

шифр статистически безопасен, если пары вы-

борок {текст, шифр} статистически независимы.

Одно из испытаний заключается в установлении

статистической связи изменения шифровки при

изменении символов и бит в исходном тексте

или ключе. Это испытание дает меру "эффекта

размножения" ошибок в шифре, который счита-

ется хорошим лишь в том случае, если малей-

шие изменения исходного текста или ключа вле-

кут большие изменения шифровки. Смысл такого

рода тестов состоит в том, что безопасная система

обязательно безопасна и статистически.

2. Статистические испытания являются единствен-

ной стратегией испытаний больших криптогра-

фических систем с секретным ключом, постро-

енных в виде чередующихся слоев блоков заме-

ны и перестановок, как блоки вносящие нели-

нейность в системах Lucifer и DES. Это объяс-

няется трудностью составления уравнений, свя-

зывающих вход и выход системы, которые мож-

но было бы решать другими методами. В крип-

тографических системах, не имеющих таких бло-

ков, например, в системах RSA и ЭльГамаля,

уравнения, связывающие вход и выход, являют-

ся частью самой криптографической системы,

поэтому легче сосредоточить внимание на ана-

лизе этих уравнений.

3. Статистические проверки являются, пожалуй,

единственным общим и быстрым методом выяв-

ления плохих шифров. Вместо того, чтобы тра-

тить много времени на их аналитическую про-

верку, чтобы в конце концов убедиться в том,

что они не стойкие криптографически, с помо-

щью статистики можно быстро определить, за-

служивает ли эта система дальнейшей проверки.

Так, алгоритм FEAL-4 был сначала вскрыт

обычным методом криптоанализа, и независимо

от этого было показано, что он является стати-

стически слабым.

Важное значение для статистических испытаний имеет

случайность текста шифровки конечной длины. Практическую меру

случайности такой последовательности ввели Лемпел и Зив, авторы

общеупотребимого алгоритма сжатия данных, применяемого во всех

архиваторах IBM PC. Она указывает, на сколько можно сжать

последовательность при использовании алгоритма Лемпела-Зива.

Практически, если текст шифровки сжимается одним из архиваторов

больше, чем на 10%, то шифровальная система очевидно не

состоятельна. Если сжатие шифра оказалось меньше этой величины,

то... все может быть. Отметим, что алгоритмам архивирования

удается сжимать даже случайные последовательности символов, хотя

сжатие в этом случае не превышает единиц процентов. Столь

пространное описание статистического подхода к криптоанализу дано

потому, что в этой главе ему будет уделено мало внимания, а

вскрытие шифров будет показано лишь с точки зрения аналитического

подхода. Итак, рассмотрим наиболее употребительные виды атак на

некоторые известные уже шифры.

Вскрытие шифров перестановки

Сначала возьмем тот пример шифровки двойной перестановки, что

изложен выше. Пусть имеется шифровка АЗЮЖЕ СШГГООИПЕР, которая

так укладывается в таблицу 4 х 4:

1 2 3 4

1 A З Ю Ж

2 E С Ш

3 Г T О О

4 И П E P

Рассматривая маловероятные сочетания букв, легко найти

истинную последовательность столбцов. Так, сочетание ГТ в 3

строке шифровки указывает на то, что после 1 столбца вряд ли

следует 2 столбец. Рассчитаем статистически, какой столбец скорее

всего следует за 1. Для этого воспользуемся таблицей логарифмов

вероятностей биграмм русского текста, приведенной в приложении.

Вероятность следования одного столбца за другим равна

произведению вероятностей биграмм в строках этих столбцов.

Поскольку в таблице даны логарифмы биграмм, то их достаточно

суммировать, а потом выбрать сочетание столбцов с максимальной

вероятностью. Для вероятностей следования за первым столбцом 2, 3

и 4 имеем выражения:

р (1-2) =р(A3) р(Е ) р(ГТ) р(ИП)=7+9+0+5=21

р (1-3) =р(АЮ) р(ЕС) р(ГО) р(ИЕ)=6+8+8+8=30

р (1-4 )=р(АЖ) р(ЕШ) р(ГО) р(ЯР)=7+5+8+7=27

В нашем случае наиболее вероятно, что после столбца 1 следует

столбец 3. Для такой небольшой таблицы шифрования, которую имеем,

можно перебрать все варианты перестановок - их всего лишь 24. В

случае большого числа столбцов целесообразно оценить вероятности

пар сочетаний разных столбцов и решить оптимизационную задачу,

которая укажет перестановку столбцов, дающую фрагменты

естественного текста с большей вероятностью. В нашем случае

наилучший результат достигается при расстановке столбцов (2413),

что примерно вдвое по вероятностной оценке достовернее ближайшей

к ней по вероятности расстановки (4132). После того, как столбцы

шифровки расставлены, не составит труда правильно расставить и ее

строки по смыслу фрагментов текста:

2 4 1 3

1 З Ж A Ю

2 Ш E С

3 T О Г О

4 П P И E

Текст в ней уже читается и, расставив строки в порядке

(4123), получим расшифровку ПРИЕЗЖАЮ ШЕСТОГО.

Теперь обратимся к приведенному выше примеру шифра решетки:

3 Т П

О Ж Ш Р

Е И Г А

Е С Ю О

Неужели его так трудно взломать, как это утверждают некоторые

авторы математических изданий? В этой шифровке видимо содержится

2 слова, если учитывать, что она длиной 16 букв, а одно слово

русского языка содержит в среднем 7 букв и имеется пробел.

Расшифровку проще начать с биграммы СТ.

Предположение 1. Предположим, что наиболее частая биграмма в

русском языке СТ входит в одно из слов текста. Так как Т

расположена в решетке выше С, это значит, что между ними

произошел поворот решетки таким образом:

**** *Т**

**** ****

**** ****

*С** ****

0' 90'

С учетом того, что эти буквы принадлежат различным прорезям

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

**?? *Т** **П* ??** **??

**?? О*** ***Р ??** **??

Е*** **?? ??** ***А ***

*С** **?? ??** **Ю* * **

0' 90' 180' 270'

Проверим правильность этого предположения чтением, заменяя

еще не ясные буквы точками: ..ЕСТО..ПР....АЮ. Это очень похоже на

фрагменты текста. Пометив в решетке клетку буквы С цифрой 1,

обозначим с учетом поворота клетку буквы Т цифрой 2.

Предположение 2. При составлении решеток прорези обычно

размещают так, чтобы их было по одной в каждой колонке и каждом

столбце, что гарантирует хаотичное и равномерное заполнение

квадрата буквами. В этом случае имеется всего два варианта: 1234

и 123'4', изображенных на следующем макете решетки:

* * 3' 4

* * 3 4'

2 * * *

* 1 * *

Второй вариант 123'4' не подходит, так как не покрывает весь

квадрат при поворотах, и остается 1234, что дает ШЕСТОГОПРИЕЗЖАЮ.

Сообщение уже ясно, хотя расшифровка начата с неправильного

поворота решетки. С учетом этого замечания получим сообщение:

ПРИЕЗЖАЮ ШЕСТОГО.

Реальные шифры этого типа вскрываются еще проще. При

поворотах происходят заметные смещения решетки по месту, которые

весьма помогают при анализе выделить буквы, относящиеся к одному

повороту. Выделив буквы, смещенные в одном направлении, получают

прорезанные клетки трафарета. Если же текст сообщения имеет

достаточно большую длину, то задача вскрытия шифра решетки резко

упрощается из-за этой особенности. Использование ЭВМ для

реконструкции решетки по вероятностям чередования букв в тексте

позволяет полностью автоматизировать этот увлекательный процесс

логического анализа. Однако наилучшая атака на этот шифр

получается, если отгадывать вероятное слово текста, как ПРИБУДУ,

ПРИЕДУ, ПРИБЫВАЮ, ПРИЛЕТАЮ, ПРИЛЕЧУ и тому подобное, так как

обычно лексика сообщения примерно известна.

Вскрытие шифра простой замены

Разберем пример В. Никонова, опубликованный в журнале 9

"Наука и жизнь" за 1981 год, заменив использованные автором

графические символы шифровки на привычные русские буквы. Итак, на

доске объявлений некого учреждения, название которого популярный

журнал не сообщил, появилась следующая надпись:

ТБПО ЩИЧЧЖ ЛНИЬЕЭФЭЕЭВЬ ЭКМНИО ИЩЩСКИЬОЭ

СФБИТЬЛИЬШ ТБПОЧЩЬП ЛНОЭЧЖ Ь ЧЛЭПЛКПЕПООЭ

ЛЭНЛКИВИЫП ФЭБСТПООЖП ЬН ЩИЧЧЖ ЧЧСУЖ

Несомненно, что это шифр. Каков же его тип? Это не может быть

шифр перестановки, так как в шифровке четко проглядываются слова

с регулярными окончаниями чж, иыи, оэ. Частоты встречи различных

знаков шифровки явно неодинаковы. Знаки ч, и, э встречаются раз

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

в многоалфавитных шифрах, имеющих близкие вероятности знаков.

Естественно предположить, что применен шифр простой замены.

Читатели помнят, как герой рассказа Эдгара По "Золотой жук"

Легран, анализируя записку о кладе, оставленном пиратами,

обнаружил, что в ней наиболее часто, 7 раз, встречалось сочетание

трех символов. Для английского языка это мог быть лишь

определенный артикль THE (Хемингуэй иногда не реже, чем THE,

использовал союз AND, что отвечало литературной задаче описать

монотонность будней). У Лермонтова же наиболее часто используемое

слово очень коротко - Я.

С чего следует начать расшифровывание? Несомненно, с

установления отправителя и получателя сообщения. Вспомним

рассуждения Холмса из "Пляшущих человечков", который сразу же

отождествил смешную надпись с шифровкой. Что в этой надписи могло

напугать героиню, угроза? Представим, что она прочла текст:

"Готовься к смерти". Не правда ли, такое неприятное сообщение

слишком абстрактно, чтобы заставить ужаснуться спокойного

волевого человека: кто должен готовиться и к чьей смерти? Поэтому

решил Холмс, героиню напугало собственное имя и начал расшифровку

отождествлением слова "Илей" с первыми четырьмя человечками.

Зачастую, кроме имени получателя сообщения содержат еще и имя

отправителя, как это принято в телеграммах: "Приезжаю шестого.

Мама." У нашей шифровки была приписка: "Граждане, ознакомившиеся,

запомнившие и исполнившие, принимаются ежедневно и без

ограничений. Местком." Из нее ясен отправитель - местком. Поэтому

шифрованный текст может не содержать его названия. Получатель все

же должен быть доуточнен, как обращение: "всем садоводам..." или

"члены кружка...". Однако это - слишком легкий путь. и

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

используя его имя, вскрыть шифр.

Предположение 1. Внимательно просматривая шифровку, можно

обнаружить интересное удвоение знака Ч в конце последнего слова и

начале последнего: щиччх ЧЧСУХ. Кажется, что этот знак весьма

похож на употребление буквы С в русском тексте, как МАССА ССЫЛОК

или ЛАССО ССУЧИЛ. Например, для буквы В не удается подобрать

хороший пример, чтобы она удваивалась в конце слов, а для буквы Н

- в начале. Отметим, что удвоение С в конце характерно для

заимствованных существительных, где перед ним стоит чаще всего

буква А. Значит, буква шифровки Ч соответствует в тексте С, а И

соответствует русской букве А.

Предположение 2. Другое удвоение, знака о, встречается только

в конце слов и типично для русской буквы Н. Поэтому сочетания

знаков на концах слов шифровки ОЭ и ооэ, скорее всего отвечают

русским окончаниям в сообщении НО и ННО. Если это так, то

последнее слово шифровки ЧЧСУЖ, начинающееся с СС и состоящее из

пяти букв может быть лишь одним из двух слов - ССУДЕ или ССУДЫ,

что легко проверить по словарю. Другие варианты прочтения ССУДА,

ССОРА и тому подобные отпадают, так как буквы А иО уже разгаданы.

Предположение 3. Знак шифровки ж, стоящий в конце слова ЧЧСУЖ

встречается довольно редко, если учесть, что слово щиччж

повторяется, а одинаковое окончание последнего и предпоследнего

слов представляет собой обычное согласование слов в предложении.

Это означает, что знаку ж скорее отвечает буква Ы, чем более

часто встречаемая в русских текстах Е, а последнее слово - ССУДЫ.

Окончание сообщения ?АССЫ ССУДЫ теперь нетрудно отгадать как

КАССЫ ССУДЫ, что весьма близко к осмысленному тексту. Из отгадан-

ных букв пятое слово шифровки складывается как АККУ?А?НО, что

несомненно означает АККУРАТНО, а седьмое слово ??НОСЫ из

контекста можно понять как ВЗНОСЫ. Итак, отгадывание идет вроде

бы успешно, что подтверждается частичной расшифровкой:

???Н КАССЫ ВЗА??0?0?0?? 0??ЗАН АККУРАТ-

НО У??А??ВАТ? ???НСК?? ВЗНОСЫ ?

СВО?ВР???ННО ВОЗВРА?АТ? ?0?У??ННЫ? ?3

КАССЫ ССУДЫ

Теперь дальнейшая расшифровка не представляет особого труда и

выполняется быстро, угадыванием отдельных слов и подстановкой

выясненных букв в шифровку. В итоге получаем сообщение:

ЧЛЕН КАССЫ ВЗАИМОПОМОЩИ ОБЯЗАН

АККУРАТНО УПЛАЧИВАТЬ ЧЛЕНСКИЕ

ВЗНОСЫ И СВОЕВРЕМЕННО ВОЗВРАЩАТЬ

ПОЛУЧЕННЫЕ ИЗ КАССЫ ССУДЫ

Приведенный пример расшифровки не претендует на изящество,

поскольку представляет собой реальный протокол рассуждений

криптоаналитика без тупиковых вариантов, и показывает изнутри

процесс вскрытия шифра простой замены. Возникает вопрос:

насколько можно доверять правильности вскрытия этого шифра

простой замены?

Лучше всего на него ответить словами Архимеда из послания к

Эратосфену: "Хотя это всем вышеприведенным рассуждением и не

доказано, но все же производит впечатление, что окончательный

вывод верен".

По ряду свидетельств, опытные криптоаналитики читают такие

шифровки "с листа", потратив на это минуту-другую, что

свидетельствует о профессиональном видении структуры текста в

кажущейся мешанине букв. В этом они сильно превосходят ЭВМ,

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

достаточно большой длине сообщения больше сотни символов. Однако

и здесь ЭВМ может серьезно помочь в раскалывании шифра, например,

разделив буквы на гласные и согласные. Так как гласные и

согласные имеют тенденцию чередоваться, то можно по матрице

чередований символов разделить их на эти классы (для этого на ЭВМ

криптоаналитики традиционно используют так называемое сингулярное

разложение матрицы переходных вероятностей.) . Кроме того, можно

программно оценить вероятности принадлежности символов шифра

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

даст другую технику вскрытия этого шифра. Применение

распознавания, основанного на оценке лишь вероятностей отдельных

символов в тексте и биграмм, за 10 этапов обучения дало по

приведенной шифровке следующий текст:

ЧРЕН КАССЫ ВЗАИМОПОМОБИ ОДЯЭАН АККУЛАТНО

УПРАЧИВАТЬ ЧРЕНСКИЕ ВЫНОСЫ И СВОЕВЛЕМЕННО

ВОЗВЛАБАТЬ ПОРУЧЕННЫЕ ИЗ КАССЫ ССУШ

Получился довольно хорошо читаемый текст, хотя и за время,

превысившее ручную расшифровку (эксперимент производился в 1991

году на машине IBM PC XT 6 MHz - как это было давно!)

После корректировки написания по словарю русского языка в Word

6.0 он приобрел такой вид:

ЧЛЕН КАССЫ ВЗАИМОПОМОЩИ ОБЯЗАН АККУРАТНО

УПРОЧИВАТЬ ЧЛЕНСКИЕ ВЫНОСЫ И СВОЕВРЕМЕННО

ВОЗВРАЩАТЬ ПОРУЧЕННЫЕ ИЗ КАССЫ ССУДЫ

Машинное вскрытие шифров простой замены вряд ли в близком

будущем потеряет свою актуальность. Криптоаналитики широко им

пользуются, поскольку атаки на сложные шифры заканчиваются обычно

вскрытием шцфра простой замены.

Взлом многоалфавитных шифров

Шифр Гронсфельда вскрывается довольно легко, если учесть

следующее обстоятельство: так как цифр всего 10, то имеется лишь

10 вариантов прочтения каждой буквы. Выпишем их столбцами так,

что одной строке соответствуют буквы одного значения ключа. Номер

варианта будет определяться цифрой ключа от 0 до 9. При этом

получим таблицу, правильно выбрав по одной букве из каждой

колонки которой можно получить исходный текст:

ключ ???????????????????

вариант 0 ФПЖИСЬИОССАХИЛФИУСС

вариант 1 УОЕЗРЫЗНРР ФЗКУЗТРР

вариант 2 ТНДЖПЪЖМППЯУЖЙТЖСПП

вариант 3 СМГЕОЩЕЛООЮТЕИСЕРОО

вариант 4 РЛВДНШДКННЭСДЗРДПНН

вариант 5 ПКБГМЧГЙММЬРГЖПГОММ

вариант 6 ОЙАВЛЦВИЛЛЫПВЕОВНЛЛ

вариант 7 НИ БКХБЗККЪОБДНБМКК

вариант 8 МЗЯАЙФАЖЙЙЩНАГМАЛЙЙ

вариант 9 ЛЖЮ ИУ ЕИИШМ ВЛ КИИ

сообщение ???????????????????

Предположение 1. Если прочесть исходный текст напрямую не

удалось, то попробуем немного порассуждать. Самый частый символ

текста - пробел, а разбиение фразы на слова порой может оказать

большую помощь в расшифровке, как это уже было в случае вскрытия

шифра решетки. Так как длина шифровки равна 19 символам, то она

состоит из двух или трех слов, разделенных пробелами. Хорошее

положение для пробела дает лишь вариант 1, а другие варианты, 7 и