CRITTOGRAFIA Alberto Rossi Sistemi di elaborazione delle informazioni Cos’è? La parola crittografia deriva dall'unione di due parole greche kryptósv che significa nascosto e graphía che significa scrittura. La crittografia è la scienza che si occupa di proteggere delle informazioni rendendole incomprensibili a chi le dovesse intercettare, in modo che possano essere lette e capite solo dal destinatario. Il messaggio da proteggere viene detto testo in chiaro, mentre quello ``trasformato'' in modo da essere incomprensibile viene detto testo cifrato; la trasformazione da testo in chiaro a testo cifrato si dice cifratura, mentre la trasformazione inversa si dice decifratura. La trasformazione crittografica è detta algoritmo di cifratura, e specifica la procedura che trasforma il testo in chiaro in quello cifrato. La crittografia è attualmente molto importante, in quanto ci consente di rendere sicure le nostre comunicazioni (mail criptate), i nostri dati (database criptati) e i nostri riconoscimenti (firma digitale). Sistemi di elaborazione delle informazioni Crittografia antica La necessità di trasmettere messaggi cifrati è antica quanto l’uomo, alcuni esempi di cifratura sono il metodo Atbash degli ebrei, la Scitala degli spartani e il cifrario di Cesare di Giulio Cesare. Una scitala era una piccola bacchetta. Il messaggio veniva scritto su di una striscia di pelle arrotolata attorno ad essa. Una volta srotolata e tolta dalla scitala la striscia di pelle, era impossibile capire il messaggio. La decifrazione era invece possibile se si aveva una bacchetta identica alla scitala del mittente L'atbash è un semplice cifrario in cui la prima lettera dell'alfabeto è sostituita con l'ultima, la seconda con la penultima, e così via, "invertendo" l'ordine alfabetico delle lettere. Il cifrario di Cesare è un cifrario a sostituzione monoalfabetica in cui ogni lettera del testo in chiaro è sostituita nel testo cifrato dalla lettera che si trova un certo numero di posizioni dopo nell‘alfabeto. Ad esempio, usando il 3 come chiave ottengo: Sistemi di elaborazione delle informazioni Crittografia moderna La crittografia moderna nasce con la stesura da parte di Leon Battista Alberti del De Cifris, utilizzando un Disco Cifrante composto da due dischi concentrici contenenti uno l’alfabeto in chiaro, l’altro l’alfabeto cifrato, rotanti uno rispetto all’altro consentendo così la sostituzione polialfabetica con periodo irregolare. Il cifrario di Vigenère Si basa sull'uso di un versetto per controllare l’alternanza degli alfabeti di sostituzione si può considerare una generalizzazione del cifrario di Cesare; invece di spostare sempre dello stesso numero di posti la lettera da cifrare, questa viene spostata di un numero di posti variabile ma ripetuto, determinato in base ad una parola chiave, da concordarsi tra mittente e destinatario, e da scrivere ripetutamente sotto il messaggio Sistemi di elaborazione delle informazioni Crittografia moderna Per semplificare la cifratura, il Vigenère propose l'uso della seguente "matrice" quadrata, composta da alfabeti ordinati e spostati. Se si vuole cifrare, con la chiave dell'esempio precedente, la lettera "R" della parola rapporto basterà trovare la lettera "R" nella prima riga orizzontale, individuando la colonna verticale in cui sta la lettera cifrata. Basterà poi trovare la "V" di "verme" nella prima riga verticale per trovare la colonna orizzontale, individuando, tramite l'incrocio, la lettera corretta da usare. Sistemi di elaborazione delle informazioni Crittografia simmetrica Le tecniche crittografiche descritte fin qui trattano tutte di crittografia simmetrica, ovvero quella tecnica di codifica nella quale i due interlocutori devono accordarsi precedentemente sulla chiave di lettura, in quanto una sola. La robustezza degli algoritmi di cifratura dipende dalla lunghezza della chiave utilizzata, tanto è più lungo il testo della chiave, tanto più difficile sarà decifrare il messaggio. Una chiave di 40 bit ad esempio viene definita debole in quanto di facile decifratura, una di 128 invece è definita forte. Il problema nell’utilizzo della crittografia simmetrica comunque non è relativo all’algoritmo utilizzato, bensì alla difficoltà nella distribuzione della chiave, dovendo questa essere trasmessa in modo sicuro tra gli interlocutori. Oltre alla sicurezza si deve pensare che, se si gestisce un numero alto di utenti (pensiamo a un servizio bancario via internet) allora dovranno esistere N chiavi segrete, le quali comportano elevati costi e tempi di amministrazione. Alcuni esempi di algoritmi di decodifica a chiave privata sono il DES, IDEA, 3DES, RC2 Sistemi di elaborazione delle informazioni Crittografia asimmetrica Il problema dell’unica chiave è stato risolto in tempi relativamente recenti (anni Settanta) con l'invenzione della crittografia a chiave pubblica (crittografia asimmetrica). Con algoritmi di questo tipo ognuno ha due chiavi: una pubblica da distribuire a tutti quelli con cui vuole comunicare, e una privata da tenere segreta. Ciò che viene cifrato con la chiave pubblica (operazione che può essere fatta da chiunque) può essere decifrato solo con la chiave privata corrispondente (operazione che può essere fatta solo dal proprietario della chiave): in questo modo non c'è più il problema di comunicare segretamente la chiave, perché questa è nota a tutti; per comunicare in modo sicuro con una persona basta cifrare il messaggio con la sua chiave pubblica. Questa è la tecnica che si utilizza per le firme digitali. Con questa crittografia si ovvia il problema logistico di distribuzione di più chiavi, sorge però il problema dovuto alla robustezza degli algoritmi utilizzati, in quanto la doppia codifica comporta procedimenti onerosi e lenti. Alcuni esempi di algoritmi a chiave pubblica sono il RSA, DSS, Diffie-Hellman, HFE Sistemi di elaborazione delle informazioni Che crittografia adottare? Riassumendo : simmetrica asimmetrica pro Veloce, di facile utilizzo Distribuzione delle chiavi non impegnativa contro Presenza Impegnativa dal punto di vista computazionale e onerosa in termini di tempo della sola chiave privata, a rischio vulnerabilità; Difficoltà nella distribuzione delle chiavi in un sistema multiutente La soluzione maggiormente adottata è un sistema “ibrido” che si traduce nell’utilizzo della crittografia asimmetrica per la trasmissione della chiave segreta, utilizzando poi la crittografia simmetrica per la trasmissione dei dati. Sistemi di elaborazione delle informazioni DES (Data Encryption Standard) L’algoritmo DES è stato messo a punto nel 1974 dall’IBM. Il DES è un cifrario a blocchi, divide il testo in chiaro in blocchi separati e opera su ognuno di essi, indipendentemente, per produrre una sequenza di testo cifrato. I blocchi del DES sono di 64 bit, ad ogni blocco corrisponde una chiave di 56 bit ed è invertibile. La struttura del DES è la seguente: dopo una fissata permutazione iniziale (IP) il blocco di 64 bit di testo in chiaro viene rotto in due metà da 32 bit ciascuno. Queste due metà passano quindi attraverso 16 iterazioni di una trasformazione dipendente dalla chiave per produrre un blocco di pre-output a 64 bit. Questo blocco viene sottoposto ad una permutazione finale per produrre un blocco di testo cifrato. Sistemi di elaborazione delle informazioni Il Des con CrypTool Sistemi di elaborazione delle informazioni RSA L’algoritmo RSA (prende il nome dalle iniziali dei tre sviluppatori Rivest, Shamir, Aldeman) è il più comune ed utilizzato in ambito di crittografia asimmetrica Per semplificare il funzionamento immaginiamo che A debba spedire un messaggio segreto a B. Occorrono i seguenti passaggi: B sceglie due numeri primi molto grandi (per esempio da 300 cifre) e li moltiplica con il suo computer (impiegando meno di un secondo). B invia il numero che ha ottenuto ad A. Chiunque può vedere questo numero. A usa questo numero per cifrare il messaggio A manda il messaggio cifrato a B, chiunque può vederlo ma non decifrarlo B riceve il messaggio e utilizzando i due fattori primi che solo lui conosceva lo decifra. A e B hanno impiegato pochi secondi a cifrare e decifrare, ma chiunque avesse intercettato le loro comunicazioni impiegherebbe troppo tempo per scoprire i due fattori primi, con cui si può decifrare il messaggio. Sistemi di elaborazione delle informazioni RSA con CrypTool Sistemi di elaborazione delle informazioni Sono realmente sicuri? Il DES si è dimostrato un sistema molto utilizzato, ma allo stesso tempo insicuro. Insicuro in quanto la lunghezza della chiave (solamente 56 bit) consente, tramite attacchi a forza bruta (ovvero tramite tentativi), di scovarla in maniera abbastanza rapida. Vi sono diversi sistemi creati per aggirare il DES (DES cracker, COPACOBANA)i quali sono comunque molto costosi partendo dagli 8.000€ arrivando ai 250.000€. Vi sono comunque algoritmi che utilizzano chiavi associate ad un numero maggiore di bit, tali da rendere più difficili l’attacco (3DES, IDEA ecc.). Per quanto riguarda l’algoritmo RSA l’attacco a forza bruta (ovvero ottenere i due numeri primi usati per creare la chiave pubblica), è una procedura lentissima. L’attacco più veloce è durato 5 mesi utilizzando 80 processori da 2,2GHz, questi dati consentono di dire che l’algoritmo è sufficientemente sicuro. Sistemi di elaborazione delle informazioni FONTI wikipedia.org sicurezzainrete.com linux.it itl.nist.gov Sistemi di elaborazione delle informazioni