Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




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

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

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

Название Размер блока, бит Размер ключа, бит Кол-во раундов Основа алгоритма Применяемые операции
  DES       Сеть Файстеля (2 ветви) XOR, S-подстановки, перестановки
  3DES   112,168   Алгоритм DES -'-
  IDEA       Мультипликативно-аддитивная структура (4 ветви) XOR, сложение по модулю 216, умножение по модулю 216+1
  Blowfish   32..448   Модифицированная сеть Файстеля (2 ветви) XOR, сложение по модулю 232, S-подстановки
  RC5 32, 64, 128 8..2040 1.255 Оригинальная структура (2 ветви) XOR, сложение/вычитание, циклический сдвиг
  CAST 64,128 40..256 3..32 Сеть Файстеля с переменной F (2 ветви) XOR, сложение/вычитание, циклический сдвиг, S-подстановки
  RC2   8..1024   Оригинальная структура (4 ветви) XOR, сложение, циклический сдвиг, побитовое "И", побитовое дополнение
  ГОСТ 28147-89       Сеть Файстеля (2 ветви) XOR, сложение, циклический сдвиг, S-подстановки  
  TEA       Несимметричная сеть Файстеля (2 ветви) XOR, сложение, битовый сдвиг
  MARS   128,192,256 16+16 Сеть Файстеля (4 ветви) XOR, сложение, циклический сдвиг, S-подстановки
  RC6   128,192,256   Сеть Файстеля (4 ветви) XOR, сложение, циклический сдвиг, преобразование T  
Название Размер блока, бит Размер ключа, бит Кол-во раундов Основа алгоритма Применяемые операции
  Serpent   128,192,256   Сеть Файстеля (4 ветви) XOR, битовый сдвиг, циклический сдвиг, S-подстановки
  Twofish   128,192,256 ? Алгоритм Blowfish, сеть Файстеля (4 ветви), преобразование Адамара XOR, сложение, циклический сдвиг, S-подстановки
  Rijndael (AES)   128,192,256 10..14 Табличные преобразования подблоков XOR, S-подстановки, сдвиг строк, перемешивание в столбцах
  Base King   ? ? Алгоритм 3-WAY ?
  SAFER   64,128 ? Итеративные раунды, псевдопреобразования Адамара Логарифмирование и экспоненцирование в конечном поле, XOR, сложение
  3-WAY     ? Оригинальная процедура Линейная подстановка на основе сдвигов и XOR, перестановки, нелинейная подстановка 3-бит блоков

 

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

Алгоритм DES.

DES представляет собой 64-битовый блочный алгоритм с 56-битовым ключом. Как и ГОСТ он построен на классической сети Файстеля и выполняется в течение 16 раундов см рис.15, кроме того, он имеет начальную и завершающую перестановки.

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

 

Рис.15. Раунд шифрования DES

Алгоритм DES являлся коммерческим стандартом шифрования США до 2000 года, когда ему на смену пришел AES. В настоящее время алгоритм применяется в варианте 3DES – каждый блок шифруется трижды на разных ключах. Фактическая длина ключа составила 168 бит.

Блочный шифр TEA

Один из самых простых в реализации, но признанно стойких криптоалгоритмов – TEA (Tiny Encryption Algorithm).

Параметры алгоритма:

Размер блока – 64 бита.

Длина ключа – 128 бит.

В алгоритме использована сеть Фейстеля с двумя ветвями в 32 бита каждая.

Образующая функция F обратима.

Сеть Файстеля несимметрична из-за использования в качестве операции наложения не исключающего "ИЛИ", а арифметического сложения.

Ниже приведен код криптоалгоритма на языке программирования PASCAL.

 

 

type TLong2=array[0.. 1] of longint; TLong2x2=array[0.. 1] of TLong2;const Delta=$9E3779B9;var key:TLong2x2;procedure EnCryptRouting(var data);var y,z,sum:longint; a:byte;beginy:=TLong2(data)[0];z:=TLong2(data)[1];sum:=0;for a:=0 to 31 do begin inc(sum,Delta); inc(y,((z shl 4)+key[0,0]) xor (z+sum) xor ((z shr 5)+key[0,1])); inc(z,((y shl 4)+key[1,0]) xor (y+sum) xor ((y shr 5)+key[1,1])); end;TLong2(data)[0]:=y;TLong2(data)[1]:=zend;

Рис.16. Алгоритм TEA

Отличительной чертой криптоалгоритма TEA является его размер. Простота операций, отсутствие табличных подстановок и оптимизация под 32-разрядную архитектуру процессоров позволяет реализовать его на языке ASSEMBLER в предельно малом объеме кода. Недостатком алгоритма является некоторая медлительность, вызванная необходимостью повторять цикл Фейштеля 32 раза (это необходимо для тщательного "перемешивания данных" из-за отсутствия табличных подстановок).

Схема работы алгоритма приведена на рис. 15.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...