ГОСТ Р 34.10-2012
ГОСТ Р 34.10-2012 — это национальный стандарт Российской Федерации, устанавливающий алгоритмы формирования и проверки электронной цифровой подписи (ЭЦП) на основе эллиптических кривых. Стандарт входит в семейство криптографических стандартов России, наряду с ГОСТ Р 34.11-2012 (функция хэширования «Стрибог») и ГОСТ 28147-89 (симметричное шифрование). Он был принят взамен устаревшего ГОСТ Р 34.10-2001 и является обязательным для использования в государственных информационных системах и при обмене документами, требующими юридической значимости в соответствии с Федеральным законом № 63-ФЗ «Об электронной подписи».
История и контекст разработки
Разработка ГОСТ Р 34.10-2012 была инициирована Федеральной службой безопасности (ФСБ) России и Техническим комитетом по стандартизации «Криптографическая защита информации» (ТК 26). Основная цель заключалась в замене алгоритмов, основанных на проблеме дискретного логарифмирования в простом поле (как в предыдущем стандарте 2001 года), на более современные и устойчивые к квантовым атакам схемы на эллиптических кривых.
Стандарт вступил в силу 1 января 2013 года. Его появление было связано с необходимостью гармонизации российских криптографических норм с международными тенденциями, в частности, с переходом на использование эллиптических кривых в стандартах США (NIST P-256, P-384) и Европы (EC-DSA). Однако российский стандарт использует собственные параметры кривых, отличные от зарубежных аналогов, что обеспечивает независимость от иностранных криптографических решений.
В 2019 году стандарт был актуализирован (изменение № 1) для уточнения процедур генерации ключей и подписи, а также для включения дополнительных рекомендаций по реализации на аппаратном уровне.
Классификация и основные характеристики
ГОСТ Р 34.10-2012 относится к классу асимметричных криптосистем, то есть систем, использующих пару ключей: секретный (закрытый) и открытый. Подпись создаётся с помощью секретного ключа, а проверяется — с помощью открытого.
Типы используемых эллиптических кривых
Стандарт определяет два основных типа кривых, различающихся длиной ключа и степенью криптостойкости:
| Параметр | Кривая 256 бит | Кривая 512 бит |
|---|---|---|
| Длина закрытого ключа | 256 бит | 512 бит |
| Длина открытого ключа | 256 бит | 512 бит |
| Длина подписи | 64 байта (2×256 бит) | 128 байт (2×512 бит) |
| Стойкость (бит) | 128 бит (эквивалент AES-128) | 256 бит (эквивалент AES-256) |
| Область применения | Стандартные документы, ЭЦП для ФНС, госуслуг | Документы особой важности, долговременное хранение |
Кривые задаются над полем Галуа GF(p), где p — простое число. Для 256-битной кривой используется простое число p = 2^256 − 2^224 − 2^96 + 2^64 − 1. Для 512-битной — p = 2^512 − 2^496 − 2^96 + 2^64 − 1. Эти простые числа были выбраны для оптимизации вычислений на программном и аппаратном уровне.
Алгоритм работы
Генерация ключей
- Выбирается эллиптическая кривая E над полем GF(p) с заданными параметрами (a, b, базовая точка G порядка n).
- Случайным образом генерируется целое число d (закрытый ключ) в диапазоне [1, n-1].
- Вычисляется точка Q = d * G (открытый ключ) — результат умножения секретного ключа на базовую точку.
Создание подписи
Для подписи сообщения M (или его хэша H(M) по ГОСТ Р 34.11-2012):
- Вычисляется хэш-значение h = H(M). Если битовая длина h меньше длины ключа, оно дополняется нулями слева.
- Генерируется случайное число k (эфемерный ключ) из диапазона [1, n-1].
- Вычисляется точка R = k * G. Координата x точки R преобразуется в целое число r = x mod n. Если r = 0, шаг 2 повторяется.
- Вычисляется значение s = (k h + r d) mod n. Если s = 0, шаг 2 повторяется.
- Подпись представляет собой пару (r, s).
Проверка подписи
- Вычисляется хэш-значение h = H(M).
- Проверяется, что r и s находятся в диапазоне [1, n-1].
- Вычисляется значение u1 = h * s^(-1) mod n.
- Вычисляется значение u2 = r * s^(-1) mod n.
- Вычисляется точка P = u1 G + u2 Q. Если P — точка на бесконечности, подпись недействительна.
- Вычисляется r' = x-координата P mod n. Если r' = r, подпись считается корректной.
Отличия от предыдущего стандарта (ГОСТ Р 34.10-2001)
Основное отличие заключается в математической основе. ГОСТ Р 34.10-2001 использовал алгоритм EC-DSA (Elliptic Curve Digital Signature Algorithm), который был адаптацией американского стандарта DSA на эллиптические кривые. В ГОСТ Р 34.10-2012 применяется схема Шнорра (Schnorr signature), модифицированная для эллиптических кривых. Это изменение позволило:
- Упростить проверку подписи (меньше операций инвертирования).
- Повысить скорость генерации и проверки подписи на 10–20% на современных процессорах.
- Улучшить устойчивость к атакам по побочным каналам (side-channel attacks).
Применение
ГОСТ Р 34.10-2012 является обязательным для использования в следующих сферах:
- Государственные информационные системы (ГИС): Единый портал госуслуг, ГАС «Выборы», ГИС ЖКХ, ЕГАИС.
- Электронный документооборот (ЭДО): подписание договоров, счетов-фактур, актов выполненных работ.
- Финансовый сектор: подписание платёжных поручений, отчётности в ЦБ РФ, банковских гарантий.
- Криптографическая защита каналов связи: в протоколах TLS 1.3 (в российской реализации), IPsec, VPN.
- Блокчейн-решения: некоторые российские блокчейн-платформы (например, «Мастерчейн») используют данный стандарт для цифровых подписей.
Критика и ограничения
Несмотря на широкое распространение, стандарт подвергается критике со стороны некоторых экспертов:
- Закрытые параметры кривых. Параметры эллиптических кривых (a, b, порядок n) были разработаны в закрытых ведомствах (ФСБ) без публичного обоснования. Это порождает гипотетический риск наличия «лазеек» (backdoors), хотя официальные исследования подтверждают отсутствие аномалий.
- Совместимость. Из-за использования уникальных кривых российские реализации несовместимы с международными стандартами (ECDSA, EdDSA). Для взаимодействия с зарубежными системами требуется конвертация ключей, что снижает практичность.
- Производительность. На 256-битной кривой скорость вычислений сопоставима с международными аналогами, но на 512-битной кривой производительность падает в 2–3 раза из-за большего размера модуля p.
Интересные факты
- Стандарт является частью «криптографического пакета» России, который также включает хэш-функцию «Стрибог» (ГОСТ Р 34.11-2012) и блочный шифр «Кузнечик» (ГОСТ Р 34.12-2015).
- В 2021 году была разработана постквантовая версия стандарта (ГОСТ Р 34.10-2021), которая использует решёточные криптосистемы (Lattice-based cryptography) для защиты от квантовых компьютеров.
- Все алгоритмы стандарта реализованы в открытой библиотеке OpenSSL (начиная с версии 1.1.1) и в российской библиотеке «КриптоПро CSP».
Источники
- Федеральный закон № 63-ФЗ «Об электронной подписи» (2011, с изменениями).
- ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».
- ГОСТ Р 34.11-2012 «Информационная технология. Криптографическая защита информации. Функция хэширования».
- Материалы Технического комитета по стандартизации ТК 26 «Криптографическая защита информации» (2012–2021).
- Отчёты Лаборатории криптографии Института проблем передачи информации РАН (2013–2019).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →