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

secp256k1

A secp256k1 é a curva de Koblitz de 256 bits y² = x³ + 7 que protege o Bitcoin, o Ethereum e o Nostr.

secp256k1 é 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 secp256k1 é definida no SEC 2 sobre o primo p = 2^256 − 2^32 − 977, com a = 0 e b = 7. O grupo de ordem prima dela dá cerca de 128 bits de segurança, e a = 0 junto com p ≡ 1 (mod 3) fornece o endomorfismo GLV, que acelera a multiplicação escalar. Diferentemente das curvas do NIST, os parâmetros dela foram escolhidos pela eficiência, e não derivados de uma semente.

O Bitcoin a adotou em 2009 para o ECDSA, e a BIP 340 (Taproot) acrescentou assinaturas Schnorr na mesma curva; o Ethereum assina transações e mensagens com ela, e os eventos do Nostr carregam assinaturas Schnorr da BIP 340. O Ethereum (desde a EIP-2) e a política de retransmissão do Bitcoin rejeitam a forma high-s das assinaturas ECDSA para evitar a maleabilidade — veja low-s.

Fora das blockchains, ela é pouco comum: a RFC 8422 a declarou obsoleta para o TLS (ponto de código 22), o JOSE (ES256K, RFC 8812) e o COSE (algoritmo −47) a registram, e o NIST SP 800-186 só a permite em aplicações relacionadas a blockchain.

Nomes nos padrões

PadrãoNome
SEC 2secp256k1
JOSE / COSEsecp256k1

Identificadores de objeto

Parâmetros de domínio

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

Primo p do campo
0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
Coeficiente a
0x0
Coeficiente b
0x7
Coordenada x do ponto base
0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
Coordenada y do ponto base
0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
Ordem n do ponto base
0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141
Cofator h
0x1

Usada em

  • Bitcoin
  • Ethereum
  • Nostr
  • JOSE (ES256K)
  • COSE (ES256K)

Identificadores em registros

Grupos suportados do TLS
secp256k1 0x0016
Algoritmos JOSE
ES256K
Curvas JWK
secp256k1
Algoritmos COSE
ES256K -47
Curvas elípticas COSE
secp256k1 8
Identificadores de KEM do HPKE
DHKEM(secp256k1, HKDF-SHA256) 0x0016

Padrões e referências

Todas as curvas