Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Crittografia contemporanea Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Classificazione dei sistemi crittografici contemporanei • Il criterio di distinzione più importante per i sistemi crittografici contemporanei riguarda il tipo e numero di chiavi usate: nei sistemi a chiave simmetrica viene utilizzata una sola chiave, nei sistemi a chiave asimmetrica ogni utente dispone di due chiavi, una pubblica e una privata. • Secondariamente, i sistemi crittografici possono essere distinti in base al tipo di dati su cui lavorano: i sistemi a blocchi elaborano i dati in blocchi di dimensione fissa (ad es. 64 bit), i sistemi a flusso elaborano i dati un byte (o bit, o altra unità di informazione) per volta. 2 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Sistemi a chiave simmetrica • In questa lezione parleremo di sistemi a chiave simmetrica (e principalmente di sistemi a blocchi). X: messaggio in chiaro, Y: messaggio cifrato, K: chiave. X’, K’: stime di X e K da parte di un attaccante 3 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Problemi della cifratura a chiave simmetrica • Il problema principale della cifratura a chiave simmetrica consiste nella diffusione della chiave • Se n persone devono comunicare tra di loro mediante messaggi crittati, sono necessarie n(n-1)/2 chiavi diverse (ordine di grandezza quadratico!). Ognuna di queste chiavi deve essere concordata tra mittente e destinatario su un canale sicuro… • Vedremo nelle prossime lezioni come questo problema possa essere mitigato dai sistemi a chiave asimmetrica 4 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Caratteristica fondamentale dell’algoritmo di cifratura • Essere facilmente computabile ed invertibile se la chiave è nota • Essere difficilmente invertibile in assenza della chiave • In questo contesto, “facile” e “difficile” si riferiscono alla fattibilità pratica di effettuare una data computazione in tempi ragionevoli con le tecnologie disponibili attualmente o che potranno essere disponibili in un prossimo futuro (sicurezza computazionale). 5 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Principio di Kerckhoffs • un crittosistema deve essere sicuro anche se il suo funzionamento è di pubblico dominio, con l'eccezione della chiave • In altre parole l’algoritmo non deve essere segreto. Al contrario, renderlo noto al pubblico contribuisce a garantire la sua robustezza in quanto può essere analizzato dalla comunità crittanalitica. 6 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea OTP e cifrari a flusso 7 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea One-Time Pad • OTP (o cifrario di Vernam) è un cifrario di Vigenère con chiave lunga quanto il testo (senza ripetizioni), totalmente casuale e utilizzabile una volta sola • Il testo cifrato non ha più alcuna relazione con quello originario: questa cifratura è inviolabile se l’attaccante ha accesso al solo testo cifrato (sicurezza incondizionata contro attacchi passivi) 8 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Sicurezza di OTP (dim. intuitiva) • Dimostrazione intuitiva dell’inviolabilità di OTP: • Dato un testo cifrato, per qualsiasi testo in chiaro della stessa lunghezza esiste una chiave (unica ed equiprobabile ) che lo genera. Esempio: testo cifrato D R E M U F C A i j l t g o u a testo in chiaro v i t t o r i a o d s x q u q m testo in chiaro p o m p e l m o chiave chiave Esercizio: scrivere un testo cifrato casuale, e trovare almeno due chiavi che lo trasformino in parole di senso compiuto 9 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Sicurezza di OTP (dim. formale) • Shannon: un cifrario è sicuro se il testo cifrato non rivela alcuna informazione riguardo al testo in chiaro. • Formalmente, si richiede che: Pr , Pr , ∀ ∈ , ∀ , ∈ , | | • Nel caso di OTP, dato un messaggio m e un testo cifrato c, e ipotizzando che le chiavi siano casuali (distribuite uniformemente su ): Pr , #.. , (costante ∀) : insieme dei testi cifrati, : insieme delle chiavi, : insieme dei testi in chiaro , : algoritmo di cifratura applicato sul messaggio m con chiave k 10 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea One-Time Pad / 3 • Ricordiamo che le chiavi devono essere casuali, uniche per ogni messaggio e lunghe (almeno) quanto il messaggio stesso. – Se la chiave non è lunga quanto il messaggio, l’algoritmo è vulnerabile ad un attacco di Kasiski (già visto per Vigenère) – Se una stessa chiave viene usata per cifrare più messaggi, si ricade nel caso precedente – Se la chiave non è casuale, allora alcune chiavi sono più probabili di altre: questo ci permette di discriminare tra due output 11 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea One-Time Pad / 3 • Due problemi principali limitano l’uso di OTP in pratica: – Difficoltà di creare chiavi davvero casuali – Necessità di condivisione delle chiavi tra mittente e destinatario • Il problema di trasmettere il messaggio non è stato risolto, ma solo trasformato nel problema di condividere una chiave altrettanto lunga. • Unico vantaggio: condivisione della chiave e trasmissione del messaggio possono avvenire in istanti diversi (es: condivisione iniziale sicura della chiave per proteggere la successiva trasmissione del messaggio su canale insicuro) 12 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Richiamo sull’operatore XOR • L’operatore exclusive-or (XOR, ⊕) è un operatore booleano che assume valore 1 quando due bit sono diversi, e 0 quando sono uguali p q p⊕ ⊕q Esempio: 110101001 ⊕ 010011011 = 100110010 0 0 0 1 0 1 0 1 1 1 1 0 Proprietà fondamentali: •A⊕A=0 •A⊕0 =A •A⊕(B⊕C) = (A⊕B)⊕C 13 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea OTP binario • Se volessimo applicare OTP a dati binari? • L’alfabeto è composto da due soli simboli: 0, 1 • La tabella di Vigenère si semplifica: 0 1 0 0 1 1 1 0 In altre parole, l’operatore binario di XOR • Quindi si può realizzare una cifratura OTP su dati binari combinandoli in XOR con una sequenza casuale di bit CIFRATURA: C =M⊕K DECIFRAUTRA: M = C ⊕ K (C⊕K=M⊕K⊕K=M) 14 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Riutilizzo delle chiavi con OTP binario • OTP binario ci permette di capire meglio perché la chiave OTP non può essere riutilizzata: • C1 = M1 ⊕ K M1, M2 testi in chiaro, K • C2 = M2 ⊕ K chiave, C1, C2 testi cifrati • C1 ⊕ C2 = M1 ⊕ K ⊕ M2 ⊕ K = M1 ⊕ M2 Lo XOR di due testi cifrati è uguale allo XOR dei rispettivi testi in chiaro. Permette ad esempio di identificare immediatamente porzioni di testo uguali (in quanto il risultato dello XOR è una sequenza di 0) 15 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Esempio visuale = ⊕ M1 K ⊕ = ⊕ M2 C1 K C2 16 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Altri attacchi a OTP • «sicurezza incondizionata» significa che non è possibile decifrare un messaggio cifrato con OTP avendo a disposizione solamente il testo cifrato, perché ogni decifrazione è ugualmente probabile e quindi indistinguibile (sicurezza rispetto agli attacchi passivi) • Esistono tuttavia altri attacchi possibili a OTP, ad esempio sfruttando la sua malleabilità • Un cifrario è malleabile se è possibile alterare il testo cifrato in modo da ottenere un risultato specifico in seguito alla decifratura (attacco attivo) 17 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Malleabilità di OTP Cifratura: C = M ⊕ K Un attaccante intercetta C e lo sostituisce con C’ = C ⊕ N decifratura: M’ = C’ ⊕ K = M ⊕ K ⊕ N ⊕ K = M ⊕ N Se l’attaccante conosce M, può scegliere un opportuno N tale che, in fase di decifratura, il testo in chiaro originario M sia sostituito da un testo arbitrario M’, scelto dall’attaccante 18 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea OTP e cifrari a flusso • L’idea di OTP binario è alla base di molti cifrari a flusso, in cui i bit da cifrare sono elaborati indipendentemente l’uno dall’altro, senza la necessità di suddividerli in blocchi di dimensioni fisse • In questo caso i cifrari a flusso sono basati sull’uso di PRG (pseudorandom generators), generatori di sequenze di bit apparentemente casuali • Naturalmente questi algoritmi non sono delle vere implementazioni di OTP, in quanto la sequenza di bit non è davvero casuale (è pur sempre generata da algoritmi deterministici… ) • E’ tuttavia sufficiente che tale sequenza sembri casuale da un punto di vista statistico (ovvero, in assenza del seed iniziale è impossibile fare delle previsioni sulla sequenza generata dall’algoritmo) 19 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Cifrari a flusso Chiave casuale OTP ⊕ Testo in chiaro Testo cifrato Cifrario a flusso basato su PRG chiave PRG sequenza pseudo-casuale ⊕ Testo in chiaro Testo cifrato 20 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Cifrari a blocchi 21 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea I concetti di confusione e diffusione • Introdotti da Shannon (il padre della teoria dell’informazione!) nel 1949 • Confusione: rendere la relazione tra chiave e testo cifrato quanto più complessa possibile • Diffusione: rendere la relazione tra testo in chiaro e testo cifrato quanto più complessa possibile 22 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Diffusione • Le anomalie statistiche del testo in chiaro che lo rendono facilmente identificabile (ad es. le frequenze caratteristiche di ogni lettera) devono essere “diffuse” su quanti più caratteri possibili del testo cifrato, in modo da “mischiarle” al punto da renderle irriconoscibili. • Ad esempio, la cifratura monoalfabetica non ha alcuna diffusione, perché le caratteristiche statistiche di ogni carattere in chiaro si trasmettono inalterate al carattere cifrante. 23 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Criterio di avalanche • Ne consegue che la modifica di anche un carattere del testo in chiaro dovrebbe implicare l’alterazione di tutto il testo cifrato (diffusione) • Analogamente, la modifica di anche un solo carattere della chiave, dovrebbe implicare l’alterazione di tutto il testo cifrato (confusione) • Questa proprietà è nota con il nome di criterio di avalanche 24 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Criterio di avalanche / 2 • La crittografia contemporanea si basa sull’uso dei computer, quindi d’ora in poi ci occuperemo di messaggi composti da bit • Una definizione più formale del criterio di avalanche è la seguente: SAC (Strict Avalanche Criterion): se un bit del messaggio in chiaro o della chiave viene complementato, allora ogni bit del messaggio cifrato ha una probabilità del 50% di essere complementato In altre parole, il nuovo testo cifrato è apparentemente casuale, non ha alcuna relazione statistica con il testo cifrato precedente (Complementare un bit: cambiarne il valore. Se vale 1, diventa 0. Se vale 0, diventa 1) 25 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Criterio di avalanche / 3 • Perché il criterio di avalanche è così importante? • Se due testi di input simili (o due chiavi simili) producessero due output simili, l’algoritmo di crittazione sarebbe vunerabile agli attacchi crittanalitici • Confrontando il testo cifrato da decodificare con il testo cifrato di un testo in chiaro a noi noto, potremmo sapere quanto “vicini” siamo alla soluzione 26 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Reti SP Le reti a sostituzione-permutazione (Substitution-Permutation Networks, SPN) sono costituite da una serie di operazioni matematiche in cascata volte a garantire le proprietà di diffusione e confusione (e quindi a soddisfare il criterio di avalanche). Composte da due elementi fondamentali: -Le S-Box (substitution box) - Le P-Box (permutation box) Cifratura a blocchi! 27 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea S-Box • Una Substitution Box (S-Box) è una funzione che sostituisce i bit di input con dei bit di output in modo soddisfare il criterio di avalanche. • Il cambiamento di un singolo bit di input quindi deve influenzare circa la metà dei bit di output • Una S-Box è un tipo particolare di cifratura a sostituzione i1 i2 i3 i4 Esempio di S-Box S-Box o1 o2 o3 0001 1001 0100 1010 o4 28 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea P-Box • Una Permutation Box (P-Box) è una funzione che genera in output una permutazione dei bit di input • E’ quindi un caso particolare di cifratura a trasposizione 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 29 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Reti SP / 2 Nelle reti SP si alterna l’uso di S-Box e P-Box, iterando il procedimento più volte (ogni iterazione è detta stadio, o round) Ad ogni iterazione la chiave viene opportunamente manipolata per estrarre una sottochiave diversa (K0…K3 nell’immagine qui a fianco). La sottochiave viene combinata mediante XOR con il testo in chiaro (all’inizio) o col testo cifrato dopo un determinato stadio. 30 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Reti SP / 3 • Le reti SP sono studiate per soddisfare il criterio di avalanche – Le S-Box sono studiate affinché il cambiamento di un solo bit di input influenzi tutti i loro output – Le P-Box garantiscono che l’output di una S-Box allo stadio n sia “diffuso” come input di tutte le S-Box dello stadio n+1 • Poiché chiave e testo sono combinate con uno XOR (e quindi influenzano “con lo stesso peso” il risultato di output), le reti SP garantiscono contemporaneamente sia la diffusione che la confusione. 31 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Decifratura nelle reti SP • Per decifrare un testo cifrato, è sufficiente applicare i passi della rete SP a ritroso, dall’ultimo fino al primo • Questo richiede che le S-Box siano INVERTIBILI, ovvero che, dato un output, sia possibile risalire univocamente al suo input. Esempio di S-Box non invertibile (qual è l’inverso di 11?) Input Output 00 10 01 11 10 11 11 01 32 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Esercizio Tabella di corrispondenze input-output della S-Box Qual è l’output di questo primo stadio, supponendo che le S-Box siano tutte uguali (si veda la tabella), che la sottochiave K0 valga 1100 1010 0011 0001 e il testo in chiaro valga 0101 1111 0000 1011 ? 33 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Le reti di Feistel • Ideate da Horst Feistel, ingegnere della IBM • Sono un caso particolare di reti SP, con alcune modifiche • La loro struttura è alla base del funzionamento di molti degli attuali algoritmi di crittazione a chiave simmetrica 34 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Le reti di Feistel / 2 • Il testo in chiaro (di dimensione fissa, ad es. 64 bit) viene diviso in due metà, L0 e R0 • Ad ogni stadio i… • la metà di destra (Ri) diventerà la metà di sinistra allo stadio successivo • la metà di sinistra viene combinata in XOR con F(Ki,Ri), dove Ki è la sottochiave allo stadio i ed F è una funzione complessa, e diventerà la metà destra allo stadio successivo Li+1 = Ri Ri+1 = Li ⊕ F(Ri,Ki) 35 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Relazione con le reti SP • Una rete di Feistel può essere vista come una rete SP in cui F è una SBox e lo scambio delle due metà è una P-Box • Differenze rispetto alle reti SP: la chiave non è combinata direttamente in XOR col testo da cifrare, ma è un input della funzione F 36 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Reti di Feistel: decifratura • Decifrare un testo generato da una rete di Feistel è molto semplice: è sufficiente applicare lo stesso algoritmo, avendo cura di invertire solamente l’ordine delle sottochiavi • Vantaggio notevole, non serve scrivere un programma apposito per la decrittazione 37 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Decifratura di Feistel: dimostrazione • Consideriamo cosa accade nell’ultimo stadio n di cifratura (e di conseguenza nel primo stadio di decifratura): cifratura Testo in input all’ultimo stadio: [Ln, Rn] Ln decifratura Rn Testo cifrato finale: [ Ln ⊕ F(Kn,Rn), Rn ] Primo stadio di decifratura: [ Ln ⊕ F(Kn,Rn) ⊕ F(Kn,Rn), Rn ] = [ Ln ⊕ 0, Rn ] = [ Ln , Rn ] Usando le proprietà dello XOR! Ln Rn Il primo passo di decifratura “annulla” l’ultimo di cifratura. Applicando lo stesso procedimento a tutti gli stadi, si dimostra che la decifratura permette effettivamente di recuperare il testo in chiaro 38 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Decifratura di Feistel • Proprietà fondamentale del processo di decifratura di Feistel, nonché differenza principale rispetto alle reti SP: non è necessario che F sia invertibile! Pertanto F può essere arbitrariamente complessa 39 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Realizzazione di una rete di Feistel Scelte progettuali da considerare: • Dimensioni del blocco (spesso 64 bit) • Dimensioni della chiave (le più comuni oggigiorno sono a 128 bit, le chiavi fino a 64 bit sono ormai considerate insicure) • Numero di stadi (tipicamente 16) • Algoritmo di generazione delle sottochiavi • Scelta della funzione F Altri aspetti da considerare: • Velocità di cifratura/decifratura software • Facilità di analisi 40 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Cifrari basati sul modello di Feistel • Il modello di Feistel è alla base della struttura di molti cifrari contemporanei: Blowfish, Camellia, CAST-128, DES, FEAL, ICE, KASUMI, LOKI97, Lucifer, MARS, MAGENTA, MISTY1, RC5, TEA, Triple DES, Twofish, XTEA, GOST_28147-89, CAST-256, MacGuffin, RC2, RC6, Skipjack, SMS4 … • Studieremo ora nel dettaglio uno dei più importanti: il DES 41 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea DES – Data Encryption Standard • Sviluppato da IBM, deriva dal precedente Lucifer, ad opera dello stesso Feistel • Nel 1976 è diventato uno standard negli USA per la protezione di dati sensibili • Scelta inizialmente controversa… – per la lunghezza della chiave, che pare sia stata ridotta a 56 bit (rispetto ai 128 di Lucifer) per imposizione della NSA – Per la segretezza di alcuni dettagli implementativi (violazione del principio di Kerckhoffs), in seguito resi pubblici 42 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea DES / 2 • • • • • E’ un algoritmo di cifratura simmetrico a blocchi La struttura è quella di una rete di Feistel I blocchi sono di 64 bit La chiave è di 64 bit, ma ne vengono usati solo 56 Ad oggi non è più considerato sicuro. E’ stato sostituito dal nuovo standard AES 43 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Struttura generale di DES • Due permutazioni, IP e FP, una l’inversa dell’altra (non hanno alcun valore crittografico, servivano solo a rendere più efficiente l’implementazione in hardware) • L’input viene diviso in due blocchi da 32 bit… • …elaborati secondo il classico schema delle reti di Feistel in 16 stadi (round) 44 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea La funzione F • Una funzione complessa e non invertibile • E è un blocco di espansione, che trasforma i 32 bit di input in 48 bit di output, duplicando alcuni degli input • S1 … S8 sono delle S-Box • P è una P-Box • Usando la chiave a 56 bit viene generata una sottochiave a 48 bit (diversa per ogni stadio) 45 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea S-Box e P-Box nella funzione F • Le S-Box ricevono 6 bit di input e hanno 4 bit di output • Esempio di S-Box usata da DES: • La P-Box: Fonte: http://en.wikipedia.org/wiki/DES_supplementary_material 46 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Generazione delle sottochiavi • PC1 è una permutazione che estrae solo 56 dei 64 bit di chiave • I 56 bit sono divisi in due gruppi di 28 bit • Ad ogni stadio i due gruppi vengono ruotati di uno o due bit (a seconda dello stadio)… • …e una ulteriore permutazione (PC2) estrae 24 bit da ognuno dei due gruppi ruotati, generando così una sottochiave da 48 bit 47 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Attacchi a forza bruta al DES • Nel 1977 Diffie e Hellman stimarono che il DES potesse essere violato in un solo giorno con una macchina dal costo stimato di $20M • Nel 1993 Wiener stimò che si potesse raggiungere lo stesso risultato in 7 ore con una macchina da $1M • Nel 1998 una macchina da $250.000 realizzata da EFF (Electronic Frountier Foundation) violò effettivamente un crittogramma DES in 2 giorni 48 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Altri algoritmi basati su reti di Feistel: 3DES • Triple DES migliora sensibilmente la sicurezza di DES, ed è ancora considerato valido (si stima fino al 2030) • Sono necessarie tre chiavi DES (per un totale di 168 bit) K1 K2 K3 Encrypt Decrypt Encrypt codifica Decrypt Encrypt Decrypt K3 K2 K1 decodifica Usato, in diverse varianti, nelle transazioni commerciali elettroniche (circuiti VISA, Mastercard…) 49 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea 3DES keying options • Opzione 1: le chiavi K1, K2 e K3 sono diverse e indipendenti • Opzione 2: K1 = K3, K2 diversa • Opzione 3: K1 = K2 = K3 50 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea 3DES keying option 1 K1 K2 K3 Encrypt Decrypt Encrypt • K1, K2 e K3 indipendenti • Lunghezza totale della chiave: 56 x 3 = 168 bit • Ma in realtà sono necessari meno di 2168 tentativi per un attacco a forza bruta! La sicurezza di 3DES con keying option 1 è pari a quella di un algoritmo con chiave di 112 bit a causa del… meet-in-the-middle attack 51 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Meet-in-the-middle attack m K1 K2 K3 Encrypt Decrypt Encrypt 256 256 256 Ecco perché non si usa 2DES c 2112 • • • • • Supponiamo di avere una coppia nota di testo in chiaro / testo cifrato… Calcolare tutte le cifrature possibili dei primi due passi dell’algoritmo, eseguendo in totale di 256 x 256 = 2112 cifrature Calcolare tutte le decifrature possibili per l’ultimo passo, per un totale di 256 decifrature Cercare una coppia di risultati uguali Complessità totale dell’attacco: 2112 + 256 cifrature/decifrature (quindi nell’ordine di grandezza di 2112 ) 52 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea 3DES keying option 2 K1 K2 K1 Encrypt Decrypt Encrypt • Due chiavi da 56 bit -> sicurezza a 112 bit • La sicurezza è quindi comparabile a quella della keying option 1, ma col vantaggio di usare chiavi più piccole • Sarebbe una pessima idea usare solo due DES encrypt consecutivi (meet-in-the-middle attack) 53 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea 3DES keying option 3 K1 K1 K1 Encrypt Decrypt Encrypt • Usato esclusivamente per garantire la compatibilità con DES: i primi due passi si annullano, per cui l’applicazione di 3DES con keying option 3 è equivalente a quella di DES normale (è il motivo per cui il blocco centrale è una decrittazione!) • Sicurezza della chiave: 56 bit, come DES 54 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Blowfish • Sviluppato da Bruce Schneier, uno dei guru della crittografia contemporanea • Blocchi da 32 bit, chiavi fino a 448 bit, 16 stadi (il simbolo rappresenta la somma modulo 232) Schema generale La funzione F 55 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea RC5 • Sviluppato da Ronald Rivest, uno dei padri della crittografia a chiave asimmetrica • Blocchi da 32, 64 o 128 bit, chiavi fino a 2040 bit (solitamente: 128), numero di stadi fino a 255 (solitamente: 12). • Estremamente semplice e veloce, ha introdotto la novità dei data-dependent shifts 2 stadi di RC5 56 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea TEA • Famoso soprattutto per essere suscettibile a diversi tipi di attacchi crittanalitici, che hanno portato nel 2002 alla possibilità di “hackerare” la console da gioco Xbox affinché potesse eseguire codice arbitrario (sfruttato per eseguire Linux su una Xbox) 57 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea AES • Nel 1997 il NIST (National Institute of Standards and Technology) USA organizzò un “concorso” per sostituire l’ormai insicuro DES e definire un nuovo standard crittografico, l’Advanced Encryption Standard (AES) • 15 candidati: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, Twofish • Gli algoritmi furono sottoposti alle più rigorose analisi crittografiche, finché nel 2000 Rijndael divenne ufficialmente il nuovo standard, grazie alle sue caratteristiche di robustezza alla crittanalisi e velocità di esecuzione. 58 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea AES / 2 • Blocchi di 128 bit, chiavi da 128, 192 o 256 bit • Basato una combinazione di permutazioni e sostituzioni (analogo ad una rete SP), ma non è una rete di Feistel. • L’input viene organizzato in una griglia di 4x4 byte che subisce 4 trasformazioni ad ogni stadio (gli stadi sono 10 nel caso di chiavi a 128 bit) 59 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea AES / 3 Prima trasformazione: ogni byte viene trasformato da una S-Box Seconda trasformazione: le righe della matrice subiscono uno shift (equivalente ad una P-Box) 60 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea AES / 4 Terza trasformazione: ogni colonna viene trasformata secondo una procedura equivalente ad una S-Box Quarta trasformazione: ogni byte viene combinato in XOR con la sottochiave 61 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Tecniche di cifratura • Gli algoritmi di cifratura a blocchi lavorano su blocchi di dimensione fissa (es. 64 bit). Ma come cifrare dei dati più lunghi della dimensione del blocco? Modalità Descrizione Applicazioni Electronic Codebook (ECB) Ciascun blocco è cifrato Trasmissione di dati in maniera indipendente, molto brevi usando la stessa chiave Cipher Block Chaining (CBC) Ogni blocco in input è combinato in XOR con l’output del passo precedente Trasmissione a blocchi Counter (CTR) Ogni blocco in input è combinato in XOR con un contatore crittografato Trasmissione a blocchi. Particolarmente veloce 62 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea ECB – Electronic Codebook • Ogni blocco è cifrato con la stessa chiave e trasmesso in maniera indipendente dagli altri • Estremamente insicuro. Blocchi uguali hanno codifiche uguali (violazione del criterio di diffusione) 63 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea ECB / 2 64 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea CBC – Cipher Block Chaining • Risolve i problemi di ECB combinando ogni blocco con l’output della cifratura precedente Note: -IV (initialization vector) è un vettore di inizializzazione casuale da trasmettere assieme alla chiave -nella fase di decifratura si sfruttano le proprietà dello XOR, in particolare: A ⊕ B ⊕ B = A 65 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea CTR - Counter • Studiato per la trasmissione a blocchi • Più robusto agli errori CBC (un errore nella trasmissione di un crittogramma non influisce su quello successivo) • Particolarmente veloce (si possono eseguire più decrittazioni in parallelo se più dati arrivano contemporaneamente) 66 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea • Osservazione: si noti come in CTR l’algoritmo di cifratura non è applicato direttamente al testo da cifrare, ma al contatore • Il testo in chiaro viene poi combinato in XOR con il risultato della cifratura → E’ sufficiente a garanre la sicurezza dell’algoritmo? Rileggere le considerazioni fatte a suo tempo su OTP binario… 67 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Crittanalisi contemporanea Rompere un cifrario significa semplicemente trovare una debolezza nello stesso che può essere sfruttata con una complessità minore della forza bruta. Non importa che forza bruta richieda 2128 cifrature: un attacco che richiedesse 2110 cifrature sarebbe considerato una rottura. La rottura potrebbe anche richiedere quantità irrealistiche di testi in chiaro noti o di memoria disponibile. In parole povere, una rottura può essere semplicemente una debolezza certificabile: la prova che il cifrario non si comporta come previsto. Bruce Schneier 68 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Scenari di crittanalisi • solo testo cifrato: l'attaccante ha accesso solo ad una collezione di testi cifrati. • Testo in chiaro noto: l'attaccante ha un insieme di testi cifrati dei quali conosce i corrispondenti testi in chiaro. • Testo in chiaro scelto: l'attaccante può ottenere i testi cifrati corrispondenti ad un insieme arbitrario di testi in chiaro di sua scelta. • Attacco alle chiavi correlate: l'attaccante può ottenere uno stesso testo in chiaro cifrato con due differenti chiavi. Le chiavi sono ignote ma la relazione fra esse è nota: ad esempio, due chiavi che differiscono solo di 1 bit. 69 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Risultati della crittanalisi • violazione totale: l'attaccante deduce la chiave segreta • deduzione globale: l'attaccante scopre un algoritmo funzionalmente equivalente per la cifratura e la decifratura, ma senza conoscere la chiave; • deduzione locale: l'attaccante scopre testi in chiaro non noti in precedenza; • deduzione dell'informazione: l'attaccante ottiene alcune informazioni di Shannon sui testi in chiaro (o sui testi cifrati) non note precedentemente; • algoritmo discriminante: l'attaccante può distinguere il cifrario da una permutazione casuale. 70 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Tecniche di crittanalisi Esistono diverse tecniche di crittanalisi, le più famose sono: • Crittanalisi differenziale: è una tecnica a testo in chiaro scelto. Si crittano due testi in chiaro con differenze note e si analizza come tali differenze si propagano fino all’output, alla ricerca di eventuali regolarità (in un buon algoritmo invece la relazione tra testo in chiaro e testo cifrato è sempre apparentemente casuale – confusione e diffusione!). • Crittanalisi lineare: si cercano delle funzioni lineari che mettano in relazione testo in chiaro, testo crittato e chiave 71 Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea Esempio: crittanalisi di DES • Mediante tecniche di crittanalisi differenziale, DES può essere violato conoscendo 243 testi in chiaro scelti • Mediante tecniche di crittanalisi lineare, DES può essere violato conoscendo 241 testi in chiaro 72