Next AI v2 IA générative

Courbes NIST : l'hypothèse d'une porte dérobée de la NSA devient bien moins plausible

Selon Anthropic, les graines des courbes elliptiques NIST ne sont pas le hachage d'une phrase, mais la sortie de lrand48 initialisé par l'horloge en 1997-1998. Le résultat affaiblit la thèse d'une porte dérobée, sans lever toutes les zones d'ombre.

· 854 mots · Rédigé par une IA

Pendant vingt-cinq ans, personne n'a su d'où venaient les « graines » des courbes elliptiques standardisées par le NIST. Le 16 octobre 2026, Anthropic a publié une explication : un de ses modèles de recherche internes, Claude, les a reliées au générateur pseudo-aléatoire lrand48 de la bibliothèque C, initialisé avec l'heure Unix. Il l'aurait fait en moins d'une demi-heure, selon Anthropic.

Une énigme héritée de la NSA

L'ECDSA a été adopté par le NIST en 2000 dans la norme FIPS 186-2. Pour chaque courbe, une graine publiée sert, une fois hachée, à définir le coefficient b. Ces graines avaient été fournies par la NSA sans justification. Celle de la courbe P-256 était publiée sans la moindre indication d'origine.

L'explication la plus répandue venait de Jerry Solinas, employé de longue date de la NSA, mort en 2023. En 2015, il se souvenait d'une phrase humoristique hachée, du type « Give Bob and Jerry a raise ». « Je crois qu'il y avait un compteur plutôt que des hachages multiples, mais je ne connais pas les détails », disait-il, selon la publication d'Anthropic (traduction) (Anthropic). Des employés d'Anthropic avaient cherché en vain dans cette direction.

La méthode : reconnaître un générateur des années 1990

En octobre 2026, un employé a demandé au modèle de retrouver l'origine des graines sans lui donner cette piste. Claude a supposé que le logiciel utilisait un générateur livré avec les bibliothèques C des années 1990, assez faible pour être reconnaissable. Il a écrit un outil qui parcourt chaque graine bit par bit, sur 34 combinaisons de générateurs et de tranches de sortie.

Un indice est apparu : pour quatre des dix graines, le bit de poids fort était nul dans les 20 mots, ce qui arrive par hasard avec une probabilité de 1/5810. C'est la signature de lrand48, qui ne renvoie que les 31 bits de poids fort d'un état de 48 bits. Pour les courbes sur corps premier, Claude a dû reconstituer l'état interne à partir de bits tronqués, un problème classique de réseaux euclidiens résolu par l'algorithme LLL. Les dix graines (cinq du NIST et cinq de la norme ANSI X9.62) suivent le motif lrand48() >> 23.

En remontant le générateur, Claude a retrouvé pour chacune un état d'initialisation de srand48 correspondant à un horodatage Unix compris entre mai 1997 et avril 1998. Selon Blockchain.News, la graine de P-256 correspond au 1 842ᵉ candidat d'une série lancée le 16 août 1997 à 01:52:34 UTC. Les courbes sur corps binaire donnent février 1984, mais le 17 avril 1998 si l'on double l'horodatage : le programme aurait donc divisé l'horloge par deux.

Le modèle a aussi retrouvé l'origine des points de base de six courbes de mai 1997 (P-192 et cinq courbes d'exemple ANSI). Ils viennent du générateur de FreeLIP, la bibliothèque d'arithmétique de grands entiers d'Arjen Lenstra. Selon Anthropic, aucun point de base NIST n'avait été expliqué jusque-là.

Un coup dur pour la thèse de la porte dérobée

Anthropic précise qu'il ne s'agit ni d'une cassure cryptographique ni d'une faiblesse nouvelle. Pour l'entreprise, cela rend l'hypothèse de portes dérobées beaucoup moins plausible : la procédure est simple et reproductible, ce qui laisse peu de place à une manipulation.

Filippo Valsorda, qui avait lancé la prime, va plus loin. Selon Filippo Valsorda, les chercheurs d'Anthropic l'ont réclamée le 15 octobre 2026 à 01:07:51 UTC et l'ont reversée à l'ISRG, l'organisation qui exploite Let's Encrypt, ce qui porte le montant à 36 864 dollars. Il rappelle qu'en 2017, Daniel Bernstein et Tanja Lange avaient 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 2⁶¹ courbes faibles. Selon lui, ces résultats écartent complètement cette technique : même en choisissant librement l'horodatage et l'un des 16 premiers candidats, la NSA n'aurait eu qu'environ 30 bits de liberté, soit « pas assez pour cibler intentionnellement une petite classe hypothétique de courbes faibles » (traduction). Il y voit l'achèvement de la « réhabilitation » des courbes NIST, qu'il recommande désormais à titre personnel face à Curve25519.

Anthropic nuance de son côté : il reste concevable, en principe, d'avoir cherché parmi les horodatages une courbe à propriété particulière, mais cela n'aurait de sens que pour divulguer ensuite l'horodatage comme preuve d'innocuité. Rien dans les chiffres ne dit combien d'essais ont eu lieu.

Ce qui reste inexpliqué

Tous les candidats valides n'ont pas été retenus. Pour P-256, le candidat 876 de la même série donnait aussi une courbe d'ordre premier de bonne taille. La série de P-224 en a laissé passer trois, celles des courbes ANSI sept de plus. Valsorda y voit deux critères non documentés : l'un est clair (la graine est rejetée si l'ordre de la courbe dépasse en bits celui du corps), l'autre lui échappe. Il évoque une possible erreur d'algorithme ou un usage du même générateur pour la validation, et note que les écarts ne sont pas réguliers.

Par ailleurs, la graine de B-163 reste inexpliquée, tout comme les points de base de P-224, P-256, P-384, P-521 et des courbes binaires. Le travail est signé de dix chercheurs d'Anthropic, dont Nicholas Carlini et Steve Weis. Valsorda promet des autocollants et des T-shirts aux couleurs des graines.

Sources

cryptographie NIST ECDSA Anthropic NSA