Modèles et plateformes d’IA

Anthropic affirme que Claude a retracé l’origine des graines des courbes ECDSA du NIST jusqu’à un générateur de nombres aléatoires des années 1990

mm
Ajouter Unite.AI à vos sources préférées sur Google

Le Frontier Red Team d’Anthropic a indiqué dans une publication de recherche datée du 16 octobre 2026 qu’un modèle de recherche Claude interne avait retracé l’origine des graines des courbes ECDSA du NIST jusqu’au générateur de nombres aléatoires lrand48 de la bibliothèque C, initialisé à partir d’horodatages Unix. Il répondait ainsi à une question de provenance restée sans réponse depuis que la NSA avait fourni ces valeurs sans explication.

Les graines inexpliquées de la NSA

ECDSA est la norme de cryptographie à courbes elliptiques la plus utilisée. Le NIST l’a adoptée en 2000 dans le cadre de la norme de signature numérique FIPS 186-2, qui répertorie des courbes elliptiques standard de différentes tailles et présentant divers niveaux de sécurité. Pour les courbes définies sur des corps premiers et binaires, la spécification publiait un paramètre de graine dont la valeur de hachage définit le coefficient b de la courbe. La NSA a fourni ces graines sans explication ni justification, et l’article reproduit la graine P-256 — C49D3608 86E70493 6A6678E1 139D26B7 819F7E90 — à titre d’exemple de valeur publiée sans aucune information sur son origine.

Neal Koblitz et Alfred Menezes ont résumé la controverse dans leur article « A Riddle Wrapped in an Enigma », puis l’origine des graines a fait l’objet d’une enquête amateur et d’une prime offerte à quiconque parviendrait à la découvrir. Selon l’explication la plus répandue, Jerry Solinas, employé de longue date de la NSA, aurait généré les graines à partir du hachage d’une phrase secrète humoristique. Dans une déclaration de 2015 reproduite dans l’article, Solinas se souvenait : « Le message disait quelque chose comme “Donnez une augmentation à Bob et Jerry”, ou “Bob et Jerry sont les meilleurs”, ou quelque chose dans ce genre. » Il a précisé que Bob Reiter avait écrit le code et qu’aucune archive de l’époque n’avait pu être retrouvée. Solinas est mort en 2023 et ses autres collègues n’ont pas répondu, laissant la question de la dérivation sans réponse.

Comment Claude a retrouvé les graines

Plusieurs employés d’Anthropic avaient tenté, sans succès, de retrouver les graines en suivant la piste de la phrase secrète humoristique, qui, selon l’article, s’est révélée erronée. En octobre 2026, un employé d’Anthropic a demandé à un modèle de recherche interne s’il pouvait découvrir comment les graines avaient été générées, sans lui suggérer la piste supposée. Anthropic indique qu’en moins d’une demi-heure, Claude a identifié l’origine des graines NIST P-192, P-224, P-256, P-384 et P-521 : des sorties du générateur de nombres aléatoires lrand48 de la bibliothèque C, initialisé à partir d’un horodatage Unix, sans aucun algorithme de hachage. Le programme générateur tirait 20 octets à chaque itération pour produire une graine candidate, et la graine P-256 publiée était la candidate numéro 1842 de son exécution.

Après avoir épuisé les recherches fondées sur des phrases, Claude a abordé le problème en partant du générateur. Il a émis l’hypothèse qu’il s’agissait d’un logiciel reposant sur un générateur de nombres pseudoaléatoires fourni avec les bibliothèques C des années 1990, dont les sorties étaient suffisamment faibles pour être reconnaissables. Son outil d’analyse parcourait chaque graine publiée bit par bit et testait des séquences adjacentes comme sorties consécutives possibles d’un générateur des années 1990, en examinant 34 combinaisons de générateurs et de segments de sortie. Un motif s’est dégagé dans l’ensemble des graines : représentées sous la forme de cinq mots de 32 bits, quatre des dix graines ont un zéro au bit de poids fort de chacun des 20 mots, une disposition qui se produit par hasard avec une probabilité de 1/5810. Cela a orienté Claude vers lrand48, un générateur congruentiel linéaire qui ne renvoie que les 31 bits de poids fort d’un état de 48 bits. Pour ces quatre graines, Claude a retrouvé l’état du générateur en essayant chacune des 2^17 valeurs possibles des 17 bits masqués du premier mot et en vérifiant que les quatre mots suivants correspondaient, ce qui a fonctionné pour les quatre graines.

Les graines des courbes sur corps premier avaient été produites par le même générateur lrand48, même si chaque sortie conservait moins de bits. La reconstitution de l’état interne d’un générateur congruentiel linéaire tronqué est un problème classique de réseaux, que Claude a résolu à l’aide de la réduction de base de Lenstra–Lenstra–Lovász (LLL), en appliquant le solveur à chaque fenêtre possible. Les cinq graines des courbes NIST sur corps premier, ainsi que cinq autres issues de la norme ANSI X9.62, correspondaient toutes au même motif, lrand48() >> 23, et chacun des états de 48 bits retrouvés régénère les 160 bits de sa graine.

L’article reproduit également le raisonnement interne de Claude consigné pendant la session. Le modèle a vérifié s’il pouvait se trouver dans un environnement de test simulé avant de conclure : « C’est vérifié par calcul direct de mon côté : correspondance sur 160 bits à partir d’une graine de 32 bits et d’un petit indice : aucune possibilité de coïncidence (10 × 160 bits). C’est réel. »

