Prima della chiave, il lucchetto

La storia dei sistemi di crittografia asimmetrici a doppia chiave risale ai primi anni ’70 e i protagonisti sono ritratti nell’immagine sotto: Whitfield Diffie, Martin Hellman e Ralph Merkle. I primi due, per i loro lavori sulla crittografia, sono stati insigniti del premio Turing nel 2015, mentre Merkle ha ricevuto nel 2010 la IEEE Richard W. Hamming Medal.

L’intuizione che sta alla base del lavoro di Diffie, Hellman e Merkle si può illustrare metaforicamente con l’aiuto di due personaggi di fantasia che incontriamo spesso nei quesiti in ambito informatico: Alice e Bob.

Supponiamo che Alice e Bob vogliano scambiarsi un messaggio senza che l’impicciona Eva possa leggerne il contenuto qualora riuscisse ad intercettarlo.
Alice può inserire il messaggio in un cofanetto molto robusto e chiuderlo con un lucchetto.
In questo caso Eva, non essendo in possesso della chiave del lucchetto non può accedere al messaggio che risulta quindi sicuro, ma, come abbiamo sottolineato precedentemente, è necessario che Alice e Bob si incontrino o trovino un qualche modo altrettanto sicuro (magari attraverso un intermediario fidato) per entrare in possesso di una copia ciascuno della chiave per aprire il lucchetto.

C’è però una alternativa che non obbliga Alice e Bob ad avere entrambi una copia della stessa chiave!
Supponiamo che il cofanetto permetta l’utilizzo di due lucchetti e che Alice spedisca il messaggio assicurando la chiusura con il proprio lucchetto.
Ancora una volta Eva è tagliata fuori dal fatto che non possiede la chiave per il lucchetto di Alice, quindi la sicurezza nei confronti dei ficcanaso è ancora garantita.
Quello che dovrà fare Bob alla ricezione del cofanetto, stavolta, sarà di applicarvi il proprio lucchetto e rispedirlo ad Alice.
A questo punto Alice avrà un cofanetto da cui potrà prelevare il suo lucchetto, lasciandolo però ancora protetto in un modo che Bob sarà in grado di aprire quando lo riceverà per la seconda volta!

Utilizzando questo stratagemma Alice e Bob potranno far viaggiare il cofanetto in una condizione sempre sicura ma nessuno dei due avrà bisogno di conoscere e utilizzare la chiave dell’altro.

Il problema che affrontarono Diffie, Hellman e Merkle fu quello di trovare un sistema matematico per realizzare a livello di codici quanto illustrato da questa storiella.