Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_MSZKI / Методичка МСЗКИ.doc
Скачиваний:
34
Добавлен:
20.04.2015
Размер:
341.5 Кб
Скачать

24 Криптографические методы преобразования информации

Расчетно-графическая работа

Криптографические методы преобразования информации

  1. Подготовка к работе

Изучить криптографические методы преобразования информации. Ответить на контрольные вопросы.

  1. Контрольные вопросы

    1. Какова основная идея шифра атбаш?

    2. Какова основная идея шифра Цезаря?

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

    4. Какова основная идея шифрования с помощью методов замены?

    5. Какова основная идея шифрования с помощью методов перестановок?

    6. Какова основная идея шифрования с помощью аддитивных методов?

    7. Какова основная идея шифрования с помощью шифров многоалфавитной замены?

    8. Опишите порядок шифрования с помощью таблицы Виженера.

    9. Опишите порядок шифрования методом гаммирования.

    10. Какова основная идея шифрования с помощью аффинных криптосистем?

  1. Обзор методов криптографии

Проблема защиты информации волнует людей несколько столетий. Коды появились в глубокой древности в виде криптограмм (по-гречески — тайнопись). Иногда священные иудейские тексты шифровались методом замены. Вместо первой буквы алфавита писалась последняя буква, вместо второй — предпоследняя и т. д. Этот древний шифр назывался атбаш. Известен факт шифрования переписки Юлия Цезаря (100—44 до н. э.) с Цицероном (106—43 до н. э.).

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

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

Предположим, что требуется зашифровать сообщение «ГДЕ АББА».

Шифр Цезаря называется циклическим потому, что при выполнении замены вслед за последней буквой алфавита вновь следует первая буква алфавита. Запишем фрагменты русского алфавита и покажем, как выполняется шифрование:

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

ЁЖЗ ГДДГ.

В Древней Греции (II в. до н.э.) был известен шифр, который создавался с помощью квадрата Полибия. Таблица для шифрования представляла собой квадрат с пятью столбцами и пятью строками, которые нумеровались цифрами от 1 до 5. В каждую клетку такой таблицы записывалась одна буква. В результате каждой букве соответствовала пара чисел, и шифрование сводилось к замене буквы парой цифр.

Идею квадрата Полибия проиллюстрируем таблицей с русскими буквами. Число букв в русском алфавите отличается от числа букв в греческом алфавите, поэтому и размер таблицы выбран иным (квадрат 6х6). Заметим, что порядок расположения символов в квадрате Полибия является секретным ключом. Под ключом понимается секретная информация, определяющая, какое преобразование из множества возможных шифрующих преобразований выполняется в данном случае над открытым текстом.

1

2

3

4

5

6

1

А

Б

В

Г

Д

Е

2

Ё

Ж

З

И

Й

К

3

Л

М

Н

О

П

Р

4

С

Т

У

Ф

Х

Ц

5

Ч

Ш

Щ

Ъ

Ы

Ь

6

Э

Ю

Я

,

.

-

Зашифруем с помощью квадрата Полибия слово КРИПТОГРАФИЯ:

26 36 24 35 42 34 14 36 11 44 24 63

Из примера видно, что в криптограмме первая цифра указывает номер строки, а вторая – номер столбца.

Более высокую криптостойкость по сравнению с шифром Цезаря имеют аффинные криптосистемы.

В аффинных криптосистемах, за счет математических преобразований, буквы, заменяющие открытый текст, относительно хаотично перемешаны. В аффинных криптосистемах буквы открытого текста нумеруются числами, например от 0 до 32. Затем каждая буква открытого текста заменяется буквой, порядковый номер которой вычисляется с помощью линейного уравнения.

Аффинные криптосистемы задаются при помощи двух чисел a и b. Для русского алфавита эти числа выбираются из условия a ≥ 0, b ≤ 32. Причем числа a и  = 33 должны быть взаимно простыми. Если это условие не будет выполняться, то две разные буквы могут отображаться (превращаться) в одну. Каждый код буквы открытого текста  заменяется кодом буквы криптограммы по следующему правилу. Вначале вычисляется число  = a + b, а затем выполняется операция целочисленного деления числа  на число  = 33, то есть  =  (mod ()). В качестве кода символа шифрограммы используется остаток от целочисленного деления .

Для определенности выберем такие числа: a = 5 и b =3.

Фрагмент расчета порядковых номеров букв криптограммы и соответствие букв и их порядковых номеров (кодов) приведены в таблице.

Буква открытого текста

А

Б

В

Г

Д

Е

Я

Код буквы открытого текста 

0

1

2

3

4

5

32

Код буквы шифрограммы 

3

8

13

18

23

28

31

Буква шифрограммы

Г

З

М

С

Ц

Ы

Ю

Предположим, что нужно зашифровать сообщение «ГДЕ АББА». В результате получим:

Открытый текст

Г

Д

Е

А

Б

Б

А

Шифрограмма

С

Ц

Ы

Г

З

З

Г

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

Ниже приведен фрагмент ключа многоалфавитной замены:

А

Б

В

Г

Д

Е

18

7

5

19

21

2

12

4

90

35

83

15

48

14

22

10

99

32

С помощью многоалфавитного шифра сообщение «ГДЕ АББА» можно зашифровать несколькими способами:

19—83—32—48—4—7—12,

10—99—15—12—4—14—12 и т. д.

Для каждой буквы исходного алфавита создается некоторое множество символов шифрограммы так, что множества каждой буквы не содержат одинаковых элементов.

Рассмотрим еще один шифр многоалфавитной замены, который был описан в 1585 г. французским дипломатом Блезом де Виженером. Шифрование производится с помощью так называемой таблицы Виженера. Здесь показана лишь часть таблицы для того, чтобы изложить лишь идею метода.

Каждая строка в этой таблице соответствует одному шифру простой замены (типа шифра Цезаря). При шифровании сообщения его записывают в строку, а под ним помещают ключ. Если ключ оказывается короче сообщения, то ключ циклически повторяют. Шифровку получают, находя символ в матрице букв шифрограммы. Символ шифрограммы находится на пересечении столбца с буквой открытого текста и строки с соответствующей буквой ключа.

Т

Строка букв

открытого

текста

аблица Виженера

А

Б

В

Г

Д

Е

А

А

Б

В

Г

Д

Е

Б

Я

А

Б

В

Г

Д

Матрица

букв

шифрограмм

В

Ю

Я

А

Б

В

Г

Г

Э

Ю

Я

А

Б

В

Д

Ь

Э

Ю

Я

А

Б

Е

Ы

Ь

Э

Ю

Я

А

Столбец ключа

Предположим, что нужно зашифровать сообщение «ГДЕ АББА». В качестве ключа выберем слово «ДЕВА». В результате получим:

Сообщение

Г

Д

Е

А

Б

Б

А

Ключ

Д

Е

В

А

Д

Е

В

Шифровка

Я

Я

Г

А

Э

Ь

Ю

Существует, конечно, много других легко запоминающихся квадратов, которые могут применяться в качестве основы для многоалфавитной системы так же, как и таблица Виженера. Одним из наиболее известных является квадрат Бьюфорта: его строками являются строки таблицы Виженера, записанные в обратном порядке.

К

Строка букв

открытого

текста

вадрат Бьюфорта

Я

Ю

Э

Ь

Ы

Ъ

Я

Я

Ю

Э

Ь

Ы

Ъ

Ю

А

Я

Ю

Э

Ь

Ы

Матрица

букв

шифрограмм

Э

Б

А

Я

Ю

Э

Ь

Ь

В

Б

А

Я

Ю

Э

Ы

Г

В

Б

А

Я

Ю

Ъ

Д

Г

В

Б

А

Я

Столбец ключа

Предположим, что нужно зашифровать сообщение «ГДЕ АББА». В качестве ключа выберем слово «ДЕВА». В результате получим:

Сообщение

Г

Д

Е

А

Б

Б

А

Ключ

Д

Е

В

А

Д

Е

В

Шифровка

Ю

Ю

В

Я

Ь

Ы

Э

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

Система Плейфейра позволяет создавать многоалфавитные шифры. Рассмотрим основную идею этой системы.

