<?xml version="1.0" encoding="utf-8"?>
<rfcdesc title="Post-Quantum Cryptography for Engineers" num="9958"
	 status="informational" wg="pquip">
  <authors><author>A. Banerjee</author><author>T. Reddy</author><author>D. Schoinianakis
  (Nokia)</author><author>T. Hollebeek
  (DigiCert)</author><author>M. Ounsworth (Entrust)</author></authors>
  <rfcdate><month>June</month><year>2026</year></rfcdate>
  <date>2026-06-20</date>
<content>
  <p><link
  url="https://www.afnic.fr/observatoire-ressources/papier-expert/en-route-vers-la-journee-du-conseil-scientifique-2025/">Tout
  le monde parle</link> des <wikipedia name="Ordinateur quantique">calculateurs
  quantiques</wikipedia> et du risque qu'ils font peser sur la
  <wikipedia>cryptographie</wikipedia> traditionnelle. La solution ?
  Remplacer ces algorithmes par des algorithmes
  <wikipedia>post-quantiques</wikipedia>, c'est-à-dire résistant aux
  calculateurs quantiques. Ces algorithmes existent déjà, plusieurs
  sont <wikipedia name="Norme et standard techniques">normalisés</wikipedia> et beaucoup ont déjà été mis
  en œuvre dans des programmes. Mais les intégrer dans les protocoles
  de l'Internet n'est pas trivial. Ce <wikipedia name="Request for
  comments">RFC</wikipedia> vise à guider les ingénieur·es qui vont
  appliquer ces algorithmes post-quantiques à des logiciels et des
  protocoles du monde de l'Internet.</p>
  <p>Il ne s'agit pas ici d'expliquer le fonctionnement des algorithmes de
  <wikipedia name="Cryptographie post-quantique">cryptographie post-quantiques</wikipedia>. Le RFC les
  considère acquis et se demande comment on va les utiliser. (Note
  personnelle : de toute façon, je ne comprends rien à la
  cryptographie, post-quantique ou pas. Mais ce n'est pas forcément
  grave, ce RFC est conçu pour des ingénieur·es normaux·les, le
  doctorat en cryptographie n'est pas indispensable.) Notez aussi,
  question terminologie, que « post-quantique » ne fait pas
  l'unanimité. On pourrait dire (section 2 du RFC), « après quantique »
  ou bien « résistant au quantique » ou encore « prêt pour le
  quantique ». Chaque terme a ses qualités et ses défauts :
  « résistant au quantique » serait inapproprié si, finalement, on
  trouvait un algorithme quantique pour casser un algorithme qui se
  prétendait sûr face aux calculateurs quantiques.</p>
  <p>D'abord, résumons le problème : la
  <wikipedia name="Mécanique quantique">quantique</wikipedia> est aujourd'hui un domaine très
  bien connu et dont les bases théoriques sont solides et établies. Un
  <wikipedia name="Ordinateur quantique">calculateur quantique</wikipedia> peut effectuer
  <emphasis>certains</emphasis> calculs plus vite qu'un ordinateur
  classique. Parmi ces calculs, il y a les problèmes mathématiques
  sous-jacents aux algorithmes de cryptographie courants, comme
  <wikipedia name="Rivest Shamir Adleman">RSA</wikipedia> et
  <wikipedia name="Elliptic curve digital signature
  algorithm">ECDSA</wikipedia>. Aujourd'hui, certes, les calculateurs
  quantiques sont très loin de pouvoir être utilisés en pratique
  contre la cryptographie. Il faudrait des millions de
  <wikipedia name="Qubit">qubits</wikipedia> physiques ou des milliers de qubits
  logiques (ceux qui ont un système de correction d'erreurs). On n'en
  est qu'à quelques centaines de qubits physiques (malgré certaines
  annonces sensationnalistes), et la difficulté de fabrication et de
  fonctionnement augmente très vite avec le nombre de qubits. Mais, à
  force de progrès, on aura peut-être un jour des CRQC
  (<foreign><link url="https://en.wiktionary.org/wiki/CRQC">Cryptographically Relevant Quantum Computer</link></foreign>,
  <link url="https://mastodon.gougere.fr/@bortzmeyer/114008857061964694">prononcez « cric »</link>, cf. section 2 du RFC), des calculateurs
  quantiques utilisables dans le monde réel. <image
  name="cric-me-croque.jpg"/></p>
  <p>Ce jour-là, on pourra, par exemple,
  trouver une <wikipedia name="Cryptographie asymétrique">clé
  privée</wikipedia> RSA ou ECDSA à partir de la clé publique, cassant
  ainsi effectivement ces algorithmes. Et, comme le déploiement des
  algorithmes post-quantiques va prendre du temps, il ne faut pas
  attendre que des CRQC soient disponibles pour commencer.</p>
  <p>On pourrait croire que le problème, pour les <wikipedia
  name="TCP/IP">protocoles IETF</wikipedia>, est simple : tous ont la
  propriété d'agilité cryptographique (<rfc num="7696"
  local="true"/>), qui permet de remplacer un algorithme par un autre
  sans changer le protocole et le code. Mais ça serait trop simple :
  les algorithmes post-quantiques ont des propriétés qui font qu'il
  n'est pas toujours possible de les utiliser tels quels, sans
  adaptation du protocole. Par exemple, leurs clés et signatures sont
  souvent bien plus grandes, et ne rentrent pas dans les protocoles
  existants.</p>
  <p>Donc, quelques points à garder en tête (j'ai déjà lu des erreurs
  sur ces sujets, dans divers articles) :
  <enum>
    <item>Un algorithme post-quantique n'a rien de quantique, et ne
    nécessite pas de calculateur quantique pour tourner. Nous
    travaillons sur la défense (la cryptographie post-quantique), pas
    sur l'attaque (les calculateurs quantiques). Pas besoin donc de
    s'y connaitre en <wikipedia name="Mécanique quantique">quantique</wikipedia> pour comprendre
    ces algorithmes.</item>
    <item>Les algorithmes « quantiques » ne sont pas 100 %
    quantiques. Ils ont tous une partie classique et un calculateur
    quantique ne sera donc pas utilisé seul, mais comme une partie
    d'un ordinateur mixte (section 3 du RFC).</item>
    <item>Un calculateur quantique n'est pas un ordinateur : il n'est
    rapide que pour certains problèmes, et c'est cela qui permet de
    concevoir des algorithmes dont on pense qu'ils ne seront pas
    vulnérables aux futurs CRQC. (Le RFC fait une analogie avec les
    <wikipedia name="Processeur graphique">GPU</wikipedia> qui ne sont
    pas plus rapides que les <wikipedia
    name="Processeur">CPU</wikipedia> dans l'absolu, seulement plus
    rapides pour certains problèmes.)</item>
    <item>Un algorithme post-quantique peut, si on trouve une faille
    dans sa conception ou dans sa mise en œuvre, être cassé par un
    ordinateur classique. C'est d'autant plus gênant que ces
    algorithmes sont plus récents que RSA ou ECDSA, et ont été moins
  testés au feu.</item>
  </enum>
  </p>
  <p>Donc (section 1 du RFC), aujourd'hui, des gens construisent des
  calculateurs quantiques et ceux-ci sont de plus en plus
  perfectionnés, capable d'attaquer des problèmes plus gros. Pas mal
  <link local="rapport-forteza-quantique">d'argent et d'efforts sont
  investis</link> dans ces travaux. Mais on reste loin du CRQC
  (<foreign>Cryptographically Relevant Quantum Computer</foreign>),
  les calculateurs connus du public <link
  url="https://sam-jaques.appspot.com/quantum_landscape_2024">ne
  peuvent casser que des clés RSA ou ECDSA ridiculement
  courtes</link>. Il est très difficile de prévoir quand on aura un
  CRQC. (Lorsque j'ai fait mon <link
  local="pas-sage-en-seine-quantique">exposé à Pas Sage En
  Seine</link>, plusieurs personnes m'ont dit que les CRQC seraient
  disponibles « bientôt ». C'était en 2018 et on ne les a toujours
  pas.) Le problème est difficile et il ne suffit pas d'extrapoler les
  prototypes actuels, le monde quantique est difficile et, plus on
  rassemble de composants, plus il est difficile de maintenir les
  propriétés quantiques qui nous intéressent. Des prédictions
  sensationnalistes sur l'arrivée « prochaine » de calculateurs
  quantiques ont déjà été faites et se sont montrées fausses. Ceci dit,
  il faut noter qu'il n'y a pas que la recherche publique : on peut
  toujours imaginer que, dans la <wikipedia name="Zone 51">zone 51</wikipedia>, la
  <wikipedia name="National Security Agency">NSA</wikipedia> fait
  tourner un CRQC utilisant des technologies
  obtenues auprès des extra-terrestres…</p>
  <p>Mais le fait que les CRQC n'arrivent pas n'est pas une raison
  pour attendre : le déploiement effectif des algorithmes
  post-quantiques va prendre beaucoup de temps (il s'agit d'une
  migration très complexe) et il ne faut donc pas rester les bras
  croisés en attendant qu'un CRQC soit réellement disponible (d'autant
  plus qu'il existe toujours la possibilité de percées soudaines dans
  la recherche scientifique). Mais, en raison de l'incertitude, la question est délicate (cf. <file
  name="post-quantique-decision.pdf">mon exposé</file> à <link
  url="https://netgouv.hypotheses.org/1551">NetGouv 26</link>).</p>
  <p><wikipedia>Euclide</wikipedia> concevait des <wikipedia
  name="Algorithme">algorithmes</wikipedia> bien avant qu'on ait des
  ordinateurs et <wikipedia name="Ada Lovelace">Lovelace</wikipedia> écrivait des
  <wikipedia name="Programme informatique">programmes</wikipedia> alors que l'ordinateur à qui ils
  étaient destinés n'existait pas (et n'a finalement pas existé). De
  même, des chercheurs écrivent des algorithmes pour les calculateurs
  quantiques sans avoir de calculateurs quantiques. C'est notamment le
  cas de l'<wikipedia name="Algorithme de Shor">algorithme de
  Shor</wikipedia>, qui résout le problème de la <wikipedia
  name="Décomposition en produit de facteurs premiers">décomposition
  en facteurs premiers</wikipedia> qui est à la base de RSA. Et une
  variante de l'algorithme résout le <wikipedia name="Logarithme
  discret">problème du logarithme discret</wikipedia> qui est à la
  base des algorithmes <wikipedia name="Cryptographie sur les courbes
  elliptiques">à courbes elliptiques</wikipedia> comme <wikipedia
  name="Elliptic curve digital signature algorithm">ECDSA</wikipedia>
  (<rfc num="6090" local="true"/>).</p>
  <p>Il existe aussi un algorithme, l'<wikipedia name="Algorithme de Grover">algorithme de
  Grover</wikipedia>, qui permet de s'attaquer aux clés utilisées en
  <wikipedia>cryptographie symétrique</wikipedia> mais il est loin de
  l'efficacité spectaculaire de l'algorithme de Shor et notre RFC
  estime donc (section 3.1 pour les détails) que les éventuels futurs
  calculateurs quantiques n'auront que peu d'impact sur la
  cryptographie symétrique, notamment parce que cet algorithme n'est
  pas facilement parallélisable. Et il y a <link
  url="https://arxiv.org/abs/quant-ph/9711070">des raisons de
  penser</link><!-- C. Zalka, Grover’s quantum searching algorithm is
  optimal, Physical Review A, vol. 60, pp. 2746-2751, 1999. --> que
  Grover ne sera sans doute pas amélioré. Un algorithme comme
  <wikipedia name="Advanced Encryption Standard">AES-128</wikipedia> est donc a priori sûr (et c'est <link
  url="https://cyber.gouv.fr/sites/default/files/document/follow_up_position_paper_on_post_quantum_cryptography.pdf">encore
  plus vrai pour AES-256</link>). Le RFC se concentre donc sur
  l'<wikipedia name="Cryptographie
  asymétrique">asymétrique</wikipedia>.</p>
  <p>Pour la <wikipedia name="Cryptographie asymétrique">cryptographie
  asymétrique</wikipedia>, la situation est moins rose (section
  3.2). Des algorithmes très courants comme <wikipedia name="Rivest
  Shamir Adleman">RSA</wikipedia> et les <wikipedia name="Cryptographie sur les courbes elliptiques">algorithmes à
  courbes elliptiques</wikipedia>, mais aussi des algorithmes moins
  connus comme <wikipedia name="Cryptosystème de
  ElGamal">ElGamal</wikipedia> (<rfc num="6090" local="true"/>) ou
  <wikipedia name="Protocole d'authentification de Schnorr">Schnorr</wikipedia> (<rfc num="8235"/>) seront cassables
  dès qu'on aura un CRQC. En quelques heures, voire en quelques
  secondes, celui-ci pourra casser une clé RSA de 2 048 bits, comme
  étudié dans « <foreign><link
  url="https://arxiv.org/pdf/quant-ph/0205095.pdf">Circuit for Shor’s
  algorithm using 2n+3 qubits</link></foreign> », « <foreign><link
  url="https://arxiv.org/abs/1905.09749">How to factor 2048 bit RSA
  integers in 8 hours using 20 million noisy qubits</link></foreign> »
  ou bien « <foreign><link
  url="https://www.quintessencelabs.com/blog/breaking-rsa-encryption-update-state-art">Breaking
  RSA Encryption - an Update on the
  State-of-the-Art</link></foreign> ». (Rappel : tous ces articles
  supposent l'existence d'un CRQC, et on n'en a pas encore.) Bon,
  après, vous pouvez toujours faire <link
  url="https://cr.yp.to/papers/pqrsa-20170419.pdf">des clés RSA d'un
  téra-octet</link> mais ça ne serait pas pratique.
	    </p>
  <p>La section 4 du RFC détaille les services pour lesquels on
  utilise de la cryptographie asymétrique :
  <enum>
    <item>Transport de clé symétrique. C'était la façon traditionnelle
    de chiffrer. Pour des raisons de performance, on ne chiffre pas
    avec les algorithmes de cryptographie asymétrique, qui sont trop
    lents. Une des parties génère une clé de cryptographie symétrique,
    qui doit donc être connue des deux parties, et on la chiffre avec
    l'algorithme de cryptographie asymétrique avant de l'envoyer à
    l'autre partie. Cette méthode ne fournit pas de
    <wikipedia name="Confidentialité persistante">confidentialité persistante</wikipedia> donc on ne
    l'utilise plus beaucoup.</item>
    <item>Accord sur une clé. C'est la façon la plus courante
    aujourd'hui pour que les deux parties aient la même clé de
    chiffrement symétrique. Un exemple pour réaliser cet accord est la
    méthode <wikipedia>Diffie-Hellman</wikipedia>.</item>
    <item><wikipedia name="Signature numérique">Signature</wikipedia> de documents et
    <wikipedia>authentification</wikipedia> d'une autre partie.</item>
  </enum>
  </p>
  <p>Les algorithmes courants utilisés en cryptographie asymétrique
  sont vulnérables aux futurs éventuels CRQC. Ce problème étant connu
  depuis longtemps, plusieurs algorithmes pour lesquels on ne connait
  pas d'algorithme quantique susceptible de les casser ont été
  développés. On peut donc les qualifier de « post-quantiques ». Suite
  à <link local="nist-pq">un concours lancé en 2016</link>, le
  <wikipedia name="National Institute of Standards and
  Technology">NIST</wikipedia> a <wikipedia name="Normes et standards techniques">normalisé</wikipedia>
  <link
  url="https://www.nist.gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption-standards">plusieurs
  de ces algorithmes</link> (et d'autres <link
  url="https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization">le
  seront dans le futur</link>). Mais, en général, ces algorithmes ne
  peuvent pas tout simplement remplacer les algorithmes
  traditionnels. Par exemple, RSA et ECDSA peuvent servir de
  <wikipedia name="Mécanisme d'encapsulation de clé">KEM</wikipedia> (<foreign>Key Encapsulation
  Mechanism</foreign>, cf. section 9) <emphasis>et</emphasis> faire
  des signatures alors que les algorithmes post-quantiques existants
  ne savent faire qu'un des deux. Et puis ils ne s'utilisent pas de la
  même façon et la transition vers ces algorithmes sera donc plus
  complexe que l'a été celle depuis RSA vers ECDSA.</p>
  <p>Quels sont ces algorithmes normalisés par le NIST (section 5) ?
  Pour le <wikipedia name="Mécanisme d'encapsulation de clé">KEM</wikipedia>, ce sont :
  <enum>
    <item><wikipedia xml:lang="en" name="Kyber">ML-KEM</wikipedia> (autrefois nommé Kyber), normalisé dans la
    norme <link url="https://csrc.nist.gov/pubs/fips/203/final">FIPS-203</link>.</item>
    <item>HQC, approuvé mais pas encore normalisé.</item>
  </enum>
  Et pour les signatures :
  <enum>
    <item><wikipedia xml:lang="en" name="Lattice-based cryptography" anchor="CRYSTALS-Dilithium">ML-DSA</wikipedia> (autrefois nommé Dilithium), normalisé dans
    <link
	url="https://csrc.nist.gov/pubs/fips/204/final">FIPS-204</link>. (Voir
    aussi la section 10.2.)</item>
    <item><wikipedia xml:lang="en" name="SPHINCS+">SLH-DSA</wikipedia> (autrefois nommé SPHINCS+), normalisé dans
    <link url="https://csrc.nist.gov/pubs/fips/205/final">FIPS-205</link>.</item>
    <item>FN-DSA, qui sera apparemment normalisé dans FIPS-206.</item>
  </enum>
  D'autres algorithmes sont en cours de normalisation à
  l'<wikipedia name="Organisation internationale de normalisation">ISO</wikipedia> (section 6) :
  <enum>
    <item>FrodoKEM.</item>
    <item><link url="https://classic.mceliece.org/">ClassicMcEliece</link>.</item>
    <item><wikipedia name="NTRUEncrypt">NTRU</wikipedia>.</item>
  </enum>
  </p>
  <p>OK, on a plein d'algorithmes résistants aux calculateurs
  quantiques. Maintenant, de quel délai dispose t-on pour faire la
  transition, avant que les CRQC ne fichent toute la cryptographie
  traditionnelle en l'air ? La section 7 de notre RFC explore cette
  difficile question. Je divulgâche tout de suite : on ne sait pas. Le
  progrès des calculateurs quantiques ne dépend pas de progrès
  d'ingénierie relativement prévisibles mais de percées scientifiques
  encore inconnues. Mais d'un autre côté, attendre n'est pas non plus
  une bonne solution. Il y a sans doute des attaquants qui
  enregistrent des messages aujourd'hui, dans l'espoir qu'un CRQC
  permettra de les décrypter un jour (ce qu'on nomme HNDL pour
  <foreign>Harvest Now, Decrypt Later</foreign>). Si certains secrets sont à
  courte durée de vie, d'autres peuvent être encore sensibles dans des
  dizaines d'années (la France ne publie toujours pas complètement <wikipedia
  name="Guerre d'Algérie" anchor="Archives">les archives
  étatiques sur la guerre d'Algérie</wikipedia>). Pour de tels secrets,
  il serait peut-être plus prudent de passer au post-quantique tout de
  suite.</p>
  <p>Pour les signatures, le RFC prend l'exemple de
  l'authentification : les signatures utilisées dans l'établissement
  d'une connexion TLS ne sont sensibles que pendant le très court
  temps entre leur génération et leur vérification. Par contre, la
  signature du <wikipedia name="Firmware">microcode</wikipedia> d'un objet connecté
  peut rester critique pendant toute la durée de vie de l'objet.</p>
  <p>Pour analyser le délai dont on dispose, on utilise souvent le
  <link url="https://globalriskinstitute.org/publications/quantum-threat-timeline-report-2020/">modèle de Mosca</link>. Dans ce modèle, X est le temps pendant lequel les secrets
  doivent rester secrets (rappelez-vous que, pour certains secrets,
  cela peut être de nombreuses années), Y est la durée de la
  transition (rappelez-vous qu'en informatique, les transitions complètes
  prennent <emphasis>toujours</emphasis> <emphasis>beaucoup</emphasis>
  plus de temps que prévu, la publication par le NIST d'une norme ne
  suffit pas) et Z est le temps qu'il nous reste avant que les CRQC
  soient disponibles (c'est la durée la plus incertaine des trois,
  d'autant plus qu'on ne peut pas exclure la possibilité de progrès soudains). Si
  Z &gt; X + Y, tout va bien. Sinon, on a un trou pendant lequel
  certains usages vont être vulnérables. Notons aussi que Z va être
  plus court pour les États (qui ont sans doute quelques années
  d'avance sur la recherche publique en matière de calculateurs
  quantiques) que pour le pirate de base, qui doit attendre qu'un CRQC
  soit en vente sur <wikipedia>AliExpress</wikipedia>. <image name="migration-pq-mosca.jpeg"/></p>
  <p>Quant à Y, son estimation varie beaucoup. S'il faut juste
  faire une mise à jour d'un logiciel, cela peut être rapide. Mais de
  la cryptographie est aussi présente dans bien des matériels, qu'on
  ne remplace pas du jour au lendemain, comme les puces accélératrices
  des opérations de cryptographie ou les <wikipedia name="Hardware
  Security Module">HSM</wikipedia>. Et certaines clés doivent rester
  stables pendant longtemps comme la clé DNSSEC de la racine du DNS.
  Et il y a aussi le temps de programmer, de tester, de faire
  valider, de déployer, etc. Bref, entre la publication d'une norme
  comme <link
  url="https://csrc.nist.gov/pubs/fips/203/final">FIPS-203</link> et
  sa généralisation, il faut compter de nombreuses années. C'est une
  des raisons qui justifie que le travail de transition vers la
  cryptographie post-quantique n'ait pas attendu la sortie du premier CRQC.</p>
  <p>Si vous voulez apprendre un peu de cryptographie, vous pouvez
  aussi lire la section 8 du RFC, qui expose les principales
  catégories d'algorithmes post-quantiques :
  <enum>
    <item><wikipedia xml:lang="en" name="Lattice-based
					 cryptography">Réseaux
    euclidiens</wikipedia> (non, ne me demandez pas d'expliquer) :
    c'est la technique sous-jacente à ML-KEM, ML-DSA et FrodoKEM, donc
    la technique « principale » à l'heure actuelle. Clés et surtout signatures
    sont bien plus grandes qu'avec ECDSA ou même RSA mais quand même
    plus courtes qu'avec les autres catégories. (La cryptographie
    post-quantique n'est pas écologique.)</item>
    <item><wikipedia xml:lang="en" name="Hash-based
					 cryptography">Condensation</wikipedia> :
    c'est la technique derrière SLH-DSA. Il y a même des algorithmes
    spécifiés dans un <wikipedia name="Request for comments">RFC</wikipedia>, les <rfc
    num="8391"/> et <rfc num="8554"/>. Attention : bien des
    algorithmes de cette catégorie sont à état (il ne faut pas signer
    deux fois avec le même état) et sont donc difficiles à utiliser de
    manière sûre (et pas du tout adapté aux protocoles comme
    <wikipedia name="Domain Name System Security Extensions">DNSSEC</wikipedia>, qui sont habitués à un
    environnement sans état).</item>
    <item><wikipedia xml:lang="en" name="Post-quantum cryptography"
		     anchor="Code-based_cryptography">Codes
    correcteurs</wikipedia> : c'est là qu'on trouve HQC et ClassicMcEliece.</item>
  </enum>
  </p>
  <p>La façon la plus courante d'utiliser la cryptographie sur
  l'Internet est de combiner de la cryptographie symétrique, avec une
  clé générée pour chaque utilisation, et de la cryptographie
  asymétrique, qui sert à authentifier et à faire en sorte que la clé
  de cryptographie symétrique soit partagée par les deux parties
  (cf. <rfc num="9180" local="false"/> mais attention au fait que le
  terme « hybride » peut désigner autre chose en cryptographie
  post-quantique). La façon la plus simple (mais pas la plus sûre !)
  de réaliser ce partage est qu'une des deux parties génère la « clé
  de session », celle utilisée pour la cryptographie symétrique, puis
  la chiffre en cryptographie asymétrique avec la clé publique de
  l'autre partie. (On combine cryptographie symétrique et asymétrique,
  alors qu'on pourrait assurer le même service uniquement avec
  l'asymétrique, car, si l'asymétrique est souple, la symétrique est
  beaucoup plus rapide.) Ce transport de la clé d'une partie à l'autre
  est une des façons de faire en sorte que les deux parties aient la
  même clé, mais <wikipedia name="Échange de clé">il en existe
  d'autres</wikipedia> (ne me demandez pas un exposé détaillé, et
  encore moins un avis !). Et ces différentes façons ont typiquement
  des <wikipedia name="Interface de programmation">API</wikipedia>
  différentes, ce qui complique le remplacement d'une façon par une
  autre. La section 9, consacrée aux <wikipedia name="Mécanisme d'encapsulation de clé">KEM</wikipedia>,
  détaille cette question. Après l'avoir lue, vous comprendrez les
  concepts d'AKE et de NIKE ☺.</p>
  <!--  Définition ANSSI : "Hybridation consists of combining asymmetric post-quantum algorithms with well known and well studied
pre-quantum asymmetric cryptography based on factorization or discrete
logarithm" -->
  <p>La section 10 du RFC, consacrée aux
  <wikipedia name="Signature numérique">signatures</wikipedia>, intéressera entre autres les gens
  qui font du <wikipedia name="Domain Name System Security
  Extensions">DNSSEC</wikipedia>, comme moi. Un point amusant (section
  10.4) et qui illustre bien qu'on ne peut pas toujours remplacer
  purement et simplement un algorithme traditionnel par un
  post-quantique : ML-DSA incorpore dans son calcul la
  <wikipedia name="Fonction de hachage cryptographique">condensation</wikipedia> de la donnée à signer, ce qui le
  rend plus résistant à certaines attaques. Les protocoles qui
  calculent un condensat eux-mêmes avant de signer (comme DNSSEC) ne
  bénéficient donc pas de cette sécurité accrue et, idéalement,
  devraient être modifiés.</p>
  <p>Un autre exemple du fait qu'on ne peut pas brancher un algorithme
  post-quantique et espérer que tout soit pareil qu'avant est le
  problème des performances. Ce n'est pas juste que les algorithmes
  post-quantiques sont plus lents, c'est qu'ils sont parfois tellement
  lents et avec des clés tellement grosses qu'il faut changer sa façon
  de travailler. Les tableaux de la section 12 donnent une idée du
  problème. Alors que des clés traditionnelles font, par exemple, 65
  et 32 octets (pour la clé publique et la clé privée), les plus
  petites clés ML-KEM font respectivement 800 et 1632 octets (et c'est
  pire pour ML-DSA). Pour des protocoles comme <wikipedia
  name="Transport Layer Security">TLS</wikipedia>, qui fonctionne sur
  des connexions <wikipedia name="Transmission Control
  Protocol">TCP</wikipedia> ou <wikipedia>QUIC</wikipedia>, ce n'est
  pas très grave, OK, ce n'est pas écologique, mais l'augmentation de
  données due aux clés n'est probablement qu'une faible partie de ce
  que transportera la connexion. À part avec des
  <foreign><wikipedia xml:lang="en" name="Middlebox">middleboxes</wikipedia></foreign> boguéees qui
  auraient une limite stupide à la taille des paquets TLS, ça devrait
  marcher (mais elles ont <link
  url="https://github.com/golang/go/issues/79626">d'autres problèmes</link>). Mais pour des protocoles comme <wikipedia name="Internet
  Key Exchange">IKE</wikipedia> ou le <wikipedia name="Domain Name
  System">DNS</wikipedia>, qui tournent sur <wikipedia name="User
  Datagram Protocol">UDP</wikipedia> et ont des limites bien plus
  strictes, <link url="https://labs.ripe.net/author/eline-stehouwer/dnssec-and-pqc-practical-impact-of-increased-tcp-in-dns/">c'est ennuyeux</link>. Et le même problème se pose pour les
  objets contraints et leurs protocoles spécifiques (cf. section 14,
  qui leur est dédiée). Il existe bien des solutions (cf. <rfc
  num="9242"/> et <rfc num="9370"/> pour IKE) mais qui compliquent et
  ralentissent le protocole.</p>
  <p>Autre problème, la sécurité des algorithmes post-quantiques face
  aux ordinateurs <emphasis>traditionnels</emphasis>. C'est bien joli,
  de résister aux CRQC mais, si l'algorithme peut être cassé par de la
  <wikipedia>cryptanalyse</wikipedia> traditionnelle, cela ne sert à
  rien (cf. sections 15.1 et 15.4 du RFC). Lors de la dernière grande
  transition cryptographique sur l'Internet, celle depuis RSA vers
  ECDSA, il y avait de très bonnes raisons de penser que le nouvel
  algorithme était plus sûr et qu'on pouvait donc simplement remplacer
  l'ancien par le nouveau. <link
  url="https://keymaterial.net/2025/12/13/a-very-unscientific-guide-to-the-security-of-various-pqc-algorithms/">
  Ce n'est pas le cas avec les algorithmes post-quantiques</link>,
  dont on ne peut pas être certains de leur résistance (regardez par
  exemple l'attaque <link
  url="https://eprint.iacr.org/2022/1452">KyberSide, contre
  ML-KEM</link>). C'est d'autant plus vrai que les programmes qui les
  mettent en œuvre sont, eux aussi, récents et pas forcément testés
  longuement au feu. Et, comme les algorithmes traditionnels sont
  vulnérables aux CRQC, que faire ? Que choisir ? L'idée dominante
  aujourd'hui est d'avoir les deux, un système
  <emphasis>hybride</emphasis> (ou « PQ/T », pour « Post-quantique et
  Traditionnel », cf. <rfc num="9794" local="true"/>). Par exemple,
  lors d'un échange de clé symétrique, on va créer la clé en
  concaténant deux clés qui ont été obtenues, l'une par un algorithme
  traditionnel, l'autre par un post-quantique (c'est ce que fait le
  futur <wikipedia>RFC</wikipedia>
  <computer>draft-ietf-tls-hybrid-design</computer><!-- 
  <rfc num="9954" TODO="au 2026-06-20 draft-ietf-tls-hybrid-design"
  local="true"/>) -->). Ainsi,
  la défaillance d'un des deux algorithmes ne permettra pas à
  l'attaquant d'obtenir la clé. On peut aussi appliquer la
  <wikipedia name="Fonction de dérivation de clé">fonction de dérivation</wikipedia> autant de fois qu'on a
  de clés dans la structure hybride (<rfc num="9370"/>). Pour
  l'authentification, on peut authentifier avec les deux algorithmes
  et exiger que les deux donnent le même résultat (<computer><link
  url="https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-sigs/">draft-ietf-lamps-pq-composite-sigs</link></computer>).</p>
  <p>Pour faciliter la tâche des programmeur·ses, il vaut mieux que
  les deux clés (la PQ et la T) soient manipulées ensemble, dans une
  seule structure de données (<foreign>composite</foreign>). On
  évitera ainsi de compliquer le protocole comme cela serait le cas
  si, par exemple, on exigeait qu'il y ait deux
  <wikipedia name="Certificat électronique">certificats</wikipedia>. Un travail de normalisation va
  être nécessaire pour le format de ces clés composées
  (cf. <computer><link
  url="https://datatracker.ietf.org/doc/draft-bonnell-lamps-chameleon-certs/">draft-bonnell-lamps-chameleon-certs</link></computer>). Il
  faudra aussi définir quelles paires PQ/T ont du sens, question
  sécurité, et ne pas juste accepter n'importe quel algorithme
  post-quantique avec n'importe quel algorithme traditionnel.</p>
  <p>Voilà, maintenant, si vous voulez sérieusement apprendre la
  cryptographie post-quantique, le RFC recommande le livre
  « <foreign><link
  url="https://nostarch.com/serious-cryptography-2nd-edition">Serious
  Cryptography</link></foreign> » (la deuxième édition), de
  Jean-Philippe Aumasson. Si vous voulez voir du code post-quantique,
  il y a <link url="https://openquantumsafe.org/">le projet OQS</link>
  (avec une <link url="https://openquantumsafe.org/faq.html">très
  bonne FAQ pour les débutants</link> et un <link
  url="https://github.com/open-quantum-safe/">dépôt Github</link>). Et
  si vous vous demandez ce que fait l'<wikipedia name="Internet
  Engineering Task Force">IETF</wikipedia> en matière de normalisation
  de la cryptographie post-quantique dans ses protocoles, il y a <link
  url="https://github.com/ietf-wg-pquip/state-of-protocols-and-pqc">une
  liste maintenue à jour</link>. Je rajoute « <foreign><link
  url="https://github.com/veorq/awesome-post-quantum">awesome-post-quantum</link></foreign> »,
  qui maintient une liste de ressources sur la cryptographie
  post-quantique, <wikipedia>Cloudflare</wikipedia> avait fait un
  <link
  url="https://blog.cloudflare.com/nist-post-quantum-surprise/">article
  détaillé sur les finalistes du concours NIST</link>, qui expliquait
  bien les différentes questions techniques, et enfin lisez le <link
  url="https://messervices.cyber.gouv.fr/guides/en-follow-position-paper-post-quantum-cryptography">texte
  de position</link> de l'<wikipedia name="Agence nationale de la
  sécurité des systèmes d'information">ANSSI</wikipedia>.<!-- Exposé
  de Magali à <link
  url="https://www.afnic.fr/wp-media/uploads/2021/01/Processus-de-standardisation-du-NIST.pdf">la
  JCSA.  <link
  url="https://www.afnic.fr/observatoire-ressources/actualites/jcsa19-retour-sur-ledition-2019-de-la-journee-du-conseil-scientifique-de-lafnic/">JCSA
  2019</link> --></p>
  <!-- C'est bien juste la cryptographie PQ. Des trucs qualifiés de
"cryptographie quantique" comme la QKD sont hors-sujet. -->
  <p>Bon, mais je vais quand même vous montrer des exemples
  d'utilisation d'algorithmes post-quantiques dans des protocoles
  Internet. D'abord, avec <wikipedia name="Secure Shell">SSH</wikipedia><!-- Les drafts :
  https://datatracker.ietf.org/wg/sshm/ --> :
  <code>
% ssh -v autre-machine-debian
…
debug1: kex: algorithm: mlkem768x25519-sha256
  </code>
  Oui, <wikipedia>OpenSSH</wikipedia> sait faire du ML-KEM pour
  l'échange de clés, depuis <link
  url="https://www.openssh.com/txt/release-10.0">la version
  10</link><!-- "ssh(1): the hybrid post-quantum algorithm mlkem768x25519-sha256
   is now used by default for key agreement. This algorithm is
   considered to be safe against attack by quantum computers,
   is guaranteed to be no less strong than the popular
   curve25519-sha256 algorithm, has been standardised by NIST
   and is considerably faster than the previous default." -->. Celui-ci
  ne permet pas de faire de l'authentification donc OpenSSH ne sait
  apparemment pas générer des clés de machines avec des algorithmes post-quantiques.
<!--
Le commit dans Go :
https://go-review.googlesource.com/c/crypto/+/646075 --></p>
  <p>Pour TLS, voici un <link local="echange-cles">échange de clés</link> hybride (ML-KEM et
  traditionnel) vu par <wikipedia name="Mozilla Firefox">Firefox</wikipedia> (« Outils de
  développement Web » puis « Réseau » puis « Sécurité », tout au
  bout) : <image name="firefox-pq.png"/>.</p>
  <p>Pour <wikipedia name="Domain Name System Security Extensions">DNSSEC</wikipedia>, il existe <link
  url="https://pq-dnssec.dedyn.io/">une zone d'exemple</link> expérimentale
  signée avec ML-DSA<!-- Voir aussi pqc-dnssec-NOT-YET --> :
