Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шемякин лекции 2023 / Алфёров А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии

.pdf
Скачиваний:
27
Добавлен:
30.05.2023
Размер:
7.75 Mб
Скачать

Глава 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