LA CRITTOGRAFIA La crittografia è un metodo di scrittura segreta composto di un messaggio originario, detto “testo in chiaro”, di una sua codifica, detta “testo cifrato”, che permette di nascondere il contenuto dello stesso ai non autorizzati, e di essere letto solo dai destinatari finali. Il testo cifrato viene manipolato da un algoritmo di crittazione che restituisce il messaggio in chiaro La crittografia Testo in chiaro Cifratura T esto cifrato Testo in chiaro Decifrazione Processo elementare del metodo crittografico La crittografia La segretezza del messaggio non dipende necessariamente dalla segretezza dell’algoritmo utilizzato. Dato che gli algoritmi segreti non sono sottoposti a revisioni accurate da parte della comunità dei crittografi, alcune debolezze, apparentemente superficiali, possono rimanere nascoste. La chiave è una stringa di bit che controlla il risultato di un algoritmo; ad ogni chiave corrisponde un messaggio diverso. Sono le chiavi che devono essere segrete non gli algoritmi. La segretezza del messaggio Messaggio In Chiaro Algoritmo Di Crittazione Messaggio Cifrato Meccanismo di ottenimento del messaggio cifrato La crittografia Le funzioni di codifica e decodifica sono basate su complesse teorie matematiche. La scienza che studia in generale le scritture segrete si chiama crittologia; essa si divide in: Crittografia (scienza che studia i sistemi di protezione dei messaggi); Crittanalisi (scienza che studia i sistemi di violazione dei messaggi cifrati). La crittografia I metodi crittanalitici più usati sono di tipo statistico, cioè basati sullo studio della distribuzione delle frequenze delle lettere, o dei digrammi e trigrammi, (nella lingua italiana i digrammi sono, ad esempio,: la, da, se, ma; i trigrammi sono, ad esempio: che, non, per che presenta la lingua con cui è stato cifrato il testo. Istogramma tridimensionale della distribuzione delle frequenze delle lettere nella lingua italiana La crittografia Il termine crittologia non viene più utilizzato e, si parla quasi esclusivamente di crittografia. Lo sviluppo di questa scienza è dovuto alla continua lotta tra crittografi e crittanalisti: i primi sempre alla ricerca di nuovi e più sicuri sistemi di protezione dei messaggi, i secondi sempre alla costante ricerca di sistemi per violarli. Un’altra precisazione riguarda l’applicazione della crittografia al messaggio in chiaro e a quello cifrato. La crittografia L’applicazione della crittografia al messaggio in chiaro, consiste nella cifratura del testo, e non come generalmente si dice “una crittazione”, mentre nell’applicare la crittografia al messaggio cifrato si effettua una decifrazione (se compiuta dal legittimo destinatario), oppure una decrittazione (se compiuta da terzi illegittimi). Storia della crittografia Sin da quando l’uomo ha imparato a comunicare con i suoi simili, ha sviluppato l’esigenza di indirizzare comunicazioni a determinati destinatari. In epoche dominate dalla comunicazione orale, questa esigenza era facilmente soddisfatta: i due soggetti comunicanti si individuavano facilmente. Successivamente con la comunicazione scritta, le cose si sono complicate: il messaggio divenne una realtà oggettiva diversa da chi lo scriveva, da qui l’esigenza di nasconderlo ai non destinatari e quindi la comparsa di rudimentali forme di crittografia. Tecnica evolutasi in Occidente, soprattutto dal Rinascimento in poi, grazie alle fiorenti attività commerciali e diplomatiche di quel periodo. Storia della crittografia Oggi il suo ruolo è diverso: è un mezzo di certezza e valenza legale delle trasmissioni informatiche. Nel corso della storia è facile rintracciare molti casi in cui la crittografia è stata usata per comunicazioni segrete, tra queste, famoso è il sistema utilizzato da Giulio Cesare. Per comunicare con i capi militari l’imperatore romano scambiava ogni lettera del messaggio in chiaro con quella che si trovava più avanti nell’alfabeto di un certo numero di posizioni. Ecco riportato un esempio: “ATTACCATE IL NEMICO ORA” diventerebbe, applicando la regola di sostituzione di tre lettere in avanti rispetto a quelle del messaggio: “DZZDFFDZH NO QHPNFR RUD” Storia della crittografia La chiave di questo sistema era composta da una sola lettera (quella da sostituire alla lettera A), da cui il nome di sistema monoalfabetico, questo sistema, ammette, quindi, venticinque chiavi, tante quante sono le possibilità offerte dall’alfabeto escludendo la lettera stessa (ABCDEFGHJKILMNOPQRSTUVWXYZ). È facile notare la vulnerabilità intrinseca di questo sistema: con un attacco di forza bruta si troverebbe subito la chiave sfruttando, venticinque possibilità al massimo. Questa semplice procedura utilizzata da Cesare, a quel tempo era molto efficace, oggi risulta troppo intuitiva, Storia della crittografia Testo in chiaro (nell’esempio “ATTACCATE IL NEMICO ORA”); Algoritmo di cifratura, cioè la regola con la quale si definisce la sostituzione dei caratteri del messaggio (nell’esempio sostituzione di ogni lettera del messaggio con una più avanti nell’alfabeto); Chiave, cioè l’informazione che fa funzionare l’algoritmo (nell’esempio tre lettere dopo la lettera); Testo cifrato (nell’esempio “DZZDFFDZH NO QHPNFR RUD”). Storia della crittografia Il semplice sistema cifrato utilizzato da Cesare dava origine a diverse varianti, largamente utilizzate nei secoli successivi, che col passare del tempo si sono rivelate inadeguate. Il passo successivo al cifrario di Cesare fu la sostituzione monoalfabetica: le lettere erano indipendenti l’un l’altra; la scoperta di una lettera non dava informazioni sull’identità delle altre e il cifrario non veniva scoperto. Un attacco di forza bruta era improponibile, quindi apparentemente era il sistema più sicuro. Purtroppo la sicurezza di un cifrario non risiede solo nell’elevato numero di chiavi che esso ammette! Il punto debole dei cifrari a sostituzione monoalfabetica è la troppo stretta correlazione tra alfabeto chiaro e Storia della crittografia Nel 1466 un architetto e letterato Leon Battista Alberti, anche abile crittologo, descriveva in un suo piccolo trattato i principali metodi di cifratura conosciuti a quell’epoca e introduceva un nuovo sistema che prevedeva la modifica periodica della chiave. Era il primo formale attacco agli inviolabili cifrari a sostituzione monoalfabetica. Alberti partiva dall’assunto che in un normale testo di senso compiuto le lettere non compaiono con uguale frequenza, questa distribuzione statistica è funzione dell’idioma considerato. Storia della crittografia Da questo concetto partivano sistemi di decrittazione basati sul riconoscimento delle lettere in base alla loro frequenza nel messaggio cifrato, poi basati sull’analisi delle distribuzioni statistiche di coppie di lettere. Era un metodo sicuramente più sicuro, ma anche più difficile da applicare: a quel tempo non c’erano calcolatori capaci di crittare i dati! Per semplificarne l’utilizzo, l’architetto Alberti, inventava così un dispositivo di cifratura composto di due dischi sovrapposti, su ognuno dei quali erano incise in circolo le lettere dell’alfabeto. Il disco superiore ruotava, quindi allineando correttamente i dischi si trovavano rapidamente le corrispondenze delle varie lettere per una determinata chiave. Sistema di cifratura di Alberti 1466 Storia della crittografia Questo sistema era rivoluzionario, ma il suo ideatore non riuscì a sfruttare a pieno le sue potenzialità. Ci riuscì un secolo dopo Blase de Vigenère che, a partire dal lavoro di Alberti, creò un sistema di codifica così efficace che per molto tempo fu chiamato il cifrario indecifrabile. Si trattava del primo esempio di cifrario a sostituzione polialfabetica, una risposta rinascimentale ai troppo vulnerabili sistemi monoalfabetici. Questo sistema si basava su una tabella contenente tutti i possibili alfabeti di cifratura a 26 caratteri; alla stessa lettera del testo in chiaro corrispondevano lettere diverse nel testo cifrato e viceversa. Storia della crittografia La forza di questo sistema era garantito dall’enorme numero di chiavi possibili, per 300 anni nessuno era riuscito ad attaccarlo; solo nel 1863 Friederich W. Kasiski, ufficiale dell’esercito prussiano, trovava un metodo per decrittarlo. Partì dal principio che in molti crittogrammi dell’epoca si ripetevano gruppi di lettere, relazionando queste ripetizioni alle lunghezze delle chiavi, arrivò tramite complessi calcoli alla loro reale lunghezza, componendo il cifrario polialfabetico nelle sue componenti monoalfabetiche, facili da decrittare separatamente. Dal lavoro di questo ufficiale derivò la conferma teorica della convinzione empirica dei crittologi del Sei-Settecento che le chiavi lunghe generassero crittogrammi più sicuri. Una chiave lunga viene ripetuta un minor numero di volte nella cifratura rispetto a chiavi corte, dando meno adito a coincidenze utilizzate per la decrittazione! Storia della crittografia Successivamente al periodo classico, iniziò il periodo moderno, contraddistinto dall’introduzione di mezzi di comunicazione a distanza quali telegrafo e radio, e quindi anche da nuovi studi e applicazioni dei sistemi di cifratura. Furono costruite nuove macchine cifranti automatiche, che diedero vita ad una nuova disciplina: la crittografia automatica. La crittografia moderna non ha risolto tutte le problematiche del settore; la crescente potenza di calcolo dei computer favorisce sia crittologi che crittanalisti! Nel 1917 Gilbert Vernam, un impiegato della compagnia telefonica americana AT&T, inventò un ingegnoso sistema crittografico di protezione dei testi codificati in codice Baudot. Storia della crittografia Questo codice era stato inventato nel 1870 dal francese Emile Baudot, usato ampiamente nei decenni successivi per le comunicazioni telegrafiche e soprattutto per le telescriventi. Si trattava di un codice di 32 caratteri che in qualche modo precorreva gli attuali codici informatici come il codice ASCII. Ogni carattere era infatti codificato con 5 bit, o cifre binarie 0, 1, con un totale di 25 = 32 caratteri possibili. Il sistema di Vernam era composto di un dispositivo che leggeva contemporaneamente due nastri in ingresso e, creava da questi un nastro in uscita, idea che è stata la base di numerosi sistemi di cifratura moderni. In ogni posizione del nastro in uscita c’era un foro, se e solo se le corrispondenti posizioni nei due nastri in entrata erano diverse tra loro (una aveva il foro, l’altra no), in caso contrario non c’era alcun foro. Il metodo di Vernam costituiva un sistema crittografico simmetrico, in cui la stessa operazione e la stessa chiave Storia della crittografia Questo sistema di nastri è molto interessante perché implementa un modello ideale di cifratura, in cui la sicurezza del metodo dipende esclusivamente dalla segretezza della chiave e non da quella del metodo stesso! Contemporaneamente all’idea di Vernam comparivano altre macchine cifranti, basate su principi meccanici o elettromeccanici: le macchine a rotori. Il loro funzionamento concettualmente era molto semplice: una catena di dischi mobili (i rotori) fissati su un’asse comune, affacciati l’un l’altro, ciascuno provvisto su entrambi i lati di contatti elettrici. Ad ogni contatto corrispondeva un carattere dell’alfabeto utilizzato per i messaggi; una sorta di sistema di Vigenère automatico. Storia della crittografia Queste macchine trovarono largo uso nelle guerre mondiali soprattutto grazie a: Completa automatizzazione del procedimento di cifratura; Semplicità della modifica della chiave di cifratura; Semplicità della modifica della macchina per supportare famiglie di chiavi diverse. Tra queste una delle più famose è Enigma, macchina a rotori, inventata nel 1918 dal tedesco Arthur Scherbius e adottata dall'esercito e dalla marina tedesca fino alla seconda guerra mondiale. Storia della crittografia Era una macchina simmetrica, nel senso che se la lettera A era cifrata con la G in una certa posizione del testo, allora nella stessa posizione la G era cifrata con la A. La stessa macchina serviva quindi per cifrare e decifrare; una grossa comodità operativa che si rivelava però anche una debolezza crittografica. La chiave dell'Enigma era la disposizione iniziale dei rotori; questa chiave veniva cambiata ogni 24 ore secondo una regola prefissata; in definitiva la vera chiave segreta era questa regola. Anche i collegamenti interni dei rotori erano segreti; inoltre i tre (o più) rotori potevano essere scambiati tra di loro. Storia della crittografia Macchina Enigma aperta Macchina Enigma Storia della crittografia Un attacco verso Enigma poteva richiedere secoli di tentativi, un periodo talmente lungo che le informazioni scoperte non sarebbero state più valide. Purtroppo i tedeschi, certi dell’inviolabilità del loro sistema, commisero degli errori di procedura che resero vulnerabile Enigma. Gli inglesi, sfruttando questa falla, riunirono ad Oxford e Cambridge geni matematici ed altri personaggi di eterogenea formazione culturale come linguisti, esperti di spionaggio ed esperti di codici Morse, capitanati dal matematico Alan Turing, per decrittare i messaggi dei tedeschi. Crittografia attuale Nel dopoguerra, con la nascita dell’informatica, cominciarono ad essere progettati algoritmi adatti all’implementazione tramite computer. L’uso dei computer consentì di usare chiavi d’enormi dimensioni a tutto vantaggio di uno standard di sicurezza elevato. Nel 1949 Claude Shannon padre della Teoria dell'Informazione, dimostrò che ogni cifrario "teoricamente sicuro" era un cifrario di Vernam (e viceversa). Infatti se la chiave è totalmente casuale e lunga come il testo allora il testo cifrato non contiene alcuna informazione sul testo in chiaro, ed è del tutto al sicuro dagli attacchi della crittanalisi statistica. Crittografia attuale Shannon pubblicò un articolo che sanciva l’ingresso della crittografia nella Teoria dell’Informazione, segnando la nascita della crittografia contemporanea. Negli anni Sessanta, dopo il diffondersi delle prime reti di computer, gli studi sulla crittografia come scienza formale ottennero un forte impulso che portò: Al primo sistema crittografico certificato e standardizzato a livello internazionale DES; Alla scoperta di sistemi di cifratura a chiave asimmetrica che hanno creato la crittografia a chiave pubblica e i meccanismi di firma digitale, l’RSA. Crittografia attuale L’uso del computer consente di realizzare cifrari estremamente complessi, impossibili da costruire per via elettromeccanica, ma mette a disposizione dei crittoanalisti un valido mezzo per effettuare approfondite analisi dei dati cifrati, tanto da scoprirne le minime debolezze da sfruttare per un attacco decrittante! Sulla scia di questa breve storia è facile capire perché i governi di tutto il mondo hanno sempre considerato la crittografia come un’arma militare cruciale. Negli Stati Uniti fino al 1996 le restrizioni sull’esportazione della crittografia erano in mano al Dipartimento di Stato. Alla base c’era un principio militare molto semplice: se l’America avesse controllato la diffusione della crittografia, avrebbe mantenuto un gran vantaggio rispetto agli altri paesi nei successivi conflitti militari. Crittografia attuale Lunghi periodi di proteste da parte delle aziende che volevano espandere i propri prodotti oltreoceano, fecero passare la gestione delle importazioni/esportazioni della crittografia nelle mani del Dipartimento del Commercio, attento alle esigenze degli operatori economici. Crittografia attuale Sistemi di cifratura, vantaggi e svantaggi Esistono svariati metodi crittografici e farne una classificazione può risultare utile ai fini di una migliore comprensione: Per sostituzione (monoalfabetica o sostituzione semplice); Per trasposizione o permutazione; In successione; A blocchi; Chiavi simmetriche; Chiavi asimmetriche. Crittografia attuale I sistemi di crittografia per sostituzione consistono nel nascondere le lettere del testo in chiaro, mentre più sostituzioni disperdono le lettere con alta frequenza per impedire o ostacolare la determinazione dell’algoritmo di sostituzione (confusione). La cifratura di Cesare, di Vigenère, di Vernam appartengono a questa tipologia. Nei sistemi per trasposizione le lettere del testo in chiaro vengono riorganizzate, si produce diffusione spargendo le informazioni del messaggio o della chiave nel testo cifrato. In questo modo si cerca di impedire l’analisi dei caratteri adiacenti. Crittografia attuale Un esempio di questo tipo è la trasposizione colonnare: riorganizzazione dei caratteri del testo in chiaro, in colonne. Ecco di seguito riportato un esempio di trasposizione a cinque colonne, dove ogni riga contiene cinque elementi del testo in chiaro organizzate come segue: c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11……… cn Crittografia attuale A seguito dell’applicazione della trasposizione colonnare il testo risultante viene ottenuto leggendo le colonne dall’alto verso il basso: c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11……….cn Crittografia attuale Nel caso in cui la lunghezza del messaggio non è un multiplo della lunghezza di una riga, le ultime righe saranno più corte di una o più lettere. I sistemi di cifratura in successione convertono un simbolo del testo in chiaro in un corrispondente simbolo del testo cifrato (ad eccezione del sistema colonnare tutti gli altri sistemi citati in questo paragrafo appartengono a questa categoria). La trasposizione dipende dal simbolo, dalla chiave e dalle informazioni di controllo dell’algoritmo. Nei sistemi a blocchi viene cifrato un gruppo di simboli del testo in chiaro come un blocco (cifratura per trasposizione colonnare). Per esempio la parola “camera” sarà scomposta in “ca me ra” e verranno poi cifrate le singole sillabe. Crittografia attuale Sia la crittografia in successione che la crittografia a blocchi presentano vantaggi e svantaggi, che riportiamo per meglio confrontare le due metodologie di sicurezza informatica. Vantaggi della crittografia in successione: Velocità di trasformazione (il tempo della crittografia del simbolo dipende solo dall’algoritmo); Bassa presenza di errori (dato che la cifratura dei simboli è indipendente tra loro, un errore influisce solo sul singolo carattere). Svantaggi della crittografia in successione: Bassa diffusione (dato che la cifratura dei simboli è indipendente tra questi, tutte le informazioni del singolo simbolo sono racchiuse in un simbolo del testo cifrato); Crittografia attuale Suscettibilità a modifiche e inserimenti maligni (un hacker che ha violato il codice può unire pezzi di messaggi precedenti e trasmettere un falso messaggio spacciandolo per vero). Vantaggi della crittografia a blocchi: Alta diffusione (le informazioni di testo in chiaro sono diffuse in vari simboli di testo cifrato); Immunità all’inserimento di singoli simboli nel blocco. Svantaggi della crittografia a blocchi: Lentezza della crittografia; Propagazione degli errori. Crittografia attuale Sono stati precedentemente citati due concetti molto importanti della crittografia dei quali è necessaria una breve specifica: Confusione; Diffusione. Per “confusione” s’intende l’incapacità da parte dell’hacker di prevedere cosa accadrà al testo cifrato se venisse cambiato un simbolo nel testo in chiaro. Un algoritmo capace di creare una tale confusione determina una complessa relazione tra il teso in chiaro, le chiavi e il testo cifrato (un sistema a blocchi offre una valida confusione). La “diffusione” invece è la capacità di distribuire le informazioni dei singoli simboli del testo in chiaro nell’intero testo cifrato; in questo modo l’hacker per scoprire l’algoritmo ha bisogno di molto testo cifrato. Crittografia simmetrica e asimmetrica La forma più semplice di crittazione è la crittografia simmetrica o a chiave segreta; il messaggio viene codificato e decodificato con un’unica chiave. Sia il mittente che il destinatario hanno la stessa chiave (chiave condivisa o simmetrica) che entrambi devono conoscere. 1. 2. 3. L’operatore A deve inviare un messaggio riservato all’operatore B; L’operatore A codifica il messaggio tramite chiave segreta; L’operatore B decodifica il messaggio con la stessa chiave segreta. Esempio di crittografia simmetrica Crittografia attuale Per diversi anni la forma di crittografia simmetrica più conosciuta è stata il Data Encryption Standard (DES). Si tratta di un prodotto dell’IBM, divenuto, alla fine degli anni Settanta, lo standard del governo americano. Il DES era stato progettato per consentire la cifratura in tempo reale di un flusso di dati in transito su una linea di comunicazione. La chiave usata per cifrare è un blocco di 64 bit; l’ultimo bit di ogni sottogruppo è di controllo quindi la chiave è di solo 56 bit. Si tratta di un cifrario composto, costituito da una successione di trasformazioni elementari, alternate secondo schemi prestabiliti e iterate più volte; tali da sottoporre i bit del blocco iniziale a un totale rimescolamento che dipende dai bit della chiave. Crittografia attuale Nello specifico, il testo da cifrare viene suddiviso in blocchi da 64 bit, ma se uno di essi non raggiunge tale lunghezza, si utilizza un procedimento detto “pad”. Il primo passo dell’algoritmo DES è una permutazione iniziale che riordina i 64 bit di ogni blocco di input, in seguito divide i blocchi in due parti di 32 bit, mischiando ogni parte indipendentemente dall’altra, combina la chiave con una metà e scambia le due metà. La chiave scorre verso sinistra di un certo numero di bit e viene permutata, poi combinata con la metà destra, a sua volta successivamente combinata con la metà sinistra. Alla fine di queste combinazioni si ottiene la nuova parte destra, mentre la vecchia metà destra diventa la nuova metà sinistra. Il tutto viene ripetuto per 16 cicli (round) e alla fine si fa una permutazione finale che restituisce l’inverso di quella iniziale. Di seguito è rappresentato graficamente il funzionamento dell’algoritmo DES per 16 cicli: Rappresentazione grafica dei 16 cicli dell’algoritmo DES Rappresentazione grafica dei 16 cicli dell’algoritmo DES Crittografia attuale La sicurezza che questo sistema garantisce oggi, non è più di alto livello. La caduta di questo algoritmo risale al 1998 quando venne costruito, in meno di un anno, un calcolatore capace di forzare in circa sessanta ore un messaggio cifrato con il DES. Le prime critiche mosse al DES si basavano sulla scarsa lunghezza della chiave, che permetteva un attacco di forza bruta. Una sua evoluzione, chiamata DES triplo, comporta la cifratura del testo in chiaro con una chiave, la decifrazione con un’altra e una nuova cifratura con la prima. La decifrazione cancella la prima cifratura, quindi il risultato finale è un’unica cifratura. L’unica miglioria apportata da questo algoritmo è il fatto di aver raddoppiato la lunghezza effettiva della chiave. Algoritmo di cifratura del triplo DES Crittografia attuale Nonostante ciò, il DES è stato per circa venti anni il principale sistema crittografico mondiale usato nelle transazioni civili. Nel 1995 iniziarono i primi studi per la ricerca di un nuovo algoritmo di crittografia più potente, dai quali nacque l’algoritmo AES (Advanced Encryption Standard) anch’esso simmetrico. Confronto tra l'algoritmo DES e l'algoritmo AES DES AES Data 1976 1999 Dimensione dei blocchi 64 bit 128 bit Lunghezza della chiave 56 bit effettivi Primitive di crittografia Primitive crittografiche Origine 128, 196, 256 bit… Sostituzione, Permutazione Sostituzione, Scorrimento, Mescolamento dei bit Confusione, Diffusione Confusione, Diffusione IBM Crittografi Indipendenti Crittografia attuale Esempio di crittografia asimmetrica All’opposto si trova la crittografia asimmetrica (a chiave pubblica) che, invece di utilizzare un’unica chiave per la codifica e decodifica, prevede due chiavi distinte. Ciascuna può essere utilizzata per codifica e decodifica, basta ricordare che qualunque operazione si fa con una chiave può essere annullata solo con l’altra. Crittografia attuale 1. 2. 3. 4. L’operatore A vuole essere sicuro che solo l’operatore B possa leggere il messaggio segreto; L’operatore B rende nota la sua chiave pubblica; L’operatore A codifica il messaggio utilizzando la chiave pubblica dell’operatore B; L’operatore B decodifica il messaggio utilizzando la sua chiave privata. Crittografia attuale Questo sistema nacque nel 1975 ad opera di Whitfield Diffide e Martin Hellman che risolsero così il problema della comunicazione sicura della chiave. Ogni persona coinvolta nella comunicazione possiede una coppia di chiavi, create attraverso un processo matematico in modo da risultare legate e da non poter essere ricavate l’una dall’altra. Una delle due chiavi, quella pubblica, si usa per cifrare il messaggio, l’altra, quella privata quindi segreta, serve per decifrarlo. La chiave pubblica può essere comunicata in anticipo a chiunque, dato che non serve per decifrare il messaggio, e la si può pubblicare su un elenco per facilitarne il reperimento. Crittografia attuale Per mandare un messaggio cifrato è sufficiente avere la chiave pubblica del destinatario del messaggio, cifrare il messaggio con questa, inviarlo, sapendo con certezza che solo il destinatario è in possesso della chiave per decifrare il messaggio ricevuto. Visto che il messaggio viene cifrato con la chiave del destinatario e non con quella del mittente, se i destinatari sono un gruppo di persone, bisogna cifrare il messaggio tante volte quante sono le persone, ogni volta con una chiave diversa. Per capire meglio come funziona la codifica e la decodifica con la chiave pubblica si riporta il seguente esempio Crittografia attuale L’operatore A del reparto clienti di un’azienda, deve comunicare all’operatore B, del reparto vendite, il numero di conto corrente di un cliente molto importante (867-5309). L’operatore B calcola una coppia di chiavi asimmetriche con una relazione matematica di complementarietà, stabilendo che una delle due chiavi è 1234567. Le funzioni di codifica e decodifica sono basate sull’aritmetica in modulo 10 (si sommano due cifre, si divide il risultato per 10, si considera solo il resto). Crittografia attuale quindi in aritmetica in modulo 10, 5+7 è uguale a 2. 5+7=12 e 12/10=1 con il resto di 2 quindi in aritmetica in modulo 10, 5+7 è uguale a 2. Crittografia attuale L’operatore A potrebbe cifrare il messaggio utilizzando un banale algoritmo che preveda la somma di due cifre in modulo 10: 8675309 + (messaggio segreto dell’operatore A) 1234567 = (chiave pubblica dell’operatore B) 9809866 (messaggio crittato in modulo 10) Crittografia attuale L’operatore B deve decifrare il messaggio utilizzando lo stesso algoritmo, con la chiave complementare: 9809866 + (messaggio crittato) 9876543 = (chiave privata dell’operatore B) 8675309 (messaggio segreto originale in mod. 10) Crittografia attuale Sommando in modulo 10 la chiave pubblica con quella privata dell’operatore B, in aritmetica in modulo 10, si deve ottenere 0. Le chiavi sono state scelte in modo da essere complementari a 10 l’una con l’altra: 1234567 + (chiave pubblica dell’operatore B) 9876543 = (chiave privata dell’operatore B) 0000000 (somma in modulo 10) Crittografia attuale L’invenzione di Diffide e Hellman ha rivoluzionato la crittografia, risolvendo il problema della comunicazione delle chiavi, e creando il problema della loro gestione, in seguito affidata ai computer. Questo sistema ha altri due lati positivi. Consideriamo un’azienda che, in una situazione di bilancio delicata, decida di chiedere un fido bancario. L’ente creditizio, ammesso che sia disposto a concedere il fido, vorrà essere sicuro che la richiesta provenga dalla suddetta azienda e non da un truffatore (problema d’autenticazione) e che il messaggio non sia stato manomesso (problema dell’integrità dei dati). Entrambi gli ostacoli possono essere superati dalla crittografia pubblica: con la firma digitale, risultato di un calcolo matematico applicato al contenuto informativo del documento, quindi associata ad esso. Crittografia attuale A tal proposito si deve considerare che il ruolo di chiave pubblica e privata può essere scambiato. Cifrare un messaggio con la propria chiave privata è come apporre una firma in fondo ad un documento: chi riceve tale messaggio può essere sicuro dell’autenticità del mittente e dell’integrità dei dati. Un hacker che voglia danneggiare una simile comunicazione dovrebbe decifrare il messaggio, modificarlo, cifrarlo di nuovo con la chiave privata del mittente. Operazioni fattibili, ma improbabili se la chiave è ben custodita. Crittografia attuale A garanzia dell’autenticità e dell’integrità del messaggio, viene applicata la tecnica detta “hashing”: funzione matematica generatrice di un’impronta digitale del messaggio, detta digest, che converte testo di qualunque dimensione in una stringa binaria di lunghezza fissa, generalmente 128 o 160 bit, molto più breve del documento stesso. La funzione hash deve essere: Unidirezionale (dato il valore dell’impronta è impossibile risalire al testo corrispondente); Priva di collisioni (è impossibile che due testi abbiano la stessa impronta, se il testo cambia anche di una virgola avrà una nuova impronta). Crittografia Asimmetrica: Ogni coppia di chiavi viene creata attraverso un procedimento matematico (algoritmo RSA) in modo da risultare legate e da non poter essere ricavate l’una dall’altra. I sistemi di cifratura a chiave asimmetrica hanno creato i meccanismi di firma digitale: cifrare un messaggio con la propria chiave privata equivale ad apporre una firma ad un documento Firma Digitale Di seguito si presenta una rappresentazione grafica, ai fini di una più chiara comprensione del funzionamento ed applicazione della firma digitale nello scambio di dati tra due operatori, tramite “la tecnica dell’hashing”: pplicazione di crittografia asimmetrica e firma digitale al documento Firma Digitale 1. A calcola un valore di digest per il messaggio; A cifra il digest con la sua chiave privata (firma digitale); 2. 3. 4. A invia il messaggio e il digest crittati; B decifra il digest utilizzando la chiave pubblica dell’operatore A; B calcola il digest del messaggio ricevuto; 5. 6. B confronta il digest calcolato con quello ricevuto. Firma Digitale Al fine di garantire l’autenticità del mittente, la riservatezza e l’integrità del messaggio, è sufficiente utilizzare le due coppie di chiavi dei due operatori. L’operatore A cifra il messaggio con la chiave pubblica di B e cifra l’hash con la propria chiave privata. A questo punto tutti i tre criteri (autenticità, riservatezza e integrità) saranno soddisfatti. Firma Digitale Ecco elencate alcune caratteristiche della firma digitale: La firma digitale è separata dal documento a cui si riferisce, non lo modifica, può essere memorizzata in un file differente; Dipendendo dal contenuto del documento, la firma è differente da documento a documento, ognuna vale solo per il documento a cui si riferisce; La firma digitale può essere verificata da chiunque in modo certo e ripetibile, se il calcolo torna la firma è valida e si riferisce al documento dato; Rivela eventuali modifiche al testo originale apportate dopo la firma. Ogni minima modifica al testo originale genera un calcolo diverso che non coincide con quello originario, quindi ogni successiva verifica dà esito negativo; Non può essere ripudiata. Firma Digitale Dato che la firma stessa non è falsificabile o imitabile, non può essere generata da nessun altro all’infuori del legittimo proprietario della chiave crittografica utilizzata nel calcolo. Come fa l’operatore B ad essere sicuro che la chiave pubblica contenuta nel messaggio sia realmente quella dell’operatore A? La soluzione a questo quesito è giuridicamente offerta dall’introduzione di un terzo soggetto garante della legittimità della chiave pubblica, che firma digitalmente la certificazione: “l’Autorità di certificazione” (autorità preposta e riconosciuta per tali compiti, una terza parte di cui gli operatori si fidano e che conosce la chiave pubblica). Visto che l’operatore B conosce la chiave pubblica dell’autorità di certificazione, può effettuare il controllo di integrità sul certificato, dell’operatore A, esaminando la firma digitale dell’autorità. Esempio di utilizzo dei certificati digitali Firma Digitale L’operatore A richiede un certificato digitale; 1. L’autorità verifica l’identità dell’operatore A; 2. 3. L’operatore A riceve un certificato firmato digitalmente dall’autorità; L’operatore A invia il proprio certificato all’operatore B; 4. 5. L’operatore B verifica l’autenticità del certificato esaminando la firma digitale dell’autorità. Firma Digitale Purtroppo a livello d’implementazione la crittografia asimmetrica pesa da 10 a 100 volte di più, a livello computazionale, della crittografia simmetrica. Per questo è possibile effettuare dei compromessi tra gli svantaggi e i vantaggi dei due sistemi crittografici, con chiavi relativamente limitate rispetto ai contenuti dei messaggi, che riducono al minimo il rallentamento del sistema asimmetrico. Alcune delle più note funzioni di questo tipo sono il DES o triplo DES per codificare il contenuto del messaggio e la cifratura RSA (dal nome dei suoi inventori Riverst, Shamir e Adleman nel 1977, come già descritto) per la diffusione delle chiavi simmetriche. Applicazione di DES e RSA per cifrare il messaggio e scambiare le chiavi Firma Digitale 1. 2. 3. 4. 5. Creazione della chiave simmetrica; Utilizzo della chiave simmetrica per crittate il messaggio; Creazione della chiave asimmetrica; Utilizzo della chiave asimmetrica per la crittazione della chiave simmetrica; Invio della chiave simmetrica crittata insieme al messaggio crittato. Firma Digitale Viste le innumerevoli applicazioni offerte sia dalla crittografia simmetrica che asimmetrica, per avere ben chiara la distinzione e le peculiarità che caratterizzano le due tipologie citate, ecco un breve schema riassuntivo: Confronto tra crittografia simmetrica e crittografia asimmetrica Chiave segreta simmetrica Chiave pubblica asimmetrica Nr. di chiavi 1 2 Protezione della chiave Deve essere tenuta segreta Una chiave è segreta l'altra no Utilizzi Segretezza e d’integrità dei dati; singoli caratteri in blocchi di dati, messaggi, file Scambio delle chiavi; autenticazione (attività specializzate in funzione della lentezza) Deve avvenire singolarmente La chiave pubblica può servire per distribuire altre chiavi Rapida Lenta Distribuzione della chiave Velocità Crittografia e sicurezza Sapersi districare nella scelta tra le varie tecniche di cifratura offerte non è cosa tanto semplice, capire il livello di sicurezza che si richiede alla crittografia altrettanto. Cosa si intende per cifratura valida? Come si è certi della sicurezza garantita da un determinato sistema? C. Shannon identifica alcune delle caratteristiche che rendono un sistema di cifratura valido: La quantità di segretezza necessaria deve determinare la quantità di lavoro necessaria per la crittografia e la decifrazione; Crittografia e sicurezza L’insieme delle chiavi e l’algoritmo di cifratura, devono essere privi di complessità che impedirebbe l’utilizzo del sistema; L’implementazione del processo dovrebbe essere semplice; Gli errori nella cifratura non dovrebbero propagarsi e provocare il danneggiamento di altre informazioni nel messaggio; La dimensione del testo cifrato non dovrebbe essere superiore a quella del testo del messaggio originale. Crittografia e sicurezza Il ruolo della crittografia è proprio quello di garantire l’esatta provenienza dei messaggi, la sua integrità di contenuto e la sicurezza del canale di trasmissione. La crittografia si è trasformata da strumento di segretezza nelle mani di pochi, a veicolo di certezza e diritto per ogni individuo. Da qui l’applicazione di speciali metodologie crittografiche, come la firma digitale, per l’autenticazione e certificazione dei Crittografia e sicurezza La tutela delle informazioni, la sicurezza informatica, la valenza legale dei contratti per via informatica, sono tutti aspetti di una stessa medaglia. Ecco perché chi sceglie la crittografia, come mezzo di certificazione e sicurezza delle informazioni, si chiede costantemente quale grado di protezione abbiano i messaggi crittati. Numerosi sono i fattori che concorrono a definire il livello di sicurezza, di seguito sono riportati alcuni dei più importanti: Forza dell’algoritmo scelto; Casualità delle chiavi utilizzate; Durata di vita delle chiavi; Sicurezza delle chiavi private; Lunghezza delle chiavi.77 Crittografia e sicurezza Infatti, debolezze intrinseche nell’algoritmo di cifratura rendono insicure alcune scelte, mettendo in evidenza, nel messaggio cifrato, ripetizioni riconoscibili da un hacker. Dopo pochi tentativi l’hacker sarebbe in grado di tirar giù uno schema di decrittazione, il tutto sarebbe più veloce se supportato da un computer per la ricerca delle combinazioni e delle corrispondenze con le parole di un dizionario. Crittografia e sicurezza Anche una mancata casualità nella scelta delle chiavi mette in difetto il sistema di cifratura; possono nascere delle ripetizioni che consentono all’hacker di indovinare quali siano le chiavi più probabili fra quelle di un elenco. Non è poi da sottovalutare la durata delle chiavi; se vengono modificate raramente, un hacker, trovatane una, può accedere liberamente al sistema e ai dati nascosti. Più lunga è una chiave, maggiore è la sicurezza del messaggio cifrato; una chiave lunga un bit comporta due possibilità, una di tre, otto alternative e così via. Lo spazio dato alle chiavi affinché un cifrario sia valido deve essere ragionevolmente grande, in funzione delle risorse finanziarie e tecniche dell’avversario, dell’importanza e della durata dell’informazione! Crittografia e sicurezza La forza e la sicurezza dei dati cifrati possono essere diminuite dalle proprietà matematiche intrinseche dell’algoritmo scelto e dal modo in cui questi algoritmi sono implementati. Ad esempio, l’utilizzo di un algoritmo e di lunghezze di chiavi indicate dagli esperti come sicuri, non è una garanzia sufficiente di sicurezza; se chi implementa queste funzioni commette degli errori, per un hacker bucare il sistema diventa uno scherzo. Tutto ciò dimostra come un’azienda che necessita di un alto standard di sicurezza dei dati cifrati, abbia bisogno di valide implementazioni e esperti crittografi. Crittografia e sicurezza La sicurezza delle comunicazioni cifrate va continuamente rivalutata; informazioni memorizzate solo pochi anni prima, e ritenute sicure, oggi vanno ricifrate con algoritmi più complessi e chiavi più lunghe. La Firma Digitale: Ha lo scopo di garantire l’autenticità del documento. E’ il risultato di un calcolo matematico applicato al contenuto informativo del documento. L’autenticità del messaggio è garantita dalla “tecnica dell’Hashing”: funzione matematica generatrice di una impronta digitale del messaggio detta DIGEST Come Fa L’azienda A ad essere sicura dell’autenticità del documento ricevuto dall’azienda B? L’azienda B calcola un valore di DIGEST per il messaggio; B cifra il digest con la sua chiave privata (firma digitale); B invia il messaggio e il digest crittati; A decifra il digest utilizzando la chiave pubblica dell’azienda B; A calcola il digest del messaggio ricevuto; A confronta il digest calcolato con quello ricevuto. GRAZIE ALLA FIRMA DIGITALE ED AI SISTEMI DI CRITTOGRAFIA ASIMMETRICA CHE NE SONO ALLA BASE E’ OGGI POSSIBILE USUFRUIRE DELLE ATTIVITÀ DI COMMERCIO ELETTRONICO IN INTERNET, MANTENENDO LA SICUREZZA DA INTRUSIONI ESTERNE NELLE PROPRIE TRANSAZIONI… …I NUMERI E I DATI DELLE NOSTRE CARTE DI CREDITO SONO PROTETTE, DURANTE IL LORO UTILIZZO PER ACQUISTI ONLINE E SERVIZI DI REMOTE BANKING, DALL’ALGORITMO RSA, IL QUALE UTILIZZANDO NUMERI PRIMI DI 100 CIFRE, GARANTISCE LA RISERVATEZZA E LA PROTEZIONE DEI NOSTRI DATI… Cosa accadrà quando l’ipotesi di Riemann sarà verificata? …LA TECNOLOGIA E LA SUA EVOLUZIONE FAVORISCONO ALLO STESSO MODO CRITTOGRAFI E CRITTANALISTI: GLI UNI ALLA RICERCA DI NUOVI E PIÙ SICURI SISTEMI DI PROTEZIONE, GLI ALTRI ALLA COSTANTE RICERCA DI SISTEMI PER VIOLARLI! Crittografia e sicurezza Naturalmente la sicurezza costa in termini di sovraccarico elaborativo generato dagli algoritmi di crittografia e quindi tutto questo si traduce in un rallentamento delle applicazioni che ne fanno uso.