Pular para o conteúdo
ecdsa.com
AceitávelWeierstrass curta

SM2

A SM2 é a curva elíptica chinesa de 256 bits, usada com os algoritmos de assinatura e de troca de chaves SM2 e com o hash SM3.

SM2 é uma curva na forma curta de Weierstrass y² = x³ + ax + b sobre um campo primo de 256 bits com um subgrupo de ordem prima de 256 bits e cofator 1; o nível de segurança estimado é de 128 bits. Status: segura, mas regional ou de nicho.

A curva é y² = x³ − 3x + b sobre p = 2^256 − 2^224 − 2^96 + 2^64 − 1, publicada em 2010 pelo Escritório da Administração Estatal de Criptografia Comercial da China (OSCCA) e padronizada como GB/T 32918. O OpenSSL a chama de SM2, e o TLS a lista como curveSM2.

O algoritmo de assinatura SM2 não é o ECDSA: o signatário primeiro calcula o hash de um identificador do usuário e da chave pública, obtendo um valor Z_A que é anteposto à mensagem, e a equação da assinatura é diferente, então uma chave SM2 não pode ser conferida por um verificador ECDSA. A RFC 8998 leva o SM2 e o SM3 ao TLS 1.3 (grupo 41, esquema de assinatura sm2sig_sm3), e a RFC 9563, ao DNSSEC como algoritmo 17.

Nomes nos padrões

PadrãoNome
GB/T 32918.5-2017SM2
OpenSSLSM2
IANA TLScurveSM2

Identificadores de objeto

Parâmetros de domínio

campo primo de 256 bits · cerca de 128 bits de segurança

Primo p do campo
0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff
Coeficiente a
0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc
Coeficiente b
0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93
Coordenada x do ponto base
0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7
Coordenada y do ponto base
0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0
Ordem n do ponto base
0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123
Cofator h
0x1

Usada em

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

Identificadores em registros

Grupos suportados do TLS
curveSM2 0x0029curveSM2MLKEM768 0x11EE
Esquemas de assinatura do TLS
sm2sig_sm3 0x0708
Números de algoritmo DNSSEC
SM2SM3 17

Padrões e referências

Todas as curvas