Статус документа
Статус документа

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

     4.1 Алгоритмы НМАС


В настоящем подразделе определены алгоритмы вычисления кода аутентификации сообщения НМАС на основе хэш-функции Н, определенной в ГОСТ Р 34.11-2012 (раздел 8) с различными длинами выходных значений.

4.1.1 HMAC_GOSTR3411_2012_256

Алгоритм HMAC_GOSTR3411_2012_256 предназначен для вычисления кода аутентификации сообщения НМАС на основе хэш-функции с длиной выхода, равной 256 битам, определенной в ГОСТ Р 34.11-2012 (раздел 8), и имеет следующий идентификатор:

id-tc26-HMAC-gost-3411-12-256, "1.2.643.7.1.1.4.1".


Результатом работы данного алгоритма является значение функции HMAC(K,T), вычисление которой для данных Т произвольной длины на ключе K длины n бит состоит в формировании байтовой строки K* длины 64 байта и выполнении преобразований над K* и данными Т с использованием хэш-функции Н.

Допускаются любые значения длины n из интервала от 256 до 512.

Для формирования ключа K* при n<512 следует положить строку равной байтовому представлению битовой строки K|А, где ; если n=512 положить K* равной байтовому представлению K. Значение HMAC(K,T) определено выражением:

,                     (1)


где в байтовом представлении

,

.


Данный алгоритм использует H в качестве хэш-функции в конструкции НМАС, описанной в [1]. Указанный способ формирования ipad и opad также приведен в [1]. Длина выхода HMAC равна 32 байтам, длина блока итерационной процедуры функции сжатия для H  равна 64 байтам (в обозначениях [1]: L=32, В=64).

4.1.2 HMAC_GOSTR3411_2012_512

Алгоритм HMAC_GOSTR3411_2012_512 предназначен для вычисления кода аутентификации сообщения НМАС на основе хэш-функции H с длиной выхода, равной 512 битам, определенной в ГОСТ Р 34.11-2012 (раздел 8), и имеет следующий идентификатор:

id-tc26-HMAC-gost-3411-12-512, "1.2.643.7.1.1.4.2".


Результатом работы данного алгоритма является значение функции НМАС(K,T), вычисление которой для данных Т произвольной длины на ключе K длины n бит состоит в формировании байтовой строки K* длины 64 байта и выполнении преобразований над K* и данными Т с использованием хэшфункции H.

Допускаются любые значения длины n из интервала от 256 до 512. Рекомендуется использовать значение n, равное 512.

Для формирования ключа K* при n<512 следует положить строку K* равной байтовому представлению битовой строки K|А, где ; если n=512, положить K* равной байтовому представлению K. Значение НМАС (K,Т) определено выражением:

,                    (2)

где в байтовом представлении

,

.


Данный алгоритм использует Н в качестве хэш-функции в конструкции НМАС, описанной в [1]. Указанный способ формирования ipad и opad приведен также в [1]. Длина выхода НМАС равна 64 байтам, длина блока итерационной процедуры функции сжатия для Н равна 64 байтам (в обозначениях [1]:L=64, В=64).