Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект Введение в спец. .pdf
Скачиваний:
64
Добавлен:
29.03.2016
Размер:
1.46 Mб
Скачать

Решение. Текст исходного сообщения записывается в таблицу 4×4, т.к. сообщение содержит 16 символов. Затем поочередно переставляются столбцы, а затем строки (рисунок 4.8).

 

Исходная

 

Перестановка

 

 

 

Перестановка

 

 

таблица

 

столбцов

 

 

 

 

строк

 

 

 

4

1

3

2

 

 

1

2

3

4

 

 

1

2

3

4

3

П

Р

И

Л

 

3

Р

Л

И

П

 

1

Т

Ю

А

Е

1

Е

Т

А

Ю

 

1

Т

Ю

А

Е

 

2

О

О

Г

М

4

В

О

С

Ь

 

4

О

Ь

С

В

 

3

Р

Л

И

П

2

М

О

Г

О

 

2

О

О

Г

М

 

4

О

Ь

С

В

Рисунок 4.8-Шифрование методом двойной перестановки

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

ТЮАЕ ООГМ РЛИП ОЬСВ

Число вариантов двойной перестановки быстро возрастает при увеличе-

нии размера таблицы:

 

 

 

для таблицы 3×3

-

36

вариантов;

для таблицы 4×4

-

576

вариантов;

для таблицы 5×5

- 14400

вариантов.

Однако двойная перестановка не отличается высокой стойкостью и сравнительно просто “взламывается” при любом размере таблицы шифрования.

4.2.4 Шифрование магическими квадратами Магическими квадратами называют квадратные таблицы с вписанными в

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

96

Пример 4 .Требуется зашифровать сообщение:

ПР И Л Е Т А Ю В О С Ь М О Г О

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

Решение. Используем магический квадрат 4×4 и заполним его заданным сообщением. Вначале пронумеруем буквы:

ПР И Л Е Т А Ю В О С Ь М О Г О

1

2

3

4

5

6 7

8

9 10111213141516

16

3

2

13

5

10

11

8

9

6

7

12

4

15

14

1

О

И

Р

М

Е

О

С

Ю

В

Т

А

Ь

Л

Г

О

П

Рисунок 4.9 – Магический квадрат 4х4 и его заполнение сообщением

Шифртекст, получаемый при считывании содержимого правой таблицы по строкам, имеет вид:

ОИРМ ЕОСЮ ВТАЬ ЛГОП

Число магических квадратов быстро возрастает с увеличением размера квадрата. Существует только один магический квадрат размером 3х3. Количество магических квадратов 4х4 - 880, а 5х5 - 250000.

4.2.5 Метод перестановок на основе маршрутов Гамильтона Этот метод реализуется путем выполнения следующих шагов.

Шаг 1. Исходный текст разбивается на блоки. Если длина шифруемого текста не кратна длине блока, то на свободные места последнего блока помещаются служебные символы-заполнители (например,*)

Шаг 2. Символами блока заполняется таблица, в которой для каждого порядкового номера символа в блоке отводится вполне определенное место

(рисунок 4.10).

97

5

 

6

 

 

5

6

1

2

5

 

6

1

2

 

 

1

2

 

 

 

 

 

 

3

4

3

4

 

3

4

 

 

 

 

 

7

 

8

 

 

7

8

 

 

7

 

8

 

 

Исходная

Маршрут 1

 

Маршрут 2

таблица

 

 

 

 

 

Рисунок 4.10 - Вариант 8-элементной таблицы и маршрутов Гамильтона

Шаг 3. Считывание символов из таблицы осуществляется по одному из маршрутов. Увеличение числа маршрутов повышает криптостойкость шифра. Маршруты выбирают либо последовательно, либо их очерёдность задаётся ключом К.

Шаг 4. Зашифрованная последовательность символов разбивается на блоки фиксированной длины L. Величина L может отличаться от длины блоков, на которые разбивается исходный текст на шаге 1.

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

Пример 5. Требуется зашифровать текст Т0 <МЕТОДЫ ПЕРЕСТАНОВКИ>. Ключ и длины зашифрованных блоков равны: К=<2,1,1>, L=4. Для шифрования использовать таблицу и два маршрута, представленные на рисунке 4.10.

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

Шаг 1. Исходный текст разбивается на 3 блока:

Блок Б1 =<МЕТОДЫ П> Блок Б2 =<ЕРЕС ТАНО>

Б3 =<ВКИ*****>

98

Шаг 2. Заполняется 3 матрицы с маршрутами 2,1,1 (рисунок 4.11).

Д

 

Ы

Т

 

А

*

*

 

 

 

 

 

