Функция хэширования Snefru
Snefru - это хэш-функция, разработанная Ральфом Мерклом. Snefru хэширует сообщения произвольной длины, превращая их в 128-битовые 256-битовые значения.
Сначала сообщение разбивается на кусочки, длиной по 512-m (Переменная m является длиной хэш-значения.) Если выход - это 256-битовое значение, то длина кусочков равна 384 битам, а если выход - 128-битовое, то длина кусочков - 256 битов.
Функция H хэширует 512-битовое значение в m-битовое. Первые m битов выхода H являются хэш-значением блока, остальные отбрасываются. Следующий блок добавляется к хэш-значению предыдущего блоуа и снова хэшируется. (К первоначальному блоку добавляется строка нулей.) После последнего блока (если сообщение состоит не из целого числа блоков, последний блок дополняется нулями) первые m битов добавляются к бинарному представлению длины сообщения и хэшируются в последний раз.
Функция H, основывается на E, обратимой функции блочного шифрования, работающей с 512 битовыми блоками. H - это последние m битов выхода Е, объединенные поредством XOR с первыми m битами входа Е.
Безопасность Snefru опирается на функцию Е, которая рандомизирует данные за несколько проходов. Каждый проход состоит из 64 рандомизированных этапов. В каждом этапе в качестве входа S-блока используется другой байт данных. Выходное слово подвергается операции XOR с двумя соседними словами сообщения.
АИСС БКБ, www.orioncom.ru, tel (495) 783-5510