v147 · security · cryptography
X25519Kyber768 key encapsulation for TLS
A post-quantum hybrid key-exchange mechanism for TLS, layering NIST's ML-KEM on top of classical X25519. When you and the server both support it, your session is forward-secret against a future quantum adversary that records today's traffic.
concepts
-
TLS Inspector
Calls a handful of well-known endpoints and reports which key-exchange algorithm Chrome negotiated. A simple way to tell whether a given site is "harvest-now-decrypt-later" resistant.
-
Handshake bytes
The X25519 share is 32 bytes; the hybrid X25519MLKEM768 share is 1,216 bytes. Visualises the byte budget per negotiated group and explains why oversized ClientHellos broke real-world middleboxes during Chrome's rollout.
-
Post-Quantum Timeline
Timeline of classical and post-quantum algorithm security lifetimes. Adjust "harvest year" and "quantum arrives" sliders to see the "harvest now, decrypt later" attack window — and why X25519Kyber768 closes it while RSA-2048 and plain X25519 do not.
-
Key Exchange Benchmark
Side-by-side performance comparison of X25519 (classical, via Web Crypto) versus X25519Kyber768 (post-quantum hybrid, simulated). Shows ops/second, key generation time, and key/ciphertext sizes. Includes a harvest-now-decrypt-later timeline slider and a byte-level visualisation of the TLS ClientHello size difference.
-
Compatibility Lab
Probes adjacent WebCrypto algorithm support and Resource Timing protocol tokens. Runs a live X25519 key generation and derivation test, explains why
nextHopProtocolcannot identify the TLS KEM, and models server, middlebox, policy, and legacy fallback paths.
why it shipped
"Harvest now, decrypt later" is the canonical post-quantum threat model: an adversary records encrypted traffic today and decrypts it when a sufficiently powerful quantum computer becomes available. Hybrid post-quantum key exchange shuts that strategy down. X25519Kyber768 layers a NIST-standardised lattice-based key-encapsulation mechanism on top of the well-understood X25519 elliptic-curve construction, so if either component holds, the session key stays secret. Chrome ships it client-side so any server that opts in immediately benefits.
references
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