Содержание
Криптогафическая хэш-функция Whirlpool
- Whirlpool
- криптографическая хэш-функция, разработанная Vincent Rijmen и Paulo S. L. M. Barreto . Впервые опубликована в ноябре 2000 года. Осуществляет хэширование входного сообщения с длиной до бит.
Whirlpool использует структуру Меркля-Дамгарда и одностороннюю функцию сжатия Миагучи-Пренеля для формирования 512-блока зашифрованого текста . Поскольку внутренний блок шифрования работает с 512-битными входными сообщениями, то исходное сообщение необходимо разбить на блоки по 512 бит. При этом последний блок, который содержит конец сообщения, может оказаться неполным.
Для решения данной задачи в Whirlpool используется дополнение входного сообщения. Результатом дополнения сообщения является сообщение , длина которого кратна 512. Пусть — длина исходного сообщения. Для того, чтобы получить , необходимо сделать 3 операции:
- К концу сообщения приписать бит «1» ;
- Приписать x битов «0» так, чтобы длина полученной строки была кратна 256 нечетное число раз;
- Приписать 256-битное представление числа .
Полученная строка разбивается на 512-битовые блоки , , , которые используются для генерации последовательности хэш-значений , , . - строка из 512 «0» битов. Для вычисления , шифрует , используя в качестве ключа , и выполняет между и . Значением хэш-функции является .
Раунды
Шифр Whirlpool использует 10 раундов. Размер блока и размер ключа - 512 бит. Ключом для
раунда является .
Функция раунда
512 бит входного блока группируются в 64 байта по 8 бит. Затем эти байты записываются в матрицу размером 8 * 8
Вдальнейшем нам придется работать в конечном поле GF(28). Элементы GF(28) это байты, состоящие из 8 бит. Они могут спомощьюоперации XOR. Модель конечногоп оля GF(28) зависит от выбора неприводимогомногочлена степени 8. Дляалгоритма AES этим многочленом является С(X) = X8 + X4 + X3 + X +1.
КатегорияКриптография