Шифрование производится с помощью квадрата (или прямоугольника), в который занесены буквы соответствующего национального алфавита. Буквы записываются в квадрат или прямоугольник в произвольном порядке. Этот порядок и конфигурация таблицы составляют в совокупности секретный ключ. Для определенности возьмем прямоугольную таблицу размером 4x8, в качестве букв алфавита – кириллицу, а буквы расположим в алфавитном порядке. Так как число русских букв 33, а число клеток – 32, исключим из таблицы букву Ё.

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

Предположим, что требуется зашифровать слово КРИПТОГРАФИЯ.

Рассмотрим правила шифрования.

1. Открытый текст делится на блоки по две буквы. Число букв в тексте должно быть четным. Буквы в одном блоке не должны быть одинаковыми. Произведем разделение исходного слова КР-ИП-ТО-ГР-АФ-ИЯ.

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

3. Если буквы открытого текста попадают в одну строку, то шифрограмма получается путем циклического сдвига вправо на одну клетку. Например, блок ИП будет преобразован в ЙИ. Еще один пример к этому правилу. Если, предположим, требуется преобразовать блок КН, то получится ЛО.

4. Если обе буквы открытого текста попадают в один столбец, то для шифрования осуществляют циклический сдвиг на одну клетку вниз.

Блок ЖЦ будет преобразован в символы ОЮ, а блок ТЪ – в символы ЪВ.

В соответствии с описанными правилами слово КРИПТОГРАФИЯ будет преобразовано в криптограмму ИТЙИЦКАУДРПШ.

Заметим, что если блоки открытого текста состоят из одинаковых букв, то криптограмма тоже будет содержать одинаковые пары символов. По этой причине рассмотренный шифр относится к одноалфавитным. Однако модификация этого шифра превращает его в многоалфавитную систему. Для этого используется несколько таблиц Плейфейера и производится многократное шифрование.

Рассмотрим криптографическую систему Хилла, в которой шифрование осуществляется с использованием математических преобразований: вычислений с помощью приемов линейной алгебры.

Данный шифр для отдельно взятой буквы можно считать многоалфавитным. Однако пары букв шифруются везде одинаково. Поэтому в широком смысле понятия криптографическую систему Хилла следует отнести к одноалфавитным шифрам [1].

Первоначально открытый текст методом замены следует преобразовать в совокупность чисел. Предположим, что шифруется текст, написанный с использованием 26-ти латинских букв. Выберем следующий алгоритм замены букв ни числа: латинские буквы A, B, C, D, …, Z будем заменять соответственно числами 1, 2, 3, 4,…, 26. Другими словами: пронумеруем буквы в порядке их расположения в алфавите, и при замене будем использовать их порядковые номера. В данном случае выбран такой алгоритм замены, но понятно, что он может быть любым.

Предположим, что нужно зашифровать немецкое слово ZEIT. Заменим буквы в соответствии с их порядковыми номерами в алфавите четырьмя числами: 26 – 5 – 9 – 20.

Далее следует выбрать некоторое число d ≥ 2. Это число показывает, порядок разбиения открытого текста на группу символов (определяет, сколько букв будет в каждой группе). С математической точки зрения число d показывает, сколько строк должно быть в векторах-столбцах. Примем d = 2. Это означает, что числа 26 – 5 – 9 – 20 нужно разбить на группы по две буквы (два числа) в каждой группе и записать их в виде векторов-столбцов:

Далее следует записать матрицу исходного текста:

Шифрование выполняется путем вычисления следующих выражений:

С1 = MP1 и C2 = MP2

В результате расчетов получится:

Окончательный результат шифрования получается путем целочисленного деления элементов векторов-столбцов по модулю 26 (нахождение остатка от целочисленного деления).

В результате шифрования по каналу связи будет оправлена последовательность чисел: 19 – 22 – 24 – 3. Для ранее выбранного ключа замены это будет соответствовать шифрограмме SVXC. Данный пример иллюстрирует тот факт, что системы шифрования часто базируются на математических преобразованиях.

Рассмотрим примеры шифрования сообщения методом перестановок.

Идея этого метода криптографии заключается в том, что запись открытого текста и последующее считывание шифровки производится по разным путям некоторой геометрической фигуры (например, квадрата).

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

Предположим, что требуется зашифровать сообщение:

НА ПЕРВОМ КУРСЕ ТЯЖЕЛО УЧИТЬСЯ ТОЛЬКО ПЕРВЫЕ ЧЕТЫРЕ ГОДА ДЕКАНАТ.

