Открыть сервис

ГОСТ Р 34.11-2012

ГОСТ Р 34.11-2012 — это российский национальный стандарт, определяющий алгоритм криптографического хеширования «Стрибог» (Streebog). Стандарт устанавливает процедуру вычисления хеш-функции, которая преобразует произвольный массив двоичных данных (сообщение) в фиксированное выходное значение (хеш-код, дайджест) длиной 256 или 512 бит. Принят и введён в действие Приказом Федерального агентства по техническому регулированию и метрологии (Росстандарт) от 7 августа 2012 года № 216-ст. Является частью семейства российских криптографических стандартов, наряду с ГОСТ Р 34.10-2012 (электронная подпись) и ГОСТ Р 34.11-94 (предыдущая версия хеш-функции).

История

Предпосылки создания

Необходимость разработки нового стандарта хеширования была вызвана несколькими факторами. Во-первых, предшествующий алгоритм ГОСТ Р 34.11-94, основанный на блочном шифре ГОСТ 28147-89, к началу 2010-х годов демонстрировал признаки устаревания. Длина его хеша (256 бит) стала считаться недостаточной для обеспечения долгосрочной криптостойкости в условиях развития вычислительных мощностей и появления новых методов криптоанализа, включая атаки на основе коллизий. Во-вторых, международное сообщество переходило на более современные алгоритмы (SHA-2, SHA-3), и требовалось обеспечить совместимость российской криптографии с мировыми стандартами, сохранив при этом независимость от зарубежных разработок.

Разработка и принятие

Разработка стандарта велась в 2010–2012 годах коллективом специалистов из нескольких организаций, включая:

Алгоритм «Стрибог» был предложен как кандидат на замену ГОСТ Р 34.11-94. В 2012 году проект прошёл экспертизу и был утверждён в качестве национального стандарта. В 2013 году алгоритм был опубликован в открытом доступе для международного криптоанализа.

Международное признание

В 2015 году алгоритм «Стрибог» был включён в проект ISO/IEC 10118-3 (международный стандарт на хеш-функции) в качестве дополнительного алгоритма. Это позволило использовать его в международных криптографических протоколах и системах, сертифицированных по стандартам ISO.

Алгоритм «Стрибог»

Общая схема

Алгоритм «Стрибог» относится к классу итеративных хеш-функций, построенных на основе схемы Меркла — Дамгора. Он принимает на вход сообщение произвольной длины (до \(2^{512}\) бит) и выдаёт хеш-код фиксированной длины — 256 или 512 бит. Выбор длины хеша определяется модификацией алгоритма: ГОСТ Р 34.11-2012-256 и ГОСТ Р 34.11-2012-512.

Основные компоненты

  1. Функция сжатия — центральный элемент алгоритма. Она преобразует блок данных размером 512 бит и промежуточное состояние хеша (также 512 бит) в новое состояние. Функция сжатия основана на нелинейных преобразованиях, использующих:
  1. Процедура дополнения (падинг) — к сообщению добавляется служебная информация: бит «1», нулевые биты до выравнивания на границу 512 бит и 64-битное представление длины исходного сообщения в битах. Это необходимо для обеспечения однозначности хеширования сообщений разной длины.
  1. Инициализация — начальное значение хеша (IV) для версии 512 бит равно нулевому вектору; для версии 256 бит — специально заданное значение, полученное хешированием нулевого сообщения.

Стойкость

Алгоритм «Стрибог» обладает следующими криптографическими свойствами:

В 2015–2017 годах алгоритм прошёл международный криптоанализ. Исследователи из разных стран (включая Францию, Германию, Китай) не выявили практических уязвимостей, однако были найдены некоторые теоретические атаки на упрощённые версии «Стрибога» (с меньшим числом раундов). Полный 12-раундовый алгоритм считается стойким.

Применение

На территории Российской Федерации

ГОСТ Р 34.11-2012 обязателен к применению в государственных информационных системах и системах, обрабатывающих персональные данные, если требуется криптографическая защита. Конкретные области использования:

В международных системах

Алгоритм поддерживается в ряде открытых криптографических библиотек:

Однако его распространение за пределами России ограничено из-за отсутствия обязательных требований в других странах и доминирования алгоритмов SHA-2/SHA-3.

Критика и ограничения

Производительность

На момент разработки «Стрибог» уступал по скорости вычислениям на программном уровне (особенно на 32-битных архитектурах) алгоритму SHA-256. Это связано с использованием операций в поле Галуа \(GF(2^8)\), которые плохо поддерживаются стандартными процессорами общего назначения. Однако на современных процессорах с поддержкой инструкций AES-NI (через эмуляцию) скорость может быть сопоставима.

Закрытость начального этапа

Криптографическое сообщество высказывало замечания по поводу того, что алгоритм разрабатывался без публичного конкурса (в отличие от SHA-3, выбранного через открытый процесс NIST). Это породило сомнения в отсутствии скрытых уязвимостей, заложенных разработчиками. Однако публикация алгоритма в 2013 году и последующий независимый анализ частично сняли эти опасения.

Совместимость

Из-за того, что «Стрибог» не является частью основных международных стандартов (ISO/IEC 10118-3 включает его как опциональный), его поддержка в зарубежном программном обеспечении остаётся ограниченной. Это создаёт сложности при интеграции российских систем с международными.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →