Introduzione spicciola alla crittografia
Semplicissima introduzione, scritta insieme a RageMan, alla crittografia.
[ 1.0 Introduzione ]
Se la crittografia sara’ fuorilegge, solo i fuorilegge avranno la crittografia.
(Newt Gingrich)
[ 1.1 Terminologia ]
Prima di dare una definizione iniziale e approssimativa della crittografia e’ necessario fare alcune precisazioni sui termini propri di questa
disciplina.
Il testo o l’informazione che si vuole cifrare e’ detto messaggio in chiaro mentre il testo dopo l’operazione di cifratura e’ detto crittogramma.
Affinche’ si passi dal messaggio in chiaro al messaggio cifrato occore un sistema che sia capace di trasformare il primo nel secondo.
Questo sistema viene comunemente detto cifrario.
Possiamo quindi definire la crittografia come la scienza che si occupa di proteggere delle informazioni rendendole incomprensibili a chiunque non possa renderle di nuovo comprensibili mediante il cifrario.
[ 1.2 Crittografia a chiavi ]
Quando la crittografia veniva utilizzata esclusivamente dai militari o dalle agenzie governative, il sistema appena descritto
( messaggio in chiaro -> [cifrario] -> crittogramma )
bastava a garantire la segretezza del messaggio.
In pratica ogni agenzia utilizzava un proprio cifrario e la segretezza di quest’ultimo era fondamentale.
Per poter decifrare il crittogramma, bastava quindi la semplice conoscenza del cifrario.
Nella crittografia moderna al concetto di cifrario e’ stato aggiunto un parametro variabile detto “chiave”.
In pratica lo stesso cifrario puo’ produrre crittogrammi diversi in base a chiavi diverse. Con questo sistema quindi, non e’ piu’ necessario che il cifrario sia segreto poiche’ la segretezza del crittogramma dipende esclusivamente dalla segretezza della chiave.
Si potrebbe pensare che non cambi poi molto, dalla segretezza del cifrario come base del sistema si passa alla segretezza della chiave; in realta’ passando a questo sistema viene resa piu’ piccola la parte da tenere segreta, e, essendo la sicurezza data sempre per margini, il margine di sicurezza aumenta sensibilmente.
Esistono due tipi di applicazione della crittografia a chiavi: quella a chiave simmetrica e quella a chiave asimmetrica.
La differenza sostanziale tra le due applicazioni sta nel fatto che nella prima si utilizza la stessa chiave sia per l’operazione di cifratura che per quella di decifratura, mentre nella seconda si utilizzano due chiavi diverse per le operazioni di cifratura e decifratura.
Nella crittografia a chiave simmetrica sorge il problema dello scambio delle chiavi, poiche’ per cifrare un messaggio il mittente avra’ bisogno della chiave del destinatario, che in qualche modo dovra’ fornirgliela.
Durante questo scambio di chiavi un terzo soggetto potrebbe frapporsi fra il mittente ed il destinatario e venire a conoscenza di questa chiave.
Nella crittografia a chiave asimmetrica questo problema non e’ presente poiche’ la chiave usata per cifrare, che prende nome di chiave pubblica, e’ diversa dalla chiave usata per decifrare, che prende il nome di chiave privata.
[ 1.3 Software per la crittografia ]
Queste astrazioni teoriche sono state concretizzate per il grande pubblico con un software chiamato PGP (Pretty Good Privacy) sviluppato da Phil Zimmermann a partire dal 1991.
Durante i primi anni della sua diffusione, questo software era freeware ed i suoi sorgenti erano disponibili, cio vuol dire che chiunque avesse la capacita’ di comprendere il codice, poteva verificare che questo fosse libero da backdoor, e per un software che tutela la privacy questo e’ un requisito fondamentale.
Quest’ultimo requisito manca a questo software dalla versione 6.5.8 alla 8, e per ovviare a questo problema e’ nato un progetto il cui obiettivo e’ quello di creare un software open source compatibile con le specifiche OpenPGP.
Questo software prende il nome di GPG (Gnu Privacy Guard).
Questo progetto ha ricevuto sovvenzioni da parte del governo tedesco che dopo aver esaminato le relazioni delle commissioni d’inchiesta europee su echelon, ha sentito la necessita’ di avere un software sicuro per la crittografia a chiave asimmetrica ad utilizzo di privati ed imprese.