Содержание
Криптогафическая хэш-функция 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
Вдальнейшем нам придется работать в конечном поле . Элементы это байты, они могут складываться с помощью операции XOR. Модель конечного поля зависит от выбора неприводимого многочлена степени 8. Для алгоритма Whirlpool этим многочленом является .
КатегорияКриптография