Функция хеширования ГОСТ Р 34.11-94.

При описании функции хеширования будут использоваться те же обозначения, что использовались при описании алгоритма выработки цифровой подписи согласно ГОСТ Р 34.10. Кроме того, пусть М - последовательность двоичных символов, подлежащих хешированию; h - хеш- функция, отображающая последовательность М в слово h(M) е V256(2); ЕК (А) - результат шифрования слова А на ключе К с использованием алгоритма шифрования по ГОСТ 28147-89 в режиме простой замены; Н - стартовый вектор хеширования.

Под хеш-функцией h понимается отображение h : В * —> V256 ( 2).

Для определения хеш-функции необходимы: алгоритм вычисления шаговой функции хеширования к, где к : V256 (2) *V256 (2) —> V256 (2) ; описание итеративной процедуры вычисления значения хеш-функции Ь.

Алгоритм вычисления шаговой функции хеширования состоит из трех частей: генерации четырех 256-битных ключей; шифрующего преобразования - шифрования 64-битных подслов слова И на ключах Ki (i = 1,2, 3, 4) с использованием алгоритма ГОСТ 28147-89 в режиме простой замены; перемешивающего преобразования результата шифрования.

Шифрующее преобразование. На данном этапе осуществляется шифрование 64-битных подслов слова Н на ключах Ki (i = 1,2, 3, 4).

Процедура вычисления хеш-функции. Исходными данными для процедуры вычисления значения функции h является подлежащая хешированию последовательность М еВ. Параметром является стартовый вектор хеширования Н - произвольное фиксированное слово из V256(2).

Алгоритм вычисления функции h включает в себя три этапа.

Этап 1. Присвоить начальные значения текущих величин

Этап 2. Проверить условие |М| > 256. Если да, то перейти к этапу 3. В противном случае выполнить последовательность вычислений:

Конец работы алгоритма. I I содержит значение хеш-функции.

Этап 3. Вычислить подслово MS ^ V256(2) слова М (М = MP||MS). Далее выполнить последовательность вычислений:

Перейти к этапу 2.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >