Skip to content
ecdsa.com
AcceptableShort Weierstrass

SM2

SM2 is China's 256-bit elliptic curve, used with the SM2 signature and key-exchange algorithms and the SM3 hash.

SM2 is a short Weierstrass curve y² = x³ + ax + b over a 256-bit prime field with a 256-bit prime-order subgroup and cofactor 1; its estimated security level is 128 bits. Status: secure, but regional or niche.

The curve is y² = x³ − 3x + b over p = 2^256 − 2^224 − 2^96 + 2^64 − 1, published by China's Office of State Commercial Cryptography Administration (OSCCA) in 2010 and standardised as GB/T 32918. OpenSSL calls it SM2 and TLS lists it as curveSM2.

The SM2 signature algorithm is not ECDSA: the signer first hashes a user identifier and the public key into a value Z_A that is prepended to the message, and the signature equation differs, so an SM2 key cannot be checked with an ECDSA verifier. RFC 8998 brings SM2 and SM3 to TLS 1.3 (group 41, signature scheme sm2sig_sm3), and RFC 9563 to DNSSEC as algorithm 17.

Names in standards

StandardName
GB/T 32918.5-2017SM2
OpenSSLSM2
IANA TLScurveSM2

Object identifiers

Domain parameters

256-bit prime field · about 128-bit security

Field prime p
0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff
Coefficient a
0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc
Coefficient b
0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93
Base point x
0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7
Base point y
0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0
Order n of the base point
0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123
Cofactor h
0x1

Used in

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

Identifiers in registries

TLS supported groups
curveSM2 0x0029curveSM2MLKEM768 0x11EE
TLS signature schemes
sm2sig_sm3 0x0708
DNSSEC algorithm numbers
SM2SM3 17

Standards and references

All curves