Introduzione
Cos'è la crittografia
Per crittografia si intende quella tecnica che permette di "cifrare" un messaggio rendendolo incomprensibile
a tutti fuorchè al suo destinatario. In generale i due processi principali che vengono applicati in crittografia si dividono in "cifratura" e "codifica". La cifratura lavora sulle lettere "individuali" di un alfabeto, mentre una codifica lavora ad un livello semantico più elevato, come può essere una parola o una frase. I sistemi di cifratura possono lavorare per trasposizione (mescolando i caratteri di un messaggio in un nuovo ordine), o per sostituzione (scambiando un carattere con un altro carattere in accordo con una regola specifica), o una combinazione di entrambi. Nel linguaggio corrente la trasposizione è anche chiamata permutazione. Una cifratura che implementa entrambe le tecniche (trasposizione e sostituzione) è chiamata "cifratura composta". In linea di massima una cifratura composta è più sicura di una cifratura basata solo su sostituzione o su trasposizione. Shannon (l'inventore della teoria dell'informazione, N.d.R.) paragona la sostituzione alla "confusione", perchè l'output è una funzione non lineare dell'input. Egli inoltre ha paragonato la trasposizione alla "diffusione" perchè estende la dipendenza dell'output da un piccolo numero di posizioni dell'input a un grande numero.
Ogni sistema di crittografia ha due parti essenziali: un algoritmo (per codificare e decodificare) e una "chiave", la quale consiste di informazioni che, combinate con il testo "in chiaro" passato attraverso l'algoritmo, vi darà poi il testo codificato. In ogni moderno sistema di crittografia si assume che l'algoritmo sia conosciuto dai potenziali "nemici", quindi la sicurezza di un sistema risiede solo ed esclusivamente nella segretezza della chiave.
Il nostro obiettivo è quello di tradurre il linguaggio del testo in chiaro in un nuovo "linguaggio" che non può essere compreso e/o tradotto senza le informazioni supplementari fornite dalla chiave. A chi è familiare il concetto di entropia in fisica potrà essere sorpreso di scoprire che questo concetto è utile anche in crittografia. L'entropia è la misura della quantità di disordine in un sistema fisico, o della relativa assenza di informazione in un sistema di comunicazione. In un linguaggio naturale, come potrebbe essere l'italiano, l'entropia è bassa, in quanto vi è ridondanza e una certa regolarità statistica nei termini e nei caratteri. Se alcuni dei caratteri di una frase sono persi o
incomprensibili noi di solito riusciamo a ricostruire la frase, con una buona approssimazione, nella grande
maggioranza dei casi. Inversamente, noi vogliamo che il nostro testo criptato abbia la più alta entropia possibile, al fine di renderne il più difficile possibile la decodifica. Idealmente il nostro testo dovrebbe apparire come una serie di lettere o simboli casuali ... (random). Il nostro principio guida sarà quello di aumentare l'incertezza del criptoanalista il più possibile.
La prima considerazione nella sicurezza di un sistema di crittografia riguarda la lunghezza della chiave. Se noi usiamo una chiave troppo corta (se comparata alla lunghezza del testo in chiaro) molto probabilmente l'algoritmo da noi usato, arrivato ad un certo punto della codifica, dovrà ripetere dei caratteri, o delle sequenze di caratteri, fornendo così uno schema che il criptoananlista potrebbe sfruttare per compiere il suo lavoro. Se la cosa dovesse ripetersi molte volte il criptoananalista potrebbe avere abbastanza materiale in mano per poter ottenere la nostra chiave. Un altro fattore importante da tenere in considerazione è il numero di chiavi che il mio algoritmo ammette. Se il mio algoritmo ammettesse, ad esempio, 10000 chiavi, io
posso stare certo che un "nemico" dotato di mezzi di calcolo anche modesti potrebbe provarle tutte in un lasso
di tempo accettabile, vanificando quindi il mio sistema di crittografia. Questo approccio (ricerca esaustiva su
tutte le chiavi possibili) viene chiamato approccio di "forza bruta". Questo introduce il concetto del "fattore lavoro", necessario per rompere un sistema di crittografia. In linea di principio un sistema sicuro in assoluto NON esiste. Ma se noi possiamo fare in modo che il fattore lavoro necessario per romperlo sia il più alto possibile molto probabilmente ci saremo messi al riparo dalla grande maggioranza degli attacchi. Anche perchè il nostro avversario prima di lanciarsi nel tentativo di decodifica di un sistema complesso molto probabilmente eseguirà un bilancio costi-benefici. Se il beneficio che esso potrà avere dalla decodifica del nostro messaggio è inferiore allo sforzo (anche economico) che deve sostenere per decodificarlo (o per tentare di farlo) molto probabilmente lascerà perdere.
Cos'è la Criptoanalisi
Alcuni sistemi crittografici
Tuttavia il più devastante attacco pratico portato al DES è stato descritto alla conferenza Crypto '93, dove Michael Wiener del Bell Northern Research ha presentato un documento sull'apertura del codice DES con una macchina speciale. Egli aveva sviluppato e verificato un chip che provava 50 milioni di codici DES al secondo, fino a trovare quello giusto. Sebbene fino ad ora egli si sia astenuto dal produrre il componente in serie, può ottenerne la produzione per 10.50 $ al pezzo, e può inserirne 57000 in una macchina speciale con un costo di 1 milione di dollari. Questa macchina può provare tutte le chiavi DES in 7 ore, ottenendo la soluzione mediamente in 3,5 ore. Si può stornare e nascondere 1 milione di dollari dal budget di molte società. Spendendo 10 milioni di dollari la soluzione è ottenuta in 21 minuti, e 100 milioni di dollari assicurano un tempo di 2 soli minuti. Avendo a disposizione il budget di un qualunque governo per esaminare il traffico DES, il codice può essere violato in alcuni secondi. Tutto questo significa che il DES a 56 bits ormai è morto per ciò che riguarda le applicazioni serie di sicurezza dei dati.Un possibile successore del DES potrebbe essere una variazione conosciuta come "triplo DES", che usa due chiavi DES per cifrare tre volte , raggiungendo una lunghezza effettiva della chiave di 112 bits. Questo sistema è però tre volte più lento del DES normale.
PGP usa una combinazione di diversi algoritmi, nella fattispecie RSA (crittografia a chiave singola), IDEA (crittografia a chiave pubblica, vedi più avanti) e MD5 (funzione di hash crittografico, cioè di verifica della firma). Le routines MD5 sono state sviluppate e rese di pubblico dominio da Ron Rivest. Per le persone crittograficamente curiose, la cifratura IDEA utilizza blocchi di 64 bits per il testo sia in chiaro che cifrato. Essa utilizza una chiave di 128 bits. È basata sulla filosofia della miscelazione di operazioni da diversi gruppi algebrici. È molto più veloce del DES e, come il DES, può essere usata in modo CFB (cipher feedback) o CBC (cipher block chaining). PGP usa l'IDEA in modo CFB a 64 bits.
La cifratura a blocchi IPES/IDEA è stata sviluppata all'ETH di Zurigo da James L. Massey e Xuejia Lai, e pubblicata nel 1990. Non è un algoritmo "casalingo". I suoi progettisti hanno un'ottima reputazione nella comunità dei crittografi. I primi documenti pubblicati chiamavano l'algoritmo IPES (Improved Proposed Encryption Standard), ma più tardi il nome è stato cambiato in IDEA (International Data Encryption Algorithm). Fino ad ora, IDEA ha resistito agli attacchi molto meglio di altri algoritmi come FEAL, REDOC-II, LOKI, Snefru e Khafre. Prove recenti fanno ritenere che l'IDEA sia anche più resistente del DES agli attacchi portati da Biham e Shamir con la loro efficientissima criptoanalisi differenziale. Biham e Shamir hanno esaminato a fondo l'IDEA per trovare debolezze, senza successo. Gruppi accademici di criptoanalisti in Belgio, Inghilterra e Germania stanno cercando di attaccare l'IDEA, così come i servizi militari di diversi Paesi. Man mano che questo nuovo algoritmo attira le attenzioni e gli sforzi dei più formidabili gruppi del mondo della criptoanalisi, la fiducia in esso cresce col passare del tempo.
Cos'è la Crittografia a chiave pubblica
Cos'è il PGP
PGP è stato creato da Phil Zimmermann il quale ha messo a libera disposizione sia il programma compilato sia i sorgenti, cosicchè chiunque può visionare ed eventualmente modificare (se ne è in grado e previa autorizzazione di Zimmermann stesso) il codice di PGP. L'uso di PGP è pertanto gratuito per un uso privato e non soggetto a nessuna forma di registrazione.
Il file è liberamente scaricabile da Internet e per l'installazione basta seguire le indicazioni riportate nella pagina installazione di questa guida.
Ritorno alla Home Page