Другие примеры хэшфункций на основе алгоритмов шифрования

Другие примеры хэшфункций на основе алгоритмов шифрования. Nхэш алгоритм разработан фирмой Nippon Telephone Telegraph в 1990 году. Nхэш алгоритм использует блоки длиной 128 битов, шифрующую функцию, аналогичную функции алгоритма шифрования FEAL, и вырабатывает блок хэшкода длиной 128 битов. На вход пошаговой хэшфункции в качестве аргументов поступают очередной блок кода Mi длиной 128 битов и хэшкод Hi1 предыдущего шага также размером 128 битов. При этом H0=I, а Hi=Ek(Mi, Hi1)MiHi1. Хэшкодом всего кода программы объявляется хэшкод, получаемый в результате преобразования последнего блока текста.

Идея использовать алгоритм блочного шифрования, стойкость которого общеизвестна, для построения надежных схем хэширования выглядит естественной. Однако для некоторых таких хэшфункций возникает следующая проблема. Предлагаемые методы могут требовать задания некоторого ключа, на котором происходит шифрование. В дальнейшем этот ключ необходимо держать в секрете, ибо противник, зная этот ключ и значение хэшкода, может выполнить процедуру в обратном направлении. Еще одной слабостью указанных выше схем хэширования является то, что размер хэшкода совпадает с размером блока алгоритма шифрования. Чаще всего размер блока недостаточен для того, чтобы схема была стойкой против атаки на основе "парадокса дня рождения". Поэтому были предприняты попытки построения хэшфункций на базе блочного шифра с размером хэшкода в k раз (как правило, k=2) большим, чем размер блока алгоритма шифрования.

В качестве примера можно привести хэшфункции MDC2 и MDC4 фирмы IBM. Данные хэшфункции используют блочный шифр (в оригинале DES) для получения хэшкода, длина которого в два раза больше длины блока шифра. Алгоритм MDC2 работает несколько быстрее, чем MDC4, но представляется несколько менее стойким.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок