Diffie Hellman (DH) KULCSCSERE algoritmus egy módszer a kriptográfiai kulcsok biztonságos cseréjére nyilvános kommunikációs csatornán keresztül. A kulcsokat valójában nem cserélik – közösen származnak. Nevét Whitfield Diffie és Martin Hellman feltalálókról kapta.
ha Alice és Bob kommunikálni akarnak egymással, először egy nagy p prímszámban és egy G generátorban (vagy bázisban) állapodnak meg (ahol 0 < g < p).
Alice kiválaszt egy titkos egész számot (a privát kulcsát), majd kiszámítja a g^a mod p-t (ami a nyilvános kulcsa). Bob kiválasztja a B privát kulcsát, és ugyanúgy kiszámítja a nyilvános kulcsát.
Bob ismeri b-t és g^A-t, így ki tudja számolni (g^a)^b mod p = g^ab mod p. ezért Alice és Bob is ismer egy közös titkot g^ab mod p. egy lehallgató Eve, aki lehallgatta a kommunikációt, ismeri p, g-t, Alice nyilvános kulcsát (g^a mod p) és Bob nyilvános kulcsát (g^b mod p). Nem tudja kiszámítani a megosztott titkot ezekből az értékekből.
statikus-statikus módban mind Alice, mind Bob megőrzi privát/nyilvános kulcsait több kommunikáció során. Ezért a kapott közös titok minden alkalommal ugyanaz lesz. Efemer-statikus módban az egyik fél minden alkalommal új privát/nyilvános kulcsot generál, így új megosztott titok keletkezik.