Российский стандарт хеш-функций ГОСТ 34.11-94


 

Хеш-функция позволяет преобразовать сообщение произвольной длины в хеш-значение фиксированной длины, при этом хеш-значение зависит от всех битов сообщений и является его сжатым образом. Хеш-функция удовлетворяет следующим требованиям:

· практически невозможно (вычислительно трудоемко) подобрать сообщение М, которое имело бы заданное хеш-значение;

· практически невозможно подобрать два различных сообщения с равными хеш-значениями, что не позволит противнику одновременно подготовить истинное и ложное сообщения.

Использование криптографических хеш-функций для построения различных схем цифровой подписи позволяет эффективно подписывать (а затем хранить и передавать) различные по длине сообщения, не разбивая их на части.

На практике хеш-функции реализуются с помощью рекуррентных вычислений. Пусть сообщение М разбито на равные по длине блоки М = M1, M2, М3,..., Мп, тогда значения Hi вычисляются с помощью соотношения

Hi = f(MiHi-1), i = 1,2,3, ...,n,

где Н0 — начальное значение.

Нп позволяет вычислить хеш-значение сообщения М (в некоторых схемах Нп = h(M)). При этом функция f может быть построена на базе симметричного блочного шифра.

Российский стандарт хеш-функций ГОСТ Р 34.11-94 основан на стандарте криптографической защиты данных ГОСТ 28147-89 в режиме простой замены. Принцип реализации функции f(MiHi) = Hi представлен на рис. 6.

 

 

Рис. 6. Принцип вычисления хеш-функций:Si (i = 1,2,3,4) — 64-битные подблоки блока S; hi (i = 1,2,3,4) — 64-битные подблоки блока Hi-1; ki — 64-битные ключи, полученные с помощью линейной функции от переменных Mi, Hi-1 и некоторых констант; Eki — алгоритм шифрования в режиме простой замены с ключами ki (i = 1,2, 3,4)

 

Длина хеш-значения стандарта хеш-функций ГОСТ Р 34.11-94 равна 256 битов.