Les nombres inexpliqués derrière HTTPS
La cryptographie sur les courbes elliptiques (ECC) sous-tend les connexions sécurisées que les navigateurs établissent avec les sites web, permettant l'échange crucial d'une clé secrète partagée au vu et au su de tous. Cet exploit mathématique repose sur des elliptic curves, où des opérations spécifiques sont triviales à effectuer sur le plan informatique, mais pratiquement impossibles à inverser. La courbe P-256, une norme publiée par le NIST en 2000, est devenue une pierre angulaire de TLS 1.3 et HTTPS, imposée pour pratiquement toutes les applications.
Pendant plus de deux décennies, les cryptographes ont nourri un profond malaise concernant ces courbes du NIST. Les paramètres définissant leur forme intégraient des « graines » arbitraires fournies par la NSA, sans explication publique sur leur origine. Ce manque de transparence a alimenté les spéculations : la NSA aurait-elle pu choisir délibérément ces graines pour intégrer une porte dérobée secrète, leur permettant un accès unique aux communications chiffrées ?
Les révélations tristement célèbres d'Edward Snowden concernant le générateur de nombres aléatoires Dual_EC_DRBG ont amplifié ces soupçons, montrant qu'une autre norme influencée par la NSA était effectivement compromise. Cependant, il est crucial de distinguer Dual_EC_DRBG des courbes elliptiques du NIST. Bien que l'incident précédent rende compréhensible une théorie du complot concernant P-256, il n'a jamais constitué la preuve d'une porte dérobée dans les courbes elliptiques elles-mêmes.
Claude a ignoré l'indice célèbre — et a trouvé un horodatage
Pendant des décennies, une rumeur alléchante, attribuée au mathématicien de la NSA Jerry Solinas, suggérait que la graine de P-256 provenait du hachage d'une phrase mémorable. Cette explication, bien que jamais totalement corroborée, a orienté les chercheurs vers des recherches infructueuses sur la « phrase humoristique » mentionnée par Solinas, comme « give Bob Reiter and Jerry Solinas a raise », dont il ne pouvait se souvenir avant son décès en 2023. Cela a conduit à une prime de longue date pour la solution, alimentant les spéculations.
Claude, cependant, a ignoré cet indice célèbre. Au lieu de poursuivre une phrase oubliée, le modèle Anthropic a exploré les modèles courants de générateurs de nombres pseudo-aléatoires (PRNG). Il a identifié des artefacts statistiques, tels qu'un bit de poids fort systématiquement mis à zéro, caractéristiques de certains générateurs hérités. En utilisant des algorithmes de réduction de réseau, Claude a travaillé à rebours à partir de ces « empreintes digitales » pour reconstruire l'état interne du générateur.
Le résultat clé : les graines de plusieurs courbes premières du NIST, dont P-256, correspondaient aux sorties de lrand48. Ce générateur familier de la bibliothèque C de l'ère Unix, largement utilisé dans les années 1990, était initialisé à partir de simples horodatages Unix. Pour P-256 spécifiquement, la reconstruction indique que lrand48 a été initialisé le 16 août 1997, à 01:52:34 UTC, la graine officielle de P-256 correspondant à son 1 842e nombre généré. D'autres courbes du NIST, comme P-192, s'alignaient également sur les sorties de lrand48 à partir d'horodatages allant de mai 1997 à avril 1998.
Les mathématiques derrière la percée médico-légale rapide
La percée de Claude reposait sur la reconnaissance d'« empreintes digitales » statistiques subtiles au sein des valeurs des graines. Il a identifié que les graines fournies par le NIST présentaient des caractéristiques cohérentes avec lrand48, un générateur de nombres pseudo-aléatoires (PRNG) courant des bibliothèques C des années 1990. Plus précisément, Claude a noté un comportement contraint du bit de poids fort dans les sorties générées.
À partir de ces sorties tronquées, Claude a ingénieusement reconstruit l'état interne du PRNG. Il a utilisé des lattice-reduction methods — une technique sophistiquée permettant de trouver des vecteurs courts dans des réseaux de haute dimension — pour faire de l'ingénierie inverse sur l'état du générateur, même avec des informations incomplètes. Cela lui a permis de retracer les nombres aléatoires jusqu'à leurs conditions initiales.
La vitesse de cette reconstruction a été remarquable : moins d'une demi-heure pour cinq courbes NIST. Le bloc-notes interne de Claude montrait même qu'il exprimait sa surprise, se demandant s'il se trouvait dans un environnement de test simulé compte tenu de la rapidité du succès. Pour P-256, le générateur a démarré le 16 août 1997 à 01:52:34 UTC, et la graine officielle était le 1 842e nombre qu'il a produit.
Anthropic a rigoureusement vérifié ces conclusions, publiant un code reproductible qui a permis à des chercheurs indépendants de régénérer les graines rapportées caractère par caractère en quelques secondes. Ce processus a également permis de résoudre les origines de plusieurs points de base ANSI X9.62 et NIST, en les reliant à la bibliothèque FreeLIP d'Arjen Lenstra. Anthropic a réclamé une prime de longue date de 36 864 $ pour cette découverte et l'a reversée à l'Internet Security Research Group (ISRG). De plus amples détails, y compris le document de recherche, sont disponibles sur Anthropic Research: ECDSA Curve Origins.
Cet article vous plaît ? Recevez-en un comme celui-ci chaque matin.
un e-mail par jour · désinscription en deux clics · aucun traqueur tiers
Une réponse rassurante, avec quelques zones d'ombre
Dévoiler les origines des horodatages offre une assurance significative, et non une crise cryptographique. Un horodatage Unix, fournissant environ 30 bits de choix, présente un espace de recherche considérablement plus restreint que ce qu'une porte dérobée délibérément conçue exigerait. Cette liberté limitée signifie qu'une faiblesse dissimulée est hautement improbable.
Il est crucial de noter que cette découverte ne brise pas TLS, ne révèle pas de clés privées et ne falsifie pas de signatures. P-256 reste sécurisé et ne nécessite aucun correctif urgent ni refonte de protocole. L'analyse d'Anthropic, et la vérification indépendante qui a suivi, ont confirmé que les courbes sont plus propres, et non plus faibles.
Des questions subsistent cependant. La graine de la courbe binaire B-163, par exemple, manque encore d'une explication complète. Les origines précises de certains base points — les coordonnées initiales sur la courbe elliptique — attendent également une élucidation complète, bien que certains aient été liés à la bibliothèque FreeLIP d'Arjen Lenstra.
En outre, les cryptographes s'interrogent encore sur la raison pour laquelle un candidat P-256 qualifié a été sélectionné plutôt que d'autres qui répondaient également aux critères. Bien que le travail de Claude ait considérablement réduit les soupçons entourant les courbes NIST, il constitue un chapitre crucial de leur histoire, et non un compte rendu définitif de chaque choix de conception.
Foire aux questions
Qu'a découvert Claude sur les graines des courbes NIST ?
Claude d'Anthropic a retracé plusieurs graines de courbes NIST jusqu'aux sorties du générateur de nombres pseudo-aléatoires lrand48, initialisé avec des horodatages Unix.
La découverte signifie-t-elle que P-256 contenait une porte dérobée ?
Non. Le processus basé sur l'horodatage laisse trop peu de liberté pour rendre plausible une porte dérobée intentionnelle, et la découverte ne permet pas d'attaques sur P-256.
Comment Claude a-t-il reconstruit les graines ?
Il a reconnu des modèles statistiques dans les sorties de lrand48 et a utilisé des techniques mathématiques, y compris la réduction de réseau, pour récupérer les états probables du générateur.
Toutes les origines des courbes sont-elles désormais expliquées ?
Non. Certaines origines de graines et certains choix de points de base restent non résolus, notamment la graine de la courbe binaire B-163 et la sélection d'un candidat P-256.

