Это старая версия (1.12) КриптографическаяХэшФункцияWhirlpool.

Содержание

Криптогафическая хэш-функция Whirlpool

Whirlpool
криптографическая хэш-функция, разработанная Vincent Rijmen и Paulo S. L. M. Barreto . Впервые опубликована в ноябре 2000 года. Осуществляет хэширование входного сообщения с длиной до 2 sup {256} бит.

Whirlpool использует структуру Меркля-Дамгарда и одностороннюю функцию сжатия Миагучи-Пренеля для формирования 512-блока зашифрованого текста W. Поскольку внутренний блок шифрования W работает с 512-битными входными сообщениями, то исходное сообщение необходимо разбить на блоки по 512 бит. При этом последний блок, который содержит конец сообщения, может оказаться неполным.

Для решения данной задачи в Whirlpool используется дополнение входного сообщения. Результатом дополнения сообщения M является сообщение M  prime, длина которого кратна 512. Пусть L — длина исходного сообщения. Для того, чтобы получить M  prime, необходимо сделать 3 операции:

  1. К концу сообщения M приписать бит «1» ;
  2. Приписать x битов «0» так, чтобы длина полученной строки L+1+x была кратна 256 нечетное число раз;
  3. Приписать 256-битное представление числа L.

Полученная строка разбивается на 512-битовые блоки M sub 1, M sub 2, M sub t, которые используются для генерации последовательности хэш-значений H sub 1, H sub 2, H sub t. H sub 0 - строка из 512 «0» битов. Для вычисления H sub i, W шифрует M sub i, используя в качестве ключа H sub {i-1}, и выполняет XOR между H sub {i-1} и M sub i. Значением хэш-функции является H sub t.

Раунды

Шифр Whirlpool использует 10 раундов. Размер блока и размер ключа - 512 бит. Ключом для i

раунда является K sub i.

Функция раунда

512 бит входного блока группируются в 64 байта по 8 бит. Затем эти байты записываются в матрицу размером 8 * 8 Delta = 
roman det (A) = 
left | 
 matrix {
  ccol {3 above -1} 
  ccol {-2 above 4}
 } 
right |  .

Вд альнейшем нам придется работать в конечном поле GF(28). Элементы GF(28) это байты, состоящие из 8 бит. Они могут спомощьюоперации XOR. Модель конечногоп оля GF(28) зависит от выбора неприводимогомногочлена степени 8. Дляалгоритма AES этим многочленом является С(X) = X8 + X4 + X3 + X +1.


КатегорияКриптография