Claude perce un vieux mystère de la NSA sur ECDSA

Couverture Claude et l’énigme de la NSA : dossier illustratif P-256, date du 16 août 1997 et loupe sur C49D3608.

Des nombres publics, une origine opaque et une question restée ouverte pendant plus d’un quart de siècle. Le 16 octobre 2026, Anthropic annonce qu’un modèle interne de Claude a retrouvé comment avaient été produites les graines de cinq courbes NIST utilisées avec ECDSA. La piste mène à un générateur pseudo-aléatoire classique et à des dates de 1997 et 1998.

Cette découverte éclaire l’histoire de paramètres fournis par la NSA. Elle ne révèle pas de clé privée et ne constitue pas une attaque contre les signatures numériques. Son intérêt réside dans la possibilité de reconstruire une recette longtemps inconnue, puis de confronter ses résultats aux nombres publiés dans les standards.

Pourquoi ces nombres de la NSA intriguaient les cryptographes

ECDSA est un algorithme de signature numérique fondé sur les courbes elliptiques. Une signature permet de vérifier l’origine d’un message et de détecter sa modification. Le NIST décrit ces fonctions dans son standard de signature numérique. Signer un document et chiffrer son contenu répondent à deux besoins différents : l’un assure son authenticité, l’autre sa confidentialité.

Pour utiliser ECDSA, il faut notamment choisir une courbe et des paramètres publics partagés. La norme historique FIPS 186-2, publiée en 2000, donne plusieurs de ces courbes, dont P-256. Elle indique aussi une graine : une suite de bits servant d’entrée à la procédure de construction de certains paramètres.

Le problème concernait l’étape précédente : pourquoi avoir retenu cette graine plutôt qu’une autre ? Le fait de pouvoir vérifier le calcul effectué à partir d’une valeur n’explique pas comment cette valeur a été choisie.

Dans son enquête commencée en 2023, le cryptographe Steve Weis retrace la provenance des graines et les témoignages entourant Jerry Solinas, de la NSA. L’histoire d’une phrase humoristique passée dans une fonction de hachage avait orienté les recherches. Elle reposait sur des souvenirs incomplets, avec plusieurs variantes.

La piste retrouvée passe par l’horloge d’un ordinateur

Selon Anthropic, Claude a identifié la provenance des graines de P-192, P-224, P-256, P-384 et P-521 en moins d’une demi-heure. L’entreprise parle d’un modèle interne de recherche, sans préciser de version commerciale.

La recette publiée utilise lrand48, une fonction de bibliothèque C, initialisée avec un horodatage Unix. Un tel horodatage représente une date sous forme de nombre de secondes écoulées depuis le début de 1970.

Un générateur reproductible laisse une empreinte

La spécification POSIX de cette famille de fonctions décrit un générateur à état interne de 48 bits. À chaque étape, une formule calcule l’état suivant. Avec le même état initial, la même suite ressort : ce caractère déterministe rend possible la reproduction.

La documentation précise également que lrand48 renvoie 31 bits de l’état. Cette structure peut laisser des régularités reconnaissables. Le récit d’Anthropic décrit ensuite une recherche de l’état interne à partir de sorties partielles, notamment avec l’algorithme classique de réduction de réseaux LLL.

La distinction avec l’ancienne hypothèse est essentielle : les graines retrouvées ne viennent pas du hachage d’une phrase. Le hachage utilisé ensuite pour construire des paramètres de courbe reste une autre étape de la procédure.

Le cas P-256 se vérifie jusqu’au dernier chiffre

Le code de reproduction, placé dans le domaine public par ses auteurs, permet de reconstruire les valeurs sans interroger Claude. Pour P-256, il part du 16 août 1997 à 01 h 52 min 34 s UTC et retient le 1 842e candidat. Il obtient cette graine :

C49D360886E704936A6678E1139D26B7819F7E90

Nous avons exécuté les deux extraits publiés. Le premier reproduit 14 graines, qui correspondent à la liste de valeurs du défi historique ; neuf figurent aussi dans la norme NIST vérifiée. Le second reproduit les abscisses de six points de base, dont celle de P-192, également confrontée à la norme.

Cette vérification confirme les calculs fournis. Elle ne reproduit pas la recherche initiale du modèle et ne constitue pas un audit complet de sécurité.

Retrouver une graine publique ne donne pas les clés des utilisateurs

Le vocabulaire peut prêter à confusion. Ici, la graine sert à construire un cadre mathématique public. Elle n’est ni la clé privée d’un utilisateur ni la valeur temporaire employée lors d’une signature.

Élément Rôle
Paramètres de courbe Définir le cadre mathématique partagé
Clé privée Permettre à son détenteur de signer
Clé publique Permettre la vérification des signatures

Reconstituer la première ligne ne revient donc pas à obtenir la deuxième. La prévisibilité d’un générateur utilisé pour ces paramètres publics ne démontre pas que les secrets des utilisateurs sont prévisibles.

Anthropic considère le résultat comme rassurant sur la provenance des courbes et n’annonce aucune action corrective liée à cette découverte. Cela ne transforme pas pour autant une reconstitution historique en preuve générale de sécurité : la solidité des mathématiques et la qualité des implémentations restent des questions distinctes.

Une partie du dossier reste ouverte

L’équipe relève des candidats apparemment valides qui ont été écartés avant les graines finalement publiées. Les critères ne sont pas connus. La graine de B-163 reste inexpliquée, tout comme l’origine de plusieurs points de base, notamment ceux de P-224, P-256, P-384 et P-521.

Ces limites comptent. Une recette compatible avec les nombres observés n’est pas une archive exhaustive du processus de sélection. Elle ne raconte pas tous les essais effectués ni toutes les décisions prises.

Le défi lancé par Filippo Valsorda en octobre 2023 proposait une récompense pouvant atteindre 36 864 dollars en cas de don à une organisation éligible. Anthropic indique que cette somme sera donnée à l’Internet Security Research Group.

Ce que l’enquête révèle du rôle de l’IA en recherche

L’épisode illustre un apport intéressant des modèles : changer une hypothèse, écrire des outils d’exploration et proposer une explication testable. Le résultat utile tient à l’articulation de ces étapes avec une vérification externe.

La durée annoncée ne mesure pas, à elle seule, une capacité générale à résoudre des problèmes cryptographiques. En revanche, la publication d’une courte recette reproductible donne à chacun un moyen de contrôler le résultat précis. Pour une recherche assistée par IA, c’est un critère plus solide qu’un récit spectaculaire : une affirmation que le calcul permet d’examiner.

Références

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.