Anthropic a publié le 16 octobre que Claude, en usage interne, a découvert comment ont été produites les « graines » des courbes elliptiques du NIST utilisées dans l'ECDSA, un mystère ouvert depuis que la norme FIPS 186-2 les a diffusées en 2000. Selon l'entreprise, les graines viennent d'un générateur de nombres pseudo-aléatoires courant dans les années 1990, initialisé avec un horodatage Unix, et non du hachage d'une phrase, comme le suggérait un ancien récit. Anthropic souligne elle-même qu'il ne s'agit pas d'une faille des courbes.
Pourquoi ces graines étaient un mystère
Des courbes comme la P-256 sont définies par des paramètres et une graine censée prouver qu'ils n'ont pas été choisis à la main. Les graines des courbes du NIST sont venues de la NSA sans explication, ce qui a nourri pendant des années le soupçon de portes dérobées. Anthropic rappelle l'article de 2015 de Koblitz et Menezes sur le sujet et le récit de Jerry Solinas, qui évoquait le hachage d'une phrase humoristique. Solinas est mort en 2023 et la question est restée sans réponse, avec une prime ouverte pour qui la résoudrait.
Comment Claude y est arrivé
Selon Anthropic, un employé a demandé à un modèle interne de retrouver l'origine des graines, sans lui indiquer la piste de la phrase. Claude a émis l'hypothèse d'un générateur de nombres aléatoires fourni avec les bibliothèques C des années 1990 et a écrit un scanner testant 34 combinaisons de générateur et de tranches de sortie. Il a remarqué que les bits de poids fort de certaines graines étaient nuls, ce qui pointait vers lrand48, un générateur congruentiel linéaire.
Pour les courbes premières, qui conservent moins de bits par sortie, le modèle a retrouvé l'état interne du générateur avec l'algorithme de réduction de réseaux LLL, a remonté l'état jusqu'à l'appel initial à srand48 et a lu les horodatages. L'entreprise a aussi examiné la façon dont les points de base ont été générés.
Ce qui a été trouvé
- Courbes premières : les graines de P-192, P-224, P-256, P-384 et P-521 viennent de
lrand48initialisé avec un horodatage. Dix graines de courbes premières correspondent à des dates comprises entre mai 1997 et avril 1998. - Courbes binaires : les quatre graines s'initialisent à des horodatages de février 1984. Doublées, elles atteignent le 17 avril 1998, deux semaines après l'exécution de P-224 ; Anthropic traite comme une hypothèse l'idée que le programme divisait la valeur de l'horloge par deux.
- Points de base : six points (celui de P-192 et ceux de cinq courbes d'exemple de l'ANSI X9.62) proviennent du générateur de FreeLIP, le paquet d'entiers longs d'Arjen Lenstra, que les premières versions de la bibliothèque NTL de Victor Shoup incluaient aussi.
Anthropic a publié du code Python qui régénère les graines listées et certains points de base, avec une sortie identique aux valeurs publiées. La couverture secondaire indique que Filippo Valsorda, organisateur de la prime, a vérifié le résultat ; cette vérification ne figure pas dans le résumé officiel que nous avons consulté.
Ce qu'Anthropic dit que ce n'est pas
L'entreprise affirme que « ce n'est ni une cassure cryptographique, ni une nouvelle attaque, ni une faiblesse des courbes ECDSA ». Son argument va dans l'autre sens : comme les graines viennent d'un processus simple et reproductible, la thèse de la porte dérobée devient moins plausible. La prime de 36 864 dollars sera reversée à l'Internet Security Research Group. John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini et Steve Weis ont participé au travail.
Ce que l'on ignore encore
- La graine de la courbe binaire B-163 reste inexpliquée.
- Les points de base de P-224, P-256, P-384, P-521 et des courbes binaires du NIST n'ont toujours pas d'origine connue.
- Certains candidats valides ont été écartés pendant la génération (par exemple le candidat 876 de la P-256), pour une raison inconnue. Les auteurs estiment que le nombre d'écartés est trop faible pour suggérer des courbes volontairement affaiblies.
- Rien dans les chiffres ne montre combien d'exécutions de génération ont eu lieu.
Pourquoi cela compte pour le portail
Le cas est un cousin des projets de rétro-ingénierie assistée par IA que suit Portal GTA 6, comme la décompilation complète de Super Smash Bros. Melee : un modèle part d'indices partiels, teste des hypothèses et valide le résultat par rapport à quelque chose de vérifiable. Ici, la validation est la régénération exacte de valeurs publiées il y a plus de 25 ans. Comme le récit vient d'Anthropic elle-même, il vaut la peine de lire aussi le code ouvert et les analyses indépendantes.