М

Е

 

Е

Р

 

В

К

Т

О

 

Е

С

 

И

*

-

 

П

Н

 

О

*

*

Маршрут 2

 

Маршрут 1

 

Маршрут 1

Рисунок 4.11 - Шифрование с помощью маршрутов Гамильтона

Шаг 3. Получение шифртекста путём расстановки символов в соответствии с маршрутами.

Т1 =<ОП_ТМЕЫДЕСРЕТАОНИ*КВ****>

Шаг 4. Разбиение на блоки шифртекста

Т1 =<ОП_Т МЕЫД ЕСРЕ ТАОН И*КВ ****>

Возможно применение и других маршрутов.

4.3 Шифрование методом гаммирования

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

Процесс зашифрования заключается в генерации гаммы шифра и наложении её на исходные открытые данные обратимым образом, например, сложением по модулю 2.

Процесс расшифрования сводится к повторной генерации гаммы шифра и наложению этой гаммы на зашифрованные данные.

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

99

A 1 .

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

Наложение гаммы можно осуществить несколькими способами, например по формуле tш = tо XOR tг , где tш,tо,tг - ASCII коды соответственно зашифрованного символа, исходного символа и гаммы, XOR - побитовая операция "исключающее или".

Расшифрование текста проводится по аналогичной формуле: tо = tш XOR tг . Последовательность гаммы удобно формировать с помощью датчика псевдослучайных чисел (ПСЧ).

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

4.4 Шифрование с помощью аналитических преобразований

Среди аналитических методов наибольшее распространение получили методы, основанные на использовании матриц. Зашифрование К-го блока исходной информации, представленного в виде вектора Вк вij осуществляется путём

перемножения матрицы ключа A aij и вектора Bk . В результате перемножения получается блок шифртекста в виде вектора Ck ci , где элементы вектора Ck определяются по формуле:

Ci aij bj .

j 1

Расшифрование информации осуществляется путём последовательного перемножения векторов Ck и обратной матрицы

Пример 6 . Требуется зашифровать слово T0 =<ЗАБАВА> с помощью мат- рицы-ключа А.

100

1 4 8 A= 3 7 2

6 9 5

Решение.

1.Определим числовой эквивалент исходного слова как последовательность соответствующих порядковых номеров букв слова T0 :

TЭ =<8,1,2,1,3,1>

2.Разобьём Тэ на два вектора В1 8,1,2 и В2

1,3,1

3. Умножим матрицу А на векторы В1 и В2 :

 

1 4 8

8

 

28

 

7

 

 

 

 

 

С1 3

2

1

 

= 35

 

9

 

 

 

 

 

6

5

2

67

1 4 8 1

21

С2 3 7 2

3

= 26

 

 

 

 

 

 

6

9 5 1

 

38

4. Зашифрованное слово запишем в виде последовательности чисел

T1 =<28,35,67,21,26,38>.

4.5 Комбинированные методы шифрования

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

Стойкость комбинированного шифрования S не ниже произведения стойкостей используемых способов S >= S1*S2*...*Sk.

Если какой-либо способ шифрования при независимом применении может обеспечить стойкость не ниже S, то комбинировать его с другими способами целесообразно лишь при выполнении условия R > R1+R2+ ... +Rk, где Ri - трудоемкость i-го способа, используемого при комбинированном шифровании, R - трудоемкость того способа, который обеспечивает стойкость не ниже S.

101

5 Современные симметричные криптосистемы

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

По-видимому, начало современного этапа развития криптографии можно связать с опубликованием в 1948 г. основополагающей работы великого американского учёного Клода Шеннона « Теория связи в секретных системах». Следует также не забывать о том, что этот великий человек, кроме криптографии, внёс значительный фундаментальный вклад и в другие области науки и техники, которые в настоящее время именуются термином

«высокие информационные технологии», в частности: заложил и развил основы теории информации, теории эффективного и помехоустойчивого ко-

дирования, построения средств вычислительной техники.

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

По мнению К.Шеннона в современных практических шифрах необходимо использовать два общих принципа: рассеивание и перемешивание.

102

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

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

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

В составных шифрах в качестве простых шифров чаще всего исполь-

зуются перестановки и подстановки. При перестановке перемешивают сим-

волы открытого текста, причем конкретный вид перемешивания определяется секретным ключом. При подстановке каждый символ открытого текста заменяют другим символом из того же алфавита, а конкретный вид подстановки также определяется секретным ключом. Следует заметить, что в современном блочном шифре блоки открытого текста и шифртекста представляют собой двоичные последовательности обычно длиной 64 бита. В принципе каждый блок может принимать 264 значений. Поэтому подстановки выполняются в очень большом алфавите, содержащем до 264 1019 "символов".

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

ренные ниже криптоалгоритмы DES, IDEA и отечественный стандарт ГОСТ 28147-89 построены в полном соответствии с указанной методологией.

5.1 Классическая сеть Фейстеля

Сетью Фейстеля называется методика обратимых преобразований

103

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

Структура классической сети Фейстеля показана на рисунке 5.1

.

Рисунок 5.1 – Структура классической сети Фейстеля

Независимые потоки информации, порожденные из исходного блока, называются ветвями сети. В классической схеме Фейстеля их две. Величины Vi называются параметрами сети, обычно это функции от материала ключа. Функция F называется образующей. Действие, состоящее из однократного вычисления образующей функциии и последующего наложения ее результа-

104

та на другую ветвь с обменом местами называется циклом или раундом сети Фейстеля. Оптимальное число раундов K − от 8 до 32.

Увеличение количества раундов значительно повышает криптостойкость любого симметричного блочного шифра. Благодаря этой особенности сети Фейстеля получили широкое распространение – при обнаружении слабого места в алгоритме почти всегда достаточно не переписывая сам алгоритм увеличить количество раундов на 4-8.

В соответствии с описанной методикой построены блочные симметричные криптоалгоритмы DES, IDEA, ГОСТ 28147-89 и ряд других алгоритмов.

5.2 Американский стандарт шифрования данных DES

Стандарт шифрования данных DES (Data Encryption Standard) опубликован в 1977 г. Национальным бюро стандартов США. Стандарт DES предназначен для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США. Алгоритм, положенный в основу стандарта, распространялся достаточно быстро, и уже в 1980 г. был одобрен Национальным институтом стандартов и технологий США (НИСТ). С этого момента DES превращается в стандарт не только по названию (Data Encryption Standard), но и фактически. Появляются программное обеспечение и специализированные микроЭВМ, предназначенные для шифрования и расшифрования информации в сетях передачи данных.

К настоящему времени DES является наиболее распространенным алгоритмом, используемым в системах защиты коммерческой информации. Более того, реализация алгоритма DES в таких системах становится признаком хорошего тона.

Основные достоинства алгоритма DES:

используется только один ключ длиной 56 бит;

105

зашифровав сообщение с помощью одного пакета программ, для расшифровки можно использовать любой другой пакет программ, соответствующий стандарту DES;

относительная простота алгоритма обеспечивает высокую скорость обработки;

достаточно высокая стойкость алгоритма.

Алгоритм DES использует комбинацию подстановок и перестановок.

DES осуществляет шифрование 64-битовых блоков данных с помощью 64битового ключа, в котором значащими являются 56 бит (остальные 8 бит – проверочные биты для контроля на четность). Дешифрование в DES является операцией, обратной шифрованию, и выполняется путем повторения операций шифрования в обратной последовательности. Обобщенная схема процесса шифрования в алгоритме DES показана на рисунке 5.2. Процесс шифрования заключается в начальной перестановке битов 64-битового блока, шестнадцати циклах шифрования и, наконец, в конечной перестановке битов.

Исходный текст

Начальная перестановка

 

 

 

 

ключ

16 раз

 

Шифрование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конечная перестановка

Шифртекст

Рисунок 5.2 – Обобщенная схема шифрования в алгоритме DES Все приводимые таблицы являются стандартными и должны включать-

ся в реализацию алгоритма DES в неизменном виде.

Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс расшифровки путем подбора ключа. При описании алгоритма DES (рисунок 5.3) применены следующие обозначения: LR – конкатенация последовательностей L и R, т.е. такая последовательность битов, длина которой равна сумме длин L и R;

106

в последовательности LR биты последовательности R следуют за битами последовательности L;

– операция побитового сложения по модулю 2.

L и R – последовательности битов (левая (left) правая (right)); Рисунок 5.3 – Структура алгоритма DES

Пусть из файла исходного текста считан очередной 64-битовый (8- байтовый) блок Т. Этот блок Т преобразуется с помощью матрицы начальной перестановки IP.Биты входного блока Т (64 бита) переставляются в соответствии с матрицей IP: бит 58 входного блока Т становится битом 1, бит 50 – битом 2 и т.д. Эту перестановку можно описать выражением Т0 = IP(T). Полученная последовательность битов Т0 разделяется на две последовательности: L0 – левые или старшие биты, R0 – правые или младшие биты, каждая из которых содержит 32 бита.

Затем выполняется итеративный процесс шифрования, состоящий из 16

107

шагов (циклов). Пусть Тi – результат i-й итерации:

Тi = Li Ri,

