Algorithms
9 min readUnderstanding ML-KEM: The NIST Standard for Post-Quantum Key Exchange
ML-KEM (FIPS 203) is the primary NIST-standardized algorithm for post-quantum key establishment. Here is what it is, how it works, and how to begin deploying it.
Marcus Chen Head of Security EngineeringWhen NIST published FIPS 203 in August 2024, it formalized the primary algorithm for post-quantum key establishment. ML-KEM (Module Lattice-based Key Encapsulation Mechanism) is the algorithm that will replace classical key exchange in TLS, VPNs, encrypted messaging, and virtually every protocol that relies on establishing a shared secret between two parties.
What Problem Does Key Exchange Solve?
Two parties communicating over an untrusted network need to agree on a secret key without transmitting that key in the clear. Classical approaches use Diffie-Hellman or elliptic-curve Diffie-Hellman (ECDH), which rely on the hardness of discrete logarithm problems. A large-scale quantum computer running Shor's algorithm can solve these problems efficiently, breaking the security of all classical key exchange.
How ML-KEM Works
ML-KEM is a key encapsulation mechanism (KEM): one party generates a key pair (public and private key), and the other party encapsulates a shared secret using the public key. The first party then decapsulates using the private key. The resulting shared secret can be used to derive symmetric encryption keys for the session.
The hardness assumption underlying ML-KEM is the Module Learning With Errors (MLWE) problem, a variant of the Learning With Errors problem over module lattices. No efficient quantum algorithm is known to solve MLWE, which is why ML-KEM is expected to provide security against quantum attacks.
Three Security Parameter Sets
- ML-KEM-512: targets NIST security Level 1 (roughly equivalent to AES-128). Public key: 800 bytes. Ciphertext: 768 bytes.
- ML-KEM-768: targets NIST security Level 3 (roughly equivalent to AES-192). Public key: 1,184 bytes. Ciphertext: 1,088 bytes. Recommended for most enterprise deployments.
- ML-KEM-1024: targets NIST security Level 5 (roughly equivalent to AES-256). Public key: 1,568 bytes. Ciphertext: 1,568 bytes. Suitable for high-assurance environments.
Hybrid Deployment in TLS
The recommended deployment pattern combines ML-KEM with a classical ECDH key exchange in a single TLS 1.3 handshake. The shared secret is derived from both mechanisms. For the session to be compromised, an adversary must break both the classical and the post-quantum key exchange simultaneously. Major browsers and cloud providers have already shipped hybrid ML-KEM TLS.
Performance Characteristics
ML-KEM has strong performance characteristics compared to classical key exchange. Key generation, encapsulation, and decapsulation are all fast on modern hardware. The primary trade-off is key and ciphertext size, which are larger than ECDH, though the impact on TLS handshake latency is small for most applications. Hardware acceleration for lattice operations is being incorporated into new processor designs, which will further reduce any performance overhead.
Where to Start
Begin by auditing where key exchange is performed in your systems: TLS connections, VPN tunnels, API authentication, and key wrapping hierarchies. Verify that your TLS libraries (OpenSSL 3.x, BoringSSL, cloud provider TLS) support hybrid ML-KEM. Update TLS configurations for your highest-sensitivity endpoints first, then expand methodically using your cryptographic inventory as a guide.
Related articles
- Hybrid Cryptography: The Pragmatic Path to Post-Quantum Readiness — Post-Quantum Cryptography
- What Is Hash-Based Cryptography? A Quantum-Resilient Algorithm — Algorithms