Skip to content
All standards
Deployment & policyIETF TLS 1.3 hybrid key exchange · X25519MLKEM768 (0x11EC)

TLS hybrid key exchange

Hybrid Key Exchange in TLS 1.3 · X25519MLKEM768 · named group 0x11EC / 4588

Updated

Hybrid key exchange in TLS 1.3 combines a classical elliptic-curve Diffie–Hellman exchange with a post-quantum key-encapsulation mechanism, deriving the session secret from both shares so the connection stays confidential as long as *either* component holds. The IETF's Hybrid key exchange in TLS 1.3 work defines how the two shares are carried in the handshake, and the dominant instantiation — X25519MLKEM768 — pairs X25519 with ML-KEM-768 under a single TLS named group. It is the practical, already-deployable defense for TLS against the quantum threat.

Why it matters

TLS is the single largest target for harvest-now-decrypt-later: an adversary records handshakes and ciphertext today and decrypts them retroactively once a cryptographically-relevant quantum computer exists. A pure post-quantum exchange would close that window but stake the entire connection on a comparatively young lattice assumption; a hybrid hedges. Because the shared secret is a KDF over both the X25519 output and the ML-KEM-768 output, a break in the lattice scheme leaves you no worse than classical TLS, and a break in X25519 leaves you with post-quantum security. That belt-and-braces property is why every major deployment shipped a hybrid group first rather than a standalone KEM.

How X25519MLKEM768 works on the wire

X25519MLKEM768 is an IETF-specified TLS named ("supported") group registered in the IANA TLS parameters registry with codepoint 0x11EC (4588). A client offers it in the `supported_groups` extension and sends a combined `key_share`; the construction is a simple concatenation of the X25519 share with the ML-KEM-768 encapsulation key (ClientHello) or ciphertext (ServerHello) — a share concatenation, not a cryptographic KEM combiner. The concrete parameters:

  • Codepoint 0x11EC (4588), negotiated through `supported_groups` and `key_share` exactly like a classical curve, so no new handshake message is introduced.
  • Wire cost: ML-KEM-768 adds roughly 1.1 KB each direction — a 1184-byte encapsulation key from the client and a 1088-byte ciphertext from the server — on top of the 32-byte X25519 share.
  • Deployment: negotiated in the field by Chrome, Firefox, Cloudflare, AWS, OpenSSL 3.5+, and BoringSSL/AWS-LC.
  • Not X-Wing: the distinct X-Wing KEM combines the same primitives (X25519 + ML-KEM-768) via a SHA3-256-based combiner; X25519MLKEM768 in TLS uses plain share concatenation and is a different construction.
Pitfall

A larger ClientHello can trip middleboxes

The extra ~1.1 KB can push the ClientHello past a single packet or force TLS record fragmentation, and a minority of middleboxes, load balancers, and firewalls mishandle the larger or split message — the connection stalls rather than failing cleanly. Never drop the classical fallback: keep a pure-X25519 group in your offered list and test that negotiation downgrades gracefully across your real network path, MTU, and initcwnd before you enable hybrid by default.

How quantakrypto helps

Turning on TLS hybrid is one config line; rolling it out safely across a fleet is the real work. We inventory where your TLS terminates and rank its harvest-now-decrypt-later exposure (audit), stage the move to X25519MLKEM768 behind the classical fallback and validate it end-to-end against your load balancers, MTU, and middleboxes (migration — see our guide on migrating TLS to hybrid), and conformance-test the ML-KEM-768 implementation underneath the handshake against FIPS 203's input checks (certification). The result is a TLS estate that is post-quantum-ready without a wave of stalled connections.

Frequently asked questions

What is TLS hybrid key exchange, and why hybrid rather than a pure PQC exchange?

It runs a classical (EC)DHE and a post-quantum KEM together in one TLS 1.3 handshake and derives the session key from both. Hybrid means the connection stays secure if either component holds, so a future weakness in the young lattice assumption never leaves you worse off than classical TLS — which is why deployments chose it over a standalone KEM.

What is X25519MLKEM768 and what is its codepoint?

It is the dominant TLS hybrid group: an X25519 share concatenated with an ML-KEM-768 share. It is an IETF-specified TLS named group registered in the IANA TLS parameters registry with supported-group codepoint 0x11EC (4588), and it is negotiated through the ordinary `supported_groups` and `key_share` extensions.

How much does hybrid add to the handshake, and will it slow TLS down?

ML-KEM-768 adds about 1.1 KB in each direction (a 1184-byte encapsulation key and a 1088-byte ciphertext) on top of the 32-byte X25519 share. Compute overhead is negligible on modern hardware; the practical cost is the extra bytes, so plan for MTU and initcwnd effects and the rare middlebox that mishandles a larger or fragmented ClientHello.

Is X25519MLKEM768 the same as X-Wing?

No. Both pair X25519 with ML-KEM-768, but X-Wing is a KEM combiner that mixes the two via a SHA3-256-based combiner, whereas X25519MLKEM768 as used in TLS simply concatenates the two shares. They are different constructions with different codepoints; do not treat them as interchangeable.

Work with us on TLS hybrid key exchange

Related reading

References

Get started

Turn quantum risk into a credential.

Book a discovery call and get an indicative scope and pricing for your organisation.