где Li = t1 t2 ... t32 (первые 32 бита); Ri = t33 t34 ... t64 (последние 32 бита). Тогда результат i-й итерации описывается следующими формулами:

Li = Ri–1, i = 1, 2, ..., 16;

Ri = Li–1 f (Ri–1, Ki), i = 1, 2, ..., 16.

Функция f называется функцией шифрования. Ее аргументами являются последовательность Ri–1, получаемая на предыдущем шаге итерации, и 48битовый ключ Кi, который является результатом преобразования 64битового ключа шифра К. Подробнее функция шифрования f и алгоритм получения ключа Кi будут рассмотрены в последующих дисциплинах.

На последнем шаге итерации получают последовательности R16 и L16 (без перестановки местами), которые конкатенируются в 64-битовую последовательность R16 L16.

По окончании шифрования осуществляется восстановление позиций битов с помощью матрицы обратной перестановки IP–1.

5.3Комбинирование блочных алгоритмов

Внастоящее время блочный алгоритм DES считается относительно безопасным алгоритмом шифрования. Он подвергался тщательному криптоанализу в течение 20 лет, и самым практичным способом его взламывания является метод перебора всех возможных вариантов ключа. Ключ DES имеет длину 56 бит, поэтому существует 256 возможных вариантов такого ключа. Если предположить, что суперкомпьютер может испытать миллион вариантов ключа за секунду, то потребуется 2285 лет для нахождения правильного ключа. Если бы ключ имел длину 128 бит, то потребовалось бы 1025 лет (для сравнения: возраст Вселенной около 1010 лет).

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

108

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

Возникает естественный вопрос: нельзя ли использовать DES в качестве строительного блока для создания другого алгоритма с более длинным ключом?

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

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

С = ЕК2К1(Р)).

Расшифрование является обратным процессом:

Р = DК1(DК2(C)).

Если блочный алгоритм обладает свойствами группы, то всегда найдется такой ключ К3, что

С = ЕК2К1(Р)) = ЕК3(Р).

Если же блочный алгоритм не является группой, то результирующий двухкратно шифрованный блок текста окажется намного сложнее для взламывания методом полного перебора вариантов. Вместо 2n попыток, где n – длина ключа в битах, потребуется 22n попыток. В частности, если n=64, то двухкратно зашифрованный блок текста потребует 2128 попыток для нахо- жде-ния ключа.

109

Однако Р.Меркль и М.Хеллман показали на примере DES, что, используя метод "обмена времени на память" и криптоаналитическую атаку "встреча посредине", можно взломать такую схему двухкратного шифрования за 2n+1 попыток . Хотя эта атака потребует очень большого объема памяти (для алгоритма с 56-битовым ключом потребуется 256 64-битовых блоков или 1017 бит памяти).

Более привлекательную идею предложил У.Тачмен . Суть этой идеи состоит в том, чтобы шифровать блок открытого текста Р три раза с помощью двух ключей К1 и К2 (рисунок 5.4). Процедура шифрования:

С = ЕК1(DК2 (EК1(Р))),

т.е. блок открытого текста Р сначала шифруется ключом К1, затем расшифровывается ключом К2 и окончательно зашифровывается ключом К1.

Этот режим иногда называют режимом EDE (encrypt-decrypt-encrypt). Введение в данную схему операции расшифрования DК2 позволяет обеспечить совместимость этой схемы со схемой однократного использования алгоритма DES. Если в схеме трехкратного использования DES выбрать все ключи одинаковыми, то эта схема превращается в схему однократного использования DES.

 

К1

 

К2

 

К1

 

P

DES

A

DES

B

DES

C

 

ЕК

 

D К

 

ЕК

 

 

 

Шифрование

 

 

 

К1

 

К2

 

К1

 

C

DES

B

DES

A

DES

P

 

DК

 

E К

 

DК

 

Расшифрование

Рисунок 5.4 – Схемы трехкратного применения алгоритма DES (3 DES) с двумя разными ключами

110

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

Р = DК1К2(DК1(C))),

т.е. блок шифртекста С сначала расшифровывается ключом К1, затем зашифровывается ключом К2 и окончательно расшифровывается ключом К1.

Если исходный блочный алгоритм имеет n-битовый ключ, то схема трехкратного шифрования имеет 2n-битовый ключ. Чередование ключей К1 и К2 позволяет предотвратить криптоаналитическую атаку "встреча посредине". Данная схема приводится в стандартах Х9.17 и ISO 8732 в качестве средства улучшения характеристик алгоритма DES.

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

С= ЕК3(DК2(EК1(P))),

Р= DК1К2(DК3(C))).

