Государственный стандарт РФ ГОСТ Р 34.11-94
"Информационная технология. Криптографическая защита информации. Функция хэширования"
(принят постановлением Госстандарта РФ от 23 мая 1994 г. N 154)
Information technology. Cryptographic Data Security. Hashing function
Дата введения - 1 января 1995 г.
Введен впервые
Приказом Росстандарта от 7 августа 2012 г. N 216-ст настоящий ГОСТ отменён с 1 января 2013 г. Взамен введён ГОСТ Р 34.11-2012
Введение
Расширяющееся применение информационных технологий при создании, обработке, передаче и хранении документов требует в определенных случаях сохранения конфиденциальности их содержания, обеспечения полноты и достоверности.
Одним из эффективных направлений защиты информации является криптография (криптографическая защита), широко применяемая в различных сферах деятельности, в государственных и коммерческих структурах.
Криптографические методы защиты информации являются объектом серьезных научных исследований и стандартизации на национальных, региональных и международных уровнях.
Настоящий стандарт определяет процедуру вычисления хэш-функции для любой последовательности двоичных символов.
Функция хэширования заключается в сопоставлении произвольного набора данных в виде последовательности двоичных символов и его образа фиксированной небольшой длины, что позволяет использовать эту функцию в процедурах электронной цифровой подписи для сокращения времени подписывания и проверки подписи. Эффект сокращения времени достигается за счет вычисления подписи только под образом подписываемого набора данных.
1 Область применения
Настоящий стандарт определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур электронной цифровой подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных системах.
Определенная в настоящем стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе асимметричного криптографического алгоритма по ГОСТ Р 34.10.
2 Нормативные ссылки
В настоящем стандарте использованы ссылки на следующие стандарты:
ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритмы криптографического преобразования.
ГОСТ Р 34.10-94 Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.
3 Обозначения
В настоящем стандарте используются следующие обозначения:
В* - множество всех конечных слов в алфавите В = {0,1}. Чтение слов и нумерация знаков алфавита (символов) осуществляются справа налево (номер правого символа в слове равен единице, второго справа - двум и т.д.).
|А| - длина слова .
- множество всех бинарных слов длины k.
А||В - конкатенация слов А, - слово длины |А|+|В|, в котором левые |А| символов образуют слово А, а правые |В| символов образуют слово В. Можно также использовать обозначение А||В=АВ.
- конкатенация k экземпляров слова A ().
- слово длины k, содержащее двоичную запись вычета N (mod ) неотрицательного целого числа N.
- неотрицательное целое число, имеющее двоичную запись А ().
- побитовое сложение слов одинаковой длины по модулю 2.
- сложение по правилу , (k=|А|=|В|).
М - последовательность двоичных символов, подлежащая хэшированию (сообщение в системах ЭЦП), .
h - хэш-функция, отображающая последовательность в слово .
- результат зашифрования слова А на ключе К с использованием алгоритма шифрования по ГОСТ 28147 в режиме простой замены (, ).
Н - стартовый вектор хэширования.
e:=g - присвоение параметру е значения g.
4 Общие положения
Под хэш-функцией h понимается зависящее от параметра [стартового вектора хэширования Н, являющегося словом из ] отображение
.
Для определения хэш-функции необходимы:
- алгоритм вычисления шаговой функции хэширования , т.е. отображения
: ;
- описание итеративной процедуры вычисления значения xэш-функции h.
5 Шаговая функция хэширования
Алгоритм вычисления шаговой фикции хэширования включает в себя три части, реализующие последовательно:
- генерацию ключей-слов длины 256 битов;
- шифрующее преобразование - зашифрование 64-битных подслов слова Н на ключах (i=1, 2, 3, 4) с использованием алгоритма по ГОСТ 28147 в режиме простой замены;
- перемешивающее преобразование результата шифрования.
5.1 Генерация ключей
Рассмотрим X=(, , ..., ) .
Пусть ,
где =(,..., ), ;
=(,..., ), ;
=(,..., ), ;
Обозначают .
Используют; преобразование Р:
слова в слово
где , , .
Для генерации ключей необходимо использовать следующие исходные данные:
- слова Н, ;
- параметры: слова (i=2, 3, 4), имеющие значения
и .
При вычислении ключей реализуется следующий алгоритм:
1 Присвоить значения
i:=1, U:=H, V:=M.
2 Выполнить вычисления
, .
3 Присвоить i:=i + 1.
4 Проверить условие i=5.
При положительном исходе перейти к шагу 7. При отрицательном - перейти к шагу 5.
5 Выполнить вычисление
, V:=A(A(V)), , .
6 Перейти к шагу 3.
7 Конец работы алгоритма.
5.2 Шифрующее преобразование
На данном этапе осуществляется зашифрование 64-битных подслов слова Н на ключах (i = 1, 2, 3, 4).
Для шифрующего преобразования необходимо использовать следующие исходные данные:
, ,
и набор ключей .
Реализуют алгоритм зашифрования и получают слова
, где i=1, 2, 3, 4.
В результате данного этапа образуется последовательность.
.
5.3 Перемешивающее преобразование
На данном этапе осуществляется перемешивание полученной последовательности с применением регистра сдвига.
Исходными данными являются:
слова Н, и слово .
Пусть отображение
:
преобразует слово
, ,
в слово
Тогда в качестве значения шаговой функции хэширования принимается слово
,
где - i-я степень преобразования .
6 Процедура вычисления хэш-функции
Исходными данными для процедуры вычисления значения функции h является подлежащая хэшированию последовательность . Параметром является стартовый вектор хэширования Н - произвольное фиксированное слово из .
Процедура вычисления функции h на каждой итерации использует следующие величины:
- часть последовательности М, не прошедшая процедуры хэширования на предыдущих итерациях;
- текущее значение хэш-функции;
- текущее значение контрольной суммы;
- текущее значение длины обработанной на предыдущих итерациях части последовательности М.
Алгоритм вычисления функции h включает в себя этапы:
Этап 1
Присвоить начальные значения текущих величин
1.1 М:=М
1.2 Н:=Н
1.3
1.4
1.5 Переход к этапу 2
Этап 2
2.1 Проверить условие |М|>256.
При положительном исходе перейти к этапу 3.
В противном случае выполнить последовательность вычислений:
2.2
2.3
2.4
2.5
2.6
2.7
2.8 Конец работы алгоритма
Этап 3
3.1 Вычислить подслово слова М (). Далее выполнить последовательность вычислений:
3.2
3.3
3.4
3.5
3.6 Перейти к этапу 2.
Значение величины Н, полученное на шаге 2.7, является значением функции хэширования h (M).
Проверочные примеры для вышеизложенной процедуры вычисления хэш-функции приведены в приложении А.
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Государственный стандарт РФ ГОСТ Р 34.11-94 "Информационная технология. Криптографическая защита информации. Функция хэширования" (принят постановлением Госстандарта РФ от 23 мая 1994 г. N 154)
Текст ГОСТа приводится по официальному изданию Госстандарта России, ИПК Издательство стандартов, 1994 г.
1 Разработан Главным управлением безопасности связи Федерального агентства правительственной связи и информации и Всероссийским научно-исследовательским институтом стандартизации
Внесен Техническим комитетом по стандартизации ТК 22 "Информационная технология" и Федеральным агентством правительственной связи и информации.
2 Принят и введен в действие Постановлением Госстандарта России от 23.05.94 N 154
3 Введен впервые
Приказом Росстандарта от 7 августа 2012 г. N 216-ст настоящий ГОСТ отменён с 1 января 2013 г. Взамен введён ГОСТ Р 34.11-2012