Содержание
Криптогафическая хэш-функция 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 бит. Ключом для раунда является .
КатегорияКриптография