Skip to content
ecdsa.com

Key exchange (key establishment)

A protocol step by which two parties obtain a shared secret over an insecure channel, by Diffie–Hellman key agreement or by key encapsulation, from which session keys are derived.
Also written askey establishmentkey agreementKEX

Families: finite-field Diffie–Hellman (DHE), elliptic-curve Diffie–Hellman (ECDHE over P-256 or X25519), RSA key transport (the client encrypts a secret to the server's RSA key; removed from TLS 1.3 because it gives no forward secrecy) and KEMs such as ML-KEM, where one side encapsulates a secret to the other's public key. NIST SP 800-56A, 56B and 56C and FIPS 203 cover the approved schemes.

Key exchange is what "harvest now, decrypt later" targets: recorded traffic can be decrypted later if the key exchange is broken, even after the certificates have expired. That is why the post-quantum migration started with hybrid key exchange (X25519MLKEM768 in TLS, mlkem768x25519-sha256 in SSH) while signatures remain classical for now.

In TLS 1.3 the group is negotiated in supported_groups and the public values travel in key_share; in SSH the method name (curve25519-sha256, mlkem768x25519-sha256) names the whole construction.

Standards and references

All terms