Ce qui se passe
Les courbes elliptiques du NIST (P-192, P-224, P-256, P-384, P-521), publiées dans FIPS 186-2 en 2000, sont générées à partir d'une graine passée au hachage SHA-1 selon la norme ANSI X9.62. D'où venaient ces graines ? La légende disait que Jerry Solinas (mort début 2023) avait haché en 1997 des phrases anglaises qu'il avait ensuite oubliées.
Le 15 octobre 2026 à 01:07:51 UTC, une équipe d'Anthropic (John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini, Steve Weis) a réclamé la prime annoncée trois ans plus tôt par Filippo, auteur du billet source. Elle l'a reversée à l'ISRG (Let's Encrypt), ce qui la triple à 36 864 dollars.
La réponse : les graines sortent du générateur POSIX drand48, initialisé avec
l'heure Unix, bien en 1997-1998.
Le mécanisme
srand48(timestamp)avec l'heure Unix du moment ;drand48produit les octets un par un ;- chaque suite de 20 octets est essayée comme graine selon ANSI X9.62 et rejetée si la courbe n'est pas valide ;
- un même horodatage peut servir pour plusieurs courbes, en continuant à tirer des graines après la première acceptée.
Filippo a réimplémenté l'algorithme en Go pour vérifier.
srand48(863966734) 1997-05-18 14:45:34 UTC 139e graine → P-192
srand48(871002724) 1997-08-08 01:12:04 UTC 1136e graine → P-521
srand48(871696354) 1997-08-16 01:52:34 UTC 1842e graine → P-256
srand48(872952608) 1997-08-30 14:50:08 UTC 2688e graine → P-384
srand48(891607927) 1998-04-03 12:52:07 UTC 7026e graine → P-224Ce que ça change
Même avant, les praticiens ne s'inquiétaient guère. Mais en 2017, Daniel Bernstein et Tanja Lange avaient décrit une technique exploitant 70 bits de liberté dans le choix de la graine pour viser une classe hypothétique de 2⁶¹ courbes faibles, ce qui a nourri des théories du complot. Avec un horodatage de 1997-1998 et les 16 premiers candidats à ordre premier, il reste à peine 30 bits : trop peu pour cibler une classe de courbes faibles ou glisser une porte dérobée réservée à son auteur. Filippo écrit qu'il recommande désormais, à titre personnel, ces courbes plutôt que Curve25519, Ed25519 et X25519.
Concrètement : si une origine suspecte vous retenait d'employer P-256 (ES256 dans les JWT, WebAuthn, ECDSA), ce motif disparaît.
Les limites
- Deux critères non documentés s'ajoutent à la norme. L'un est clair : une graine est rejetée si la taille en bits de l'ordre n dépasse celle du corps p. L'autre reste inexpliqué : il y a environ deux fois plus de graines valides que de courbes publiées.
- Le billet établit l'absence de graine truquée, pas la solidité des courbes elles-mêmes.
- Les courbes binaires (« B ») ont aussi été élucidées, mais personne ne les utilise.
- Filippo rappelle qu'elles sont appelées à être retirées au profit de signatures post-quantiques.
Source : The NIST Elliptic Curves Seeds Bounty Has Been Claimed, Filippo, billet du 16 octobre 2026.