ISO/IEC 14888-3
ISO/IEC 14888-3 — это часть международного стандарта ISO/IEC 14888, определяющая цифровые подписи с приложением на основе эллиптических кривых (ECDSA, ECGDSA, ECKCDSA, SM2 и другие). Стандарт входит в семейство криптографических алгоритмов, разработанных совместно Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (IEC). Он устанавливает требования к генерации, верификации и формату цифровых подписей, использующих арифметику эллиптических кривых над конечными полями.
История и контекст
Разработка стандарта ISO/IEC 14888 началась в 1990-х годах в ответ на необходимость унификации алгоритмов цифровой подписи для международного использования. Первая часть (ISO/IEC 14888-1) была опубликована в 1998 году и описывала общие принципы и модели цифровых подписей с приложением. Вторая часть (ISO/IEC 14888-2) вышла в 1999 году и была посвящена подписям на основе целочисленных алгоритмов (например, RSA и DSA). Третья часть, посвящённая эллиптическим кривым, была впервые опубликована в 2006 году (ISO/IEC 14888-3:2006) и с тех пор неоднократно пересматривалась. Последняя редакция — ISO/IEC 14888-3:2018, в которой были уточнены параметры кривых, добавлены новые схемы (включая SM2) и улучшена совместимость с национальными стандартами разных стран.
Стандарт был разработан подкомитетом ISO/IEC JTC 1/SC 27 (информационная безопасность, кибербезопасность и защита конфиденциальности). В его создании участвовали эксперты из США, Китая, России, Японии, Германии, Франции и других стран.
Основные схемы цифровых подписей
ISO/IEC 14888-3 описывает несколько вариантов цифровых подписей на эллиптических кривых. Все они основаны на сложности задачи дискретного логарифма в группе точек эллиптической кривой (ECDLP). Основные схемы включают:
ECDSA (Elliptic Curve Digital Signature Algorithm)
ECDSA — наиболее распространённая схема, адаптированная из DSA для эллиптических кривых. Она была впервые предложена в 1992 году Скоттом Ванстоуном и стандартизирована ANSI (X9.62), NIST (FIPS 186) и ISO. В ISO/IEC 14888-3 ECDSA реализована с возможностью использования кривых, определённых в стандарте ISO/IEC 15946 (например, кривые над простыми полями GF(p) и двоичными полями GF(2^m)). Алгоритм включает:
- Генерацию ключей: закрытый ключ — случайное целое число d, открытый ключ — точка Q = d * G, где G — базовая точка кривой.
- Подпись: вычисление хеша сообщения, генерация случайного числа k, вычисление точки R = k G, получение r = x-координаты R mod n, вычисление s = k^(-1) (hash + d * r) mod n.
- Верификация: проверка, что r и s находятся в допустимом диапазоне, вычисление u1 = hash s^(-1) mod n, u2 = r s^(-1) mod n, точки P = u1 G + u2 Q, и сравнение r с x-координатой P.
ECGDSA (Elliptic Curve German Digital Signature Algorithm)
ECGDSA — немецкая модификация ECDSA, отличающаяся порядком вычислений. В ней подпись вычисляется как:
- r = x-координата точки R = k * G.
- s = (k r - hash) d^(-1) mod n (или в другом варианте s = (hash + r d) k^(-1) mod n).
Схема была включена в стандарт для обеспечения совместимости с национальными требованиями Германии.
ECKCDSA (Elliptic Curve Korean Certificate-based Digital Signature Algorithm)
ECKCDSA — корейская схема, используемая в сертификатах инфраструктуры открытых ключей (PKI) Республики Корея. Она отличается тем, что подпись строится на основе хеша сообщения и закрытого ключа с использованием обратного преобразования:
- r = x-координата точки R = k * G.
- s = (k - hash * d) mod n (или с обращением).
Эта схема была разработана Корейским агентством по интернету и безопасности (KISA) и включена в ISO/IEC 14888-3 для международного признания.
SM2
SM2 — китайский национальный стандарт цифровой подписи (GB/T 32918), основанный на эллиптических кривых. Он был принят в Китае в 2010 году и с 2018 года включён в ISO/IEC 14888-3. SM2 использует кривую над простым полем GF(p) с параметрами, определёнными китайским стандартом. Алгоритм подписи:
- Вычисление хеша сообщения H.
- Генерация случайного числа k, вычисление точки R = k * G.
- r = (hash + x-координата R) mod n.
- s = (k - r d) / (1 + d) mod n (или в другом варианте s = (k - r d) * (1 + d)^(-1) mod n).
SM2 отличается от ECDSA использованием обратного преобразования и дополнительным хешированием.
Параметры эллиптических кривых
Стандарт определяет набор рекомендуемых кривых, которые могут использоваться в схемах подписей. Кривые классифицируются по типу поля:
- Простые поля GF(p): кривые вида y^2 = x^3 + a*x + b (mod p), где p — простое число. Примеры: P-256, P-384, P-521 (из NIST), а также кривые из ISO/IEC 15946.
- Двоичные поля GF(2^m): кривые вида y^2 + xy = x^3 + ax^2 + b (mod 2), где m — степень расширения. Примеры: B-283, B-409, B-571 (из NIST).
- Кривые с фиксированными параметрами: например, кривая SM2 с параметрами, заданными китайским стандартом.
Для каждой кривой указываются:
- Порядок кривой n (простое число).
- Базовая точка G.
- Кофактор h (обычно 1 или 2).
- Параметры a и b.
Формат подписи
ISO/IEC 14888-3 определяет два основных формата представления цифровой подписи:
- Формат с приложением (signature with appendix): подпись состоит из двух целых чисел (r, s), которые передаются вместе с исходным сообщением. Верификация требует наличия сообщения и открытого ключа.
- Формат с восстановлением сообщения (signature with message recovery): подпись содержит часть сообщения или его хеш, что позволяет восстановить сообщение из подписи. Этот формат используется реже и описан в дополнительных приложениях стандарта.
Применение
Стандарт ISO/IEC 14888-3 применяется в различных областях, где требуется аутентификация данных и обеспечение целостности:
- Электронная подпись в государственных и коммерческих системах (например, в России — ГОСТ Р 34.10-2012, который частично совместим с ECDSA).
- Сертификаты открытых ключей в инфраструктурах PKI (например, X.509).
- Протоколы защиты связи (TLS, IPsec, SSH) для аутентификации сторон.
- Криптовалюты (например, Bitcoin использует ECDSA с кривой secp256k1, хотя сам стандарт ISO/IEC 14888-3 не включает эту кривую).
- Смарт-карты и устройства с ограниченными ресурсами, где эллиптические кривые обеспечивают высокую скорость при малом размере ключа.
Критика и ограничения
Основные замечания к ISO/IEC 14888-3 связаны с:
- Сложностью выбора параметров: стандарт предоставляет множество вариантов кривых и схем, что может привести к несовместимости реализаций. Например, кривые из NIST и SM2 не взаимозаменяемы.
- Безопасностью некоторых кривых: в 2013 году после разоблачений Эдварда Сноудена возникли подозрения, что кривые NIST (P-256, P-384) могут содержать уязвимости, внедрённые АНБ. Хотя доказательств бэкдоров не найдено, некоторые организации (например, российские регуляторы) предпочитают использовать национальные стандарты (ГОСТ Р 34.10-2012).
- Отсутствием поддержки постквантовой криптографии: стандарт не включает схемы, устойчивые к квантовым компьютерам, что делает его потенциально уязвимым в будущем.
Связь с другими стандартами
ISO/IEC 14888-3 тесно связан с:
- ISO/IEC 15946 — стандарт на эллиптические кривые и их параметры.
- ISO/IEC 18033 — стандарт на шифрование (включая ECIES).
- NIST FIPS 186 — американский стандарт цифровых подписей (DSA, ECDSA).
- ГОСТ Р 34.10-2012 — российский стандарт на цифровые подписи на эллиптических кривых (использует кривые над полями GF(p) и GF(2^m)).
Источники
- ISO/IEC 14888-3:2018 — Information technology — Security techniques — Digital signatures with appendix — Part 3: Discrete logarithm based mechanisms.
- ISO/IEC 15946-1:2016 — Information technology — Security techniques — Cryptographic techniques based on elliptic curves — Part 1: General.
- NIST FIPS 186-5 — Digital Signature Standard (DSS), 2023.
- ГОСТ Р 34.10-2012 — Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи.
- GB/T 32918-2016 — Information security technology — Public key cryptographic algorithm SM2 based on elliptic curves.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →