Pular para o conteúdo
ecdsa.com

ECDSA (assinatura digital de curva elíptica)

A variante do DSA em curvas elípticas, especificada no FIPS 186-5 e no SEC 1, cuja assinatura é um par de inteiros (r, s) calculado com um escalar privado e um nonce secreto novo.
Também escrito comoElliptic Curve Digital Signature AlgorithmECDSA signature

As chaves são um escalar privado d em 1…n−1 e o ponto público Q = d·G, em que G é o ponto base da curva e n é sua ordem prima. Para assinar um hash z, o signatário escolhe um nonce secreto k, define r como a coordenada x de k·G módulo n e calcula s = k⁻¹·(z + r·d) mod n; o verificador calcula u₁ = z·s⁻¹ e u₂ = r·s⁻¹ e confere se a coordenada x de u₁·G + u₂·Q é igual a r (FIPS 186-5 §6.4). O hash é truncado para o comprimento em bits de n, então o SHA-512 com P-256 usa apenas os 256 bits mais à esquerda.

Identificadores comuns: no X.509, ecdsa-with-SHA256 é 1.2.840.10045.4.3.2 (SHA-384: …4.3.3, SHA-512: …4.3.4); no JOSE, ES256, ES384, ES512 e ES256K; no COSE, −7, −35, −36 e −47; no TLS 1.3, ecdsa_secp256r1_sha256 (0x0403). As curvas habituais são P-256, P-384, P-521 e, para blockchains, secp256k1.

A mesma assinatura circula em duas codificações: r‖s bruto, de tamanho fixo (64 bytes para P-256; JOSE, WebCrypto, COSE), e uma SEQUENCE ASN.1 DER de dois INTEGERs (70–72 bytes para P-256; X.509, TLS, OpenSSL, Java). Para todo (r, s) válido, o par (r, n − s) também passa na verificação, e é por isso que as blockchains exigem assinaturas low-S.

O nonce é o ponto fraco: um k repetido ou levemente enviesado revela a chave privada, por isso as bibliotecas modernas o derivam de forma determinística (RFC 6979, aprovada pelo FIPS 186-5 §6.3.2) ou usam nonces hedged, com aleatoriedade adicional. Em um núcleo de Apple M4 Max, o OpenSSL 3.6.5 faz cerca de 87.000 assinaturas P-256 e 29.000 verificações por segundo. O NIST IR 8547 (rascunho público inicial) propõe proibir o ECDSA em todos os níveis de segurança depois de 2035, porque o algoritmo de Shor o quebra.

Padrões e referências

Ferramentas

Comparações

Termos

Bibliotecas

Curvas

Artigos

Receitas

Erros

Todos os termos