Rétro-informatique
Rédaction Scene & Code
Rétro-informatique

L’énigme des courbes NIST n’était pas de la crypto, mais de l’archéologie de code rétro

Un mystère cryptographique de 25 ans était en fait un générateur de bibliothèque C des années 1990 et une horloge, et le talent qui l’a résolu tient plus de la rétro-informatique que des maths.

Publié
24 octobre 2026
Lecture
4 min
Catégories
Rétro-informatique

Photo : Sébastien Pourcel / Wikimedia Commons (CC BY-SA 4.0)

Et si l’une des théories du complot les plus tenaces de la cryptographie ne s’était pas éteinte parce que quelqu’un a cassé un chiffrement, mais parce que quelqu’un a reconnu un mauvais générateur de nombres aléatoires des années 1990 ? C’est, pour l’essentiel, ce qui vient de se produire, et nous pensons qu’il s’agit d’une histoire de rétro-informatique déguisée en histoire de cryptographie.

Les graines étaient une horloge et un générateur faible, pas une phrase secrète

Le 16 octobre 2026, Anthropic a publié un article de recherche expliquant qu’un modèle de recherche interne de Claude avait fait remonter les graines des courbes NIST P-192, P-224, P-256, P-384 et P-521 jusqu’à lrand48, le générateur de nombres aléatoires de la bibliothèque C, initialisé avec des horodatages Unix compris entre mai 1997 et avril 1998. Les graines avaient été fournies par la NSA pour la norme FIPS 186-2, sans aucune explication. La version la plus connue voulait qu’il s’agisse de hachages d’une phrase secrète humoristique. Anthropic affirme que c’était faux et que le modèle a eu besoin de moins d’une demi-heure.

Ce résultat n’est pas une cassure. Anthropic le dit sans détour: il ne s’agit pas d’« une cassure cryptographique, d’une nouvelle attaque ni d’une faiblesse des courbes ECDSA ». Filippo Valsorda, qui pilotait la prime, a réimplémenté l’algorithme en Go pour le vérifier, selon l’article de dev.to. Les 36 864 dollars de la récompense reviennent à l’Internet Security Research Group.

Ce qui a fait la différence: savoir à quoi ressemblait un logiciel de 1997

Observez comment le modèle y est parvenu. La recherche de la fameuse phrase secrète a échoué. Ce qui a fonctionné, c’est une hypothèse sur l’époque: le programme générateur utilisait probablement un PRNG (générateur de nombres pseudo-aléatoires) livré avec les bibliothèques C des années 1990, et ceux-ci sont assez faibles pour être reconnaissables. Claude a analysé les graines et constaté que, dans quatre d’entre elles sur dix, le bit de poids fort de chaque mot de 32 bits était nul. Anthropic estime la probabilité de ce phénomène à 1 sur 5 810. C’est l’empreinte de lrand48, qui ne renvoie que 31 bits d’un état de 48 bits.

Quiconque a bidouillé des effets de demoscene, d’anciens formats de sauvegarde de jeux ou du code de trackers classiques connaît cet état d’esprit. On ne se demande pas « qu’avaient-ils en tête ? », mais « quels outils avaient-ils sous la main ? ». Générateurs congruentiels linéaires, appels à srand initialisés par l’horloge, sorties tronquées: c’est le pain quotidien de celui qui a fait de la rétro-ingénierie sur un titre de l’ère 16 bits pour comprendre comment son butin « aléatoire » était tiré. La communauté cryptographique a passé 25 ans à traiter ces graines comme une énigme politique. La réponse se trouvait dans la modeste boîte à outils de l’époque.

Nous pensons que c’est la leçon sous-estimée. Le vieux code de l’ère Unix regorge d’explications banales à des choses qui paraissent sinistres par la suite, et les mieux placés pour les trouver sont ceux qui connaissent les habitudes de l’époque, pas seulement les mathématiques.

L’IA en archéologue: impressionnant, mais lisez les petites lignes

Il est tentant d’y lire « une IA résout en 30 minutes un mystère vieux de 25 ans ». Nous nuancerions. La demi-heure est le récit d’Anthropic sur une exécution interne, et le modèle n’est pas nommé au-delà de « un modèle de recherche interne ». Comme le souligne mind-verse, les comptes rendus documentent cette reconstruction précise, pas un taux de réussite général. Certains commentateurs de Hacker News ont aussi avancé qu’une recherche rétroactive d’horodatages adaptés pourrait produire des correspondances similaires, d’après borncity. L’article d’Anthropic propose sa propre vérification solide: chaque état retrouvé régénère les 160 bits d’une graine, ce qui, selon l’entreprise, n’arrive pas par hasard.

Et les fouilles ne sont pas terminées. Anthropic reconnaît que la graine de B-163 reste inexpliquée et qu’elle ignore comment les points de base de P-224, P-256, P-384 et P-521 ont été générés. Le modèle est donc un bon fouilleur, pas un oracle.

Pourtant, ce qui nous a impressionnés, c’est la méthode, pas la vitesse: formuler une hypothèse sur les logiciels de l’époque, construire un scanner, repérer une anomalie, puis appliquer une technique de réseaux euclidiens classique (la réduction LLL) pour retrouver l’état caché. C’est ce que ferait un bon rétro-ingénieur humain. La différence, c’est que celui-ci ne se lasse jamais d’essayer 34 combinaisons de générateur et de tranche de sortie.

Utiliser l’IA comme une pelle, et garder les archéologues

Pour les utilisateurs de P-256: rien à faire. Anthropic indique qu’aucune action n’est nécessaire. Pour tous les autres, il y a une morale discrète et pratique. Un générateur initialisé par l’horloge n’est secret que dans la mesure où l’horloge l’est. Si votre code fabrique des jetons ou des codes d’invitation avec un générateur non cryptographique, nous vous suggérons de passer à celui, cryptographique, de votre système d’exploitation.

Notre verdict: réjouissons-nous du résultat, mais pour la bonne raison. Le titre dit « l’IA est rapide ». La meilleure histoire, c’est que préserver et comprendre le vieux code relève du travail de sécurité. Gardez les anciennes bibliothèques documentées, gardez les personnes capables de les lire, et utilisez les nouveaux outils comme une très bonne pelle, pas comme un remplaçant de l’archéologue.

Sujets de débat

Aucun sujet pour l’instant : lancez le premier.

Plus d'articles