Diffie Hellman (DH) key exchange algorithm is een methode voor het veilig uitwisselen van cryptografische sleutels via een openbaar communicatiekanaal. Sleutels worden niet echt uitgewisseld – ze worden gezamenlijk afgeleid. Het is vernoemd naar hun uitvinders Whitfield Diffie en Martin Hellman.
als Alice en Bob met elkaar willen communiceren, komen ze eerst een groot priemgetal p en een generator (of base) g overeen (waarbij 0 < g < p).
Alice kiest een geheim integer a (haar privésleutel) en berekent dan g^a mod p (wat haar publieke sleutel is). Bob kiest zijn private sleutel b, en berekent zijn publieke sleutel op dezelfde manier.
Bob kent b en g^a, dus hij kan berekenen (g^a)^b mod p = g^ab mod p. daarom kennen zowel Alice als Bob een gedeeld geheim g^ab mod p. een luistervink Eve die meeluisterde op de communicatie kent P, G, Alice ’s publieke sleutel (g^a mod p) en Bob’ s publieke sleutel (g^b mod p). Ze is niet in staat om het gedeelde geheim uit deze waarden te berekenen.
in static-static modus behouden zowel Alice als Bob hun private / publieke sleutels via meerdere communicaties. Daarom zal het resulterende gedeelde geheim elke keer hetzelfde zijn. In de kortstondige-statische modus zal een partij elke keer een nieuwe private/publieke sleutel genereren, dus zal er een nieuw gedeeld geheim worden gegenereerd.