Whirlpool

Авторы алгоритма - Vincent Rijmen и Paulo S. L. M. Barreto. Работает на вводе до 2256 бит.

Выходное значение алгоритма хеширования Whirlpool составляет 512 бит. Первая версия Whirlpool была опубликована в ноябре 2000 года. Вторая версия называется Whirlpool-T, рассматривается как вариант для нового стандарта европейской хэш-функции в криптографических приложениях.

http://paginas.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html

Panama

Panama (Joan Daemen, Craig Clapp)

Описание (англ.) http://data.mf.grsu.by/Crypto/papers/1372/13720060.pdf

N-Hash

N-хэш - это алгоритм, придуманный в 1990 году исследователями Nippon Telephone and Telegraph, теми же людьми, которые изобрели FEAL. N-хэш использует 128-битовые блоки сообщения, сложную рандомизирующую функцию, похожую на FEAL, и выдает 128-битовое хэш-значение.

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

H0 = I, где I - случайное начальное значение;

Hi = g(Mi, Hi-1) Å Mi Å Hi-1

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

Функция g достаточно сложна. Схема алгоритма приведена на 16-й. Сначала переставляются левая и правая 64-битовые половины 128-битового хэш-значения предыдущего блока Hi-1, а затем выполняется XOR с повторяющимся шаблоном (128-битовым) и XOR с текущим блоком сообщения Mi. Далее это значение каскадно преобразуется в N (на рисунках N= 8) стадий обработки. Другим входом стадии обработки является предыдущее хэш-значение, подвергнутое XOR с одной из восьми двоичных констант.

EXG: перестановка левой и правой частей

v: 1010... 1010 (двоичное, 128 битов)

PS: стадия обработки (processing stage)

Vj = õ || Aj1 õ ||Д-2 õ ||Луз õ ||ЛУ4

||: конкатенация б: 000... 0 (двоичное, 24 бит) A'k=4*(/-1)+k(k=1,2,3,4, Ajk - 8 битов в длину) Hi = g(Mi, Ни) ® Mi ® Ни

Рис. 18-2. Схема N-хэш.

Одна стадия обработки показана на 15-й. Блок сообщения разбивается на четыре 32-битовых значения. Предыдущее хэш-значение также разбивается на четыре 32-битовых значения. Функция f представлена на 14th. Функции S0 и S1 те же самые, что и в FEAL.

S0(a,b) = циклический сдвиг влево на два бита ((a + b) mod 256)

S1(a,b) = циклический сдвиг влево на два бита((a + b + 1) mod 256)

Рис. 18-3. Одна стадия обработки N-хэш.

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

Рис. 18-4. Функция /.

Y=S0(Xi,X2)=Rot2((Xi+X2) mod 256)

Y=S1(x1,X2)=Rot2((Х1+X2+1) mod 256)

Y: выходные 8 битов,

X1,X2 (8 битов): входы Rot2(Y): циклический сдвиг влево на 2 бита 8-битовых данных Y


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: