Capitalisation 2,74 T $ −6,17 % sur 24 heuresVolume 24 h 80,85 Md $Dominance BTC 59,5 %ETH 10,6 %Fear & Greed 68 AviditéCryptos 22 442

Courbes NIST : Claude retrouve l’origine des graines dans une horloge de 1997, ce que ça change pour Bitcoin, Ethereum et les passkeys

Les graines des courbes NIST venaient d’un générateur C de 1997, ont montré Claude et Valsorda. La courbe elliptique de bitcoin n’a pas de graine.

15 min de lecture

Illustration d'un robot, d'une loupe, d'une clé, d'un sablier et d'un atome
Sommaire
  1. Comment Claude a relié les graines des courbes NIST à une horloge de 1997
  2. Cinq courbes sur corps premiers, cinq horodatages de 1997 et 1998
  3. Pourquoi une graine de courbe inquiétait les cryptographes depuis 13 ans
  4. Valsorda a vérifié de son côté, et la prime est allée à la maison mère de Let’s Encrypt
  5. secp256k1 vs secp256r1 : la courbe elliptique de bitcoin n’est pas concernée
  6. ECDSA P-256 dans la crypto : passkeys et précompile des layer 2
  7. Greg Maxwell : connaître la méthode ne rend pas les courbes rigides
  8. Ce qui reste inexpliqué
    1. Côté français : la courbe FRP256v1 de l’ANSSI et les courbes Brainpool
  9. Le vrai risque à long terme pour ECDSA est quantique, pas les graines

Le mystère des « graines » (seeds) des courbes elliptiques du NIST, ces nombres d’apparence aléatoire à l’origine de P-256 et des autres courbes P, a trouvé sa réponse après plus de vingt ans, et blockchain that runs exactly as written when it is called, holding and moving funds according to its code, without an intermediary able to change the outcome.">smart contract holding reserves of two or more tokens, supplied by users, that a decentralized exchange uses to execute trades automatically at a price set by a formula.">pool diverge, compared with simply holding the same tokens in a wallet. It becomes permanent when the provider withdraws.">il ne touche pas la courbe elliptique de bitcoin. Le 16 octobre 2026, la Frontier Red Team d’Anthropic a indiqué qu’un modèle de recherche interne de Claude avait reconstitué en moins d’une demi-heure la façon dont ces graines ont été fabriquées. Elles sortent d’un générateur de nombres pseudo-aléatoires tout à fait ordinaire de la bibliothèque C, lrand48, initialisé avec des horodatages Unix de 1997 et 1998. Il ne s’agissait pas de hachages d’une phrase en anglais, comme le voulait la légende chez les cryptographes. Filippo Valsorda, le cryptographe qui avait lancé une prime publique sur la question, a reprogrammé la méthode lui-même en Go et retrouvé les graines publiées.

Pour qui détient des cryptomonnaies, c’est une affaire de confiance dans une norme, pas une faille de sécurité. Les clés Bitcoin et Ethereum ne reposent sur aucune courbe du NIST : rien ne change pour les portefeuilles, les appareils matériels ou les sauvegardes. Le résultat compte en revanche pour P-256, la courbe des passkeys et de la vérification de signature que les rollups, puis le réseau principal d’Ethereum depuis décembre 2025, proposent aux portefeuilles intelligents.

Une précision de vocabulaire d’abord, car le mot prête à confusion. La « graine » d’une courbe est un nombre injecté dans une procédure publique qui produit les paramètres de cette courbe. Elle n’a rien à voir avec la phrase de récupération (la seed phrase de 12 ou 24 mots) qui sauvegarde un portefeuille crypto. Aucune phrase de récupération n’a été cassée, devinée ni exposée.

Comment Claude a relié les graines des courbes NIST à une horloge de 1997

Selon Anthropic, un salarié a demandé au modèle interne de retrouver comment les graines avaient été générées, sans lui fournir l’indice tiré de la légende, selon lequel il s’agissait de hachages d’une « phrase secrète humoristique ». Le compte rendu parle seulement d’« un modèle de recherche interne » et ne le nomme pas. Il publie aussi des extraits du raisonnement du modèle, dont un passage où celui-ci se demande s’il se trouve dans un environnement simulé ou de test, avant de conclure que la régularité observée est bien réelle.

Le modèle a d’abord supposé que le logiciel avait utilisé un générateur pseudo-aléatoire livré avec les bibliothèques C des années 1990, et il a écrit un programme pour tester les graines contre cette hypothèse. Il a ensuite repéré une régularité : dans quatre des dix graines, le bit de poids fort de chaque mot de 32 bits valait zéro, sur l’ensemble des 20 mots. Cela correspond à lrand48, qui garde un état interne de 48 bits et ne renvoie que 31 bits à la fois. Le modèle a essayé les 217 valeurs possibles des 17 bits cachés, puis vérifié que les mots suivants concordaient. Pour les graines des courbes sur corps premiers, il a employé l’algorithme de Lenstra-Lenstra-Lovász (LLL), la méthode classique de réduction de réseaux pour retrouver l’état d’un générateur congruentiel linéaire tronqué. Une fois les états connus, les valeurs de départ se sont révélées être des horodatages Unix.

La procédure reconstituée par Valsorda est simple. On appelle srand48 avec l’heure Unix du moment, on tire des octets avec drand48, on essaie chaque bloc de 20 octets comme graine candidate, et on garde ceux qui donnent une courbe valide selon les règles de la norme ANSI X9.62. Chaque graine publiée occupe une position précise dans cette suite : le candidat n° 1 842 pour P-256, par exemple.

Illustration d'un engrenage, d'une puce, d'un insecte logiciel et d'un document technique
Le modèle a deviné un générateur des années 1990, puis retrouvé ses états cachés par réduction de réseaux.

Cinq courbes sur corps premiers, cinq horodatages de 1997 et 1998

Le code de reproduction publié par Anthropic donne une heure de départ et un numéro de candidat pour chacune des cinq courbes sur corps premiers que le NIST a publiées dans la norme FIPS 186-2 en 2000. Toutes les heures sont en UTC.

CourbeDémarrage du générateur (UTC)Candidat publié
P-19218 mai 1997, 14:45:34139
P-5218 août 1997, 01:12:041 136
P-25616 août 1997, 01:52:341 842
P-38430 août 1997, 14:50:082 688
P-2243 avril 1998, 12:52:077 026

Quatre courbes binaires, B-233, B-283, B-409 et B-571, semblent suivre le même schéma, avec une variante. Leurs valeurs de départ se lisent comme des dates de février 1984, ce qui laisse penser que le programme a divisé l’horloge par deux ; une fois doublées, elles renvoient au 17 avril 1998, deux semaines après le calcul de P-224. Anthropic présente cette lecture avec prudence. Le code publié couvre les cinq graines des courbes sur corps premiers et ces quatre graines binaires.

L’équipe a aussi retrouvé l’origine du point de base de P-192, ainsi que de ceux de cinq courbes d’exemple de la norme ANSI X9.62 (prime192v2, prime192v3 et prime239v1 à v3) : le générateur aléatoire de FreeLIP, une bibliothèque d’arithmétique des années 1990, lancé avec de petites graines comprises entre 20 000 et 20 517. Anthropic a publié son code sous licence CC0 (domaine public) et a rendu un hommage posthume à Jerry Solinas, le mathématicien de la NSA qui avait fourni les graines et qui est mort au début de 2023.

Pourquoi une graine de courbe inquiétait les cryptographes depuis 13 ans

La cryptographie sur courbes elliptiques permet à un portefeuille ou à un navigateur de transformer une clé privée en clé publique, puis de signer des messages que n’importe qui peut vérifier avec cette clé publique. Toute la sécurité repose sur la courbe elle-même. Une courbe dotée d’une faiblesse cachée permettrait à celui qui la connaît de retrouver les clés.

La réponse retenue par le NIST en 2000, d’après la méthode ANSI X9.62, était la courbe « vérifiablement aléatoire ». Ses paramètres sont obtenus en hachant une graine avec SHA-1, si bien qu’en théorie personne n’a pu choisir une courbe particulière. Le problème, c’était la graine elle-même. La NSA n’a jamais dit d’où venaient ces nombres. Si le concepteur avait pu essayer des millions de graines et garder celle qui produisait une courbe affectée d’un défaut connu de lui seul, la vérification ne prouvait pas grand-chose.

Le soupçon est resté théorique jusqu’en septembre 2013, quand les documents d’Edward Snowden et l’affaire Dual_EC_DRBG ont montré qu’une norme de génération de nombres aléatoires liée à la NSA avait été conçue avec une probable porte dérobée. Le NIST a retiré Dual_EC_DRBG en 2014. Sur les listes de diffusion de cryptographie, les graines inexpliquées des courbes P sont devenues la cible suivante. Les développeurs de Bitcoin, eux, faisaient remarquer que secp256k1 n’avait pas de graine du tout.

Deux camps se sont formés. Neal Koblitz et Alfred Menezes ont soutenu en 2015 qu’une porte dérobée cachée dans la graine était peu plausible. Daniel Bernstein, Tanja Lange et leurs coauteurs, dans leurs travaux « BADA55 » sur les courbes manipulables, ont montré comment une marge de choix sur la graine pouvait en principe dissimuler une courbe faible. D’après Valsorda, leur scénario supposait environ 70 bits de liberté dans le choix des graines.

Solinas est mort au début de 2023. Le 5 octobre 2023, Valsorda a ouvert une prime pour quiconque retrouverait l’origine des graines, rapidement portée à 12 288 $, montant triplé si le gagnant le reversait à une association caritative américaine. Solinas se souvenait de graines obtenues par hachage SHA-1 d’une phrase en anglais du genre « Jerry deserves a raise » (Jerry mérite une augmentation), écrivait alors Valsorda, mais aucune des phrases testées ne correspondait.

Valsorda a vérifié de son côté, et la prime est allée à la maison mère de Let’s Encrypt

Valsorda indique que la prime a été réclamée le 15 octobre 2026 à 1 h 07 min 51 s UTC. Sa propre réimplémentation en Go reproduit les graines, et c’est à ce jour la seule vérification indépendante : il n’existe pas encore d’article évalué par des pairs. D’après son analyse, la procédure appliquait deux règles d’acceptation en plus des contrôles ANSI X9.62, et aucune n’était documentée. Il en a identifié une (rejeter un candidat si la longueur en bits de l’ordre n de la courbe dépasse celle du nombre premier p du corps). La seconde, écrit-il, « nous échappe encore », et sa version de l’algorithme produit environ deux fois plus de graines valides qu’il n’en a été publié.

Sur l’ancienne théorie de la porte dérobée, il est catégorique. « Les découvertes de cette semaine écartent complètement la technique décrite par Bernstein et Lange », a-t-il écrit, ajoutant que la NSA « n’aurait disposé que d’à peine 30 bits de liberté » dans ce choix.

Sur l’argent, une correction s’impose, car une partie des premiers articles s’est trompée. La prime était celle de Valsorda, financée par des dons, et non un prix d’Anthropic. L’équipe d’Anthropic a fait verser la somme à l’Internet Security Research Group (ISRG), l’organisation à but non lucratif qui gère Let’s Encrypt. Selon les règles de la prime, un don à une association triple la récompense, qui atteint ainsi 36 864 $, d’après les deux publications.

La conclusion d’Anthropic est nette : « Ce n’est ni une rupture cryptographique, ni une nouvelle attaque, ni une faiblesse des courbes ECDSA », indique le billet, et « il n’y a aucune mesure à prendre ni rien à faire différemment ».

secp256k1 vs secp256r1 : la courbe elliptique de bitcoin n’est pas concernée

Bitcoin signe ses transactions avec ECDSA (et, depuis Taproot, avec des signatures de Schnorr) sur secp256k1. Les comptes Ethereum contrôlés par une clé privée utilisent la même courbe. secp256k1 vient de SEC 2, une norme publiée en 2000 par le Standards for Efficient Cryptography Group (SECG), et non du NIST. Son équation est y² = x³ + 7. Ces constantes sont à peu près les plus petites possibles pour une courbe sûre d’ordre premier qui permet en plus une accélération des calculs appelée endomorphisme GLV.

Il n’y a pas de graine dans secp256k1. Rien d’aléatoire n’est entré dans sa conception, il n’y a donc rien à expliquer. Le seul paramètre dont l’origine n’est pas documentée est le point générateur G. Ce choix est sans effet sur la sécurité : dans un groupe d’ordre premier, tous les générateurs donnent un problème du logarithme discret aussi difficile.

Bitcoin.com News l’a résumé en une ligne tard le 16 octobre (heure de l’Est américain) : la découverte « ne touche pas directement Bitcoin ou Ethereum, qui utilisent une autre courbe elliptique appelée secp256k1 ». Solana et Cardano utilisent Ed25519, bâti sur Curve25519, qui ne dépend pas non plus des graines du NIST.

Certains articles sont allés plus loin cette semaine, en affirmant que Satoshi Nakamoto avait choisi secp256k1 par méfiance envers les courbes du NIST. Satoshi n’a jamais expliqué ce choix publiquement : ce motif reste une supposition, aussi souvent soit-il répété.

Les noms ajoutent à la confusion. secp256r1, prime256v1 et NIST P-256 désignent la même courbe. Le « r » signifie random (des paramètres tirés d’une graine), le « k » de secp256k1 renvoie à Koblitz.

secp256k1P-256 (secp256r1)
NormeSECG SEC 2 (2000)NIST FIPS 186-2 (2000), ANSI X9.62
ParamètresPetites constantes fixes, y² = x³ + 7Dérivés d’une graine via SHA-1
GraineAucuneIssue de lrand48, lancé le 16 août 1997
Usage principal dans la cryptoClés des comptes Bitcoin et EthereumPasskeys, puces sécurisées, précompile P-256

ECDSA P-256 dans la crypto : passkeys et précompile des layer 2

P-256 est partout en dehors des blockchains. Les passkeys (FIDO2 et WebAuthn), ces identifiants sans mot de passe qui se débloquent par le visage ou l’empreinte, signent le plus souvent avec ES256, c’est-à-dire ECDSA sur P-256. La Secure Enclave d’Apple, l’Android Keystore et de nombreux modules matériels de sécurité (HSM) la prennent en charge nativement. Le cadenas affiché sur le site d’une plateforme d’échange s’appuie souvent dessus, lui aussi.

C’est pour cela que les développeurs d’Ethereum s’y intéressent. Pour qu’un utilisateur valide une transaction avec Face ID ou son empreinte, un portefeuille intelligent doit vérifier une signature P-256 sur la chaîne, ce qui est lent et coûteux sans aide. RIP-7212 a ajouté un précompile dédié sur les rollups, à 3 450 gas, et de nombreux réseaux de couche 2 l’ont adopté à partir de 2024. L’EIP-7951 a apporté la même interface sur le réseau principal d’Ethereum, sous le nom P256VERIFY à l’adresse 0x100. Il coûte 6 900 gas, deux fois le tarif des rollups, après des mesures montrant que les vérifications P-256 étaient bien plus lentes que l’opération ECRECOVER existante. Il corrige aussi deux cas limites (un contrôle du point à l’infini et une comparaison modulaire de la valeur r) et fonctionne depuis la mise à jour Fusaka de décembre 2025.

