La publication, intitulée Claude reveals ECDSA curve origins, est signée par dix chercheurs d'Anthropic, dont Nicholas Carlini, Paul Crowley et Steve Weis. En octobre 2026, un salarié a demandé à « un modèle de recherche interne » (traduit de l'anglais) de retrouver comment les graines avaient été produites, sans l'orienter vers un indice. La page appelle ensuite ce modèle Claude, sans préciser sa version.
Selon Anthropic, la réponse est venue en moins d'une demi-heure, après l'échec de plusieurs salariés partis sur la piste d'une phrase hachée. Ce récit vient de l'éditeur du modèle. Il ne donne ni le nombre d'essais, ni le budget de calcul, ni la part de chacun des dix auteurs.
Le résultat, lui, se contrôle sans ce récit. Des graines fournies par la NSA sans explication Les courbes P-192, P-224, P-256, P-384 et P-521 figurent dans la norme de signature FIPS 186-2, adoptée par le NIST en 2000. Leur coefficient b est dérivé par hachage SHA-1 d'une valeur de 160 bits, la graine, selon la procédure de la norme ANSI X9.62.
Le hachage empêche de choisir b à la main. Il laisse ouverte la question du choix de la graine. La NSA a fourni ces graines « sans explication ni justification », écrit Anthropic.
Alfred Menezes, principal auteur de X9.62, a indiqué à Steve Weis que Jerry Solinas, de la NSA, lui avait remis des graines « à l'automne 1997 », selon l'enquête publiée par Weis en 2023. Dans des courriels cités par Weis, Solinas, mort en 2023, évoquait le hachage d'un message humoristique dont il ne se souvenait plus. Les « précédents de la NSA, à savoir Dual_EC_DRBG », expliquent que certains jugent ces graines suspectes, écrivait Filippo Valsorda, ingénieur en cryptographie, en annonçant sa prime le 5 octobre 2023.
Il tenait lui-même ces craintes pour infondées. Le site SafeCurves classe P-224, P-256 et P-384 comme « manipulables », au motif d'une « graine inexpliquée ». Le générateur lrand48, initialisé par l'horloge Le modèle a supposé un générateur pseudo-aléatoire livré avec les bibliothèques C des années 1990.
Un indice l'a guidé. Quatre des dix graines ont un bit de tête nul sur chacun de leurs cinq mots de 32 bits, une coïncidence d'une chance sur 5 810 selon la page. L'état interne a ensuite été reconstitué par essai exhaustif et par réduction de réseau.
La fonction srand48 initialise l'état de 48 bits du générateur avec un horodatage Unix, complété par la constante 0x330E. Chaque candidat compte 20 octets, formés chacun des 8 bits de poids fort d'un appel à lrand48. Valsorda parle de drand48, qui partage le même état.
La graine de P-256 est le 1 842e candidat d'un tirage lancé le 16 août 1997 à 01:52:34 UTC. CourbeLancement du tirage (UTC)Rang de la graine publiée P-19218 mai 1997, 14:45:34139 P-2243 avril 1998, 12:52:077 026 P-25616 août 1997, 01:52:341 842 P-38430 août 1997, 14:50:082 688 P-5218 août 1997, 01:12:041 136 prime192v2 (ANSI X9.62)18 mai 1997, 14:45:346 013 prime192v3 (ANSI X9.62)18 mai 1997, 14:45:345 228 prime239v1 (ANSI X9.62)15 mai 1997, 15:49:032 185 prime239v2 (ANSI X9.62)15 mai 1997, 15:49:032 320 prime239v3 (ANSI X9.62)15 mai 1997, 15:49:033 048 Horodatages et rangs publiés par Anthropic et Filippo Valsorda, recalculés par ActuIA. Anthropic avance, sous condition, une explication analogue pour les courbes binaires B-233 à B-571, avec une horloge divisée par deux.
La graine de B-163 reste inexpliquée. Filippo Valsorda a refait le calcul en Go Valsorda a reçu la réclamation le 15 octobre 2026. Il a réimplémenté l'algorithme en Go « pour vérifier la réclamation ».
Il a annoncé l'attribution de la prime dans un billet du 16 octobre. Les 36 864 dollars iront à l'Internet Security Research Group, l'association qui gère Let's Encrypt. Son programme va au-delà des graines.
Il dérive le coefficient b de chaque candidat et calcule l'ordre de la courbe avec le logiciel PARI/GP. Il en ressort deux critères de sélection absents de la norme. Le premier écartait les candidats dont l'ordre compte plus de bits que le nombre premier du corps.
ActuIA a régénéré les dix graines sur corps premiers avec le script Python de 24 lignes reproduit en fin d'article. Les dix coïncident bit pour bit avec les graines publiées. Le calcul prend une fraction de seconde.
Le 29 juillet 2026, à propos d'autres résultats de cryptanalyse d'Anthropic, le cryptographe Matthew Green écrivait dans un billet que « ce n'est pas parce qu'un modèle produit un résultat apparemment nouveau que ce résultat est réel ». La preuve de Navier-Stokes d'OpenAI passait par une formalisation en Lean et un examen des définitions. Les graines, elles, se vérifient sans faire confiance au modèle ni à son éditeur.
Environ 30 bits de liberté, contre 70 dans le scénario de Bernstein et Lange En 2017, Daniel J. Bernstein et Tanja Lange ont décrit à Neal Koblitz et Alfred Menezes une technique exploitant 70 bits de liberté dans le choix de la graine, pour viser une classe hypothétique de courbes faibles, rapporte Valsorda. Les résultats du 16 octobre « écartent complètement » cette technique, écrit-il.
Son hypothèse se veut généreuse. Même libre de choisir tout horodatage de 1997 et 1998 et l'un des 16 premiers candidats d'ordre premier, la NSA n'aurait eu qu'« à peine 30 bits de liberté ». Ce n'est « pas assez pour y loger la moindre porte dérobée NOBUS », une faiblesse que seul son auteur saurait exploiter.
Un calcul d'ActuIA retrouve cet ordre de grandeur : deux années comptent environ 63 millions de secondes, près de 26 bits, et 16 candidats en ajoutent 4. L'écart de 40 bits avec le scénario de Bernstein et Lange correspond à un espace de choix environ mille milliards de fois plus petit. Anthropic décrit la portée du résultat dans le même sens.
« Il ne s'agit ni d'un cassage cryptographique, ni d'une nouvelle attaque, ni d'une faiblesse des courbes ECDSA », écrit l'équipe, qui juge une manipulation des graines « beaucoup moins plausible ». Au 19 octobre 2026, les pages d'actualités du NIST et de l'ANSSI ne mentionnaient pas ce résultat. Les blogs de Bernstein et de Green ne l'avaient pas traité.
Ce que le résultat change pour un RSSI La page d'Anthropic l'écrit : il n'y a « aucune mesure à prendre ni rien à faire différemment ». La méfiance envers les graines ne justifie donc plus une migration de P-256 vers Curve25519. Valsorda va plus loin.
Avec des signatures ECDSA déterministes ou hedged (avec ajout d'aléa), une arithmétique des corps vérifiée formellement et les formules d'addition complètes de Renes, Costello et Batina (2015), il recommanderait désormais, à titre personnel, les courbes du NIST plutôt que Curve25519, Ed25519 et X25519. En France, le guide de l'ANSSI sur les mécanismes cryptographiques (ANSSI-PG-083, version 3.00 du 20 mars 2026) classe déjà P-256, P-384 et P-521 parmi les courbes conformes, avec trois courbes Brainpool et la courbe française FRP256v1. Il ne pose aucune règle sur la génération des paramètres.
La prochaine échéance de P-256 est post-quantique. Le guide recommande de « viser une sécurité post-quantique » pour tout mécanisme dont l'utilisation est prévue au-delà du 1er janvier 2030, date qualifiée d'« estimation très approximative ». Il admet l'hybridation des signatures : signer avec ML-DSA, puis signer le couple message et signature avec ECDSA.
Dans ses recommandations du 12 octobre 2026, Valsorda fait état d'un « consensus » pour achever la transition d'ici à 2029. Il conseille ML-DSA-44 seul pour signer, sans signature composite hors clés SSH. Le guide de l'ANSSI ne tient pas ML-DSA seul pour conforme.
Son billet du 16 octobre voit les courbes du NIST réhabilitées « juste à temps pour être retirées au profit des signatures post-quantiques ». Un critère de sélection et des points de base restent inexpliqués Le second critère de sélection relevé par Valsorda « nous échappe encore », écrit-il. Il reste « environ deux fois plus de graines valides que de graines publiées ».
Pour P-256, le 876e candidat du même tirage donnait aussi une courbe d'ordre premier. Anthropic ignore si ces sauts relèvent d'un critère délibéré ou d'un artefact involontaire. Les points de base, points de départ fixés pour chaque courbe, ne sont expliqués qu'en partie.
Selon Anthropic, ceux de P-192 et des cinq courbes ANSI viennent du générateur de FreeLIP, la bibliothèque d'Arjen Lenstra. Ceux de P-224, P-256, P-384 et P-521 restent sans explication. La courbe FRP256v1 est moins documentée encore.
L'avis publié au Journal officiel donne ses paramètres, validés par l'ANSSI, sans graine ni méthode de génération. SafeCurves la classe « trivialement manipulable », avec pour commentaire « aucune explication fournie ». Ce classement mesure la marge laissée à celui qui génère la courbe, sans désigner de faiblesse.
Vérifier soi-même : régénérer les dix graines Le script ci-dessous, en Python standard, reproduit le générateur avec les constantes POSIX : multiplicateur 0x5DEECE66D, incrément 0xB. Il doit afficher « identique » pour les dix courbes. # Régénère les graines de cinq courbes du NIST et de cinq courbes ANSI X9.62 # avec le générateur lrand48 de la bibliothèque C, initialisé par srand48. def candidat(t, rang): x = (t > 40) # lrand48() >> 23 : 8 bits de poids fort return bytes(octets[-20:]).hex().upper() COURBES = [ # courbe, horodatage Unix passé à srand48, rang du candidat, graine publiée ("P-192", 863966734, 139, "3045AE6FC8422F64ED579528D38120EAE12196D5"), ("P-224", 891607927, 7026, "BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5"), ("P-256", 871696354, 1842, "C49D360886E704936A6678E1139D26B7819F7E90"), ("P-384", 872952608, 2688, "A335926AA319A27A1D00896A6773A4827ACDAC73"), ("P-521", 871002724, 1136, "D09E8800291CB85396CC6717393284AAA0DA64BA"), ("prime192v2", 863966734, 6013, "31A92EE2029FD10D901B113E990710F0D21AC6B6"), ("prime192v3", 863966734, 5228, "C469684435DEB378C4B65CA9591E2A5763059A2E"), ("prime239v1", 863711343, 2185, "E43BB460F0B80CC0C0B075798E948060F8321B7D"), ("prime239v2", 863711343, 2320, "E8B4011604095303CA3B8099982BE09FCB9AE616"), ("prime239v3", 863711343, 3048, "7D7374168FFE3471B60A857686A19475D3BFA2FF"), ] for nom, t, rang, graine in COURBES: print(nom, rang, "identique" if candidat(t, rang) == graine else "différente") Le script s'arrête aux graines. La dérivation du coefficient b et le calcul de l'ordre figurent dans le programme Go de Valsorda, qui requiert PARI/GP.
Ajouter ActuIA à mes sources préférées sur Google Nos articles remonteront en priorité dans « À la une » de Google. ST Stephane Nachez Rédaction ActuIA — actualités, données et analyses sur l'intelligence artificielle pour les décideurs.