Перейти к содержимому
ecdsa.com
ДопустимаяКороткая форма Вейерштрасса

SM2

SM2 — китайская 256-битная эллиптическая кривая; её используют с алгоритмами подписи и обмена ключами SM2 и хеш-функцией SM3.

SM2 — кривая в короткой форме Вейерштрасса y² = x³ + ax + b над 256-битным простым полем с 256-битной подгруппой простого порядка и кофактором 1; оценочный уровень стойкости — 128 бит. Статус: безопасна, но региональная или нишевая.

Это кривая y² = x³ − 3x + b над полем по модулю p = 2^256 − 2^224 − 2^96 + 2^64 − 1. Её опубликовало в 2010 году Государственное управление коммерческой криптографии Китая (OSCCA), а стандартизирована она как GB/T 32918. В OpenSSL она называется SM2, а в TLS значится как curveSM2.

Алгоритм подписи SM2 — это не ECDSA: подписант сначала вычисляет из идентификатора пользователя и открытого ключа хеш Z_A, который добавляется в начало сообщения, и уравнение подписи тоже другое. Поэтому код проверки ECDSA не сможет проверить подпись, созданную ключом SM2. RFC 8998 вводит SM2 и SM3 в TLS 1.3 (группа 41, схема подписи sm2sig_sm3), а RFC 9563 — в DNSSEC как алгоритм 17.

Названия в стандартах

СтандартНазвание
GB/T 32918.5-2017SM2
OpenSSLSM2
IANA TLScurveSM2

Идентификаторы объектов

Параметры кривой

256-битное простое поле · примерно 128-битная стойкость

Простой модуль поля p
0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff
Коэффициент a
0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc
Коэффициент b
0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93
Координата x базовой точки
0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7
Координата y базовой точки
0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0
Порядок n базовой точки
0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123
Кофактор h
0x1

Где используется

  • Chinese commercial cryptography (SM2/SM3/SM4)
  • TLS 1.3 (RFC 8998)
  • DNSSEC (algorithm 17)

Идентификаторы в реестрах

Поддерживаемые группы TLS
curveSM2 0x0029curveSM2MLKEM768 0x11EE
Схемы подписи TLS
sm2sig_sm3 0x0708
Номера алгоритмов DNSSEC
SM2SM3 17

Стандарты и ссылки

Все кривые