ГОСТ Р 34.11-2012
Группа П85
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
Функция хэширования
Information technology. Cryptographic data security. Hash-function
ОКС 35.040
ОКСТУ 5002
Дата введения 2013-01-01
Предисловие
Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ "О техническом регулировании", а правила применения национальных стандартов Российской Федерации - ГОСТ Р 1.0-2004 "Стандартизация в Российской Федерации. Основные положения"
Сведения о стандарте
1 РАЗРАБОТАН Центром защиты информации и специальной связи ФСБ России с участием Открытого акционерного общества "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС")
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 7 августа 2012 г. N 216-ст
4 ВЗАМЕН ГОСТ Р 34.11-94
Информация об изменениях к настоящему стандарту публикуется в ежегодно издаваемом информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячно издаваемых информационных указателях "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет
ВНЕСЕНА поправка, опубликованная в ИУС N 6, 2018 год
Поправка внесена изготовителем базы данных
Введение
Настоящий стандарт содержит описание алгоритма и процедуры вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах защиты информации, в том числе в процессах формирования и проверки электронной цифровой подписи.
Стандарт разработан взамен ГОСТ Р 34.11-94. Необходимость разработки настоящего стандарта вызвана потребностью в создании хэш-функции, соответствующей современным требованиям к криптографической стойкости и требованиям стандарта ГОСТ Р 34.10-2012 к электронной цифровой подписи.
Настоящий стандарт терминологически и концептуально увязан с международными стандартами ИСО 2382-2 [1], ИСО/МЭК 9796 [2-3], серии ИСО/МЭК 14888 [4-7] и серии ИСО/МЭК 10118 [8-11].*
________________
* Доступ к международным и зарубежным документам, упомянутым в тексте, можно получить, обратившись в Службу поддержки пользователей. - .
Примечание - Основная часть стандарта дополнена одним приложением:
Приложение А (справочное) Контрольные примеры.
1 Область применения
Настоящий стандарт определяет алгоритм и процедуру вычисления хэш-функции для любой последовательности двоичных символов, которые применяются в криптографических методах обработки и защиты информации, в том числе для реализации процедур обеспечения целостности, аутентичности, электронной цифровой подписи (ЭЦП) при передаче, обработке и хранении информации в автоматизированных системах.
Определенная в настоящем стандарте функция хэширования используется при реализации систем электронной цифровой подписи на базе асимметричного криптографического алгоритма по ГОСТ Р 34.10-2012.
Стандарт рекомендуется использовать при создании, эксплуатации и модернизации систем обработки информации различного назначения.
2 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие стандарты:
ГОСТ Р 34.10-2012 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
Примечание - При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства Российской Федерации по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный стандарт заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться заменяющим (измененным) стандартом. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения и обозначения
В настоящем стандарте применены следующие термины с соответствующими определениями.
3.1 Термины и определения
3.1.1
заполнение (padding): Приписывание дополнительных бит к строке бит. [ИСО/МЭК 10118-1, статья 3.9] |
3.1.2
инициализационный вектор (initializing value): Вектор, определенный как начальная точка работы функции хэширования. [ИСО/МЭК 10118-1, статья 3.7] |
3.1.3
сообщение (message): Строка бит произвольной конечной длины. [ИСО/МЭК 14888-1, статья 3.10] |
3.1.4
функция сжатия (round-function): Итеративно используемая функция, преобразующая строку бит длиной [ИСО/МЭК 10118-1, статья 3.10] |
Примечание - В настоящем стандарте понятия "строка бит длиной
3.1.5
хэш-код (hash-code): Строка бит, являющаяся выходным результатом хэш-функции. [ИСО/МЭК 14888-1, статья 3.6] |
3.1.6
хэш-функция (collision-resistant hash-function): Функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам: 1) по данному значению функции сложно вычислить исходные данные, отображаемые в это значение; 2) для заданных исходных данных сложно вычислить другие исходные данные, отображаемые в то же значение функции; 3) сложно вычислить какую-либо пару исходных данных, отображаемых в одно и то же значение. [ИСО/МЭК 14888-1, статьи 3.2, 3.7] |
Примечание - В настоящем стандарте в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины "хэш-функция", "криптографическая хэш-функция", "функция хэширования" и "криптографическая функция хэширования" являются синонимами.
3.1.7
электронная цифровая подпись (signature); ЭЦП: Строка бит, полученная в результате процесса формирования подписи. [ИСО/МЭК 14888-1, статья 3.12] |
Примечание - В настоящем стандарте в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины "электронная подпись", "цифровая подпись" и "электронная цифровая подпись" являются синонимами.
3.2 Обозначения
В настоящем стандарте используются следующие обозначения:
множество всех двоичных векторов-строк конечной размерности (далее - векторы), включая пустую строку; | |
размерность (число компонент) вектора | |
множество всех | |
операция покомпонентного сложения по модулю 2 двух двоичных векторов одинаковой размерности; | |
конкатенация векторов | |
конкатенация | |
кольцо вычетов по модулю 2 | |
операция сложения в кольце | |
| биективное отображение, сопоставляющее элементу кольца |
отображение, обратное отображению | |
отображение, ставящее в соответствие вектору | |
операция присваивания переменной | |
произведение отображений, при котором отображение | |
двоичный вектор, подлежащий хэшированию, | |
функция хэширования, отображающая вектор (сообщение) | |
инициализационный вектор функции хэширования, |
4 Общие положения
Настоящий стандарт определяет две функции хэширования
5 Значения параметров
5.1 Инициализационные векторы
Значение инициализационного вектора
5.2 Нелинейное биективное преобразование множества двоичных векторов
Нелинейное биективное преобразование множества двоичных векторов
где
Значения подстановки
5.3 Перестановка байт
Значения перестановки
5.4 Линейное преобразование множества двоичных векторов
Линейное преобразование
Здесь в одной строке записаны четыре строки матрицы
Результат умножения вектора
где
для всех
5.5 Итерационные константы
Итерационные константы записаны в шестнадцатеричном виде. Значение константы, записанное в виде
6 Преобразования
При вычислении хэш-кода
где
где
где
7 Функция сжатия
Значение хэш-кода сообщения
значение которой вычисляется по формуле
где
Значения
Для краткости вместо
8 Процедура вычисления хэш-функции
Исходными данными для процедуры вычисления хэш-кода
Алгоритм вычисления функции
8.1 Этап 1
Присвоить начальные значения текущих величин:
1.1
1.2
1.3
1.4 Перейти к этапу 2.
8.2 Этап 2
2.1 Проверить условие
При положительном исходе перейти к этапу 3.
В противном случае выполнить последовательность вычислений по 2.2-2.7.
2.2 Вычислить подвектор
2.3
2.4
2.5
2.6
2.7 Перейти к шагу 2.1.
8.3 Этап 3
3.1
3.2
3.3
3.4
(Поправка. ИУС N 6-2018).
3.5
3.6
3.7 Конец работы алгоритма
Значение величины
Приложение А
(справочное)
Контрольные примеры
Данное приложение носит справочный характер и не является частью настоящего стандарта.
Векторы из
А.1 Пример 1
Необходимо вычислить хэш-код сообщения
А.1.1 Для функции хэширования с длиной хэш-кода 512 бит
Присваиваются значения:
Длина сообщения
Вычисляется значение
После преобразования
Затем выполняется преобразование
Итерация 1
Итерация 2
Итерация 3
Итерация 4
Итерация 5
Итерация 6
Итерация 7
Итерация 8
Итерация 9
Итерация 10
Итерация 11
Итерация 12
Итерация 13
Результат выполнения преобразования
Изменяются значения переменных
Результат выполнения преобразования
Результат выполнения преобразования
Хэш-кодом сообщения
A.1.2 Для функции хэширования с длиной хэш-кода 256 бит
Присваиваются значения:
Длина сообщения
Вычисляется значение
После преобразования
после преобразования
Затем выполняется преобразование
Итерация 1
Итерация 2
Итерация 3
Итерация 4
Итерация 5
Итерация 6
Итерация 7
Итерация 8
Итерация 9
Итерация 10
Итерация 11
Итерация 12
Итерация 13
Результат выполнения преобразования
Изменяются значения переменных
Результат выполнения преобразования
Результат выполнения преобразования
Хэш-кодом сообщения
A.2 Пример 2
Пусть необходимо вычислить хэш-код сообщения
А.2.1 Для функции хэширования с длиной хэш-кода 512 бит
Присваиваются значения:
Длина сообщения
Вычисляется значение
После преобразования
после преобразования
после преобразования
Затем выполняется преобразование
Итерация 1
Итерация 2
Итерация 3
Итерация 4
Итерация 5
Итерация 6
Итерация 7
Итерация 8
Итерация 9
Итерация 10
Итерация 11
Итерация 12
Итерация 13
Результат выполнения преобразования
Изменяются значения переменных
Длина оставшейся части сообщения меньше 512, поэтому происходит заполнение неполного блока.
Результат выполнения преобразования
Изменяются значения переменных
Результат выполнения преобразования
Результат выполнения преобразования
Хэш-кодом сообщения
A.2.2 Для функции хэширования с длиной хэш-кода 256 бит
Присваиваются значения:
Длина сообщения
Вычисляется значение
После преобразования
после преобразования
после преобразования
Затем выполняется преобразование
Итерация 1
Итерация 2
Итерация 3
Итерация 4
Итерация 5
Итерация 6
Итерация 7
Итерация 8
Итерация 9
Итерация 10
Итерация 11
Итерация 12
Итерация 13
Результат выполнения преобразования
Изменяются значения переменных
Длина оставшейся части сообщения меньше 512, поэтому происходит заполнение неполного блока:
Результат выполнения преобразования
Изменяются значения переменных
Результат выполнения преобразования
Результат выполнения преобразования
Хэш-кодом сообщения
Библиография*
_______________
* Оригиналы международных стандартов ИСО/МЭК находятся во ФГУП "" Федерального агентства по техническому регулированию и метрологии.
[1] | ИСО 2382-2:1976 | Системы обработки информации. Словарь. Часть 2. Арифметические и логические операции (Data processing - Vocabulary - Part 2: Arithmetic and logic operations) |
[2] | ИСО/МЭК 9796-2:2010 | Информационные технологии. Методы обеспечения безопасности. Схемы цифровой подписи, обеспечивающие восстановление сообщений. Часть 2. Механизмы на основе целочисленной факторизации (Information technology - Security techniques - Digital signatures with appendix - Part 2: Integer factorization based mechanisms) |
[3] | ИСО/МЭК 9796-3:2006 | Информационные технологии. Методы обеспечения безопасности. Схемы цифровой подписи, обеспечивающие восстановление сообщений. Часть 3. Механизмы на основе дискретного логарифма (Information technology - Security techniques - Digital signature schemes giving message recovery - Part 3: Discrete logarithm based mechanisms) |
[4] | ИСО/МЭК 14888-1:2008 | Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 1. Общие положения (Information technology - Security techniques - Digital signatures with appendix - Part 1: General) |
[5] | ИСО/МЭК 14888-2:2008 | Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 2. Механизмы, основанные на разложении на множители (Information technology - Security techniques - Digital signatures with appendix - Part 2: Integer factorization based mechanisms) |
[6] | ИСО/МЭК 14888-3:2006 | Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 3. Механизмы на основе дискретного логарифма (Information technology - Security techniques - Digital signatures with appendix - Part 3: Discrete logarithm based mechanisms) |
[7] | ИСО/МЭК 14888-3:2006/Изм. 1:2010 | Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 3. Механизмы на основе дискретного логарифма. Изменение 1. Алгоритм русской цифровой подписи эллиптической кривой, алгоритм цифровой подписи Шнорра, алгоритм цифровой подписи Шнорра для эллиптической кривой, и полный алгоритм цифровой подписи Шнорра для эллиптической кривой (Information technology - Security techniques - Digital signatures with appendix - Part 3: Discrete logarithm based mechanisms. Amendment 1. Elliptic Curve Russian Digital Signature Algorithm, Schnorr Digital Signature Algorithm, Elliptic Curve Schnorr Digital Signature Algorithm, and Elliptic Curve Full Schnorr Digital Signature Algorithm) |
[8] | ИСО/МЭК 10118-1:2000 | Информационные технологии. Методы защиты информации. Хэш-функции. Часть 1. Общие положения (Information technology - Security techniques - Hash-functions - Part 1: General) |
[9] | ИСО/МЭК 10118-2:2010 | Информационные технологии. Методы защиты информации. Хэш-функции. Часть 2. Хэш-функции с использованием алгоритма шифрования |
[10] | ИСО/МЭК 10118-3:2004 | Информационные технологии. Методы защиты информации. Хэш-функции. Часть 3. Выделенные хэш-функции (Information technology - Security techniques - Hash-functions - Part 3: Dedicated hash-functions) |
[11] | ИСО/МЭК 10118-4:1998 | Информационные технологии. Методы защиты информации. Хэш-функции. Часть 4. Хэш-функции с применением арифметики в остаточных классах (Information technology - Security techniques - Hash-functions - Part 4: Hash-functions using modular arithmetic) |
Электронный текст документа
и сверен по:
, 2013
Редакция документа с учетом
изменений и дополнений подготовлена