Computational cryptography › Public-key encryption and key exchange
KEM / KEY EXCHANGEPrimitive

Hybrid KEM: X25519 + ML-KEM

In plain words

Use an old and a new key exchange together, so an attacker has to break both.

The idea: Do both key exchanges at once and feed both shared secrets into one key derivation. The final key is safe if either exchange is: an attacker who breaks only one still faces the other's secret mixed in. It's insurance against two different failures: a future quantum computer, which breaks X25519, and a surprise attack on the much younger ML-KEM.

Why it matters: This is how browsers, SSH and Signal guard against future quantum computers today.

The details

On the map: default in browser TLS, OpenSSH 10 and Signal (PQXDH). Breaks only if BOTH halves break

Run classical X25519 and post-quantum ML-KEM side by side and combine both secrets. An attacker has to break both: a quantum computer breaks X25519 but ML-KEM still holds, and a surprise break of ML-KEM still leaves X25519. That is the AND gate on the map[1].

It is the default today in browser TLS (X25519MLKEM768)[2], OpenSSH 10 (mlkem768x25519)[3] and Signal (PQXDH)[4].

Rests on

If any of these breaks, this breaks too.

This box sits behind an AND gate: it only falls if both of these fall.

If it falls

If this breaks, these break with it.

References

  1. Federico Giacon, Felix Heuer and Bertram Poettering. KEM Combiners. Public-Key Cryptography – PKC 2018. doi:10.1007/978-3-319-76578-5_7
  2. Kris Kwiatkowski, Panos Kampanakis, Bas Westerbaan and Douglas Stebila. Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3 (Internet-Draft draft-ietf-tls-ecdhe-mlkem). IETF TLS working group, 2024. datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem
  3. OpenSSH. OpenSSH 10.0 release notes. 2025. openssh.com/txt/release-10.0
  4. Ehren Kret and Rolfe Schmidt. The PQXDH Key Agreement Protocol. Signal specifications, 2023. signal.org/docs/specifications/pqxdh