HAVAL

HAVAL — это однонаправленная хэш-функция переменной длины. Функция HAVAL является модификацией функции MD5. Алгоритм HAVAL обрабатывает сообщение блоками размером в 1024 разряда, что в два раза больше, чем в алгоритме MD5. В HAVAL используется восемь 32-разрядных переменных сцепления, то есть в два раза больше, чем в MD5, и переменное число раундов обработки, от трех до пяти (на каждом раунде исполняется 16 шагов). Функция HAVAL может выдавать хэш-значения размером в 128, 160, 192 224 или 256 разрядов.

В алгоритме HAVAL простые нелинейные функции MD5 заменены сильно нелинейными функциями 7 переменных, каждая из которых удовлетворяет строгому лавинному критерию. На всех раундах применяется одна функция, но на каждом шаге к входным данным применяются различные операции перестановки. Используется новый порядок обработки сообщения, и на каждом шаге (за исключением первого раунда) используется своя прибавляемая константа. Также в алгоритме используются два циклических сдвига. Сердцевиной алгоритма являются такие операции:

  • TEMP = (f(j,A,B,C,D,E,F,G) < < 7) + (H < < < 11) + M[i][r(j)] + K(j)
  • H = G;G = F;F = E;E = D;D = C;C = B;B = A;A = TEMP

Переменное количество раундов и переменный размер вычисляемого алгоритмом значения означают, что существует 15 версий алгоритма. Атака на алгоритм MD5, выполненная ден Боером и Босселаерсом (англ.), неприменима к алгоритму HAVAL, из-за наличия в нем операции циклического сдвига.

См. также


 B.den Boer and A.Bosselaers "Collisions for the Compression Function of MD5" Advances in Cryptology - EUROCRYPT '93 Proceedings, Springer-Verlag, 1994, pp.293-304

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home