ГОСТ Р 34.11─2012
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА
ИНФОРМАЦИИ
Функция хэширования
ГОСТ Р 34.11─2012
ВВЕДЕН В ДЕЙСТВИЕ ВЗАМЕН ГОСТ Р 34.11–94
Настоящий стандарт содержит
-описание алгоритма -процедуры вычисления хэш-функции
для любой последовательности двоичных символов, которые применяются в криптографических методах ЗИ, в том числе в процессах формирования и проверки ЭЦП.
Необходимость разработки настоящего стандарта вызвана потребностью в создании хэш-функции, соответствующей современным требованиям к криптографической стойкости и требованиям стандарта ГОСТ Р 34.10–2012 на ЭЦП.
ГОСТ Р 34.11─2012. Термины и определения
Заполнение (padding): приписывание дополнительных бит к строке бит.
Инициализационный вектор (initializing value): вектор, определенный как начальная точка работы функции хэширования.
Сообщение (message): строка бит ограниченной длины
Функция сжатия (round function): итеративно используемая функция, преобразующая строку бит длины L1 и полученную на предыдущем шаге строку бит длины L2 в строку бит длины L2.
Хэш-код (hash-code): строка бит, являющаяся выходным результатом хэш-функции.
|
|
|
|
|
|
|
1) по данному значению функции сложно вычислить |
|
хэш-функция |
(collision-resistant |
|||||
|
|
исходные данные, отображаемые в это значение; |
|||||
|
hash-function): |
|
Функция, |
|
|||
|
|
|
|
||||
|
|
|
|
||||
|
отображающая строки бит в строки |
|
2) для заданных исходных данных сложно вычислить |
||||
|
бит фиксированной |
длины и |
|
другие исходные данные, отображаемые в то же значение |
|||
|
удовлетворяющая |
|
следующим |
|
|
функции; ГОСТ Р 34.11-2012 |
|
|
|
|
|
|
|||
|
свойствам: |
|
|
|
|
|
|
|
|
|
|
|
|
3 ) сложно вычислить какую-либо пару исходных |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
данных, отображаемых в одно и то же значение. |
|
|
|
|
|
|
|
|
[электронная цифровая] подпись (signature); ЭЦП: Строка бит, полученная в результате процесса формирования подписи.
ГОСТ Р 34.11─2012. Используемые обозначения
ГОСТ Р 34.11─2012. Используемые обозначения
ГОСТ Р 34.11─2012. Общие положения. Преобразования.
|
|
|
|
|
Данный стандарт определяет |
две функции хэширования |
H :V * Vn |
|
|
||
|
с длинами хэш-кода: |
|
|
|
n=256 бит |
|
|
|
n=512 бит. |
|
|
|
|
|
|
|
|
|
|
|
При вычислении хэш-кода H(M) сообщения M V * |
используются следующие |
|
|
преобразования: |
|
|
|
|
|
|
ГОСТ Р 34.11─2012
Функция сжатия
Значение хэш-кода сообщения M V * вычисляется с использованием итерационной процедуры.
На каждой итерации вычисления хэш-кода используется функция сжатия:
значение которой вычисляется по формуле:
где
ГОСТ Р 34.11─2012
Процедура вычисления хэш-функции
Исходными данными для процедуры вычисления хэш-кода Н(М) является подлежащее хэшированию сообщение M V * и IV V512 – инициализационный вектор хэширования. Алгоритм вычисления функции Н состоит из следующих этапов.
Этап 1
Присвоить начальные значения текущих величин:
ГОСТ Р 34.11─2012
Процедура вычисления хэш-функции
Этап 2
При положительном исходе перейти к этапу 3.
2.1. Проверить
условие |М| <512. В противном случае выполнить последовательность вычислений:
2.2. Вычислить подвектор m сообщения М: М = М' ||m.
V512
Далее выполнить последовательность вычислений:
ГОСТ Р 34.11─2012
Процедура вычисления хэш-функции
Этап 3
Значение величины h, полученное на шаге 3.6, является значением функции хэширования
Н(М).