La question des graines du NIST a pesé sur ce débat. Le 19 octobre 2023, des développeurs Ethereum ont lancé un appel pour abonder la prime de Valsorda, en collectant les dons sur un multisig Safe « 7 sur 9 » baptisé seeds-bounty.eth. Leur note de présentation expliquait qu’une bonne part des réticences face à l’EIP-7212 venait de la crainte d’une éventuelle porte dérobée, et que retrouver les graines réduirait la probabilité d’une telle porte sans en prouver l’absence.

Le résultat de cette semaine lève l’essentiel de cette objection. Pas la totalité, et c’est là qu’interviennent les sceptiques. Pour les équipes de sécurité, a écrit Crypto Briefing, l’enjeu concret tient « à la confiance plutôt qu’à des changements de code ». Aucun portefeuille, aucun rollup, aucune application n’a besoin de mise à jour.

Illustration d'une clé, d'un portefeuille, d'un smartphone, d'une pièce et d'un bouclier
Les clés Bitcoin et Ethereum utilisent secp256k1 ; P-256 compte pour les passkeys et les portefeuilles intelligents.

Greg Maxwell : connaître la méthode ne rend pas les courbes rigides

La réaction la plus incisive est venue de Greg Maxwell, développeur Bitcoin de longue date et coauteur de la bibliothèque libsecp256k1, sur Hacker News. Il ne conteste pas le résultat. Son propos porte sur ce que veut dire « expliqué ».

Une courbe rigide est une courbe pour laquelle le concepteur n’avait plus de choix significatif à faire. « La conception de secp256k1 est rigide, ou très proche de l’être », a écrit Maxwell. Savoir que P-256 vient de lrand48 et d’une horloge ne la rend pas rigide pour autant, selon lui : le procédé tel qu’il est décrit laissait aux concepteurs « 20 à 25 bits de liberté, peut-être plus ». Et comme l’origine des graines est restée obscure si longtemps, estime-t-il, il y avait toute la place pour passer en revue des candidats. Anthropic note elle-même que rien dans les nombres n’indique combien de calculs ont été lancés.

Sur les chiffres, Valsorda et Maxwell ne sont pas très éloignés. L’un fixe le plafond à environ 30 bits, l’autre à 20 à 25 bits ou davantage. Tous deux jugent que c’est bien trop peu pour le type de porte dérobée ciblée imaginé il y a une dizaine d’années, qui demandait quelque chose comme 70 bits.

Les conseils de Maxwell vont au-delà des graines. « Les nouveaux systèmes sont surtout PQ, et idéalement des hybrides PQ », a-t-il écrit, PQ voulant dire post-quantique. Pour les courbes elliptiques classiques, il suggère Curve448, et il relève que secp256k1 offre de vrais gains de vitesse maintenant que le brevet GLV a expiré. La plupart des systèmes emploient secp256k1 par compatibilité, a-t-il ajouté, parce que Bitcoin l’a utilisée en premier, et il doute que quiconque passe à P-256 à cause de cette découverte.

Il s’est aussi interrogé sur le modèle à l’origine du résultat. Le 20 septembre, raconte-t-il, il avait soumis la même énigme à un ami dont les crédits Anthropic arrivaient à expiration ; l’agent de cet ami a travaillé pendant des heures sans rien trouver de nouveau, et Maxwell a qualifié sa transcription d’« idiote ». Il a admis que le succès avait pu dépendre d’une utilisation experte, avant d’écrire : « Mais cela me fait me demander si l’entreprise a dégradé de manière invisible les performances du modèle. » Anthropic n’a pas répondu à cette remarque dans ce que nous avons pu lire.

Valsorda, de son côté, dit désormais recommander les courbes du NIST plutôt que celles fondées sur Curve25519, avec une réserve pince-sans-rire sur le calendrier : « Juste à temps pour qu’elles soient retirées au profit des signatures post-quantiques. »

Ce qui reste inexpliqué

