Ed25519
¿Qué es Ed25519?
Ed25519Esquema de firma EdDSA sobre la curva twisted Edwards edwards25519, con seguridad ~128 bits, firmas deterministas, rapidas y resistentes a canales laterales (RFC 8032).
Ed25519 es la instancia más desplegada del algoritmo de firma sobre curvas de Edwards (EdDSA), especificada en RFC 8032. Usa la curva twisted Edwards edwards25519 (birracionalmente equivalente a Curve25519) sobre el campo primo 2²⁵⁵ − 19, con claves públicas de 32 bytes y firmas de 64 bytes y unos 128 bits de seguridad. La firma es determinista: el nonce por firma se deriva de la clave privada y el mensaje mediante SHA-512, eliminando el fallo catastrófico de reutilización de nonce que rompió la firma de código de la PlayStation 3 de Sony y las carteras Bitcoin de Android que reutilizaban el valor k de ECDSA.
En febrero de 2023, el NIST añadió EdDSA (Ed25519 y Ed448) a FIPS 186-5, cerrando un largo periodo en que el esquema era omnipresente en la práctica pero no aprobado por FIPS —una brecha que lo mantenía fuera de algunos despliegues regulados—. Hoy Ed25519 es el valor por defecto en OpenSSH, WireGuard, GnuPG, TLS 1.3, Signal y sistemas modernos de firma de código.
Un matiz sutil es la semántica de verificación. Como la curva tiene cofactor 8, las implementaciones discrepan sobre si aceptar puntos de orden pequeño y si la verificación es cofactorizada, de modo que una firma que una biblioteca acepta otra puede rechazarla, y algunas permiten variantes maleables. El artículo de 2020 "Taming the Many EdDSA" (Chalkias, Garillot, Nikolaenko) catalogó estas divergencias, que importan en sistemas de consenso como las blockchains (Solana, Cardano), donde cada validador debe coincidir bit a bit. La RFC 8032 recomienda las comprobaciones más estrictas; bibliotecas como libsodium las aplican por defecto.
flowchart TD
SK["Semilla privada"] -->|SHA-512| H["Hash h0..h63"]
H --> A["Escalar a, clave publica A = a*B"]
H --> PR["Bytes de prefijo"]
PR --> R["r = SHA-512(prefijo, M)"]
R --> RP["R = r*B"]
RP --> S["S = r + SHA-512(R, A, M)*a"]
S --> SIG["Firma = R, S<br/>64 bytes, determinista"]
SIG --> V{"Verificar:<br/>8*S*B == 8*R + 8*h*A ?"}
A --> V
V -->|si| OK["Valida"]
V -->|no| BAD["Rechazar"]● Ejemplos
- 01
Claves OpenSSH generadas con `ssh-keygen -t ed25519`.
- 02
Solana, Cardano y otras blockchains firman transacciones con Ed25519.
● Preguntas frecuentes
¿Qué es Ed25519?
Esquema de firma EdDSA sobre la curva twisted Edwards edwards25519, con seguridad ~128 bits, firmas deterministas, rapidas y resistentes a canales laterales (RFC 8032). Pertenece a la categoría de Criptografía en ciberseguridad.
¿Qué significa Ed25519?
Esquema de firma EdDSA sobre la curva twisted Edwards edwards25519, con seguridad ~128 bits, firmas deterministas, rapidas y resistentes a canales laterales (RFC 8032).
¿Cómo defenderse de Ed25519?
Las defensas contra Ed25519 combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Ed25519?
Nombres alternativos comunes: EdDSA sobre edwards25519, RFC 8032 Ed25519.