Diffie-Hellman Key Exchange

Alice and Bob agree on a shared secret over a public wire that Eve can read.

Public: large prime p, generator g
sequenceDiagram autonumber participant A as Alice participant E as Network / Eve participant B as Bob Note over A: Generates secret a
(kept secret) Note over B: Generates secret b
(kept secret) A->>B: Sends A = g^a mod p Note over E: Eve sees A on the wire B->>A: Sends B = g^b mod p Note over E: Eve sees B on the wire Note over A: Computes s = B^a mod p Note over B: Computes s = A^b mod p Note over A,B: Shared secret s = g^(ab) mod p Note over E: Eve has p, g, A, B
but cannot find s
(discrete log problem) ?

Back to Documentation