Шемякин лекции 2023 / Алфёров А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии
.pdfГлава 5
Шифры замены
Мы будем рассматривать лишь однозначные замены (см. главу 3), для которых правило зашифрования является обыч ной однозначной функцией. Одноалфавитные однозначные замены обычно называют шифрами простой замены.
§ 5.1. Поточные шифры простой замены
Наибольшее распространение получили поточные шифры простой замены, множества шифрвеличин и шифробозначений которых совпадают с алфавитом открытого текста^. Как указывалось в главе 2, ключом такого шифра является под становка к на множестве А , верхняя строка которой пред ставляет собой естественную последовательность букв алфа вита, а нижняя — систематически перемешанную или слу чайную последовательность букв из А (см. Приложение 1).
Помимо явного задания (в виде двустрочной записи) ключ может быть задан некоторой формулой, как, например, для определяемого ниже шифра Цезаря (который иногда на зывают также сдвиговым шифром) и аффинного шифра. При использовании этих шифров буквы алфавита А удобно ото ждествлять с их порядковыми номерами, так что, например, для латинского алфавита
а = О, Ь = 1,..., 2 = 25 .
Шифр Цезаря
I
Х = У = 1]2'26, К = г 26. Для х = (х1,..,х1), у = (у 1,...,у1),
/=1
ке К полагаем
У= Ек(х) = (х1+к,...,х,'+к),
101
Гпава 5
* = Пк0 0 = (Уг + (26 - к),..., у, + (26 - к ) ) ,
где + и • — операции кольца вычетов 2 26.
Аффинный шифр
Х = У = 1)2'26, К = г ; б х 2 26. Для к = ( а , Р ) е К , а * О,
|
/=1 |
|
Х = (Х1 |
У = (У\,...,У,), полагаем |
|
|
у = Ек(х) = ( а х 1+ Р,...,а -Х/+Р), |
|
х = Ок (у) = ((у , + (2 6 - 0 )) |
(у, + (2 6 - Р)) • а ' 1), |
|
где + и |
• — операции кольца 2 |
, а (X х— элемент из муль |
типликативной группы 2 \ь, обратный к а .
Пример Зашифруем слово СКУРТОСЖАРНУ с помощью аффин
ного шифра, |
полагая к = (3,5). Данный ключ |
индуцирует |
|||||||||||
следующую подстановку на 2 |
: |
|
|
|
|
|
|
||||||
О |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
10 |
11 |
12 |
5 |
8 |
11 |
14 |
17 |
20 |
|
23 |
0 |
3 |
6 |
9 |
12 |
15 |
13 |
14 |
15 |
16 |
17 |
18 |
|
19 |
20 |
21 |
22 |
23 |
24 |
25 |
18 |
21 |
24 |
1 |
4 |
7 |
|
10 |
13 |
16 |
19 |
22 |
25 |
2 |
Если декодировать числа в буквы, то получим следующее соответствие для букв:
102
Шифры замены
А В С Э Е Р О Н I .1 К Ь М Р I Е О К С Х А О С . 1 М Р к о р д я 8 Т 1 1 У \ У Х У 2 : 8 У У В Е Н К К д Т \ У 2 С
Слову СКУРТООКАРНУ соответствует числовая после довательность х = (2,17,24,15,19,14,9,17,0,15,7,24) . Зашиф ровать открытый текст мы можем двумя способами. Вопервых, можно воспользоваться полученной подстановкой, заменяя каждую букву слова (найденную в верхней строке) ее образом в нижней строке: ЬЕ2УКУХЕРУА2. Во-вторых, можно вычислить значение функции зашифрования Ек (х) , исходя из ее определения:
у = Е к (х) = (3-2 + 5, 3-17 + 5, 3-24 + 5, 3-15 + 5,
3-19 + 5, 3-14 + 5, 3-9 + 5, 3-17 + 5,
3-0 + 5, 3-15 + 5, 3-7 + 5, 3 -24+ 5) =
=(11, 4, 25,24,10,21,23,4,5,24,0, 25).
Вбуквенном эквиваленте у совпадает с полученным ранее шифрованным текстом.
Для расшифрования у следует вычислить 3-1 |
в группе |
2 ;б. Очевидно, что 3-1 = 9. Теперь расшифруем |
у в соот |
ветствии с определением правила расшифрования: |
|
х = Ик (у ) = ((11 + 21)- 9,(4 + 21) • 9,(25 + 21) • 9,(24 + 21) • 9,
(10 + 21)- 9,(21 + 21)- 9,(23 + 21)- 9,(4 + 21)- 9,(5 + 21) • 9,
(24 + 21)- 9,(0 + 21)- 9,(25 + 21) • 9) = = (2,17,24,15,19,14,6,17,0,15,7,24).
103
I лава 5
Здесь мы воспользовались определением операций сло жения и умножения в кольце 2 26, заменяя результат обычных
целочисленных вычислений остатком от деления на 26.
В связи с рассмотрением аффинного шифра полезно на помнить один хорошо известный алгебраический результат.
Теорема. Отображение / : Ъп —» Ъп, определяемое для фиксированных а,Ъ е Ъп формулой
/ (а ) = а а + Ь(то<1п ) ,
является биективным тогда и только тогда, когда
(а,п) = 1.
До сих пор мы предполагали, что шифробозначениями являются отдельные знаки алфавита. Однако это вовсе не обязательное условие. Как отмечалось в гл. 3, имеются шиф ры равнозначной замены и шифры разнозначной замены. В первом случае все шифробозначения имеют одинаковые значности, например один, два и т. д. Во втором — разные значности, например, некоторые шифробозначения могут быть отдельными знаками, другие — состоять из пары или большего числа знаков. По соображениям экономии и скоро сти шифрования значность шифробозначений не должна быть большой. В большинстве известных примеров разнозначных шифров значность шифробозначений не превосходит двух. Приведем один из таких примеров [Вес97].
Пример (шифра простой неравнозначной замены)
Рассматривается прямоугольник размером 4x7, в кото рый записан систематически перемешанный английский ал фавит (расширенный символами и знаком раздела “/”), построенный на основе ключевого слова ПЧСГГАТШ:
104
Шифры замены
1 |
N |
С |
Т |
А |
V |
8 |
0 |
1 |
86 |
3 |
5 |
94 |
6 |
В |
В |
Е |
Р |
С |
Н |
5 |
80 |
83 |
2 |
89 |
91 |
95 |
98 |
К |
Ь |
М |
О |
Р |
<5 |
К |
81 |
84 |
87 |
4 |
92 |
96 |
7 |
V |
|
X |
У |
Ъ |
|
/ |
82 |
85 |
88 |
90 |
93 |
97 |
99 |
Нумерация букв алфавита произведена по столбцам (сверху вниз), при этом восемь самых частых букв (А,Е,1,Ы,0,К,8,Т) занумерованы числами от 0 до 7, а осталь ные — двузначными числами от 80 до 99. Такую таблицу легко запомнить. Работать же удобнее с эквивалентной таб лицей:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
I |
N |
Е |
Т |
О |
А |
8 |
Я |
- |
- |
В |
К |
V |
в |
ь |
V/ |
С |
м |
X |
Р |
У |
О |
Р |
ъ |
V |
Н |
0 |
|
] |
/ |
При зашифровании открытый текст записывается со зна ком пробела между словами. Точка, встретившаяся в тексте, считается отдельным словом. После этого производится за мена шифрвеличин на шифробозначения согласно таблице, при этом цифровые данные не изменяются.
§ 5.2. Криптоанализ поточного шифра простой замены
Рассмотрим сначала простейший случай — однобуквен ной замены.
105
Г лава 5
Любой метод вскрытия шифра простой однобуквенной замены основан на том обстоятельстве, что с точностью до переобозначений частотные характеристики т -грамм шифр текста и открытого текста одинаковы. При этом существенно используются априорные частотные характеристики предпо лагаемого открытого текста, получаемые с учетом “характера переписки”. Как отмечено в Приложении 1, такие характери стики являются более “рельефными” для литературных тек стов и менее “рельефными” для формализованных электрон ных текстов. Чем менее рельефно распределение знаков тек ста, тем сложнее задача вскрытия шифра простой замены. Для открытых текстов с “почти равномерным” распределени ем знаков эта задача становится практически не решаемой. Это следует учитывать и не питать иллюзий о простоте вскрытия простой замены, о которой часто упоминается в популярных книгах по защите информации. Методы “рандо мизации” или “сжатия” открытых текстов, например, с ис пользованием компьютерных архиваторов значительно ус ложняют задачу вскрытия шифра простой замены.
Как будет ясно из дальнейшего (гл. 7), рельефность диа граммы текста тесно связана с такой его важной теоретико информационной характеристикой, как избыточность. Далее мы будем решать задачу вскрытия простой замены лишь при условии, что предполагаемые открытые тексты — это литера турные тексты с “приличной” избыточностью. Кроме того, мы будем считать, что при дешифровании мы располагаем достаточно большим числом знаков шифртекста, чтобы опи раться не на “фокусы”, использованные, например, в извест ных произведениях Э. А. По и А. Конан Дойля, а в большей степени на “статистику”.
Алгоритм вскрытия простой замены по тексту крипто граммы достаточно сложно формализовать. При любой по пытке формализации теряется какой-нибудь важный нюанс. Поэтому мы укажем лишь основные идеи, лежащие в основе
106
Шифры замены
такого алгоритма. Обычно выделяют следующие этапы алго ритма:
Алгоритм 1
1.Подсчет частот встречаемости шифробозначений, а также некоторых их сочетаний, например биграмм и триграмм подряд идущих знаков.
2.Выявление шифробозначений, заменяющих гласные и согласные буквы.
3.Выдвижение гипотез о значениях шифробозначений и их проверка. Восстановление истинного значения шифробо значений.
Сделаем ряд замечаний и уточнений.
Если длина текста достаточно велика, то найденные на этапе 1 частоты окажутся близкими к табулированным значе ниям частот знаков (соответственно — биграмм или три грамм). Проведенная на этом этапе работа служит основанием для выдвижения гипотез о значениях шифрвеличин, соответ ствующих данным шифробозначениям. При этом учитывает ся, что каждая буква имеет группу предпочтительных связей (см. Приложение 1), которые составляют ее наиболее харак терную особенность. Как правило, такие гипотезы подтвер ждаются не полностью. Хорошим критерием при этом явля ется “читаемость” восстанавливаемого открытого текста. Вы деление шифробозначений, отвечающих гласным и соглас ным, основано на характерных свойствах этих букв, указан ных в Приложении 1. Добавим к ним следующие соображе ния (относимые к большинству европейских языков). Если шифробозначение часто встречается, равномерно располага ется по шифртексту, в отдельных местах чередуется через 1, 2 или 3 знака, сочетается со средними и редкими (по частоте) шифробозначениями, то это дает основания полагать, что такое шифробозначение скрывает гласную букву. Удвоение гласных в открытом тексте происходит реже, чем согласных. Если некоторое шифробозначение признано гласной, то бук
107
I лава 5
ва, часто сочетающаяся с ней, скорее всего согласная. В от крытом тексте чрезвычайно редко встречаются три и более подряд идущие гласные. Четыре и более подряд идущие со гласные также редки. Важно учитывать также процентное со отношение чисел гласных и согласных в открытом тексте.
При проверке гипотез о значениях шифробозначений по лезен поиск в шифртексте слов с характерной структурой, которые часто встречаются в открытом тексте. Для русского языка — это, например, слова сколько, которое, что и т. п. Для английского языка — слова егегу, (Иа(, 1оок, (Не и т. п. Такие слова выделяются в шифртексте посредством интерва лов между повторяющимися частыми буквами, характерными сочетаниями гласных и согласных.
Если с помощью приведенных соображений произведено несколько идентификаций шифробозначений, то дальнейшая работа по вскрытию текста криптограммы не представляет особого труда.
Пример вскрытия шифра простой однобуквенной замены приведен в Приложении 2.
Задача дешифрования еще более упрощается, если из вестно, что использовался сдвиговый или аффинный шифр. Так, для аффинного шифра бывает достаточно идентифици ровать лишь пару шифробозначений с тем, чтобы полностью восстановить открытый текст (см., например, [Сал96]).
Из наших рассмотрений становится понятным, что наи более трудно формализуемым фрагментом алгоритма 1 явля ется проверка выдвигаемых гипотез о значениях шифробо значений. Трудность состоит в формулировке критерия, под тверждающего или отвергающего ту или иную гипотезу. В статье [Так95], посвященной этому вопросу, был предложен четко сформулированный критерий, основанный на “близос ти” матрицы биграмм Д(/) = (А (*))лх/| (где п — число букв
алфавита) данного текста г эталонной матрице биграмм
108
Шифры замены
В = (Ъу )пхп открытого текста. Приведем эту идею и осно
ванный на ней эвристический алгоритм дешифрования. Мерой близости служит следующая “целевая функция”
/(О ? связывающая матрицы Д(/) и В:
(1)
Будем исходить из того естественного предположения, что если у — данная криптограмма и ^ — правило расшиф рования на ключе к данного шифра простой замены, то для истинного ключа кизначение
должно быть минимальным.
Идея основного шага алгоритма состоит в том, чтобы ис ходя из некоторого первичного “приближения” к для ключа ки, основанного, например, на диаграмме частот букв, не
много его изменять неким “разумным” способом, уменьшая значение целевой функции /( / ) .
Приведем теперь формальное описание алгоритма [1ак95].
Алгоритм 2
1.Построить начальный вариант ключа к на основе сравне ния частот знаков криптограммы и открытого текста.
2.Положить у = / ( Ок( у )).
3.Положить к' = к .
4.Поменять местами в нижней строке подстановки А:1 неко
торую пару букв, скажем а и .
5.Положить у’= / ( О к,(у)).
6.Если у’< V, то положить к = к \ у’= V и перейти к 4.
109
/лава 5
7. Перейти к шагу 3.
Алгоритм заканчивается, когда условие V'<V не выпол няется в течение некоторого числа итераций, например 100.
Переход на шаге 4 от к к к ' , связанный с транспозицией пары символов, имеет под собой следующее основание. На шаге 5 вычисляется величина
у'= / ( 0 4.(у )) = 2 А уЮ ь'О ')) ■-Ъ ц\ =
и
и
где Д'О) — матрица, полученная из матрицы Д(7) путем перестановки в ней столбцов с номерами а и Д , а также
строк с теми же номерами.
В силу отмеченного свойства на шаге 5 алгоритма не нужно проводить трудоемкую операцию вычисления матри цы биграмм А (Лк,(у)) непосредственно по “расшифрован
но |
|
|
|
|
му” тексту |
Л к, ( у ) . Достаточно вычислить |
лишь |
матрицу |
|
А(Л к(у)), |
а на следующих шагах алгоритма производить в |
|||
ней одноименные перестановки строк и столбцов. |
|
|||
Выбор транспозиции («,/?) на шаге 4 |
можно произво |
|||
дить, например, |
следующим естественным |
образом. Пусть |
||
5 = (5х, 52,...,5„) |
— вектор, образованный буквами |
крипто |
граммы, упорядоченными по убыванию частот. Тогда после довательность транспозиций можно выбрать такой:
110