Aller au contenu
ecdsa.com
AcceptableWeierstrass réduite

SM2

SM2 est la courbe elliptique chinoise de 256 bits, utilisée avec les algorithmes de signature et d’échange de clés SM2 et la fonction de hachage SM3.

SM2 est une courbe de Weierstrass réduite y² = x³ + ax + b sur un corps premier de 256 bits, avec un sous-groupe d’ordre premier de 256 bits et un cofacteur de 1 ; son niveau de sécurité estimé est de 128 bits. Statut : sûre, mais régionale ou de niche.

La courbe est y² = x³ − 3x + b définie modulo p = 2^256 − 2^224 − 2^96 + 2^64 − 1 ; elle a été publiée en 2010 par l’administration chinoise de la cryptographie commerciale (Office of State Commercial Cryptography Administration, OSCCA) et normalisée sous la référence GB/T 32918. OpenSSL l’appelle SM2 et TLS la répertorie sous le nom curveSM2.

L’algorithme de signature SM2 n’est pas ECDSA : le signataire hache d’abord un identifiant d’utilisateur et la clé publique en une valeur Z_A, ajoutée en tête du message, et l’équation de signature diffère ; on ne peut donc pas utiliser un vérificateur ECDSA avec une clé SM2. La RFC 8998 introduit SM2 et SM3 dans TLS 1.3 (groupe 41, schéma de signature sm2sig_sm3), et la RFC 9563 dans DNSSEC, comme algorithme 17.

Noms dans les normes

NormeNom
GB/T 32918.5-2017SM2
OpenSSLSM2
IANA TLScurveSM2

Identifiants d’objet

Paramètres de domaine

corps premier de 256 bits · sécurité d’environ 128 bits

Nombre premier p du corps
0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff
Coefficient a
0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc
Coefficient b
0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93
Coordonnée x du point de base
0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7
Coordonnée y du point de base
0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0
Ordre n du point de base
0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123
Cofacteur h
0x1

Utilisée dans

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

Identifiants dans les registres

Groupes pris en charge par TLS
curveSM2 0x0029curveSM2MLKEM768 0x11EE
Schémas de signature TLS
sm2sig_sm3 0x0708
Numéros d’algorithmes DNSSEC
SM2SM3 17

Normes et références

Toutes les courbes