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.