Anthropic et Valsorda dressent tous deux la liste des problèmes ouverts, laissés en défi au public :

  • Pourquoi certains candidats valides ont été écartés. Le candidat n° 876 du calcul de P-256 donne lui aussi une courbe d’ordre premier de la bonne taille, et c’est pourtant le n° 1 842 qui a été publié ; le calcul de P-224 a sauté trois courbes de ce type. Anthropic estime que leur nombre est trop faible pour qu’il soit plausible que « des courbes affaiblies aient été sélectionnées », tandis que la réimplémentation de Valsorda trouve environ deux fois plus de graines valides qu’il n’en a été publié.
  • La seconde règle d’acceptation, non documentée, de la procédure.
  • La graine de B-163, qui ne correspond à aucune des hypothèses testées.
  • Les points de base de P-224, P-256, P-384, P-521 et des courbes binaires.
  • Le nombre de calculs lancés par la NSA, et la question de savoir si les horodatages ont été choisis exprès. Anthropic note que cela n’aurait de sens que si quelqu’un avait prévu de divulguer l’horodatage comme preuve de bonne foi. C’est cette inconnue qui explique l’écart entre les estimations de la liberté restante.

Nous n’avons trouvé aucune réaction publique de Bernstein, de Lange ni de Matthew Green à 7 h UTC le 17 octobre.

Côté français : la courbe FRP256v1 de l’ANSSI et les courbes Brainpool

La France a sa propre courbe de 256 bits, FRP256v1, publiée par l’ANSSI au Journal officiel en octobre 2011, elle aussi sans méthode de génération publiée. Les courbes Brainpool allemandes, promues par le BSI, ont été conçues pour être générées de façon vérifiable et constituent l’alternative européenne habituelle. Rien de tout cela ne change quoi que ce soit pour les utilisateurs de portefeuilles crypto ou de plateformes régulées dans l’Union européenne, qu’il s’agisse de prestataires enregistrés comme PSAN auprès de l’AMF ou agréés CASP au titre de MiCA. Aucune démarche n’est à faire, et il n’y a pas d’angle fiscal.

Le vrai risque à long terme pour ECDSA est quantique, pas les graines

La boutade de Valsorda sur la retraite des courbes renvoie à l’enjeu plus large. Un ordinateur quantique assez puissant casserait ECDSA sur secp256k1 comme sur P-256, quelle que soit l’origine des graines. Le NIST a finalisé en août 2024 sa norme de signature post-quantique ML-DSA (FIPS 204), et les courbes P doivent être progressivement abandonnées. Les développeurs de Bitcoin débattent encore de leur propre migration, notamment autour de propositions liées au BIP-360.

Nous avons fait le point sur cette menace cette semaine dans notre article sur le résultat de Google en correction d’erreurs quantiques et ce qu’il implique pour Bitcoin.

À plus court terme, les questions ouvertes sont techniques : la graine de B-163, les candidats écartés et les points de base des courbes les plus grandes. Le code d’Anthropic est dans le domaine public sous CC0, si bien que n’importe qui peut tester de nouvelles hypothèses sur les nombres restants. Ni le NIST ni la NSA n’avaient réagi à 7 h UTC le 17 octobre.

Sources

  1. Anthropic: Claude reveals ECDSA curve origins anthropic.com
  2. Filippo Valsorda: The NIST Elliptic Curves Seeds Bounty Has Been Claimed words.filippo.io
  3. Ethereum Improvement Proposals: EIP-7951, Precompile for secp256r1 Curve Support eips.ethereum.org
  4. HackMD (merkleplant, pcaversaccio et al.): NIST P-256 seeds bounty initiative hackmd.io
  5. Bitcoin.com News: Claude AI Cracks the NSA's 25-Year Cryptography Seed Mystery news.bitcoin.com
  6. Hacker News: discussion of Claude reveals ECDSA curve origins (Greg Maxwell) news.ycombinator.com

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *