Современные блочные криптоалгоритмы.
Основные параметры блочных криптоалгоритмов. Основными параметрами, характеризующими современные блочные криптографические алгоритмы являются размер блока шифртекста (определяющий энтропию алфавита сообщения), размер ключевого пространства (определяющий энтропию криптосистемы), количество раундов, структурная схема криптоалгоритма, применяемые криптографические преобразования (математические операции). Характеристики некоторых наиболее известных современных блочных криптоалгоритмов сведены в таблицу. Таблица 6. Основные параметры распространенных блочных криптоалгоритмов.
Ниже рассмотрим подробнее некоторые современные блочные криптоалгоритмы Алгоритм 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|