3 Diffie-Hellman
Il protocollo di Diffie-Hellman permette a due interlocutori che
non hanno mai avuto nessun precedente contatto di accordarsi su
una chiave segreta utilizzando un canale pubblico.
Alcune definizioni necessarie per poter illustrare il protocollo:
- Sia
l'insieme dei numeri interi.
- Un numero
è detto primo se è divisibile solo per
e per sé stesso.
- Un numero
si dice primo rispetto a
se il massimo comune divisore tra
e
è
. Si
dice anche che
e
sono primi tra loro.
- Sia
l'insieme dei numeri interi tra
e
compresi, ovvero l'insieme
.
- Sia
il sottoinsieme di
comprendente
solo i numeri primi rispetto a
. Se
è un numero
primo allora
.
- Sia
un numero intero e
un intero positivo, allora indichiamo
con
il resto della divisione di
per
, ovvero
(dove il simbolo
indica l'intero inferiore di
).
- Siano
e
due numeri interi e
un intero positivo, allora
diciamo che
se
, ovvero se
divide
.
- Un numero
è detto elemento generatore
di
se il più piccolo numero
tale
che
è
.
Detti Bob e Alice i due interlocutori, il protocollo procede come
segue:
- Bob e Alice si accordano pubblicamente su un numero primo
e su un numero
che sia elemento generatore di
.
- Alice sceglie un numero
tale che
, calcola
e lo manda a Bob.
- Bob sceglie un numero
tale che
, calcola
e lo manda ad
Alice.
- La chiave segreta è
: Alice
può calcolarla come
,
mentre Bob può calcolarla come
.
La sicurezza del protocollo di Diffie-Hellman, ovvero il fatto che
un intruso non possa calcolare la chiave
avendo a
disposizione solo i dati pubblici
, si
basa sulla congettura dell'intrattabilità del problema dei
logaritmi discreti in
, per cui conoscendo
solo i dati pubblici è molto difficile ricavare
e
. Così com'è, ovvero senza alcuna forma di autenticazione
(come ad esempio dei certificati), è però soggetto ad un attacco
di tipo man-in-the-middle. Se infatti un
intruso, che chiamiamo Oscar, si pone nel mezzo della comunicazione può
intercettare
e
e mandare, rispettivamente, ad Alice
un valore
e a Bob un
valore
(calcolati a
partire da dei valori
e
scelti da lui). In
questo modo Oscar riuscirà a stabilire una chiave
con Alice e una chiave
con Bob, mentre
Alice e Bob penseranno di essersi accordati su una chiave tra di
loro: così Oscar avrà la successiva comunicazione tra Bob e Alice
in chiaro, e potrà leggere i messaggi, modificarli, inserirne
altri.
©2001 Davide Cerri