ML-KEM

ML-KEM (Module-Lattice-based Key-Encapsulation Mechanism), également connu sous son nom d'origine Kyber ou CRYSTALS-Kyber, est mécanisme d'encapsulation de clef (KEM) post-quantique (conçu pour résister aux attaques des ordinateurs quantiques) standardisé en 2024. Il permet d'établir un secret entre deux interlocuteurs sans qu'un attaquant puisse l'intercepter en écoutant les messages échangés. Ce cryptosystème asymétrique est basé sur le problème algorithmique de l'apprentissage avec erreurs (M-LWE) comme fonction à trappe.

Il a gagné le concours du NIST comme le premier algorithme de cryptographie post-quantique standardisé sous le nom FIPS 203.

Propriétés mathématiques

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

ML-KEM est basé sur le problème algorithmique d'apprentissage avec erreurs modulaire (M-LWE).

Histoire

D'abord connu sous le nom Kyber, ce mécanisme est dérivé d'une méthode publiée en 2005 par Oded Regev,. Il fait partie de CRYSTALS (Cryptographic Suite for Algebraic Lattices), une suite composée de lui-même, et de CRYSTALS-Dilithium, un algorithme de signature post-quantique .

En 2017, Kyber est soumis au NIST pour le concours de standardisation des primitives cryptographiques post-quantiques. Il s'agit du premier mécanisme d'encapsulation de clef sélectionné pour devenir une norme (FIPS 203) lors du processus de standardisation, au troisième tour. D'après une note de bas de page du relevé de décision, sa standardisation est conditionnée à divers accords relatifs aux brevets, sans lesquels le NIST pourrait se tourner vers NTRU plutôt que Kyber d'ici fin 2022. En 2025, lors du quatrième tour processus de standardisation, le schéma HQC a été sélectionné comme solution de replis.

Lors d'une deuxième phase du processus de standardisation, plusieurs paramètres de l'algorithme ont été ajustés, et la compression des clefs publiques a été supprimée.

Évolutions

Kyber a subi plusieurs modifications durant le processus de standardisation du NIST. En particulier, lors du deuxième tour, la version Kyber v2 a subi les changements suivants :

D'autres modifications ont été apportées lors du troisième tour :

Lors de la publication de la version préliminaire publique du standard FIPS 203, d'autres changements ont été apportés :

Enfin, depuis la version préliminaire, les changements suivants ont été apportés au standard FIPS 203 :

Usage

Les développeurs ont publiés une implémentation de référence dans le domaine public (ou en licence CC0), en C.

La librairie liboqs du projet Open Quantum Safe (OQS) contient une implémentation basée sur l'implémentation de référence. Le projet OQC maintient également un module pour Openssl 3.x, et a intégré son code dans BoringSSL.

La librairie wolfSSL maintient sa propre implémentation de ML-KEM.

Il existe diverses implémentations dans divers langages de programmation, dont JavaScript ou Java.

Certaines implémentations matérielles optimisée existent, résistantes aux attaques par canaux auxillaires,.

Amazon Web Services (AWS) a intégré Kyber dans leur service de gestion de clefs en 2020 comme option d'hybridation post-quantique pour TLS.

En 2023, Signal (service de messagerie chiffrée implémente Post-Quantum Extended Diffie–Hellman (PQXDH), un mécanisme d'encapsulation de clef basé sur ML-KEM au Signal Protocol.

Notes et références

Notes

Références

  1. ↑ (en-US) Dustin Moody, « What was NIST thinking? : Round 2 of the NIST PQC "Competition" » [archive du ] Accès libre [PDF], sur csrc.nist.gov (consulté le )
  2. ↑ (en) National Institute of Standards and Technology, « Module-Lattice-Based Key-Encapsulation Mechanism Standard », csrc.nist.gov, U.S. Department of Commerce, no Federal Information Processing Standard (FIPS) 203,‎ (DOI 10.6028/NIST.FIPS.203, lire en ligne, consulté le )
  3. ↑ (en-US) « NIST introduces first post-quantum encryption standards | Kaspersky official blog », (consulté le )
  4. ↑ (en-GB) « Lattice-Based Cryptography, The Complete Guide To FIPS 203 », (consulté le )
  5. ↑ Oded Regev, « On lattices, learning with errors, random linear codes, and cryptography », Journal of the ACM (JACM), Association for Computing Machinery, vol. 56, no 6,‎ , p. 34:1–34:40 (ISSN 0004-5411, DOI 10.1145/1568318.1568324, lire en ligne, consulté le )
  6. ↑ Peter Schwabe, « CRYSTALS », sur pq-crystals.org (consulté le )
  7. ↑ (en) Adnan Masood PhD, « Quantum Sundays |21⟩ Federal Transition to Post‑Quantum Cryptography — Kyber Key Exchange and… », sur Medium, (consulté le )
  8. 1 2 Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Peter Schwabe, Gregor Seiler, Damien Stehlé. CRYSTALS–Kyber (Round 3 presentation) June 9, 2021.
  9. ↑ (en-US) Kevin Townsend, « NIST Announces HQC as Fifth Standardized Post Quantum Algorithm », sur SecurityWeek, (consulté le )
  10. ↑ (en) Leon Botros, Matthias J. Kannwischer et Peter Schwabe, « Memory-Efficient High-Speed Implementation of Kyber on Cortex-M4 », dans Progress in Cryptology – AFRICACRYPT 2019, vol. 11627, Springer International Publishing, , 209–228 p. (ISBN 978-3-030-23695-3, DOI 10.1007/978-3-030-23696-0_11, lire en ligne)
  11. ↑ Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Peter Schwabe, Gregor Seiler, Damien Stehlé. CRYSTALS–Kyber (Round 2 presentation) 23 août 2019.
  12. 1 2 National Institute of Standards and Technology (US), « Module-lattice-based key-encapsulation mechanism standard », CrossRef, National Institute of Standards and Technology (U.S.), no NIST FIPS 203,‎ (DOI 10.6028/NIST.FIPS.203, lire en ligne, consulté le )
  13. ↑ (en) pq-crystals, « kyber/LICENSE at main · pq-crystals/kyber », sur GitHub (consulté le )
  14. ↑ « Kyber – Open Quantum Safe » [archive du ] (consulté le )
  15. ↑ open-quantum-safe/oqs-provider, Open Quantum Safe, (lire en ligne)
  16. ↑ (en-US) Shizuka Ishikiriyama, « wolfCrypt Post Quantum | Products - wolfSSL », (consulté le )
  17. ↑ Anton Tutoveanu, antontutoveanu/crystals-kyber-javascript, (lire en ligne)
  18. ↑ Steven K. Fisher, fisherstevenk/kyberJCE, (lire en ligne)
  19. ↑ B. Dang, Kamyar Mohajerani, K. Gaj (2021), High-Speed Hardware Architectures and Fair FPGA Benchmarking of CRYSTALS-Kyber, NTRU, and Saber (PDF) (de)
  20. ↑ Arpan Jati, Naina Gupta, A. Chattopadhyay, S. Sanadhya (2021),A Configurable Crystals-Kyber Hardware Implementation with Side-Channel Protection (PDF) (de)
  21. ↑ « Round 2 post-quantum TLS is now supported in AWS KMS | AWS Security Blog », sur aws.amazon.com, (consulté le )
  22. ↑ (en) signalapp, « Add Kyber KEM and implement PQXDH protocol · signalapp/libsignal@ff09619 », sur GitHub (consulté le )