ECDSA

Elliptic Curve Digital Signature Algorithm

ANSI X9.62 / FIPS 186 · assinatura sobre curvas elípticas

Assinatura Digital

O que faz e por que importa

Assinatura
O ECDSA produz assinaturas digitais usando curvas elípticas. Fornece os três serviços da assinatura: autenticidade (quem assinou), integridade (não foi alterado) e não repúdio (o autor não pode negar). Com chaves curtas e assinaturas compactas.

Parâmetros

Uma curva com ponto-base G de ordem n. A chave privada é um escalar d; a pública é o ponto Q = d·G.

Onde aparece

Certificados TLS, assinatura de código, Bitcoin/Ethereum (curva secp256k1), JWT ES256 e DNSSEC.

As equações de assinatura e verificação

Assinar a mensagem m

e = H(m)  # hash da mensagem
escolha k aleatório (1…n−1)
R = k·G ;   r = Rx mod n
s = k−1(e + r·d) mod n
assinatura = (r, s)

Verificar (com a pública Q)

e = H(m)
u₁ = e·s−1 ; u₂ = r·s−1
R′ = u₁·G + u₂·Q
válida se R′x mod n = r

A verificação só fecha se quem assinou conhecia d.

O ponto fraco mortal — o nonce k: ele deve ser secreto e único a cada assinatura. Reutilizar k (ou usar RNG fraco) permite recuperar a chave privada d com álgebra simples — falhas reais derrubaram o PlayStation 3 e carteiras de Bitcoin. A solução é o k determinístico (RFC 6979).

Em resumo

O ECDSA assina digitalmente com curvas elípticas: chaves e assinaturas pequenas, autenticidade + integridade + não repúdio. Seu calcanhar de Aquiles é o nonce k — único e imprevisível, idealmente determinístico. É justamente isso que o EdDSA resolve por construção.

EdDSA ECC RSA Todos os algoritmos
Voltar aos Pilares