Il problema della trasmissione della chiave segreta venne risolto con la
chiave pubblica, un'idea semplice e geniale, introdotta da Whitfield Diffie
e Martin Hellman nel 1975 (anche se in realtà probabilmente il Servizio Segreto
Britannico disponeva di questo sistema già da qualche anno). La chiave pubblica
è uno schema asimmetrico che opera con una coppia di chiavi: una pubblica
e una privata. La chiave pubblica viene usata per la criptazione e la chiave
privata per decodificare il messaggio.
L'algoritmo matematico che effettua questa operazione e' tale che:
- un messaggio codificato con una chiave della coppia può essere decodificato
solo con l'altra chiave della stessa coppia;
- non e' materialmente possibile, data una chiave della coppia, ricavare l'altra.
Ogni utente tiene per se' la chiave privata e diffonde il più possibile la
chiave pubblica.
Questo risolve tutti i problemi posti dal metodo “classico”: Topolino vuole
inviare un messaggio a Pippo, e codifica quel messaggio usando la chiave pubblica
di quest'ultimo. Solo Pippo, che ha la corrispondente chiave segreta, e' in
grado di decodificare e leggere il messaggio.
Pretty Good Privacy unisce in sé il meglio di entrambi i metodi: è un sistema
ibrido.
Quando Topolino usa PGP per criptare il messaggio il programma genera una
session key con la quale codifica il testo. Questa session key è una chiave
che viene usata una sola volta e viene generata in modo casuale e ogni volta
diverso, una volta che le informazioni sono state criptate la session key
viene a sua volta criptata con la chiave pubbllica: il risultato è il testo
criptato che viene spedito a Pippo assieme alla chiave pubblica contenente
la session key usata per quella operazione.

Per la decodificare del messaggio Pippo usa la propria chiave privata per
decriptare la session key che PGP adopera per decifrare il messaggio.

La combinazione dei due sistemi permette di unire la sicurezza del metodo
a chiave pubblica con la velocità del metodo tradizionale: il secondo è circa
1.000 volte più veloce del metodo pubblico mentre questo fornisce una soluzione
al problema della distribuzione della chiave segreta.
Nonostante la chiave pubblica e quella privata siano correlate, è molto difficile
risalire alla chiave privata partendo da quella pubblica. Difficile ma non
impossibile disponendo di molto tempo e di un computer sufficientemente potente,
di conseguenza è importante decidere delle chiavi con una lunghezza da garantirne
la sicurezza, ma tali allo stesso tempo da poter essere utilizzate agevolmente.
In aggiunta bisogna anche considerare chi può essere interessato a violarne
la sicurezza.
Di seguito viene riportata come esempio uno stralcio della chiave pubblica
dello stesso Zimmermann, realizzata con la versione 7.0.3 del PGP. Per esigenze
di sintesi, dato che occupa quasi due pagine di formato A4, ho riportato solo
le prime e le ultime righe:
mQGiBDpU6CcRBADCT/tGpBu0EHpjd3G11QtkTWYnihZ
DBdenjYV2EvotgRZAj5h4ewprq1u/zqzGBYpiYL/9j+5XDFcoWF
24bzsUmHXsbDSiv+XEyQND1GUdx4wVcEY5rNjkArX06XuZzO
bvXFXOvqRj6LskePtw3xLf5uj8jPN0Nf6YKnhfGIHRWQCg/0
UAr3hMK6zcA/…………………………xKit+pWRqSd7pviZHJIUIFdpVmgq
YMfNwfahJIyEz17HKHp3OLVsa7okATAQYEQIADAUCOlT
oJwUbDAAAAAAKCRDHRjY5std5XuVtAKD4358jdvOoX358Hn
QnmwUdUczuFgCfT70B8OXmdyevgPtF4wOVighnBFE==D1wd
Se volete vederla in tutta la sua ampiezza visitate la pagina: http://web.mit.edu/prz/key.shtml
Volete provare a violarla? I vantaggi di PGP non si esauriscono qui, ma …
ci risentiamo alla prossima lezione!
Torna all'indice Generale del corso di Corso di Privacy di Software Planet