Crittografia Contemporanea (Simmetrica)
Total Page:16
File Type:pdf, Size:1020Kb
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 DREMUFCA chiave i j l t g o u a testo in chiaro v i t t o r i a Esercizio: scrivere un testo cifrato casuale, e trovare almeno due chiavi che lo trasformino in parole di chiave o d s x q u q m senso compiuto testo in chiaro p o m p e l m o 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: 0 0 0 110101001 ⊕ 1 0 1 010011011 = 0 1 1 100110010 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 In altre parole, l’operatore binario di XOR 0 0 1 1 1 0 • 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 • C2 = M2 ⊕ K M1, M2 testi in chiaro, 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 C1 ⊕⊕⊕ ⊕⊕⊕ = M2 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 (pseudo- random 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 chiave PRG Cifrario a flusso basato su 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