L’algoritmo di Diffie-Hellman

Nel 1976 Diffie e Hellman hanno proposto un metodo particolare per generare e trasmettere su un canale insicuro una chiave segreta, da utilizzare successivamente per un algoritmo di cifratura simmetrico.

[adsense:block:adcontenuto]

Poiché le caratteristiche dell’algoritmo sono state più tardi utilizzate come base per lo sviluppo degli algoritmi a chiavi asimmetriche, l’interesse per questo metodo va oltre il suo principale obiettivo appena ricordato..
Detti X e Y i due interlocutori, il procedimento si divide nei seguenti passi:

  • 1. X e Y scelgono pubblicamente un valore naturale N (grande) e un altro valore s appartenente all’intervallo di valori G=[0,N-1].
  • 2. X sceglie in modo casuale e privato un valore a nell’intervallo G; calcola poi il valore x = sa mod N, e invia x a Y.
  • 3. Analogamente Y sceglie in modo casuale e privato un valore b nell’intervallo G; calcola poi il valore y = sb mod N, e invia y a X.
  • 4. A questo punto entrambi gli interlocutori possono calcolare la stessa chiave privatamente, X nella forma Kx=ya mod N, Y nella forma Ky=xb mod N.

[adsense:block:adcontenuto]

Che la chiave calcolata separatamente sia la stessa si verifica facilmente poiché risulta:

  • Kx = ya mod N = (sb mod N)a mod N = (sb)a mod N
  • Ky = xb mod N = (sa mod N)b mod N = (sa)b mod N = (sb)a mod N = Kx

Attraverso il canale insicuro sono transitati N, s, x e y ma non a e b, necessari per il calcolo della chiave: la sicurezza è basata sulla elevata difficoltà computazionale di ricavare l’esponente a della formula x = sa mod N (logaritmo intero) noti N, s e x, e analogamente per b e y.

[adsense:block:adcontenuto]

Esempio:
N=1000 s= 9 X sceglie a=4 e calcola x= 94 mod 1000 = 6561 mod 1000 = 561
Y sceglie b = 6 e calcola y= 96 mod 1000 = 531441 = 441
Kx = 4414 mod 1000 = 37822859361 mod 1000 = 361
Ky = 5616 mod 1000 = 31172897213027361 mod 1000 = 361

Risorse per sviluppo: 

Ti potrebbero anche interessare:

Il Cifrario di Vernam e l’importanza della chiave

Come brevemente accennato sopra, un cifrario si basa su due presupposti: un algoritmo che definisce le regole per l’operazione di cifratura e per quella di decifratura, e una chiave che rende il risultato dell’applicazione dell’algoritmo parametricamente dipendente dalla chiave stessa. Ad esempio, nel codice di Cesare l’algoritmo è la regola di trasposizione letterale e la chiave è il fattore di trasposizione (1..25).

Risorse per sviluppo: 

Storia della crittografia: Primo cifrario e cifrario di trasposizione

 

La più antica forma conosciuta di crittografia è la scitala lacedemonica, data da Plutarco come in uso dai tempi di Licurgo (IX sec a.C.) ma più sicuramente usata ai tempi di Lisandro (verso il 400 a.C.). Consisteva in un bastone su cui si avvolgeva ad elica un nastro di cuoio; sul nastro si scriveva per colonne parallele all'asse del bastone, lettera per lettera, il testo da rendere segreto.
Risorse per sviluppo: