Методы и средства защиты информации

         

Блочный шифр 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; begin y:=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]:=z end;

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


Рис.1.

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



Содержание раздела