Corso di Privacy

Pretty Good Privacy: Il Programma - Parte III

 

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