<code>
<![CDATA[
% dig +dnssec dilithium2.pdns.pq-dnssec.dedyn.io DNSKEY
;; Truncated, retrying in TCP mode.
…
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55771
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
…
;; ANSWER SECTION:
dilithium2.pdns.pq-dnssec.dedyn.io. 3598 IN DNSKEY 257 3 18 (
				XVrPO18btCpMLjXFiZYJNyMbQLXB7oOwk6ZXEmxhm8PP
				EKiKP1+t/j7pwBUNYXp3s0U+3AFp3moviOf4cnl4K4MH
                                …
				) ; KSK; alg = 18 ; key id = 47389
dilithium2.pdns.pq-dnssec.dedyn.io. 3598 IN RRSIG DNSKEY 18 5 3600 (
				20260129000000 20260108000000 47389 dilithium2.pdns.pq-dnssec.dedyn.io.
				aGU3rLJ8vb1AYln+y3bxcOO0RHboWfh03i8H1XhLd9f/
				TxhGJNwsTCoRGOnJPjdB2ZDHMB7EnfUfgOitDjvcvcsd
                                …  
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (TCP)
;; WHEN: Tue Jan 20 15:16:45 CET 2026
;; MSG SIZE  rcvd: 3877
]]>
</code>
  Notez la taille de la réponse, et la nécessité de se rabattre sur
  <wikipedia name="Transmission Control Protocol">TCP</wikipedia>. D'autre part, l'algorithme de numéro 18, utilisé ici, n'est <link
  url="https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xml#dns-sec-alg-numbers-1">pas
  enregistré</link>. Aujourd'hui, le monde du DNS semble plutôt
  attentiste, il n'y a pas d'algorithme de signature post-quantique
  qui convienne vraiment au DNS.<!-- Au 2026-01-02, la liste IETF
  pq-dnssec semble attendre un nouvel algorithme. --> Une <link
  url="https://www.icann.org/octo-031-en.pdf">synthèse</link> de
  l'<wikipedia name="Internet Corporation for Assigned Names and Numbers">ICANN</wikipedia> est relativement sceptique.</p>
  <!--
Dans Chrome :
https://blog.chromium.org/2023/08/protecting-chrome-traffic-with-hybrid.html
  -->
  <p>Et merci à Magali Bardet pour sa relecture attentive. (Et,
  naturellement, les erreurs restantes en crypto sont de moi, pas d'elle.)</p>
</content>
</rfcdesc>
