Diffie Hellman (DH) algoritmo di scambio di chiavi è un metodo per lo scambio sicuro di chiavi crittografiche su un canale di comunicazione pubblica. Le chiavi non vengono effettivamente scambiate – sono derivate congiuntamente. Prende il nome dai loro inventori Whitfield Diffie e Martin Hellman.
Se Alice e Bob desiderano comunicare tra loro, per prima cosa concordano tra loro un grande numero primo p e un generatore (o base) g (dove 0 < g < p).
Alice sceglie un intero segreto a (la sua chiave privata) e quindi calcola g^a mod p (che è la sua chiave pubblica). Bob sceglie la sua chiave privata b e calcola la sua chiave pubblica allo stesso modo.
Bob conosce b e g^a, quindi può calcolare (g^a)^b mod p = g^ab mod p. Quindi sia Alice che Bob conoscono un segreto condiviso g^ab mod p. Un’intercettatrice Eva che stava ascoltando la comunicazione conosce p, g, la chiave pubblica di Alice (g ^ a mod p) e la chiave pubblica di Bob (g ^ b mod p). Non è in grado di calcolare il segreto condiviso da questi valori.
In modalità statica-statica, sia Alice che Bob mantengono le loro chiavi private/pubbliche su più comunicazioni. Pertanto il segreto condiviso risultante sarà lo stesso ogni volta. In modalità statica effimera una parte genererà una nuova chiave privata/pubblica ogni volta, quindi verrà generato un nuovo segreto condiviso.