Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 414

Ed25519

Revisado porCybersecurity entrepreneur & security researcher

O que é Ed25519?

Ed25519Esquema de assinatura EdDSA sobre a curva twisted Edwards edwards25519, com seguranca ~128 bits, assinaturas deterministas, rapidas e resistentes a canais laterais (RFC 8032).


O Ed25519 é a instância mais implantada do algoritmo de assinatura sobre curvas de Edwards (EdDSA), especificada no RFC 8032. Usa a curva twisted Edwards edwards25519 (biracionalmente equivalente à Curve25519) sobre o corpo primo 2²⁵⁵ − 19, com chaves públicas de 32 bytes e assinaturas de 64 bytes e cerca de 128 bits de segurança. A assinatura é determinista: o nonce por assinatura é derivado da chave privada e da mensagem via SHA-512, eliminando a falha catastrófica de reutilização de nonce que quebrou a assinatura de código da PlayStation 3 da Sony e as carteiras Bitcoin Android que reutilizavam o k do ECDSA.

Em fevereiro de 2023, o NIST adicionou o EdDSA (Ed25519 e Ed448) ao FIPS 186-5, encerrando um longo período em que o esquema era ubíquo na prática mas não aprovado pela FIPS — uma lacuna que o mantinha fora de certas implantações reguladas. Hoje o Ed25519 é o padrão em OpenSSH, WireGuard, GnuPG, TLS 1.3, Signal e sistemas modernos de assinatura de código.

Uma subtileza está na semântica de verificação. Como a curva tem cofator 8, as implementações divergem sobre aceitar pontos de ordem pequena e se a verificação é cofatorizada — uma assinatura que uma biblioteca aceita, outra pode rejeitar, e algumas permitem variantes maleáveis. O artigo de 2020 "Taming the Many EdDSA" (Chalkias, Garillot, Nikolaenko) catalogou estas divergências, que importam em sistemas de consenso como as blockchains (Solana, Cardano), onde cada validador tem de concordar bit a bit. O RFC 8032 recomenda as verificações mais estritas; bibliotecas como a libsodium aplicam-nas por omissão.

flowchart TD
  SK["Semente privada"] -->|SHA-512| H["Hash h0..h63"]
  H --> A["Escalar a, chave publica A = a*B"]
  H --> PR["Bytes de prefixo"]
  PR --> R["r = SHA-512(prefixo, M)"]
  R --> RP["R = r*B"]
  RP --> S["S = r + SHA-512(R, A, M)*a"]
  S --> SIG["Assinatura = R, S<br/>64 bytes, determinista"]
  SIG --> V{"Verificar:<br/>8*S*B == 8*R + 8*h*A ?"}
  A --> V
  V -->|sim| OK["Valida"]
  V -->|nao| BAD["Rejeitar"]

Exemplos

  1. 01

    Chaves OpenSSH geradas com `ssh-keygen -t ed25519`.

  2. 02

    Solana, Cardano e outras blockchains assinam transacoes com Ed25519.

Perguntas frequentes

O que é Ed25519?

Esquema de assinatura EdDSA sobre a curva twisted Edwards edwards25519, com seguranca ~128 bits, assinaturas deterministas, rapidas e resistentes a canais laterais (RFC 8032). Pertence à categoria Criptografia da cibersegurança.

O que significa Ed25519?

Esquema de assinatura EdDSA sobre a curva twisted Edwards edwards25519, com seguranca ~128 bits, assinaturas deterministas, rapidas e resistentes a canais laterais (RFC 8032).

Como se defender contra Ed25519?

As defesas contra Ed25519 costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para Ed25519?

Nomes alternativos comuns: EdDSA em edwards25519, RFC 8032 Ed25519.

Termos relacionados

Ver também