CRYSTALS-Kyber 2026-11-05
CRYSTALS-Kyber is a key encapsulation mechanism based on module learning with errors. Its underlying encryption uses polynomial-vector arithmetic with small secret and error coefficients; a transformation around that encryption supplies resistance to chosen-ciphertext attacks. Encapsulation produces a fresh shared secret and the ciphertext needed by the decapsulating party.[ref]
Using a module structure reduces representation and computation costs compared with a fully unstructured matrix description. The security claim concerns the difficulty of the resulting noisy algebraic problem; the word lattice does not by itself prove resistance to every attack. ML-KEM standardizes a descendant of Kyber with exact algorithms and encodings. Applications must name the chosen version rather than treating Kyber and ML-KEM as byte-for-byte synonyms.
CRYSTALS project 2026-11-05
The CRYSTALS project developed the lattice-based designs CRYSTALS-Kyber and CRYSTALS-Dilithium. They solve different tasks: Kyber is a key encapsulation mechanism, while Dilithium provides digital signatures. Their compact representations use structured polynomial arithmetic and explicit computational hardness assumptions. Kyber's construction uses module learning with errors; Dilithium combines a Fiat-Shamir transform with response rejection. ML-KEM and ML-DSA are the corresponding standardized descendants, so a project submission and a final standard should be distinguished when choosing precise encodings or parameters.[ref][ref]
Léo Ducas Created 2026-10-14 Updated 2026-11-05
He is a co-designer of CRYSTALS-Kyber and CRYSTALS-Dilithium, the schemes that were standardized as ML-KEM and ML-DSA. They serve different purposes: a key encapsulation mechanism establishes a shared secret through a public-key operation, while a digital signature authenticates a message under a signing key.[ref]
Figure 1.
Portrait of Léo Ducas
. Photograph linked on the CWI personal homepage.
ML-KEM 2026-11-05
ML-KEM is the module-lattice key encapsulation mechanism standardized in FIPS203 in2024, derived from CRYSTALS-Kyber. Key generation supplies an encapsulation key and a decapsulation key. Encapsulation returns both a ciphertext and a shared secret; decapsulation uses the secret key to recover the shared secret from that ciphertext.[ref]
The mechanism is built on noisy module-linear equations and a chosen-ciphertext-secure transformation. Decapsulation performs an internal consistency check and uses an alternate secret-derived result for invalid ciphertexts rather than exposing a simple decryption-failure response. ML-KEM-512,768 and1024 are separate standardized parameter sets. Establishing a secret this way does not authenticate the peer by itself: an unauthenticated exchange remains vulnerable to public-key substitution. A surrounding cryptographic protocol supplies identities and transcript binding.
Module learning with errors is a structured version of learning with errors in which matrix entries and secret components are elements of a specified polynomial ring. A typical relation is
Here is a public matrix of ring elements, while and have sampled small coefficients. Multiplication combines polynomial multiplication with reduction by the defining polynomial and coefficient modulus.
A ring element packs coefficients, giving structured linear operations without storing an arbitrary dense matrix of all scalar coefficients. This saves space and computation, while introducing an algebraic structure that the security assumption must cover. CRYSTALS-Kyber uses module-LWE, and ML-KEM standardizes a related encapsulation construction. This is a conditional hardness basis, not a proof that every choice of ring and parameters is secure.[ref]