Le 16 octobre 2026, Anthropic a publié une reconstruction selon laquelle son modèle de recherche Claude a relié les graines de cinq courbes NIST à des sorties du générateur pseudo-aléatoire lrand48, initialisé par des horodatages Unix. Anthropic affirme que Claude a trouvé cette piste en moins d’une demi-heure et que le résultat ne constitue ni une nouvelle attaque ni une faiblesse d’ECDSA. L’entreprise détaille sa méthode et ses résultats.
Les graines en question sont des paramètres dont la National Security Agency (NSA) a fourni les valeurs au NIST sans en expliquer l’origine, selon Anthropic. Le NIST a publié les courbes dans la norme FIPS 186-2 en 2000. La reconstruction porte sur cinq courbes sur corps premier : P-192, P-224, P-256, P-384 et P-521.
Comment Claude a relié les graines à lrand48
Anthropic décrit un processus où un horodatage Unix initialise le générateur, puis où des sorties successives forment des graines candidates de 20 octets. Chaque candidate est testée selon les règles de génération de courbes de la norme ANSI X9.62. Le code publié par Anthropic indique que les graines de cinq courbes NIST et de cinq exemples ANSI X9.62 correspondent à des sorties de lrand48() >> 23 ; pour chacune, l’état retrouvé du générateur reproduit les 160 bits de la graine.
Pour remonter à l’état du générateur malgré des sorties tronquées, l’équipe décrit notamment l’emploi de la réduction de réseau LLL. Filippo Valsorda, qui avait organisé une récompense pour résoudre le mystère, affirme avoir réimplémenté le processus en Go.
Les cinq horodatages reconstruits
Anthropic donne dans son code un horodatage UTC et une position de candidat pour chaque graine. Ce sont des valeurs issues de la reconstruction informatique publiée par l’entreprise.
| Courbe NIST | Horodatage UTC reconstruit | Position du candidat |
| P-192 | 18 mai 1997, 14:45:34 UTC | 139 |
| P-224 | 3 avril 1998, 12:52:07 UTC | 7 026 |
| P-256 | 16 août 1997, 01:52:34 UTC | 1 842 |
| P-384 | 30 août 1997, 14:50:08 UTC | 2 688 |
| P-521 | 8 août 1997, 01:12:04 UTC | 1 136 |
Un indice de candidat désigne la position de la graine retenue dans la suite générée. L’exemple P-256 souvent cité n’est donc qu’un des cinq résultats détaillés par Anthropic.
Ce que le résultat dit — et ne dit pas — sur ECDSA
ECDSA est un algorithme de signature numérique ; les courbes NIST concernées sont des paramètres qui peuvent être utilisés avec cet algorithme. Anthropic affirme que retracer l’origine de leurs graines ne révèle ni attaque contre ECDSA ni faiblesse de l’algorithme. Selon l’entreprise, cette reconstruction rend moins plausible l’hypothèse d’une porte dérobée intentionnelle dans le choix des paramètres.
Pourquoi certains candidats ont été écartés
Valsorda rapporte une règle de rejet : un candidat est écarté si la longueur en bits de l’ordre de la courbe, noté n, dépasse celle du corps, noté p. Il précise que cette règle compare les longueurs en bits et n’impose pas la condition plus stricte n < p. Pour P-256, Anthropic signale notamment le candidat 876, qui produit aussi une courbe d’ordre premier de taille adéquate, avant la graine publiée au candidat 1 842.
Valsorda estime qu’il reste environ deux fois autant de graines valides que de graines publiées, et indique qu’un autre critère de sélection demeure inexpliqué. Anthropic précise également que l’origine de la graine de B-163 et celle des points de base de P-224, P-256, P-384, P-521 et des courbes binaires NIST ne sont pas résolues dans son compte rendu.