Cryptographie post-quantique · C5 Migration · Chapitre 2 · 4 h
Agilité cryptographique et gouvernance
Inventaire cryptographique et CBOM, plan de migration par criticité, normalisation FIPS/ETSI/IETF, dette cryptographique et rejeu du scénario.
Dernier chapitre, et le seul qui ne contienne pas de mathématiques. C'est aussi celui dont vos étudiants auront le plus besoin, parce que la migration post-quantique échouera rarement sur un problème cryptographique et souvent sur un problème d'inventaire.
On ne migre pas ce qu'on ne connaît pas
Toutes les organisations qui ont commencé une migration rapportent la même surprise : elles ne savaient pas où était leur cryptographie.
Elle est dans le code applicatif, mais aussi dans des bibliothèques transitives dont personne ne connaît la liste, dans des configurations de serveurs web, dans des certificats émis il y a huit ans par une équipe dissoute, dans des équipements réseau dont le fournisseur a disparu, dans des protocoles industriels non documentés, dans des cartes à puce, dans des sauvegardes chiffrées avec une clé conservée ailleurs.
Le préalable est donc un inventaire cryptographique, et il doit répondre à quatre questions pour chaque usage : quel algorithme et quelle taille de clé ; quelle donnée est protégée et pendant combien de temps ; qui est responsable du composant ; et peut-on en changer sans remplacer le matériel.
La quatrième question est celle qu'on oublie, et c'est la plus discriminante. Un système « agile » se migre par une mise à jour logicielle. Un système non agile — une clé publique gravée dans un composant, un protocole propriétaire à algorithme figé — a un temps de migration qu'aucun budget ne réduira. Il faut alors agir sur le prochain cycle d'achat, c'est-à-dire aujourd'hui pour un problème qui se manifestera dans dix ans.
Le CBOM
L'inventaire ne vaut que s'il est automatisable et versionné. Un tableur mis à jour une fois par an décrit surtout l'organisation d'il y a un an.
Le format qui s'impose est le CBOM — Cryptography Bill of Materials — une extension du format de nomenclature logicielle CycloneDX. Il décrit les actifs cryptographiques comme un SBOM décrit les dépendances : algorithmes, tailles de clés, protocoles, certificats, points d'usage, et les relations entre eux.
Trois bénéfices, dans l'ordre de leur importance pratique.
Il est produit par outillage — analyse statique, inspection des binaires, sondes réseau — donc il ne dépend pas de la mémoire des équipes.
Il est différentiel : on compare deux versions et l'on voit ce qui a bougé, ce qui permet de suivre la migration au lieu de la constater.
Il est interrogeable : le jour où un algorithme est cassé, la question « où l'utilisons-nous ? » reçoit une réponse en minutes plutôt qu'en trimestres. C'est cette propriété, et non la conformité, qui justifie l'effort.
Prioriser
Le chapitre 1 a donné la règle : . Le chapitre 13 a ajouté la dissociation entre échange de clés et signatures. Ensemble, ils donnent un ordre de traitement défendable.
D'abord, l'échange de clés protégeant des données à longue durée de vie. C'est la seule catégorie où la récolte anticipée mord, et l'hybridation y est peu coûteuse.
Ensuite, les signatures à longue durée de vérification — firmwares, racines de confiance, horodatage légal. Non pas parce que la récolte les menace, mais parce que leur est long et souvent irréductible.
Ensuite seulement, le reste des signatures, en attendant que la compression des chaînes de certificats mûrisse.
Et hors périmètre, le symétrique : vérifier qu'AES est en 256 bits et passer à autre chose. Un plan qui consacre un chapitre à « migrer AES » gaspille du budget et, plus grave, de la crédibilité auprès des équipes techniques.
L'exercice de ce chapitre montre que ce classement ne ressemble pas à celui de l'intuition : le portail client, actif le plus visible, arrive en bas ; les archives, que personne ne réclame, arrivent en haut.
Quiz · 1 question
Quelle question de l'inventaire est la plus discriminante pour établir un plan ?
- Quel algorithme et quelle taille de clé sont employés
- Peut-on changer d'algorithme sans remplacer le matériel
- Quelle équipe est responsable du composant
Réponse : L'algorithme et le responsable se découvrent par outillage ou par organigramme. L'agilité, elle, détermine Y — et un système non agile a un Y qu'aucun budget ne réduit, parce qu'il faut attendre le cycle de remplacement du matériel. C'est la seule variable de l'inégalité de Mosca sur laquelle on peut agir, et c'est aussi la seule qu'on ne peut pas rattraper une fois le matériel déployé.
L'agilité cryptographique
Le vrai objectif de la migration n'est pas d'arriver à ML-KEM. C'est d'arriver à un état où le prochain changement d'algorithme ne sera plus un projet.
Quatre propriétés caractérisent un système agile.
L'algorithme est une donnée, pas du code. Il se lit dans une configuration ou une politique, et le changer ne demande pas de recompiler.
Les identifiants d'algorithme circulent dans les formats. Les messages, certificats et fichiers chiffrés indiquent explicitement l'algorithme employé, ce qui rend possible la coexistence de deux générations pendant la transition.
Les tailles ne sont pas figées. C'est le piège le plus fréquent : un champ de base de données dimensionné pour une signature ECDSA de 64 octets, un tampon de 256 octets pour une clé publique, un format binaire à longueur fixe. Ces hypothèses se découvrent au pire moment.
La transition est prévue dans le protocole. Négociation, repli, hybridation : la possibilité de faire coexister deux algorithmes doit exister avant d'en avoir besoin.
Cette dernière propriété est ce qui a permis à TLS 1.3 d'absorber l'hybridation sans modification, comme le chapitre 13 l'a montré. TLS était agile ; la plupart des systèmes ne le sont pas.
Qui publie quoi
| Organisme | Rôle | Textes de référence |
|---|---|---|
| NIST | normes d'algorithmes | FIPS 203 (ML-KEM), 204 (ML-DSA), 205 (SLH-DSA) |
| NIST | transition et pratique | IR 8547, SP 800-208, SP 1800-38 |
| IETF | intégration protocolaire | TLS hybride, LAMPS pour les certificats, SSH |
| ETSI | méthodologie de migration | groupe cryptographie quantique sûre |
| ISO/IEC | normes complémentaires | McEliece, FrodoKEM |
| ANSSI | doctrine française | avis sur la migration, exigence d'hybridation |
| BSI | doctrine allemande | recommandations incluant McEliece et FrodoKEM |
Deux remarques pour orienter la lecture. Le NIST normalise des algorithmes ; l'IETF normalise leur usage dans les protocoles, et c'est ce second travail qui conditionne les déploiements. Et les agences nationales ne s'alignent pas exactement : l'exigence d'hybridation de l'ANSSI est plus stricte que la position du NIST, et le BSI recommande des schémas que le NIST n'a pas retenus. Une organisation multinationale doit satisfaire la plus contraignante.
Rejouer le scénario
Terminons par l'exercice que ce cours prépare depuis le chapitre 10.
Supposons qu'une attaque efficace contre Module-LWE soit publiée demain matin. ML-KEM et ML-DSA tombent. Que se passe-t-il dans votre organisation ?
Les questions à poser, dans l'ordre :
- Combien de temps pour savoir où vous utilisez ML-KEM ? Si la réponse dépasse la semaine, votre inventaire est le problème.
- Vos déploiements sont-ils hybrides ? Si oui, vous conservez la sécurité classique et vous avez le temps de réagir. Si non, vous êtes nu — c'est le 30 juillet 2022 de SIKE.
- Pouvez-vous basculer vers une autre famille — HQC pour l'encapsulation, SLH-DSA pour la signature — sans réécrire vos applications ? C'est le test d'agilité, et c'est la raison pour laquelle le NIST a normalisé des schémas reposant sur des hypothèses différentes.
- Vos données déjà chiffrées sont-elles rechiffrables, ou faut-il les considérer comme compromises ?
Ce scénario n'est pas une hypothèse d'école. Il s'est produit pour SIKE, et pour Rainbow, à quelques mois d'intervalle, sur des candidats arrivés en finale d'un processus de normalisation international. La question n'est pas de savoir s'il se reproduira mais de savoir si vous serez en mesure d'y répondre.
Quiz · 1 question
Quel est le véritable objectif d'une migration post-quantique bien menée ?
- Avoir déployé ML-KEM et ML-DSA partout
- Être dans un état où le prochain changement d'algorithme ne sera plus un projet
- Avoir obtenu la conformité aux calendriers du NIST
Réponse : Déployer ML-KEM est un moyen, et un moyen qui peut être invalidé — SIKE et Rainbow rappellent qu'un schéma normalisé peut tomber. La conformité est une contrainte, pas un but. Ce qui a de la valeur durable, c'est l'agilité : un inventaire à jour, des algorithmes en configuration plutôt qu'en dur, des tailles non figées et des protocoles qui savent négocier. C'est ce qui rend le PROCHAIN changement peu coûteux, et il y aura un prochain changement.
À vous
Exercice de code
Implémentez le tri de l'inventaire, puis comparez le classement obtenu à celui que l'intuition aurait produit.
Point de départ
// Un inventaire cryptographique réduit à l'essentiel, et le tri qui en fait
// un plan de migration. C'est l'exercice le plus proche de ce que vous ferez
// réellement en entreprise.
const ANNEE = 2026;
const Z = 15; // horizon CRQC retenu, en années — hypothèse à assumer
// X = durée de vie de la donnée ou de la vérification, Y = temps de migration
const INVENTAIRE = [
{ actif: "Terminaison TLS du portail client", algo: "ECDHE P-256", role: "confidentialite", X: 2, Y: 1, agile: true },
{ actif: "Archives de santé chiffrées", algo: "RSA-2048", role: "confidentialite", X: 50, Y: 3, agile: true },
{ actif: "VPN site à site (siège ↔ usine)", algo: "IKEv2 ECDH", role: "confidentialite", X: 10, Y: 2, agile: true },
{ actif: "Racine de confiance en silicium", algo: "ECDSA P-256", role: "signature", X: 25, Y: 8, agile: false },
{ actif: "Signature des mises à jour", algo: "RSA-4096", role: "signature", X: 12, Y: 4, agile: true },
{ actif: "Sauvegardes hors ligne", algo: "AES-256", role: "symetrique", X: 30, Y: 1, agile: true },
{ actif: "Jetons de session (24 h)", algo: "HMAC-SHA256", role: "symetrique", X: 1, Y: 1, agile: true },
{ actif: "Horodatage légal", algo: "ECDSA P-256", role: "signature", X: 30, Y: 5, agile: true },
];
// Le symétrique n'est pas menacé : il suffit de vérifier la taille de clé.
const MENACE = { confidentialite: true, signature: true, symetrique: false };
function evaluer(e) {
// À COMPLÉTER — renvoyer { urgence, marge, note } où :
// marge = Z - (X + Y)
// urgence = "hors périmètre" si l'algorithme n'est pas menacé,
// "CRITIQUE" si marge < 0, "à planifier" si marge < 5,
// "surveillance" sinon
// note = un commentaire libre, notamment si l'actif n'est pas agile
return { urgence: "?", marge: 0, note: "" };
}
const RANG = { "CRITIQUE": 0, "à planifier": 1, "surveillance": 2, "hors périmètre": 3 };
const evalues = INVENTAIRE.map((e) => ({ ...e, ...evaluer(e) }))
.sort((a, b) => RANG[a.urgence] - RANG[b.urgence] || a.marge - b.marge);
console.log("urgence | marge | actif | note");
for (const e of evalues) {
console.log(
`${e.urgence.padEnd(14)} | ${String(e.marge).padStart(5)} | ${e.actif.padEnd(34)} | ${e.note}`
);
}
Solution
const ANNEE = 2026;
const Z = 15;
const INVENTAIRE = [
{ actif: "Terminaison TLS du portail client", algo: "ECDHE P-256", role: "confidentialite", X: 2, Y: 1, agile: true },
{ actif: "Archives de santé chiffrées", algo: "RSA-2048", role: "confidentialite", X: 50, Y: 3, agile: true },
{ actif: "VPN site à site (siège ↔ usine)", algo: "IKEv2 ECDH", role: "confidentialite", X: 10, Y: 2, agile: true },
{ actif: "Racine de confiance en silicium", algo: "ECDSA P-256", role: "signature", X: 25, Y: 8, agile: false },
{ actif: "Signature des mises à jour", algo: "RSA-4096", role: "signature", X: 12, Y: 4, agile: true },
{ actif: "Sauvegardes hors ligne", algo: "AES-256", role: "symetrique", X: 30, Y: 1, agile: true },
{ actif: "Jetons de session (24 h)", algo: "HMAC-SHA256", role: "symetrique", X: 1, Y: 1, agile: true },
{ actif: "Horodatage légal", algo: "ECDSA P-256", role: "signature", X: 30, Y: 5, agile: true },
];
const MENACE = { confidentialite: true, signature: true, symetrique: false };
function evaluer(e) {
const marge = Z - (e.X + e.Y);
if (!MENACE[e.role]) {
return { urgence: "hors périmètre", marge, note: "symétrique : vérifier ≥ 256 bits, rien d'autre" };
}
const urgence = marge < 0 ? "CRITIQUE" : marge < 5 ? "à planifier" : "surveillance";
// L'agilité n'entre pas dans l'inégalité de Mosca, mais elle gouverne Y —
// et un actif non agile a un Y qu'on ne peut PAS réduire en y mettant des
// moyens. C'est la seule ligne qui mérite un traitement à part.
const note = e.agile
? (e.role === "signature" ? "signature : pas de récolte anticipée, mais durée de vérification" : "confidentialité : exposée à la récolte anticipée")
: "NON AGILE — Y irréductible, à traiter au prochain cycle matériel";
return { urgence, marge, note };
}
const RANG = { "CRITIQUE": 0, "à planifier": 1, "surveillance": 2, "hors périmètre": 3 };
const evalues = INVENTAIRE.map((e) => ({ ...e, ...evaluer(e) }))
.sort((a, b) => RANG[a.urgence] - RANG[b.urgence] || a.marge - b.marge);
console.log("urgence | marge | actif | note");
for (const e of evalues) {
console.log(
`${e.urgence.padEnd(14)} | ${String(e.marge).padStart(5)} | ${e.actif.padEnd(34)} | ${e.note}`
);
}
// Quatre enseignements du classement obtenu.
//
// 1. LA TERMINAISON TLS DU PORTAIL, l'actif le plus visible et celui que
// tout le monde migre en premier, arrive en bas du tableau. X = 2 ans :
// la donnée n'a plus de valeur quand la machine arrivera. Ce n'est pas
// une raison de ne pas la migrer — c'est facile et c'est déjà fait dans
// les navigateurs — mais ce n'est pas là que se joue le risque.
//
// 2. LES ARCHIVES DE SANTÉ sont critiques avec une marge très négative, et
// elles n'ont aucune visibilité. Personne ne réclame leur migration.
//
// 3. LA RACINE DE CONFIANCE EN SILICIUM est le cas désespérant : Y = 8 ans
// et NON AGILE. On ne peut pas accélérer une migration qui suppose de
// changer le matériel. La seule action possible est d'exiger l'agilité
// dans les spécifications d'achat du prochain cycle — c'est-à-dire
// d'agir aujourd'hui sur un problème qui se manifestera dans dix ans.
//
// 4. LES SAUVEGARDES EN AES-256 sortent du périmètre. Grover les ramène à
// 128 bits, ce qui reste hors d'atteinte. Un plan de migration qui les
// inclut gaspille du budget et de la crédibilité.
//
// La leçon de gouvernance : le classement par urgence réelle ne ressemble
// PAS au classement par visibilité. Un plan crédible se défend sur X et Y,
// pas sur l'importance ressentie des systèmes.
Ce que vous emportez de cette unité
Quatorze chapitres, et trois idées qui les traversent.
La difficulté est dans la description, pas dans l'objet. Un réseau est public, une base courte est secrète. Un code est public, sa structure de Goppa est secrète. Un système quadratique est public, l'espace d'huile est secret. La cryptographie asymétrique post-quantique est, à chaque fois, l'écart entre deux descriptions du même objet.
Une preuve borne une classe d'attaques, jamais les attaques. Le modèle QROM ne connaît ni le chronomètre ni le laser, et c'est par là que passent la plupart des cassures réelles. La sécurité effective se joue dans l'implémentation.
L'humilité est une exigence technique, pas une posture. SIKE avait onze ans d'examen public et une preuve de sécurité. Il est tombé en une après-midi, sur un théorème de 1997 que personne n'avait rapproché du sujet. C'est ce qui justifie l'hybridation, la normalisation de familles concurrentes, et l'agilité — trois formes du même refus de tout parier sur une seule hypothèse.
À retenir
Flashcards · 3 cartes
- Pourquoi l'inventaire cryptographique est-il le préalable de toute migration ?
- Parce qu'on ne migre pas ce qu'on ne connaît pas, et que la cryptographie est partout : bibliothèques transitives, configurations, certificats orphelins, équipements dont le fournisseur a disparu. Le CBOM (extension de CycloneDX) l'automatise, le versionne et le rend interrogeable — de sorte que « où utilisons-nous cet algorithme ? » se réponde en minutes le jour où il est cassé.
- Quelles sont les quatre propriétés d'un système cryptographiquement agile ?
- L'algorithme est une donnée de configuration, pas du code. Les identifiants d'algorithme circulent dans les formats, permettant la coexistence de deux générations. Les tailles ne sont pas figées — ni en base, ni en tampon, ni en format binaire. Et la transition (négociation, repli, hybridation) est prévue dans le protocole AVANT d'en avoir besoin.
- Que faut-il vérifier en rejouant le scénario « Module-LWE tombe demain » ?
- Combien de temps pour savoir où vous l'utilisez (test de l'inventaire) ; si vos déploiements sont hybrides (auquel cas la sécurité classique subsiste) ; si vous pouvez basculer vers une autre famille — HQC, SLH-DSA — sans réécrire vos applications (test de l'agilité) ; et si vos données déjà chiffrées sont rechiffrables ou doivent être considérées comme compromises.
QCM du bloc IV — Migration
Huit questions de décision plutôt que de connaissance : à chaque fois, une situation et un arbitrage à défendre. C'est le format le plus proche de ce qu'on vous demandera en poste.
QCM de bloc · 8 questions
Migration
1. Que garantit un combinateur hybride ?
- Une sécurité doublée par rapport à chacun des deux mécanismes
- La sécurité tant que les DEUX mécanismes tiennent
- La sécurité tant qu'AU MOINS UN des deux tient
Réponse : C'est toute la propriété visée, et elle est plus forte qu'un simple cumul. Exiger que les deux tiennent serait un affaiblissement — on aurait deux occasions de tomber au lieu d'une. La formulation « au moins un » est ce qui a permis aux déploiements X25519 + SIKE de ne rien perdre le 30 juillet 2022 : il leur restait la sécurité classique de X25519.
2. Pourquoi TLS concatène-t-il les deux secrets avant de les hacher, plutôt que de les combiner par OU exclusif ?
- Parce que le XOR exige l'indépendance des deux secrets, hypothèse qu'on ne veut pas avoir à faire
- Parce que le XOR est plus coûteux en calcul
- Parce que les deux secrets n'ont pas la même longueur
Réponse : Le XOR est trivialement rapide, et une différence de longueur se règle par bourrage. Le problème est l'hypothèse : le XOR n'est uniforme que si l'un des secrets l'est ET qu'ils sont indépendants. Or les deux mécanismes peuvent partager un générateur d'aléa ou être corrélés d'une manière imprévue. La concaténation suivie d'un haché ne fait aucune hypothèse d'indépendance.
3. Quel a été l'incident principal du déploiement de X25519MLKEM768 ?
- Une baisse notable des performances des serveurs TLS
- La fragmentation du ClientHello sur deux segments TCP, que certains équipements intermédiaires ne supportaient pas
- Une incompatibilité avec la négociation de TLS 1.3, qui a dû être amendée
Réponse : TLS 1.3 n'a pas eu à changer d'une ligne : le groupe hybride s'enregistre comme un groupe supplémentaire, et un serveur qui ne le connaît pas retombe sur X25519. Le coût de calcul de ML-KEM est négligeable. Ce qui a cassé, ce sont des équipements qui supposaient — sans jamais l'écrire — qu'un ClientHello tenait dans un seul paquet.
4. Dans un handshake TLS entièrement post-quantique, le poste le plus coûteux en octets est :
- l'échange de clés hybride
- la chaîne de certificats et le CertificateVerify
- le transcript haché du handshake
Réponse : L'échange hybride ajoute environ 2300 octets, ce qui reste absorbable. Une chaîne de deux certificats ML-DSA-44 plus le CertificateVerify en ajoute plus de 10 000 : chaque certificat porte une clé publique ET la signature de son émetteur, et les deux coûts se cumulent par certificat. Le transcript, lui, est un haché de taille fixe.
5. Faut-il migrer les certificats en même temps que l'échange de clés ?
- Non : l'échange est urgent et peu coûteux, les certificats sont moins urgents et bien plus chers
- Oui, sinon la chaîne de certificats devient le maillon faible
- Non, les certificats ne sont pas concernés par la menace quantique
Réponse : Les certificats sont bien concernés : un attaquant quantique pourrait forger une signature ECDSA et usurper un serveur. Mais cela exige la machine AU MOMENT de la connexion, alors que la récolte anticipée menace la confidentialité dès aujourd'hui. La chaîne n'est donc pas le maillon faible dans le temps, et comme elle coûte huit fois plus cher en octets, dissocier les deux chantiers est le bon arbitrage.
6. Quelle question de l'inventaire cryptographique est la plus discriminante pour bâtir un plan ?
- Quel algorithme et quelle taille de clé sont employés
- Quelle équipe est responsable du composant
- Peut-on changer d'algorithme sans remplacer le matériel
Réponse : L'algorithme se découvre par outillage, le responsable par organigramme. L'agilité, elle, détermine Y — et un système non agile a un Y qu'aucun budget ne réduit, puisqu'il faut attendre le cycle de remplacement du matériel. C'est la seule variable de Mosca sur laquelle on peut agir, et la seule qu'on ne peut plus rattraper une fois le matériel déployé.
7. Un plan de migration consacre un chapitre entier à « migrer AES-256 ».
- C'est prudent : Grover menace toutes les primitives
- C'est du gaspillage : Grover ramène AES-256 à 128 bits, ce qui reste hors d'atteinte
- C'est obligatoire pour la conformité aux calendriers du NIST
Réponse : Le symétrique se répare en doublant la clé, et AES-256 est déjà doublé. Les 2¹²⁸ évaluations largement séquentielles d'un circuit AES réversible sont hors de portée de toute machine imaginable. Un plan qui inclut ce chantier gaspille du budget et, plus grave, de la crédibilité auprès des équipes techniques — qui savent lire le tableau du chapitre 1.
8. Quel est l'objectif d'une migration post-quantique bien menée ?
- Atteindre un état où le prochain changement d'algorithme ne sera plus un projet
- Avoir déployé ML-KEM et ML-DSA sur l'ensemble du parc
- Obtenir la conformité aux calendriers publiés par le NIST
Réponse : Déployer ML-KEM est un moyen, et un moyen qui peut être invalidé — SIKE et Rainbow rappellent qu'un candidat en finale peut tomber. La conformité est une contrainte, pas un but. Ce qui a de la valeur durable, c'est l'agilité : inventaire à jour, algorithmes en configuration plutôt qu'en dur, tailles non figées, protocoles qui savent négocier. Il y aura un prochain changement.