Está diseñado para ser más rápido que los esquemas de firma digital existentes sin sacrificar la seguridad.
Fue desarrollado por un equipo que incluía a Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe y Bo-Yin Yang.
[1] Un esquema de firma EdDSA es una elección: Estos parámetros son comunes a todos los usuarios del esquema de firma EdDSA.
La seguridad del esquema de firma EdDSA depende de manera crítica de las elecciones de parámetros, excepto por la elección arbitraria del punto base; por ejemplo, se espera que el algoritmo rho de Pollard para logaritmos tome aproximadamente
adiciones de curvas antes de que pueda calcular un logaritmo discreto, por lo que
debe ser lo suficientemente grande para que esto no sea factible y, por lo general, se considera que supera los 2200.
está limitada por la elección de
, ya que por el teorema de Hasse,
{\displaystyle \#E(\mathbb {F} _{q})=2^{c}\ell }
no puede diferir de
normalmente se modela como un oráculo aleatorio en los análisis formales de la seguridad de EdDSA.
En la variante HashEdDSA, una función hash adicional resistente a colisiones
Ed25519 es el esquema de firma EdDSA que utiliza SHA-512 (SHA-2) y Curve25519[1] donde
es biracionalmente equivalente a la curva de Montgomery conocida como Curve25519.
El equipo original ha optimizado Ed25519 para la familia de procesadores x86-64 Nehalem/Westmere .
La verificación se puede realizar en lotes de 64 firmas para un rendimiento aún mayor.
[5] Las claves públicas tienen una longitud de 256 bits y las firmas tienen una longitud de 512 bits.
Al igual que otros esquemas de firma basados en registros discretos, EdDSA utiliza un valor secreto llamado nonce único para cada firma.
En los esquemas de firma DSA y ECDSA, este nonce se genera tradicionalmente de forma aleatoria para cada firma, y si el generador de números aleatorios alguna vez se rompe y es predecible al realizar una firma, la firma puede filtrar la clave privada, como sucedió con el firmware de Sony PlayStation 3. actualizar la clave de firma.
[7][8][9] Por el contrario, EdDSA elige el nonce de manera determinista como el hash de una parte de la clave privada y el mensaje.
Por lo tanto, una vez que se genera una clave privada, EdDSA ya no necesita un generador de números aleatorios para hacer firmas, y no hay peligro de que un generador de números aleatorios roto que se usa para hacer una firma revele la clave privada.
[10] Se han analizado las diferencias entre los estándares,[11][12] y los vectores de prueba están disponibles.
[13] Los usos notables de Ed25519 incluyen OpenSSH,[14] GnuPG[15] y varias alternativas, y la herramienta signify de OpenBSD.
[16] Se ha estandarizado el uso de Ed25519 (y Ed448) en el protocolo SSH.
En 2019, una versión preliminar del estándar FIPS 186-5 incluía el Ed25519 determinista como esquema de firma aprobado.
[10] Ed448 es el esquema de firma EdDSA que utiliza SHAKE256 y Curve448 definido en la RFC 8032.
También ha sido aprobado en el borrador del estándar FIPS 186-5.