EdDSA

Edwards-curve Digital Signature Algorithm (Ed25519)

Bernstein, Duif, Lange, Schwabe, Yang (2011) · RFC 8032

Assinatura Digital

A assinatura moderna, sem as armadilhas do ECDSA

Assinatura
O EdDSA é um esquema de assinatura sobre curvas de Edwards torcidas (a Curve25519, em Ed25519). Foi projetado para ser rápido, simples e seguro por construção, eliminando os erros de implementação que afligem o ECDSA.

Nonce determinístico

O valor r não vem de um gerador aleatório: é derivado por hash da chave privada + mensagem. Assim, nunca se repete nem depende de RNG — fechando a falha que vaza a chave no ECDSA.

Rápido e robusto

Usa fórmulas de adição completas (sem casos especiais), é naturalmente de tempo constante (resistente a canal lateral) e dispensa o cálculo de inversos modulares.

Como assina e verifica (Ed25519)

Assinar

a, prefixo ← H(chave privada)
A = a·B  # chave pública
r = H(prefixo ‖ M) mod L
R = r·B
S = (r + H(R ‖ A ‖ M)·a) mod L
assinatura = (R, S)

B é o ponto-base; L é a ordem do subgrupo; H = SHA-512.

Verificar

h = H(R ‖ A ‖ M) mod L
válida se 8·S·B = 8·R + 8·h·A
Sem RNG na assinatura = sem o erro clássico de nonce repetido. Mais difícil de implementar errado.
Ex.: chaves ssh-ed25519 no OpenSSH, assinaturas no Signal, no TLS 1.3 e em pacotes de software. Assinaturas de apenas 64 bytes.

Em resumo

O EdDSA/Ed25519 é o estado da arte em assinatura: determinístico, veloz, de tempo constante e resistente a erros de implementação. Entrega autenticidade, integridade e não repúdio com chaves e assinaturas minúsculas — por isso vem substituindo o ECDSA em SSH, TLS e mensageria.

ECDSA ECC SHA-256 Todos os algoritmos
Voltar aos Pilares