Password-Authenticated Key Exchange
Turning a weak shared password into a strong session key without ever transmitting it — how EKE started it, why offline dictionary resistance is the defining property, and what OPAQUE and SRP get right and wrong.
Ordinary password authentication sends the password — over TLS, to a server that hashes and compares it. That works, and it concentrates risk: the server sees every password in plaintext at login, a compromised or malicious server harvests them, and TLS interception or a mis-issued certificate exposes them in transit. PAKE protocols remove the transmission entirely: two parties who share only a low-entropy password derive a strong shared key, and an attacker — including one who records everything — cannot mount an offline dictionary attack.
The defining property #
A password has maybe 20–40 bits of entropy. Any protocol whose transcript lets an attacker test candidate passwords offline is broken by definition, because testing a few billion candidates is cheap.
EKE: the original idea #
Bellovin and Merritt (1992) introduced Encrypted Key Exchange. The move, as Schneier presents it in ch. 22.5, is to use the shared password as a symmetric key to encrypt a freshly generated, random public key:
sequenceDiagram
participant A as Alice (knows P)
participant B as Bob (knows P)
A->>B: A, E_P(K') — random public key, encrypted under the password
B->>A: E_P(E_K'(K)) — random session key, double-encrypted
A->>B: E_K(R_A)
B->>A: E_K(R_A, R_B)
A->>B: E_K(R_B)
Note over A,B: both confirmed knowledge of K
Why this defeats offline guessing: an eavesdropper who guesses and decrypts step 1 obtains a candidate public key — but a random public key is indistinguishable from random bytes, so there is nothing to check the guess against. Contrast a protocol that encrypts a known-format value under the password: the attacker decrypts with each candidate and checks whether the plaintext is well-formed, which is a verifier and hence an offline attack.
The final four steps are mutual confirmation: steps 3–5 prove to Alice that Bob knows , steps 4–6 prove the converse.
Balanced vs augmented #
EKE is balanced: both sides store the same password-derived value. That means a server database breach hands the attacker everything needed to impersonate users directly.
Augmented (asymmetric) PAKE fixes this: the server stores a verifier from which the password cannot be recovered cheaply, and which cannot be used directly to authenticate.
| Protocol | Type | Status |
|---|---|---|
| EKE (1992) | balanced | historical — the origin |
| SPEKE, SPAKE2 | balanced | SPAKE2 standardized, used where both sides are trusted |
| SRP (Wu, 1998) | augmented | widely deployed — Apple iCloud, 1Password, ProtonMail. Ad-hoc design, no modern security proof, awkward maths |
| Dragonfly / SAE | balanced | WPA3 WiFi authentication (RFC 7664) |
| OPAQUE | augmented | current recommendation — CFRG-selected, proven secure, composes with TLS |
Where PAKE actually fits #
The honest scope: PAKE is not a replacement for how most web applications authenticate today, and pretending otherwise is why it stayed niche for thirty years.
- WiFi (WPA3/SAE) — the strongest real deployment. It fixed WPA2's offline attack, where capturing a handshake let an attacker grind the passphrase offline forever.
- Device pairing and IoT provisioning — a short PIN bootstraps a strong channel, with no PKI.
- End-to-end encrypted services — where the server must not learn the password because the password also derives the client's data-encryption key.
- Password managers and sync — SRP's main habitat.
Note also that browsers have no native PAKE, so a web deployment means running it in JavaScript delivered by the server you are trying not to trust — which undercuts the threat model. Passkeys (WebAuthn) solve the same problem from a different direction, with platform support, and are the more practical answer for the web.
Source claims audit #
The EKE material was seeded from Applied Cryptography ch. 22.5.
| Claim from source | Status | Notes |
|---|---|---|
| EKE construction: password encrypts a random public key; six-step protocol with mutual confirmation | current | Matches Bellovin & Merritt 1992 |
| Eavesdropper cannot test password guesses without also breaking the public-key algorithm | current | This is the defining PAKE property |
| Knapsack instantiation fails because ciphertext distribution is non-uniform | current and important | The general rule — encrypted values must be indistinguishable from random — is what later breaks hinged on |
| RSA instantiation: encrypt only the exponent, send the modulus | current as a caveat | Correct, and a reason not to hand-roll |
| EKE presented as a general solution for network authentication | outdated in emphasis | EKE is balanced, so a server breach is total. Augmented PAKEs (SRP, OPAQUE) are what deployments need; the source predates both |
| Source predates SRP (1998), Dragonfly/WPA3, OPAQUE, and passkeys | — | Added; WPA3 is the largest real deployment and OPAQUE the current recommendation |
Sources
- paperEncrypted Key Exchange: Password-Based Protocols Secure Against Dictionary Attacks (Bellovin & Merritt, 1992)
- bookApplied Cryptography, 2nd ed., ch. 22.5 — Encrypted Key Exchange (Schneier)
- docsRFC 9380 / OPAQUE: An Asymmetric PAKE Protocol (CFRG)
- docsRFC 8492 — Secure Password Ciphersuites for TLS (SRP/SPAKE)