Ed25519
Qu'est-ce que Ed25519 ?
Ed25519Schema de signature EdDSA sur la courbe twisted Edwards edwards25519, securite ~128 bits, signatures deterministes rapides et resistantes aux canaux auxiliaires (RFC 8032).
Ed25519 est l'instance la plus déployée de l'algorithme de signature sur courbes d'Edwards (EdDSA), spécifiée dans le RFC 8032. Elle utilise la courbe twisted Edwards edwards25519 (birationnellement équivalente à Curve25519) sur le corps premier 2²⁵⁵ − 19, avec des clés publiques de 32 octets et des signatures de 64 octets, pour environ 128 bits de sécurité. La signature est déterministe : le nonce par signature est dérivé de la clé privée et du message via SHA-512, ce qui élimine la défaillance catastrophique de réutilisation de nonce qui a cassé la signature de code de la PlayStation 3 de Sony et les portefeuilles Bitcoin Android réutilisant le k d'ECDSA.
En février 2023, le NIST a ajouté EdDSA (Ed25519 et Ed448) au FIPS 186-5, mettant fin à une longue période où le schéma était omniprésent en pratique mais non approuvé FIPS — un écart qui l'excluait de certains déploiements réglementés. Ed25519 est aujourd'hui la valeur par défaut d'OpenSSH, WireGuard, GnuPG, TLS 1.3, Signal et des systèmes modernes de signature de code.
Un point subtil tient à la sémantique de vérification. Comme la courbe a un cofacteur 8, les implémentations divergent sur l'acceptation des points d'ordre faible et sur le caractère cofactorisé de la vérification : une signature acceptée par une bibliothèque peut être rejetée par une autre, et certaines admettent des variantes malléables. L'article de 2020 « Taming the Many EdDSA » (Chalkias, Garillot, Nikolaenko) a répertorié ces divergences, cruciales pour les systèmes de consensus comme les blockchains (Solana, Cardano) où chaque validateur doit s'accorder bit à bit. Le RFC 8032 recommande les vérifications les plus strictes ; des bibliothèques comme libsodium les appliquent par défaut.
flowchart TD
SK["Graine privee"] -->|SHA-512| H["Hash h0..h63"]
H --> A["Scalaire a, cle publique A = a*B"]
H --> PR["Octets de prefixe"]
PR --> R["r = SHA-512(prefixe, M)"]
R --> RP["R = r*B"]
RP --> S["S = r + SHA-512(R, A, M)*a"]
S --> SIG["Signature = R, S<br/>64 octets, deterministe"]
SIG --> V{"Verifier :<br/>8*S*B == 8*R + 8*h*A ?"}
A --> V
V -->|oui| OK["Valide"]
V -->|non| BAD["Rejeter"]● Exemples
- 01
Cles OpenSSH generees avec `ssh-keygen -t ed25519`.
- 02
Solana, Cardano et d'autres blockchains signent leurs transactions en Ed25519.
● Questions fréquentes
Qu'est-ce que Ed25519 ?
Schema de signature EdDSA sur la courbe twisted Edwards edwards25519, securite ~128 bits, signatures deterministes rapides et resistantes aux canaux auxiliaires (RFC 8032). Cette notion relève de la catégorie Cryptographie en cybersécurité.
Que signifie Ed25519 ?
Schema de signature EdDSA sur la courbe twisted Edwards edwards25519, securite ~128 bits, signatures deterministes rapides et resistantes aux canaux auxiliaires (RFC 8032).
Comment se défendre contre Ed25519 ?
Les défenses contre Ed25519 combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Ed25519 ?
Noms alternatifs courants : EdDSA sur edwards25519, RFC 8032 Ed25519.