Н

А

_

П

Е

Р

В

О

М

_

К

У

Р

С

Е

_

Т

Я

Ж

Е

Л

О

_

У

Ч

И

Т

Ь

С

Я

_

Т

О

Л

Ь

К

О

_

П

Е

Р

В

Ы

Е

_

Ч

Е

Т

Ы

Р

Е

_

Г

О

Д

А

_

Д

Е

К

А

Н

А

Т

В таблице символом «_» обозначен пробел.

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

НМТЧРЫ_А_ЯИЛВРД_КЖТЬЫЕЕПУЕЬКЕ_КЕРЛСО_ГАРСОЯ_ЧОНВЕ__ПЕДАО_УТЕТАТ.

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

Будем называть порядок записи в строки матрицы ключом записи, а порядок считывания шифрограммы по столбцам – ключом считывания.

Чтобы дешифровать криптограмму, полученную с помощью матрицы n x n, нужно криптограмму разбить на группы символов по n символов в каждой группе. Крайнюю левую группу записать сверху - вниз в столбец, номер которого совпадает с первой цифрой ключа считывания. Вторую группу символов записать в столбец, номер которого совпадает со второй цифрой ключа считывания и т.д. Открытый текст считывать из матрицы по строкам в соответствии с цифрами ключа записи.

Рассмотрим пример дешифрации криптограммы, полученной методом перестановок. Известно, что при шифровании использованы матрица 6х6, ключ записи 352146 и ключ считывания 425316. Текст шифрограммы таков:

ДКАГЧЬОВА_РУААКОЕБЗЕРЕ_ДСОХТЕСЕ_Т_ЛУ

Разобьем шифрограмму на группы по 6 символов:

ДКАГЧЬ ОВА_РУ ААКОЕБ ЗЕРЕ_Д СОХТЕС Е_Т_ЛУ

Затем первую группу символов запишем в столбец 4 матрицы 6x6, так как первая цифра ключа считывания – 4 (см. рисунок а). Вторую группу из 6 символов запишем в столбец 2 (см. рисунок б), третью группу символов – в столбец 5 (см. рисунок в), пропустив две фазы заполнения матрицы, изобразим полностью заполненную матрицу (см. рисунок г).

Считывание открытого текста в соответствии с ключом записи начинаем со строки 3, затем используем строку 5 и т.д. В результате дешифрования получаем открытый текст:

ХАРАКТЕР ЧЕЛОВЕКА СОЗДАЕТ ЕГО СУДЬБУ

Естественно, что описанная процедура дешифрования криптограммы производится компьютером автоматически с помощью заранее разработанных программ.

М етоды замены и перестановки по отдельности не обеспечивают необходимую криптостойкость. Поэтому их используют совместно, а также в сочетании с аддитивным методом.

При шифровании аддитивным методом вначале открытый текст шифруют методом замены, преобразуя каждую букву в число. Затем к каждому числу добавляют секретную гамму (псевдослучайную числовую последовательность). Технически добавление гаммы в криптографических системах осуществляется поразрядно (поточный шифр): на каждый бит открытого текста поочередно накладывается бит секретной гаммы.

В ЭВМ преобразование открытого текста в числа происходит естественным путем, так как каждый символ кодируется двоичным числом. Вид этого преобразования зависит от используемой операционной системы. Для определенности будем считать, что сообщение в ЭВМ кодируется с помощью кодовой таблицы CP-1251. Итак, будем считать, что секретная гамма добавляется к открытому тексту по правилу сложения по модулю два без переносов в старшие разряды (логическая операция Исключающее ИЛИ). Результаты всех преобразований поместим в таблицу.

Открытый текст

Г

Д

Е

А

Б

Б

А

Десятичное число

195

196

197

192

193

193

192

Двоичное число

11000011

11000100

11000101

11000000

11000001

11000001

11000000

Гамма (десятич.)

32

18

36

11

61

23

3

Гамма (двоич.)

00100000

00010010

00100100

00001011

00111101

00010111

00000011

Результат (двоич.)

11100011

11010110

11100001

11001011

11111100

11010110

11000011

Результат (десят.)

227

214

225

203

252

214

195

Шифрограмма

г

Ц

б

Л

ь

Ц

Г