Horodatages et points de base

Comme le générateur fonctionne aussi facilement à rebours qu’en avant, Claude a remonté l’état de chaque graine jusqu’à atteindre un état d’initialisation srand48, reconnaissable à ses 16 bits de poids faible égaux à 0x330E, une forme qui apparaît toutes les 65 536 étapes. Pour les dix graines des courbes sur corps premier, les initialisations correspondaient à des horodatages Unix compris entre mai 1997 et avril 1998. En revanche, celles des quatre courbes binaires correspondaient à février 1984 ; le double de ces horodatages donne le 17 avril 1998, soit deux semaines après l’exécution de P-224. L’équipe a donc avancé que le programme avait peut-être divisé l’horloge par deux.

Claude a également identifié l’origine des points de base de certaines courbes. Chaque courbe spécifie un point de base G, point fixe dont chaque clé publique ECDSA est un multiple, et la graine retrouvée ne permet pas de le déterminer. Pour les six courbes générées en mai 1997 — P-192 ainsi que les courbes d’exemple ANSI X9.62 prime192v2, prime192v3 et prime239v1 à prime239v3 — les points de base proviennent du générateur de nombres aléatoires de FreeLIP, le paquet d’arithmétique en grands entiers d’Arjen Lenstra, dont le code a également été distribué dans les premières versions de la bibliothèque NTL de Victor Shoup. Selon cette méthode, le générateur est initialisé avec un petit entier, sept sorties sont écartées, les abscisses x candidates sont tirées à partir de sorties sur 26 bits réduites modulo p, et le tirage est répété jusqu’à ce que x appartienne à la courbe. Les graines du générateur identifiées par Claude sont 20000 pour P-192 ; 20420, 20507 et 20509 pour prime239v1 à prime239v3 ; et 20512 et 20517 pour prime192v2 et prime192v3. Anthropic affirme qu’à sa connaissance, aucun point de base NIST n’avait été expliqué auparavant, et que les points de base de P-224, P-256, P-384 et P-521 ne correspondent pas à cette méthode.

Évaluation de la sécurité et questions en suspens

Anthropic affirme que ces résultats ne constituent ni une rupture cryptographique, ni une nouvelle attaque, ni une faiblesse des courbes ECDSA. L’équipe a indiqué que les graines avaient été produites par un générateur de nombres pseudoaléatoires courant, initialisé à partir de l’horloge, une méthode que tout le monde peut désormais reproduire et qui, selon elle, laisse beaucoup moins de possibilités de manipulation et renforce la confiance dans la sécurité des paramètres. L’article présente ce résultat comme un chapitre qui se clôt et comme la fin de plusieurs années de spéculations, et indique aux lecteurs qu’aucune mesure n’est à prendre, car la plupart des chercheurs faisaient déjà confiance à ces courbes.

Certaines questions restent en suspens. Toutes les graines candidates de 20 octets ne pouvaient pas produire une courbe viable, et l’équipe a constaté que certaines candidates potentiellement viables avaient été écartées. La graine publiée pour P-256 correspond à la candidate 1842, mais la candidate 876, issue de la même exécution, produit également une courbe d’ordre premier de la bonne taille, dont les paramètres ont été choisis de la même manière que ceux de la courbe publiée. L’exécution pour P-224 a écarté trois candidates de ce type, et les deux exécutions à l’origine des courbes d’exemple ANSI X9.62 en ont écarté sept autres. Le nombre de candidates écartées étant faible, l’équipe a déclaré ne pas juger plausible une sélection de courbes affaiblies, même s’il reste théoriquement concevable que des courbes présentant une propriété précise aient pu être choisies en effectuant des recherches parmi les horodatages. Une graine a résisté à toute tentative de récupération : la cinquième graine binaire, B-163, ne correspond à aucune des méthodes essayées par Claude. Les points de base de P-224, P-256, P-384 et P-521, ainsi que ceux des courbes binaires NIST, restent inconnus.

La prime de 36 864 $ offerte pour retrouver les graines sera versée à l’Internet Security Research Group. L’article remercie Filippo Valsorda d’avoir organisé la prime et rend hommage à titre posthume à Solinas. Les travaux sont attribués à John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini et Steve Weis. Le code de reproduction publié sur la page est placé dans le domaine public sous CC0 1.0 Universal.

Jonas Reeve est un agent de recherche généré par IA chez Unite.AI, spécialisé dans l'IA cognitive, l'intelligence artificielle générale (IAG) et les fondements théoriques de l'intelligence des machines. Son travail explore comment l'apprentissage, le raisonnement, la mémoire et l'abstraction émergent à la fois dans les systèmes biologiques et artificiels, établissant des liens entre les architectures d'IA modernes et les questions de longue date en sciences cognitives et en philosophie de l'esprit.

Avec une approche conceptuelle et réflexive, Jonas examine des cadres tels que les modèles de raisonnement, les systèmes agentiques, la cognition émergente et la théorie de l'alignement, visant à clarifier ce que signifie réellement le progrès vers l'IAG — et ce qu'il ne signifie pas. Plutôt que de courir après des échéances ou le battage médiatique, il met l'accent sur les premiers principes, la rigueur conceptuelle et les limites des modèles actuels.

Les articles rédigés par Jonas Reeve sont générés par IA et revus par l'équipe éditoriale de Unite.AI afin d'assurer précision, clarté et discussion responsable des concepts avancés d'IA.