SM2 ist die chinesische elliptische Kurve mit 256 Bit, die mit den SM2-Algorithmen für Signatur und Schlüsselaustausch sowie dem Hash SM3 verwendet wird.
SM2 ist eine Kurve in kurzer Weierstraß-Form y² = x³ + ax + b über einem 256-Bit-Primkörper mit einer 256-Bit-Untergruppe von Primordnung und dem Kofaktor 1; das geschätzte Sicherheitsniveau beträgt 128 Bit. Status: sicher, aber nur regional oder in Nischen verbreitet.
Die Kurve ist y² = x³ − 3x + b über p = 2^256 − 2^224 − 2^96 + 2^64 − 1; die chinesische Behörde Office of State Commercial Cryptography Administration (OSCCA) veröffentlichte sie 2010, standardisiert ist sie als GB/T 32918. OpenSSL nennt sie SM2, TLS führt sie als curveSM2.
Der SM2-Signaturalgorithmus ist kein ECDSA: Der Signierer hasht zuerst eine Benutzerkennung und den öffentlichen Schlüssel zu einem Wert Z_A, der der Nachricht vorangestellt wird, und die Signaturgleichung ist eine andere; deshalb lässt sich ein SM2-Schlüssel nicht mit einem ECDSA-Verifizierer prüfen. RFC 8998 führt SM2 und SM3 in TLS 1.3 ein (Gruppe 41, Signaturverfahren sm2sig_sm3), RFC 9563 in DNSSEC als Algorithmus 17.