Key exchange

A key exchange (or key agreement) protocol allows two parties communicating over a public, authenticated channel to establish a shared secret key that is computationally indistinguishable from uniformly random to any eavesdropper. Unlike PKE, key exchange does not require a pre-established public key infrastructure.

Syntax

A two-party key exchange protocol is a pair of interactive algorithms run between parties and over a shared transcript. Following execution, both parties output a key . In the non-interactive setting:

  • where and each party publishes , then computes .

Properties

Correctness

Both parties output the same key with probability 1 (over their randomness).

Security (indistinguishability from random)

A key exchange protocol is secure if for all efficient adversaries that observe the full transcript, the session key is computationally indistinguishable from a uniformly random key .

Variations

Non-interactive key exchange (NIKE)

A NIKE allows any two parties to derive the same shared key from each other’s public keys alone, with no interaction at all. Diffie-Hellman over a cyclic group is the canonical example: given public keys and .

Authenticated key exchange (AKE)

An AKE additionally guarantees that the parties authenticate each other’s identities during the protocol, preventing man-in-the-middle attacks.

Multi-party key exchange

Generalizes two-party KE to parties. Requires additional rounds or structure (e.g., Burmester-Desmedt, pairing-based constructions).

Other results

  • Diffie-Hellman key exchange from DDHDH76
  • KE implies PKE (the session key can be used with a symmetric cipher) — DH76
  • No black-box construction of KE from one-way permutations — standard separation (no KE from symmetric primitives)
  • Any KE protocol from a random oracle requires queries; Merkle puzzles achieve security and are optimal — BM09
  • KE from LWE: follows as a special case of PKE from LWE — Reg05
  • Communication complexity lower bounds for information-theoretic key agreement — HMO+19