Friday, December 5, 2008

diffie hellman

Nell'implementazione originale (e più semplice) del protocollo si considera inizialmente un numero g, generatore del gruppo moltiplicativo degli interi modulo p, dove p è un numero primo (vero dav?).
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 calcola
K_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: