ГОСТ Р 34.11-2012 Информационная технология (ИТ). Криптографическая защита информации. Функция хэширования.
ГОСТ Р 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 Обозначения
В настоящем стандарте используются следующие обозначения:
|
|
* | множество всех двоичных векторов-строк конечной размерности (далее - векторы), включая пустую строку; |
размерность (число компонент) вектора * (если - пустая строка, то 0); | |
множество всех -мерных двоичных векторов, где - целое неотрицательное число; нумерация подвекторов и компонент вектора осуществляется справа налево, начиная с нуля; | |
операция покомпонентного сложения по модулю 2 двух двоичных векторов одинаковой размерности; | |
конкатенация векторов , *, т.е. вектор из , в котором левый подвектор из , совпадает с вектором , а правый подвектор из совпадает с вектором ; | |
конкатенация экземпляров вектора ; | |
| кольцо вычетов по модулю 2 ; |
операция сложения в кольце ; | |
| биективное отображение, сопоставляющее элементу кольца его двоичное представление, т.е. для любого элемента кольца , представленного вычетом , где , 0, ..., , выполнено равенство ; |
отображение, обратное отображению , т.е. ; | |
отображение, ставящее в соответствие вектору , , вектор ; | |
операция присваивания переменной значения ; | |
произведение отображений, при котором отображение действует первым; | |
двоичный вектор, подлежащий хэшированию, *, ; | |
функция хэширования, отображающая вектор (сообщение) в вектор (хэш-код) ; | |
инициализационный вектор функции хэширования, . |
4 Общие положения
5 Значения параметров
5.1 Инициализационные векторы
5.2 Нелинейное биективное преобразование множества двоичных векторов
5.3 Перестановка байт
5.4 Линейное преобразование множества двоичных векторов
5.5 Итерационные константы
6 Преобразования
7 Функция сжатия
значение которой вычисляется по формуле
8 Процедура вычисления хэш-функции
8.1 Этап 1
Присвоить начальные значения текущих величин:
1.4 Перейти к этапу 2.
8.2 Этап 2
При положительном исходе перейти к этапу 3.
В противном случае выполнить последовательность вычислений по 2.2-2.7.
2.7 Перейти к шагу 2.1.
8.3 Этап 3
(Поправка. ИУС N 6-2018).
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 (ISO 2382-2:1976) | Системы обработки информации. Словарь. Часть 2. Арифметические и логические операции (Data processing - Vocabulary - Part 2: Arithmetic and logic operations) |
[2] | ИСО/МЭК 9796-2:2010 (ISO/IEC 9796-2:2010) | Информационные технологии. Методы обеспечения безопасности. Схемы цифровой подписи, обеспечивающие восстановление сообщений. Часть 2. Механизмы на основе целочисленной факторизации (Information technology - Security techniques - Digital signatures with appendix - Part 2: Integer factorization based mechanisms) |
[3] | ИСО/МЭК 9796-3:2006 (ISO/IEC 9796-3:2006) | Информационные технологии. Методы обеспечения безопасности. Схемы цифровой подписи, обеспечивающие восстановление сообщений. Часть 3. Механизмы на основе дискретного логарифма (Information technology - Security techniques - Digital signature schemes giving message recovery - Part 3: Discrete logarithm based mechanisms) |
[4] | ИСО/МЭК 14888-1:2008 (ISO/IEC 14888-1:2008) | Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 1. Общие положения (Information technology - Security techniques - Digital signatures with appendix - Part 1: General) |
[5] | ИСО/МЭК 14888-2:2008 (ISO/IEC 14888-2:2008) | Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 2. Механизмы, основанные на разложении на множители (Information technology - Security techniques - Digital signatures with appendix - Part 2: Integer factorization based mechanisms) |
[6] | ИСО/МЭК 14888-3:2006 (ISO/IEC 14888-3:2006) | Информационные технологии. Методы защиты. Цифровые подписи с приложением. Часть 3. Механизмы на основе дискретного логарифма (Information technology - Security techniques - Digital signatures with appendix - Part 3: Discrete logarithm based mechanisms) |
[7] | ИСО/МЭК 14888-3:2006/Изм. 1:2010 (ISO/IEC 14888-3:2006/Amd 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 (ISO/IEC 10118-1:2000) | Информационные технологии. Методы защиты информации. Хэш-функции. Часть 1. Общие положения (Information technology - Security techniques - Hash-functions - Part 1: General) |
[9] | ИСО/МЭК 10118-2:2010 (ISO/IEC 10118-2:2010) | Информационные технологии. Методы защиты информации. Хэш-функции. Часть 2. Хэш-функции с использованием алгоритма шифрования -битными блоками (Information technology - Security techniques - Hash-functions - Part 2: Hash-functions using an -bit block cipher) |
[10] | ИСО/МЭК 10118-3:2004 (ISO/IEC 10118-3:2004) | Информационные технологии. Методы защиты информации. Хэш-функции. Часть 3. Выделенные хэш-функции (Information technology - Security techniques - Hash-functions - Part 3: Dedicated hash-functions) |
[11] | ИСО/МЭК 10118-4:1998 (ISO/IEC 10118-4:1998) | Информационные технологии. Методы защиты информации. Хэш-функции. Часть 4. Хэш-функции с применением арифметики в остаточных классах (Information technology - Security techniques - Hash-functions - Part 4: Hash-functions using modular arithmetic) |