Трехключевой вариант имеет еще большую стойкость. Очевидно, что если требуется повысить безопасность большого парка оборудования, использующего DES, то гораздо дешевле переключиться на схемы трехкратных DES, чем переходить на другой тип криптосхем.

5.4 Алгоритм шифрования данных IDEA

Алгоритм IDEA (International Data Encryption Algorithm) является блоч-

ным шифром. Он оперирует 64-битовыми блоками открытого текста. Несомненным достоинством алгоритма IDEA является то, что его ключ имеет длину 128 бит. Один и тот же алгоритм используется и для шифрования, и для расшифрования.

Первая версия алгоритма IDEA была предложена в 1990 г., ее авторы – Х.Лей и Дж.Мэсси. Первоначальное название алгоритма PES (Proposed Encryption Standard). Улучшенный вариант этого алгоритма, разработанный в

1991 г., получил название IPES (Improved Proposed Encryption Standard). В

111

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

В алгоритме IDEA используются следующие математические опера-

ции:

поразрядное сложение по модулю 2 (операция "исключающее ИЛИ"); операция обозначается как ;

сложение беззнаковых целых по модулю 216 (модуль 65536); операция обозначается как

умножение целы по модулю (216+1) (модуль 65537), рассматриваемых как беззнаковые целые, за исключением того, что блок из 16 нулей рассмат-

ривается как 216; операция обозначается как .

Все операции выполняются над 16-битовыми субблоками. Комбинирование этих трех операций обеспечивает комплексное пре-

образование входа, существенно затрудняя криптоанализ IDEA по сравнению с DES, который базируется исключительно на операции "исключающее ИЛИ".

Общая схема алгоритма IDEA приведена на рисунке 5.5. 64-битовый блок данных делится на четыре 16-битовых субблока. Эти четыре субблока становятся входом в первый цикл алгоритма. Всего выполняется восемь циклов. Между циклами второй и третий субблоки меняются местами. В каждом цикле имеет место следующая последовательность операций:

(1) – умножение субблока Х1 и первого подключа.

(2) – сложение субблока Х2 и второго подключа.

(3)

– сложение субблока Х3 и третьего подключа.

(4) – умножение субблока Х4 и четвертого подключа.

(5)– сложение результатов шагов (1) и (3).

(6) – сложение результатов шагов (2) и (4).

112

(7) – умножение результата шага (5) и пятого подключа.

(8)

– сложение результатов шагов (6) и (7).

(9) – умножение результата шага (8) с шестым подключом.

(10) – сложение результатов шагов (7) и (9).

(11) – сложение результатов шагов (1) и (9). (12) – сложение результатов шагов (3) и (9). (13) – сложение результатов шагов (2) и (10). (14) – сложение результатов шагов (4) и (10).

Выходом цикла являются четыре субблока, которые получают как результаты выполнения шагов (11), (12), (13) и (14). В завершение цикла переставляют местами два внутренних субблока (за исключением последнего цикла), и в результате формируется вход для следующего цикла.

Обозначения:

Xi – 16-битовый субблок открытого текста, i = 1…4 Yi – 16-битовый субблок шифртекста, i = 1…4

113

Zj(r) – 16-битовый подключ (субблок ключа), j = 1…6, r = 1…8

– поразрядное суммирование по модулю 2 16-битовых субблоков

– сложение по модулю 216 16-битовых целых

– умножение по модулю 216 16-битовых целых (с нулевым субблоком, соответствующим 216)

Рисунок 5.5 – Схема алгоритма IDEA (режим шифрования)

После восьмого цикла осуществляют заключительное преобразование выхода:

(1) – умножение субблока Х1 и первого подключа.

(2) – сложение субблока Х2 и второго подключа.

(3) – сложение субблока Х3 и третьего подключа.

(4) – умножение субблока Х4 и четвертого подключа.

Наконец, эти результирующие четыре субблока Y1…Y4 вновь объединяют для получения блока шифртекста.

Создание подключей Zj также относительно несложно. Алгоритм использует всего 52 подключа (по шесть для каждого из восьми циклов и еще четыре для преобразования выхода). Сначала 128-битовый ключ делят на восемь 16-битовых подключей. Это – первые восемь подключей для алгоритма (шесть подключей – для первого цикла и первые два подключа – для второго цикла). Затем 128-битовый ключ циклически сдвигается влево на 25 бит и снова делится на восемь подключей. Первые четыре из них используют во втором цикле; последние четыре – в третьем цикле. Ключ снова циклически сдвигается влево еще на 25 бит для получения следующих восьми подключей и т.д., пока выполнение алгоритма не завершится.

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

114