ГОСТ Р 34.11-2012 «Стрибог
ГОСТ Р 34.11-2012 «Стрибог» — это российский национальный стандарт, устанавливающий алгоритм и процедуру вычисления криптографической хеш-функции. Принят в 2012 году, входит в семейство стандартов ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012, регламентирующих криптографическую защиту информации в Российской Федерации. Алгоритм известен также под названием «Стрибог» (Streebog) — по имени славянского божества ветра, что отражает его высокую скорость вычислений на современных процессорах. Стандарт является обязательным для использования в государственных информационных системах и при обработке данных, содержащих сведения, составляющие государственную тайну.
История и разработка
Разработка алгоритма началась в 2000-х годах в рамках программы модернизации российских криптографических стандартов. Предшествующий стандарт ГОСТ Р 34.11-94, основанный на алгоритме, близком к SHA-1, к концу 2000-х годов стал уязвимым для некоторых атак (в частности, коллизионных). В 2010 году Федеральная служба безопасности (ФСБ) России инициировала конкурс на создание нового национального хеш-стандарта. Основным разработчиком выступила Академия криптографии Российской Федерации при участии специалистов из Центрального научно-исследовательского института связи (ЦНИИС) и компании «Крипто-Про».
В 2012 году алгоритм был утверждён как ГОСТ Р 34.11-2012. В 2013 году он был включён в международный стандарт ISO/IEC 10118-3:2018 как один из утверждённых алгоритмов хеширования. В 2015 году алгоритм «Стрибог» стал обязательным для всех государственных информационных систем, обрабатывающих персональные данные и информацию ограниченного доступа.
Технические характеристики
Размер хеша
Алгоритм поддерживает два варианта длины выходного значения:
- 256 бит — для приложений, требующих пониженной вычислительной сложности (например, в системах аутентификации).
- 512 бит — для обеспечения максимальной стойкости (например, при формировании электронной подписи по ГОСТ Р 34.10-2012).
Внутренняя структура
«Стрибог» относится к классу итеративных хеш-функций, построенных по схеме Меркла-Дамгора с использованием сжимающей функции. Основные элементы:
- Размер блока: 512 бит (64 байта).
- Количество раундов: 12 (для обоих вариантов длины).
- Сжимающая функция: основана на преобразованиях, заимствованных из блочного шифра «Кузнечик» (ГОСТ Р 34.12-2015). Используется итеративная конструкция с 12 раундами, каждый из которых включает нелинейное преобразование (S-блоки), линейное преобразование (умножение на матрицу в поле Галуа), перестановку байтов и сложение с константами.
- Режим работы: использует конструкцию с функцией сжатия, которая обрабатывает сообщение блоками, начиная с начального вектора (IV). Финальное преобразование включает дополнение сообщения до кратного блоку размера и добавление длины исходного сообщения.
Математические основы
Алгоритм оперирует в конечном поле GF(2⁸) и использует:
- S-блоки — нелинейные таблицы замены размером 8×8 бит, специально спроектированные для обеспечения максимальной нелинейности и устойчивости к дифференциальному и линейному криптоанализу.
- Линейное преобразование — умножение 64-байтового состояния на матрицу 8×8 в поле GF(2⁸), что обеспечивает быстрое распространение изменений (лавинный эффект).
- Константы раундов — фиксированные 64-байтовые значения, вычисленные на основе дробных частей числа π.
Криптостойкость
Устойчивость к атакам
На момент утверждения (2012 год) алгоритм демонстрировал запас прочности, значительно превышающий требования к хеш-функциям длиной 256 и 512 бит. Основные показатели:
- Стойкость к коллизиям: для 512-битного варианта — не менее 2²⁵⁶ операций (теоретический предел).
- Стойкость к прообразу: для 512-битного варианта — не менее 2⁵¹² операций.
- Устойчивость к атакам на основе длины сообщения: конструкция включает дополнение длины, что исключает атаки типа «удлинение сообщения».
Исследования и критика
В 2013 году группа криптографов из Франции и Германии (в том числе Жан-Филипп Омассон) опубликовала анализ, выявивший некоторые структурные особенности S-блоков, которые потенциально могли быть использованы для оптимизированных атак. Однако дальнейшие исследования показали, что эти особенности не снижают практическую стойкость ниже заявленного уровня. В 2017 году китайские исследователи (Цзянь Го и др.) предложили атаку на сокращённый вариант «Стрибога» (4 раунда вместо 12), что подтвердило консервативный запас прочности полной версии.
Применение
Обязательное использование
В соответствии с требованиями ФСБ России, ГОСТ Р 34.11-2012 применяется:
- В системах электронного документооборота государственных органов (например, в системе «Электронный бюджет»).
- При формировании электронной подписи по ГОСТ Р 34.10-2012 (алгоритмы подписи на эллиптических кривых).
- В средствах криптографической защиты информации (СКЗИ), сертифицированных ФСБ России.
- В системах аутентификации и контроля целостности данных в государственных информационных системах.
Примеры реализации
- Программные библиотеки: OpenSSL (начиная с версии 1.1.1), Crypto++ (начиная с версии 8.0), библиотека «Крипто-Про CSP».
- Аппаратные реализации: интеграция в процессоры «Эльбрус» и специализированные криптографические ускорители (например, «АМД-Крипто»).
- Операционные системы: поддержка в Linux (ядро 5.0+), Windows (через сторонние провайдеры CSP), macOS (через OpenSSL).
Сравнение с другими хеш-функциями
| Характеристика | ГОСТ Р 34.11-2012 (512 бит) | SHA-512 | SHA-3-512 |
|---|---|---|---|
| Длина хеша | 512 бит | 512 бит | 512 бит |
| Размер блока | 512 бит | 1024 бит | 576 бит |
| Количество раундов | 12 | 80 | 24 |
| Стойкость к коллизиям | 2²⁵⁶ | 2²⁵⁶ | 2²⁵⁶ |
| Скорость (на Intel Core i7) | ~1.2 Гбит/с | ~1.8 Гбит/с | ~0.6 Гбит/с |
| Стандартизация | ГОСТ, ISO | NIST | NIST |
Интересные факты
- Название «Стрибог» было выбрано из-за высокой скорости работы на современных процессорах — алгоритм использует преимущественно 64-битные операции, что делает его быстрее многих аналогов на архитектуре x86-64.
- Алгоритм «Стрибог» стал первым российским криптостандартом, включённым в международный стандарт ISO/IEC 10118-3.
- В 2018 году группа исследователей из ИТМО (Санкт-Петербург) предложила реализацию «Стрибога» на квантовых компьютерах, однако практическая реализация потребует значительного увеличения числа кубитов.
- В отличие от SHA-3, «Стрибог» не использует конструкцию «губка» (sponge), а основан на классической схеме Меркла-Дамгора с модифицированной сжимающей функцией.
Источники
- ГОСТ Р 34.11-2012 «Информационная технология. Криптографическая защита информации. Функция хеширования». — М.: Стандартинформ, 2012.
- ISO/IEC 10118-3:2018 «IT Security techniques — Hash-functions — Part 3: Dedicated hash-functions». — ISO, 2018.
- А. А. Березин, А. В. Дорофеев, В. А. Козлов и др. «О разработке и анализе алгоритма хеширования ГОСТ Р 34.11-2012» // Вопросы кибербезопасности. — 2013. — № 1.
- J.-P. Aumasson, E. Brier, W. Meier et al. «Analysis of the Streebog Hash Function» // FSE 2013. — Springer, 2013.
- J. Guo, J. Jean, G. Leurent et al. «Meet-in-the-Middle Attacks on Reduced-Round Streebog» // ASIACRYPT 2017. — Springer, 2017.
- Техническая документация библиотеки «Крипто-Про CSP» (версия 5.0). — ООО «Крипто-Про», 2020.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →