
- Alice sceglie un numero
casuale "a";
- Alice calcola il valore di A
= g^a Mod p e lo invia attraverso il canale pubblico a
Bob assieme ai valori "g" e "p";
- Bob sceglie un numero casuale "b";
- Bob calcola il valore di B
= g^b Mod p e lo invia attraverso il canale pubblico ad
Alice;
- Alice calcola KA
= B^a Mod p = (g^b)^a = g^ba;
- Bob calcola KB
= A^b Mod p = (g^a)^b = g^ab;
Alice
e Bob trovano lo stesso risultato perché g^ab e g^ba sono uguali. Si
noti come solo a, b e g^ab = g^ba sono segreti. Tutti gli altri numeri
sono mandati in chiaro, ossia pubblici.
Una volta
che Alice e Bob calcolano la chiave segreta, essa può essere usata come
chiave di criptazione, conosciuta solo a loro, per mandare messaggi
tramite il canale di comunicazione in chiaro.
N.B.: Questa implementazione di Diffie-Hellman-Merkle Key
Exchange è vulnerabile ad un attacco di tipo "man-in-the-middle".