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
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 2022Roberto 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.. 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 subit plusieurs modifications durant le processus de standardisation du NIST. En particulier, lors du deuxième tour, la version Kyber v2 a subit les changements suivantsRoberto 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. :
la compression de la clef publique a été supprimée ; le module q a été réduit de 7681 à 3329 ; des paramètres de compression du chiffré ont été changés ; les spécifications de transformation de Fourier à valeurs dans un corps fini (NTT) ont été modifiées ; la borne d’échantillonnage du bruit a été réduite à pour augmenter la vitesse ; la représentation de la clef publique est passée dans le domaine NTT pour économiser des opérations.
D'autres modifications ont été apportées lors du troisième tour :
l'usage de la transformation Fujisaki–Okamoto a été modifié ; le niveau de bruit a été augmenté, et la compression du chiffré a été réduite pour le niveau 1 ; l'algorithme d'échantillionage du paramètre A a été amélioré. Lors de la publication de la version préliminaire publique du standard FIPS 203, d'autres changements ont été apportés :
la taille de la clef prépartagée a été fixée à 256 bits ; une différente variante de la transformation Fujisaki–Okamoto est utilisée ; un usage d'une fonction de hachage sur un aléa généré a été supprimé dans la fonction d'encapsulation de clef, pour se conformer au NIST ; des vérifications des données d'entrée ont été ajoutées, notamment à la fonction d'encapsulation.
Enfin, depuis la version préliminaire, les changements suivants ont été apportés au standard FIPS 203 :
une séparation de domaines a été ajoutée à la génération de clef ; la version préliminaire avait par inadvertance inversée les indices de la matrice  dans la fonction de génération et de chiffrement, ceux-ci sont revenus à leur état d'origine dans la version finale.
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 auxillairesB. Dang, Kamyar Mohajerani, K. Gaj (2021), High-Speed Hardware Architectures and Fair FPGA Benchmarking of CRYSTALS-Kyber, NTRU, and Saber (PDF) (de)Arpan Jati, Naina Gupta, A. Chattopadhyay, S. Sanadhya (2021),A Configurable Crystals-Kyber Hardware Implementation with Side-Channel Protection (PDF) (de).
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
Catégorie:Gestion de clé Catégorie:Protocole cryptographique