Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие КЗИ учебное пособие.docx
Скачиваний:
131
Добавлен:
08.05.2019
Размер:
1.34 Mб
Скачать

3.2.2. Сеть Файстеля

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

Действие, состоящее из однократного вычисления образующей функции и последующего наложения ее результата на другую ветвь с обменом их местами, называется циклом или раундом (англ. round) сети Файстеля. Оптимальное число раундов N – от 8 до 32. Важно то, что увеличение количества раундов значительно увеличивает криптостойкость любого блочного шифра к криптоанализу.

Классическая схема одного раунда сети Файстеля имеет следующую структуру:

Зашифрование:

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

Рис.13. Сеть Файстеля

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

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

Благодаря применению финального преобразования (перестановка левой и правой частей блока) сеть Файстеля симметрична. Использование операции XOR, обратимой своим же повтором, и инверсия последнего обмена ветвей делают возможным раскодирование блока той же сетью Файстеля, но с инверсным порядком применения подключей ki. Заметим, что для обратимости сети Файстеля не имеет значение, является ли число раундов четным или нечетным числом. В большинстве реализаций схемы, в которых оба вышеперечисленные условия (операция XOR и уничтожение последнего обмена) сохранены, прямое и обратное преобразования производятся одной и той же процедурой.

В настоящее время чаще применяют модификацию сети Фейстеля для большего числа ветвей. Это в первую очередь связано с тем, что при больших размерах кодируемых блоков (128 и более бит) становится неудобно работать с математическими функциями по модулю 64 и выше. Как известно, основные единицы информации, обрабатываемые процессорами на сегодняшний день – это байт и двойное машинное слово 32 бита. Поэтому все чаще и чаще в блочных криптоалгоритмах встречается сеть Фейштеля с 4-мя ветвями. Самый простой принцип ее модификации изображен на рисунке а). Для более быстрого перемешивания информации между ветвями (а это основная проблема сети Фейштеля с большим количеством ветвей) применяются две модифицированные схемы, называемые "type-2" и "type-3". Они изображены на рис.14.

Рис.14. Сеть Файстеля на четыре ветви

3.3. Современные блочные криптоалгоритмы

3.3.1. Основные параметры блочных криптоалгоритмов.

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

Таблица 6. Основные параметры распространенных блочных криптоалгоритмов.

Назва-

ние

Размер блока, бит

Размер ключа, бит

Кол-во раундов

Основа алгоритма

Применяемые операции

1

DES

64

56

16

Сеть Файстеля (2 ветви)

XOR,

S-подстановки,

перестановки

2

3DES

64

112,168

48

Алгоритм DES

-'-

3

IDEA

64

128

8

Мультипликативно-аддитивная структура

(4 ветви)

XOR, сложение по модулю 216, умножение по модулю 216+1

4

Blowfish

64

32..448

16

Модифицированная сеть Файстеля (2 ветви)

XOR, сложение по модулю 232 ,

S-подстановки

5

RC5

32, 64, 128

8..2040

1.255

Оригинальная структура (2 ветви)

XOR, сложение/вычитание,

циклический сдвиг

6

CAST

64,128

40..256

3..32

Сеть Файстеля с переменной F (2 ветви)

XOR, сложение/вычитание,

циклический сдвиг,

S-подстановки

7

RC2

64

8..1024

18

Оригинальная структура (4 ветви)

XOR, сложение,

циклический сдвиг, побитовое "И", побитовое дополнение

8

ГОСТ 28147-89

64

256

32

Сеть Файстеля (2 ветви)

XOR, сложение,

циклический сдвиг, S-подстановки

9

TEA

64

128

32

Несимметричная сеть Файстеля (2 ветви)

XOR, сложение,

битовый сдвиг

10

MARS

128

128,192,256

16+16

Сеть Файстеля (4 ветви)

XOR, сложение,

циклический сдвиг,

S-подстановки

11

RC6

128

128,192,256

20

Сеть Файстеля (4 ветви)

XOR, сложение,

циклический сдвиг, преобразование T

Окончание табл. 6

Назва-

ние

Размер блока, бит

Размер ключа, бит

Кол-во раундов

Основа алгоритма

Применяемые операции

12

Serpent

128

128,192,256

32

Сеть Файстеля (4 ветви)

XOR, битовый сдвиг,

циклический сдвиг,

S-подстановки

13

Twofish

128

128,192,256

?

Алгоритм Blowfish, сеть Файстеля (4 ветви), преобразование Адамара

XOR, сложение,

циклический сдвиг,

S-подстановки

14

Rijndael (AES)

128

128,192,256

10..14

Табличные преобразования подблоков

XOR, S-подстановки, сдвиг строк, перемешивание в столбцах

15

Base King

192

?

?

Алгоритм 3-WAY

?

16

SAFER

64

64,128

?

Итеративные раунды, псевдопреобразования Адамара

Логарифмирование и экспоненцирование в конечном поле, XOR, сложение

17

3-WAY

96

96

?

Оригинальная процедура

Линейная подстановка на основе сдвигов и XOR, перестановки, нелинейная подстановка 3-бит блоков

Ниже рассмотрим подробнее некоторые современные блочные криптоалгоритмы