Однонаправленные хэш-функции
Хэш-функция предназначена для сжатия подписываемого документа до нескольких десятков или сотен бит. Хэш-функция
принимает в качестве аргумента сообщение (документ)
произвольной длины и возвращает хэш-значение
фиксированной длины. Обычно хэшированная информация является сжатым двоичным представлением основного сообщения произвольной длины. Следует отметить, что значение хэш-функции
сложным образом зависит от документа
и не позволяет восстановить сам документ
.
Хэш-функция должна удовлетворять целому ряду условий:
– хэш-функция должна быть чувствительна к всевозможным изменениям в тексте М, таким, как вставки, выбросы, перестановки и т. п.;
– хэш-функция должна обладать свойством необратимости, то есть задача подбора документа , который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима;
– вероятность того, что значения хэш-функции двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала.
Большинство хэш-функций строится на основе однонаправленной функции , аргументами которой являются две величины: блок исходного документа
и хэш-значение
предыдущего блока документа (рис. 7.7):
.
Хэш-значение, вычисляемое при вводе последнего блока текста, становится хэш-значением всего сообщения . В результате однонаправленная хэш-функция всегда формирует выход фиксированной длины
(независимо от длины входного текста).
![]() |
Часто функции хэширования строят используя в качестве однонаправленной функции симметричный блочный алгоритм шифрования (DES, ГОСТ 28147-89) в режиме с обратной связью, принимая последний блок шифротекста за хэш-значение всего документа. Так как длина блока в указанных алгоритмах невелика (64 бита), то часто в качестве хэш-значения используют два блока шифротекста. Одна из возможных схем хэширования на основе блочного алгоритма шифрования изображена на рис. 7.8.
![]() |
Дата добавления: 2015-09-07; просмотров: 2407;