Uno dei due interlocutori, ad esempio Alice, sceglie un numero casuale a e calcola il valore
A = g^a (mod p)
(dove mod indica l'operazione modulo, ovvero il resto della divisione intera) e lo invia attraverso il canale pubblico a Bob (l'altro interlocutore), assieme ai valori g e p.Bob da parte sua sceglie un numero casuale b, calcola
B = g^b (mod p)
e lo invia ad Alice. A questo punto Alice calcolaK_A = B^a (mod p),
mentre Bob calcola
K_B = A^b (mod p).
... A questo punto i due interlocutori sono entrambi in possesso della chiave segreta e possono cominciare ad usarla per crittare le comunicazioni successive.
L'implementazione più semplice del protocollo, quella originale, usa il gruppo moltiplicativo degli interi modulo p, dove p è un numero primo e g è generatore mod p.
Un' esempio del funzionamento del protocollo è il seguente:
1. Alice e Bob si accordano di usare un numero primo p=23 e la base g=5.
2. Alice sceglie in numero segreto a=6 e manda a Bob (ga mod p)
* 56 mod 23 = 8
3. Bob sceglie l intero segreto b=15 e manda ad Alice (gb mod p)
* 515 mod 23 = 19.
4. Alice calcola (gb mod p)a mod p
* 196 mod 23 = 2.
5. Bob calcola (ga mod p)b mod p
* 815 mod 23 = 2.
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ò esser usata come chiave di criptazione, conosciuta solo a loro, per mandare messaggi tramite il canale di comunicazione in chiaro.
(http://it.wikipedia.org/wiki/Scambio_di_chiavi_Diffie-Hellman)
No comments:
Post a Comment