La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Crittografia Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.

Presentazioni simili


Presentazione sul tema: "Crittografia Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena."— Transcript della presentazione:

1 Crittografia Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena

2 Crittografia Negli attuali sistemi informativi distribuiti, e più in generale nel settore delle telecomunicazioni, la crittografia ha assunto un rilievo ed un interesse crescenti nelle infrastrutture di sicurezza Negli attuali sistemi informativi distribuiti, e più in generale nel settore delle telecomunicazioni, la crittografia ha assunto un rilievo ed un interesse crescenti nelle infrastrutture di sicurezza La ragione è evidente: un numero considerevole di messaggi viaggia sui canali più disparati, dalla posta al telefono, alle comunicazioni via etere, al telex, fino alle linee di trasmissione dati La ragione è evidente: un numero considerevole di messaggi viaggia sui canali più disparati, dalla posta al telefono, alle comunicazioni via etere, al telex, fino alle linee di trasmissione dati Altrettanto enorme è linformazione immagazzinata nelle memorie di massa dei calcolatori e nelle banche dati Altrettanto enorme è linformazione immagazzinata nelle memorie di massa dei calcolatori e nelle banche dati Se da un lato il progresso tecnologico agevola la manipolazione (e l'intercettazione) dei dati, dall'altro facilita anche l'applicazione della crittografia per proteggere l'informazione stessa Se da un lato il progresso tecnologico agevola la manipolazione (e l'intercettazione) dei dati, dall'altro facilita anche l'applicazione della crittografia per proteggere l'informazione stessa

3 In un sistema crittografico, il testo in chiaro viene trasformato, secondo regole, nel testo in cifra o crittogramma; tale operazione si chiama cifratura In un sistema crittografico, il testo in chiaro viene trasformato, secondo regole, nel testo in cifra o crittogramma; tale operazione si chiama cifratura Il testo cifrato viene quindi trasmesso al destinatario attraverso un opportuno canale di comunicazione. Il canale non sarà completamente affidabile: lungo il percorso può trovarsi una spia che può intercettare il crittogramma e tentare di decrittarlo Il testo cifrato viene quindi trasmesso al destinatario attraverso un opportuno canale di comunicazione. Il canale non sarà completamente affidabile: lungo il percorso può trovarsi una spia che può intercettare il crittogramma e tentare di decrittarlo Il destinatario legittimo decifra il crittogramma e riottiene il testo in chiaro: se il sistema di cifra, o cifrario, è ben congegnato, l'operazione di decifrazione o decifratura deve risultare semplice al destinatario legittimo, ma di complessità proibitiva alla spia possibile in quanto gli interlocutori legittimi possiedono un'informazione che deve rimanere inaccessibile alla spia, la chiave del cifrario Il destinatario legittimo decifra il crittogramma e riottiene il testo in chiaro: se il sistema di cifra, o cifrario, è ben congegnato, l'operazione di decifrazione o decifratura deve risultare semplice al destinatario legittimo, ma di complessità proibitiva alla spia possibile in quanto gli interlocutori legittimi possiedono un'informazione che deve rimanere inaccessibile alla spia, la chiave del cifrario Terminologia 1

4 Il modello delineato è schematizzato in figura: Il modello delineato è schematizzato in figura: Occorre notare la distinzione tra decifrazione edecrittazione: quest'ultima è l'operazione illegittima in cui non ci si può avvalere della chiave Occorre notare la distinzione tra decifrazione e decrittazione: quest'ultima è l'operazione illegittima in cui non ci si può avvalere della chiave Terminologia 2 Cifratura (C), decifrazione (D1) e decrittazione (D2)

5 Il problema della distribuzione delle chiavi è un punto di importanza cruciale in qualsiasi cifrario: si dice che la chiave è comunicata al destinatario tramite un corriere Il problema della distribuzione delle chiavi è un punto di importanza cruciale in qualsiasi cifrario: si dice che la chiave è comunicata al destinatario tramite un corriere Per rendere nota la chiave segreta ci si può affidare ad un canale speciale assolutamente fidato, ma se così è, esso potrebbe essere usato per trasmettere il crittogramma o il messaggio in chiaro Per rendere nota la chiave segreta ci si può affidare ad un canale speciale assolutamente fidato, ma se così è, esso potrebbe essere usato per trasmettere il crittogramma o il messaggio in chiaro In realtà, l'uso di un canale speciale è costoso inoltre esso potrebbe essere disponibile solo per brevi intervalli di tempo e/o in determinati momenti In realtà, l'uso di un canale speciale è costoso inoltre esso potrebbe essere disponibile solo per brevi intervalli di tempo e/o in determinati momenti I metodi di costruzione di un cifrario non possono essere disgiunti dallo studio degli eventuali metodi per demolirlo, ovvero non ci si può occupare di crittografia (la parte costruttiva) senza occuparsi di crittoanalisi (la parte distruttiva): insieme esse costituiscono una disciplina unitaria detta crittologia I metodi di costruzione di un cifrario non possono essere disgiunti dallo studio degli eventuali metodi per demolirlo, ovvero non ci si può occupare di crittografia (la parte costruttiva) senza occuparsi di crittoanalisi (la parte distruttiva): insieme esse costituiscono una disciplina unitaria detta crittologia Nell'uso corrente si usa "crittografia" là dove si dovrebbe dire "crittologia" Nell'uso corrente si usa "crittografia" là dove si dovrebbe dire "crittologia" Terminologia 3

6 Alcuni sistemi crittografici si affidano esclusivamente alla segretezza degli algoritmi utilizzati solo di interesse storico, inadeguati per le applicazioni reali Alcuni sistemi crittografici si affidano esclusivamente alla segretezza degli algoritmi utilizzati solo di interesse storico, inadeguati per le applicazioni reali Tutti i moderni algoritmi utilizzano una chiave per controllare sia cifratura che decifratura; un messaggio può cioè essere letto solo se la chiave di decifrazione corrisponde in qualche modo a quella di cifratura Tutti i moderni algoritmi utilizzano una chiave per controllare sia cifratura che decifratura; un messaggio può cioè essere letto solo se la chiave di decifrazione corrisponde in qualche modo a quella di cifratura Esistono due classi di algoritmi: Esistono due classi di algoritmi: –simmetrici (o a chiave segreta): utilizzano la stessa chiave per cifrare e decifrare (o la chiave di decifrazione è facilmente ottenibile a partire da quella di cifratura) –asimmetrici (o a chiave pubblica): utilizzano due chiavi diverse e la chiave di decifrazione non può essere ricavata a partire dalle informazioni contenute nella chiave di cifratura –asimmetrici (o a chiave pubblica): utilizzano due chiavi diverse e la chiave di decifrazione non può essere ricavata a partire dalle informazioni contenute nella chiave di cifratura Terminologia 4

7 Gli algoritmi simmetrici possono essere suddivisi in cifrari di flusso e cifrari di blocco. I cifrari di flusso possono crittare un singolo bit del messaggio in chiaro alla volta, mentre i cifrari di blocco trasformano l'informazione a blocchi di bit (tipicamente 64 bit ) Gli algoritmi simmetrici possono essere suddivisi in cifrari di flusso e cifrari di blocco. I cifrari di flusso possono crittare un singolo bit del messaggio in chiaro alla volta, mentre i cifrari di blocco trasformano l'informazione a blocchi di bit (tipicamente 64 bit ) I cifrari asimmetrici permettono che la chiave di cifratura sia resa pubblica, consentendo a chiunque di cifrare messaggi con tale chiave, mentre solo il legittimo destinatario (colui che conosce la chiave di decifrazione) può decifrare il messaggio. La chiave di cifratura è anche detta chiave pubblica e la chiave di decifrazione chiave privata I cifrari asimmetrici permettono che la chiave di cifratura sia resa pubblica, consentendo a chiunque di cifrare messaggi con tale chiave, mentre solo il legittimo destinatario (colui che conosce la chiave di decifrazione) può decifrare il messaggio. La chiave di cifratura è anche detta chiave pubblica e la chiave di decifrazione chiave privata Terminologia 5

8 Crittografia classica 1 Scopo della crittografia è permettere a due persone, Alice e Bob, di comunicare attraverso un canale insicuro, in modo tale che una spia, Oscar, non possa comprendere il contenuto del messaggioScopo della crittografia è permettere a due persone, Alice e Bob, di comunicare attraverso un canale insicuro, in modo tale che una spia, Oscar, non possa comprendere il contenuto del messaggio Il canale può essere una normale linea telefonica, la rete, etc.Il canale può essere una normale linea telefonica, la rete, etc. Linformazione che Alice invia a Bob, il plaintext, o testo in chiaro, può essere testuale, numerica, etc.Linformazione che Alice invia a Bob, il plaintext, o testo in chiaro, può essere testuale, numerica, etc. Alice critta il plaintext, utilizzando una chiave predefinita, ed invia il testo cifrato sul canaleAlice critta il plaintext, utilizzando una chiave predefinita, ed invia il testo cifrato sul canale Oscar non può determinare il contenuto del messaggio, ma Bob, che conosce la chiave, può decifrare il testo cifrato e ricostruire il plaintextOscar non può determinare il contenuto del messaggio, ma Bob, che conosce la chiave, può decifrare il testo cifrato e ricostruire il plaintext

9 Crittografia classica 2 Formalmente…Formalmente… oDefinizione 1 Un crittosistema è una quintupla (P,C,K,E,D) per cui valgono le seguenti condizioni Un crittosistema è una quintupla (P,C,K,E,D) per cui valgono le seguenti condizioni 1.P è un insieme finito di plaintext 2.C è un insieme finito di testi cifrati 3.K, lo spazio delle chiavi, è un insieme finito di possibili chiavi 4.Per ogni k K, esiste una regola di codifica e k E ed una corrispondente regola di decodifica d k D. Per ogni funzione e k : P C e d k : C P, d k (e k (x))=x, per ogni x P

10 Crittografia classica 3 Alice e Bob impiegheranno il seguente protocollo per realizzare uno specifico crittosistemaAlice e Bob impiegheranno il seguente protocollo per realizzare uno specifico crittosistema a)Scelta di una chiave k: deve avvenire quando Alice e Bob sono nello stesso posto e non osservati da Oscar, ovvero quando possono utilizzare un canale sicuro b)Se Alice vuole comunicare a Bob il messaggio, rappresentato dalla stringa x=x 1 x 2 …x n, n 1, ciascun x i viene codificato per mezzo della regola e k, cioè y i =e k (x i ), ed il testo cifrato trasmesso è rappresentato dalla stringa y=y 1 y 2 …y n c)Quando Bob riceve y, la decifra usando la funzione di decodifica d k, ricostruendo il plaintext x

11 Crittografia classica 4 Canale sicuro Bob Chiave Oscar k Codifica y Decodifica x x Alice oNote 1.Le funzioni di codifica sono iniettive: se esistessero x 1 x 2 tali che y=e k (x 1 )=e k (x 2 ), Bob non potrebbe decodificare univocamente il messaggio 2.Se P =C ogni funzione di codifica è una permutazione, cioè il testo cifrato viene composto utilizzando gli stessi caratteri del plaintext x, organizzati diversamente a formare la stringa y

12 Aritmetica modulare 1 Definizione 2Definizione 2 Siano a e b interi ed m intero positivo; a b (mod m), se m divide b-a, cioè a è congruente a b modulo m; lintero m è il modulo Siano a e b interi ed m intero positivo; a b (mod m), se m divide b-a, cioè a è congruente a b modulo m; lintero m è il modulo Definizione 3Definizione 3 Laritmetica modulo m è costituita dallinsieme Z m degli interi {0,1,…,m-1} dotato delle operazioni di somma e moltiplicazione. Le operazioni producono risultati ridotti modulo m Laritmetica modulo m è costituita dallinsieme Z m degli interi {0,1,…,m-1} dotato delle operazioni di somma e moltiplicazione. Le operazioni producono risultati ridotti modulo m Esempio 1Esempio 1 In Z 16, loperazione produce come risultato il numero 143 mod 16=15 In Z 16, loperazione produce come risultato il numero 143 mod 16=15

13 Aritmetica modulare 2 Proprietà delle operazioni modulariProprietà delle operazioni modulari 1.Linsieme Z m è chiuso rispetto alladdizione ed alla moltiplicazione, cioè per ogni a,b Z m, a +b, a b Z m 2.Laddizione e la moltiplicazione godono delle proprietà commutativa e associativa 3.0 è lelemento neutro per loperazione di addizione, 1 è lelemento neutro per la moltiplicazione 4.Per ogni a Z m, m-a è lopposto di a, cioè vale la relazione a+(m-a )=(m-a )+a = 0 5.La moltiplicazione gode della proprietà distributiva rispetto alladdizione, cioè per ogni a,b,c Z m, (a +b) c=a c + b c, a (b +c )=a b + a c Z m è un gruppo abeliano rispetto alloperazione di somma e, grazie alla presenza della moltiplicazione, con le proprietà sopra descritte, è un anelloZ m è un gruppo abeliano rispetto alloperazione di somma e, grazie alla presenza della moltiplicazione, con le proprietà sopra descritte, è un anello

14 Aritmetica modulare 3 Dato che Z m contiene lopposto, rispetto alla somma, di ogni elemento dellinsieme, è ivi definita anche loperazione di sottrazioneDato che Z m contiene lopposto, rispetto alla somma, di ogni elemento dellinsieme, è ivi definita anche loperazione di sottrazione a –b = a +m-b (mod m ) Esempio 2Esempio 2 Per calcolare in Z 31, si esegue loperazione di somma modulo 31, ottenendo 24 Per calcolare in Z 31, si esegue loperazione di somma modulo 31, ottenendo 24 Il primo crittosistema che esamineremo, SHIFT cipher, è definito in Z 26, poiché 26 sono le lettere che compongono lalfabeto ingleseIl primo crittosistema che esamineremo, SHIFT cipher, è definito in Z 26, poiché 26 sono le lettere che compongono lalfabeto inglese Shift cipher costituisce un crittosistema tale che d k (e k (x))=x, per ogni x Z 26Shift cipher costituisce un crittosistema tale che d k (e k (x))=x, per ogni x Z 26 Per k=3, il crittosistema a shift è il Cifrario di Cesare, che lo utilizzava per comunicare con i generali delle sue legioniPer k=3, il crittosistema a shift è il Cifrario di Cesare, che lo utilizzava per comunicare con i generali delle sue legioni

15 Shift cipher 1 Per utilizzare Shift cipher per codificare testo, occorre stabilire una corrispondenza biunivoca fra lettere dellalfabeto e relativo numero dordine; quindi è necessario scegliere la chiave kPer utilizzare Shift cipher per codificare testo, occorre stabilire una corrispondenza biunivoca fra lettere dellalfabeto e relativo numero dordine; quindi è necessario scegliere la chiave k Siano P = C = K = Z 26. Per 0 k 25, e k (x) = x + k (mod 26) d k (y) = y – k (mod 26) x,y Z 26

16 Shift cipher 2 Esempio 3Esempio 3 Sia k= 11; la stringa plaintext Sia k= 11; la stringa plaintext we will meet at midnightwe will meet at midnight può essere convertita nella sequenza di numeri può essere convertita nella sequenza di numeri cui deve essere sommato il numero 11 (mod 26) cui deve essere sommato il numero 11 (mod 26) La sequenza di numeri ottenuta, nuovamente tradotta in caratteri, fornisce La sequenza di numeri ottenuta, nuovamente tradotta in caratteri, fornisce hphtwwxppelextoytrsehphtwwxppelextoytrse Per decodificare il testo cifrato, Bob deve prima convertirlo nella corrispondente sequenza di interi, quindi sottrarre 11 (mod 26) da ognuno di essi, ed infine convertire gli interi così ottenuti nelle lettere corrispondentiPer decodificare il testo cifrato, Bob deve prima convertirlo nella corrispondente sequenza di interi, quindi sottrarre 11 (mod 26) da ognuno di essi, ed infine convertire gli interi così ottenuti nelle lettere corrispondenti

17 Perché un crittosistema sia operativo, deve soddisfare certe proprietà:Perché un crittosistema sia operativo, deve soddisfare certe proprietà: 1.Le funzioni di codifica, e k, e di decodifica, d k, devono essere computazionalmente poco onerose 2.Una eventuale spia non deve essere in grado, dallosservazione del testo cifrato y, di risalire alla chiave k né al plaintext x La seconda proprietà esprime lidea di sicurezzaLa seconda proprietà esprime lidea di sicurezza Il tentativo di determinare la chiave k, dato il testo cifrato y, costituisce la crittoanalisi: se Oscar può risalire a k, può anche decrittare y, come Bob, utilizzando d kIl tentativo di determinare la chiave k, dato il testo cifrato y, costituisce la crittoanalisi: se Oscar può risalire a k, può anche decrittare y, come Bob, utilizzando d k Il problema di determinare k deve essere almeno difficile quanto quello di decifrare x a partire da y Il problema di determinare k deve essere almeno difficile quanto quello di decifrare x a partire da y Shift cipher 3

18 Shift cipher è un crittosistema che non garantisce la sicurezza, poiché può essere crittoanalizzato attraverso il metodo ovvio di ricerca esaustiva della chiave (su solo 26 possibili…)Shift cipher è un crittosistema che non garantisce la sicurezza, poiché può essere crittoanalizzato attraverso il metodo ovvio di ricerca esaustiva della chiave (su solo 26 possibili…) Esempio 4Esempio 4 Dato il testo cifrato jbcrclqrwcrvnbjenbwrwn, provando in successione le chiavi k=1,2,… si ottiene Dato il testo cifrato jbcrclqrwcrvnbjenbwrwn, provando in successione le chiavi k=1,2,… si ottieneiabqbkpqvbqumaidmavqvmhzapajopuaptlzhclzupulgyzozinotzoskygbkytotkfxynyhmnsynrjxfajxsnsjewxmxglmrxmqiweziwrmridvwlwfklqwlphvdyhvqlqhcuvkvejpkvkogucxgupkpgbtujudijoujnftbwftojof a stitch in time saves nine il plaintext è decifrato e k=9 il plaintext è decifrato e k=9 In media, occorrono 26/2=13 tentativi per violare il crittosistema In media, occorrono 26/2=13 tentativi per violare il crittosistema Shift cipher 4 Un punto a tempo ne risparmia cento

19 Una condizione necessaria affinché il crittosistema sia sicuro è costituita dallimpossibilità di eseguire una ricerca esaustiva nello spazio delle chiaviUna condizione necessaria affinché il crittosistema sia sicuro è costituita dallimpossibilità di eseguire una ricerca esaustiva nello spazio delle chiavi Tuttavia, anche per |K | molto grande, la sicurezza non è garantitaTuttavia, anche per |K | molto grande, la sicurezza non è garantita Sicurezza

20 Substitution cipher 1 Substitution cipher 1 Esempio 5Esempio 5 Siano P = C = Z 26 Sia K insieme delle permutazioni di {0,1,…,25} Per ogni K e (x) = (x) d (y) = -1 (y) x,y Z 26 e -1 permutazione inversa di x,y Z 26 e -1 permutazione inversa di x n y a h p o g z q w b t s f l r c v m u e k j d i a b c d e f g h i j k l m n o p q r s t u v w x y z d (a)=d, d (b)=l, etc. e (a)=x, e (b)=n, etc.

21 Substitution cipher 2 Una chiave per il SUBSTITUTION cipher è una delle possibili permutazioni dei 26 caratteri dellalfabetoUna chiave per il SUBSTITUTION cipher è una delle possibili permutazioni dei 26 caratteri dellalfabeto Il numero di tali permutazioni è 26! > Il numero di tali permutazioni è 26! > la ricerca esaustiva nello spazio delle chiavi è computazionalmente troppo onerosa anche per un computer la ricerca esaustiva nello spazio delle chiavi è computazionalmente troppo onerosa anche per un computer Tuttavia, Substitution cipher può essere facilmente crittoanalizzato utilizzando metodi diversiTuttavia, Substitution cipher può essere facilmente crittoanalizzato utilizzando metodi diversi NotaNota Shift cipher è un caso speciale di Substitution cipher in cui vengono selezionate soltanto 26 delle 26! possibili permutazioni Shift cipher è un caso speciale di Substitution cipher in cui vengono selezionate soltanto 26 delle 26! possibili permutazioni

22 Affine cipher 1 Per AFFINE cipher, linsieme delle funzioni di codifica è ristretto alla classe delle trasformazioni affini (in aritmetica modulare)Per AFFINE cipher, linsieme delle funzioni di codifica è ristretto alla classe delle trasformazioni affini (in aritmetica modulare) e(x)=ax+b (mod 26) a,b Z 26 a,b Z 26 Per a=1, Affine cipher coincide con Shift cipherPer a=1, Affine cipher coincide con Shift cipher Per poter decifrare un testo cifrato mediante Affine cipher è necessario che la funzione e sia iniettiva, cioè che la congruenzaPer poter decifrare un testo cifrato mediante Affine cipher è necessario che la funzione e sia iniettiva, cioè che la congruenza ax+b y (mod 26) ammetta ununica soluzione ammetta ununica soluzione Teorema 1Teorema 1 La congruenza ax b (mod m ) ha ununica soluzione in Z m, per ogni b Z m, se e solo se MCD(a,m )=1 La congruenza ax b (mod m ) ha ununica soluzione in Z m, per ogni b Z m, se e solo se MCD(a,m )=1

23 Infatti, in Z 26 …Infatti, in Z 26 … 1.Supponiamo che MCD(a,26)=d>1, allora la congruenza ax 0 (mod 26) ammette almeno due soluzioni distinte in Z 26, cioè x=0 e x=26/d la funzione di codifica e(x)=ax+b (mod 26) non è iniettiva Esempio 6: Se a=4, MCD(4,26)=2 e, per e(x)=4x+7, e(3)=19, e(16)=71=19, ovvero x, x e x+13 producono lo stesso valore per e(x) Esempio 6: Se a=4, MCD(4,26)=2 e, per e(x)=4x+7, e(3)=19, e(16)=71=19, ovvero x, x e x+13 producono lo stesso valore per e(x) 2.Viceversa, sia MCD(a,26)=1 e siano x 1 x 2, tali che ax 1 ax 2 (mod 26); allora a(x 1 -x 2 ) 0 (mod 26); in base alle proprietà della divisione, se il MCD(a,b )=1 e bc è divisibile per a, c è divisibile per a, cioè x 1 x 2 modulo 26 Poiché 26=2 13, possibili valori per a Z 26 sono 1,3,5,7, 9,11,15,17,19,21,23,25, mentre b può assumere qualsiasi valore in Z 26 Affine cipher dispone di 12 26=312 chiavi possibili (…è sicuramente insicuro!)Poiché 26=2 13, possibili valori per a Z 26 sono 1,3,5,7, 9,11,15,17,19,21,23,25, mentre b può assumere qualsiasi valore in Z 26 Affine cipher dispone di 12 26=312 chiavi possibili (…è sicuramente insicuro!) Affine cipher 2

24 Definizione 4 Definizione 4 Siano a ed m interi tali che a 1 e m 2. Se MCD(a,m )=1 allora a ed m sono relativamente primi fra loro. Il numero degli interi in Z m che sono primi rispetto ad m è rappresentato dalla funzione di Eulero (m) Siano a ed m interi tali che a 1 e m 2. Se MCD(a,m )=1 allora a ed m sono relativamente primi fra loro. Il numero degli interi in Z m che sono primi rispetto ad m è rappresentato dalla funzione di Eulero (m) Teorema 2 Teorema 2 Sia m = p i con p i fattori primi distinti di m ed e i >0. Sia m = p i con p i fattori primi distinti di m ed e i >0. Allora Allora (m )= ( p i - p i ) (m )= ( p i - p i ) Il numero di chiavi per Affine cipher in Z m è m (m ) Il numero di chiavi per Affine cipher in Z m è m (m ) Esempio 7 Esempio 7 Per m=60= , (m )=2 2 4=16 e |K |=960 Per m=60= , (m )=2 2 4=16 e |K |=960 Affine cipher 3 eieieiei n i=1 eieieiei n i=1 e i -1

25 Per decifrare il testo codificato tramite Affine cipher occorre risolvere la congruenza y ax+b (mod 26) rispetto ad x, che ha soluzione unica quando MCD(a,26)=1 Per decifrare il testo codificato tramite Affine cipher occorre risolvere la congruenza y ax+b (mod 26) rispetto ad x, che ha soluzione unica quando MCD(a,26)=1 Definizione 5 Definizione 5 Sia a Z m. Linverso di a, a -1 Z m, è tale che Sia a Z m. Linverso di a, a -1 Z m, è tale che aa -1 a -1 a 1 a ha un inverso modulo m se e solo MCD(a,m)=1 e, se un inverso esiste, è unico a ha un inverso modulo m se e solo MCD(a,m)=1 e, se un inverso esiste, è unico Se p è un numero primo, allora ogni elemento 0 di Z p ammette un inverso. Un anello con questa proprietà è un campo Se p è un numero primo, allora ogni elemento 0 di Z p ammette un inverso. Un anello con questa proprietà è un campo Esistono algoritmi efficienti per il calcolo dellinverso. Tuttavia, in Z 26, linverso può essere calcolato,per tentativi Esistono algoritmi efficienti per il calcolo dellinverso. Tuttavia, in Z 26, linverso può essere calcolato,per tentativi Ad esempio, 7 -1 =15, =19, =25; infatti 7 15=105 1 (mod 26), 11 19=209 1, 25 25=625 1 Ad esempio, 7 -1 =15, =19, =25; infatti 7 15=105 1 (mod 26), 11 19=209 1, 25 25=625 1 Affine cipher 4

26 Sia y ax+b (mod 26), da cui ax y-b (mod 26). Poiché MCD(a,26)=1, a ammette un inverso modulo 26. Pertanto moltiplicando entrambi i membri della congruenza per a -1 … Sia y ax+b (mod 26), da cui ax y-b (mod 26). Poiché MCD(a,26)=1, a ammette un inverso modulo 26. Pertanto moltiplicando entrambi i membri della congruenza per a -1 … a -1 (ax) a -1 (y-b) (mod 26) x a -1 (y-b) (mod 26) a -1 (ax) a -1 (y-b) (mod 26) x a -1 (y-b) (mod 26) Affine cipher 5 Siano P = C = Z 26,K ={(a,b) Z 26 Z 26 : MCD(a,26)=1} Per k=(a,b) K, siano e k (x) = ax+b (mod 26) d k (y) = a -1 (y-b) (mod 26) x,y Z 26

27 Esempio 8 Esempio 8 Sia k=(7,3). Come già notato 7 -1 (mod 26)=15. La funzione di codifica è Sia k=(7,3). Come già notato 7 -1 (mod 26)=15. La funzione di codifica è e k (x)=7x+3 mentre la corrispondente funzione di decodifica risulta mentre la corrispondente funzione di decodifica risulta d k (y)=15(y-3)=15y-19 Si può verificare che d k (e k (x))=x, x Z 26, infatti… Si può verificare che d k (e k (x))=x, x Z 26, infatti… d k (e k (x))=d k (7x+3)=15(7x+3)-19=x+45-19=x Esempio 9 Esempio 9 Supponiamo di dover convertire il plaintext hot, che corrisponde alla sequenza di cifre La funzione di codifica restituisce Supponiamo di dover convertire il plaintext hot, che corrisponde alla sequenza di cifre La funzione di codifica restituisce (mod 26)=52 (mod 26)= (mod 26)=101 (mod 26)= (mod 26)=136 (mod 26)=6 da cui il testo cifrato axg da cui il testo cifrato axg Affine cipher 6

28 Sia Shift che Substitution cipher, una volta selezionata la chiave, mappano in modo univoco ciascuna lettera dellalfabeto sono crittosistemi monoalfabetici Sia Shift che Substitution cipher, una volta selezionata la chiave, mappano in modo univoco ciascuna lettera dellalfabeto sono crittosistemi monoalfabetici VIGENERE cipher, da Blaise de Vigenere (vissuto nel XVI sec.), è invece un crittosistema polialfabetico VIGENERE cipher, da Blaise de Vigenere (vissuto nel XVI sec.), è invece un crittosistema polialfabetico Vigenere cipher 1 Sia m un intero fissato e siano P =C =K =(Z 26 ) m Per k=(k 1,k 2,…,k m ) K, definiamo e k (x 1,x 2,…x m ) = (x 1 +k 1,x 2 +k 2,…x m +k m ) d k (y 1,y 2,…,y m ) = (y 1 -k 1,y 2 -k 2,…y m -k m ) dove tutte le operazioni sono eseguite modulo 26

29 Esempio 10 Esempio 10 Sia m=6 e sia k=CIPHER o, in maniera equivalente, k=(2,8,15,7,4,17). Supponiamo che il plaintext sia costituito dalla stringa this cryptosystem is not secure, corrispondente a… Sia m=6 e sia k=CIPHER o, in maniera equivalente, k=(2,8,15,7,4,17). Supponiamo che il plaintext sia costituito dalla stringa this cryptosystem is not secure, corrispondente a… = =_______________________________________________________________________ vpxzgiaxivwpubttmjpwizitwztvpxzgiaxivwpubttmjpwizitwzt Vigenere cipher 2

30 Il numero complessivo di chiavi di lunghezza m è 26 m Il numero complessivo di chiavi di lunghezza m è 26 m anche per m piccolo la ricerca esaustiva è computazionalmente onerosa anche per m piccolo la ricerca esaustiva è computazionalmente onerosa Ad esempio, per m=5, |K |>10 7 : la ricerca a mano è preclusa, ma il computer può ragionevolmente realizzarla Ad esempio, per m=5, |K |>10 7 : la ricerca a mano è preclusa, ma il computer può ragionevolmente realizzarla In Vigenere cipher, con chiave di m caratteri, ciascuna lettera dellalfabeto può essere mappata su uno qualsiasi degli m caratteri possibili (se la chiave è costituita da tutti caratteri distinti) In Vigenere cipher, con chiave di m caratteri, ciascuna lettera dellalfabeto può essere mappata su uno qualsiasi degli m caratteri possibili (se la chiave è costituita da tutti caratteri distinti) La crittoanalisi di sistemi polialfabetici è generalmente molto più difficile La crittoanalisi di sistemi polialfabetici è generalmente molto più difficile Vigenere cipher 3

31 HILL cipher fu inventato nel 1929 da Lester S. Hill ed è un crittosistema polialfabetico HILL cipher fu inventato nel 1929 da Lester S. Hill ed è un crittosistema polialfabetico Sia m un intero e siano P =C =(Z 26 ) m. Loperazione di codifica avviene considerando m combinazioni lineari di m caratteri consecutivi nel plaintext, e producendo gli m caratteri corrispondenti del testo cifrato Sia m un intero e siano P =C =(Z 26 ) m. Loperazione di codifica avviene considerando m combinazioni lineari di m caratteri consecutivi nel plaintext, e producendo gli m caratteri corrispondenti del testo cifrato Esempio 11 Esempio 11 Sia m=2. Una sezione elementare del plaintext può essere rappresentata da (x 1,x 2 ), ed il corrispondente testo cifrato da (y 1,y 2 ), dove Sia m=2. Una sezione elementare del plaintext può essere rappresentata da (x 1,x 2 ), ed il corrispondente testo cifrato da (y 1,y 2 ), dove y 1 =11x 1 +3x 2 y 1 =11x 1 +3x 2 Y 2 =8x 1 +7x 2 Y 2 =8x 1 +7x 2 o, in notazione matriciale… o, in notazione matriciale… (y 1,y 2 )=(x 1,x 2 ) (y 1,y 2 )=(x 1,x 2 ) Hill cipher 1 ( )

32 In generale, si considera una matrice K, m m, quale chiave per Hill cipher, e la funzione e k (x) viene calcolata come In generale, si considera una matrice K, m m, quale chiave per Hill cipher, e la funzione e k (x) viene calcolata come e k (x)= (y 1,y 2,…,y m )=(x 1,x 2,…x m ) e k (x)= (y 1,y 2,…,y m )=(x 1,x 2,…x m ) In altre parole y=xK. Il testo cifrato è ottenuto dal plaintext attraverso una trasformazione lineare In altre parole y=xK. Il testo cifrato è ottenuto dal plaintext attraverso una trasformazione lineare Se linversa della matrice K esiste in Z 26, per decifrare il testo cifrato e ricostruire il plaintext, si applica la trasformazione x=yK -1 Se linversa della matrice K esiste in Z 26, per decifrare il testo cifrato e ricostruire il plaintext, si applica la trasformazione x=yK -1 Esempio 12 Esempio 12 = Hill cipher 2 ( ) k 11 k 12 … k 1m k 21 k 22 … k 2m k m1 k m2 … k mm … … ( )

33 Esempio 13 Esempio 13 Supponiamo di voler codificare il plaintext july, cui corrisponde la sequenza di numeri (9,20,11,24) Supponiamo di voler codificare il plaintext july, cui corrisponde la sequenza di numeri (9,20,11,24) (9,20) =(99+60,72+140)=(3,4) (9,20) =(99+60,72+140)=(3,4) (11,24) =(121+72,88+168)=(11,22) (11,24) =(121+72,88+168)=(11,22) Il testo cifrato è delw Il testo cifrato è delw Hill cipher 3 ( ) ( )

34 Una matrice reale K possiede linversa se e solo se det(K) 0 Una matrice reale K possiede linversa se e solo se det(K) 0 In Z 26, K ammette uninversa sse MCD(det(K),26)=1. Infatti… In Z 26, K ammette uninversa sse MCD(det(K),26)=1. Infatti… 1.Sia MCD(det(K),26)=1. Per 1 i m, 1 j m, sia K ij la matrice ottenuta da K eliminando la riga i-esima e la colonna j-esima. Sia K* tale K* ij =(-1) i+j det(K ji ) K* è laggiunta di K. Si può dimostrare che K -1 =(det(K)) -1 K* K -1 =(det(K)) -1 K* K è invertibile K è invertibile 2.Viceversa, se K ammette linversa K -1, si ha 1=det(I)=det(KK -1 )=det(K) det(K -1 ) 1=det(I)=det(KK -1 )=det(K) det(K -1 ) det(K) è invertibile in Z 26 MCD(det(K),26)=1 det(K) è invertibile in Z 26 MCD(det(K),26)=1 Hill cipher 4

35 Esempio 14 Esempio 14 Nel caso particolare m=2, Nel caso particolare m=2, A -1 =(det(A)) -1 A -1 =(det(A)) -1 Considerando la matrice degli esempi precedenti… Considerando la matrice degli esempi precedenti… det = (mod 26)=77-24 (mod 26) det = (mod 26)=77-24 (mod 26) =53 (mod 26)=1 =53 (mod 26)=1 Inoltre 1 -1 (mod 26)=1 e quindi Inoltre 1 -1 (mod 26)=1 e quindi = = Hill cipher 5 ( ) a 22 -a 12 a 22 -a 12 -a 21 a 11 ( ) ( )

36 Hill cipher 6 Sia m un intero positivo fissato Siano P = C = (Z 26 ) m Sia K ={matrici invertibili m m in Z 26 } Per ogni K K e K (x) = xK d K (y) = yK -1 dove tutte le operazioni sono eseguite modulo 26

37 Tutti i crittosistemi descritti finora presuppongono la sostituzione dei caratteri del plaintext con caratteri differenti che costituiscono il testo cifrato Tutti i crittosistemi descritti finora presuppongono la sostituzione dei caratteri del plaintext con caratteri differenti che costituiscono il testo cifrato Lidea sottesa a PERMUTATION cipher è quella di mantenere i caratteri del plaintext inalterati, cambiandoli di posizione Lidea sottesa a PERMUTATION cipher è quella di mantenere i caratteri del plaintext inalterati, cambiandoli di posizione Permutation (o Transposition) cipher è stato usato per oltre 400 anni: già nel 1536, G. Porta ne evidenziò le differenze rispetto al cifrario per sostituzione Permutation (o Transposition) cipher è stato usato per oltre 400 anni: già nel 1536, G. Porta ne evidenziò le differenze rispetto al cifrario per sostituzione Permutation cipher 1 Sia m un intero positivo fissato. Siano P = C = (Z 26 ) m K insieme delle permutazioni di {0,1,…,m }. Per ogni K e (x 1,x 2,…,x m ) = (x (1),x (2),…x (m) ) d (y 1,y 2,…,y m ) = (y (1), y (2),… y (m) ) -1 permutazione inversa di -1 permutazione inversa di

38 Esempio 15 Esempio 15 Sia m=6 e sia k= la permutazione Sia m=6 e sia k= la permutazione -1 : -1 : Se dunque il plaintext è rappresentato dalla stringashe sells sea shells by the sea shore … Se dunque il plaintext è rappresentato dalla stringashe sells sea shells by the sea shore … shesel lsseas hellsb ythese ashore eeslsh salses lshble hsyeet hraeos cioè eeslshsalseslshblehsyeethraeos cioè eeslshsalseslshblehsyeethraeos Il testo cifrato può essere decifrato applicando la permutazione inversa Il testo cifrato può essere decifrato applicando la permutazione inversa Permutation cipher

39 Permutation cipher è, di fatto, un caso particolare di Hill cipher. Infatti, ad ogni permutazione, può essere associata una matrice di permutazione K definita come Permutation cipher è, di fatto, un caso particolare di Hill cipher. Infatti, ad ogni permutazione, può essere associata una matrice di permutazione K definita come K ij = K ij = Una matrice di permutazione è ottenuta permutando per righe o per colonne la matrice identità I Una matrice di permutazione è ottenuta permutando per righe o per colonne la matrice identità I Hill cipher realizzato attraverso una matrice di permutazione K produce esattamente Permutation cipher con permutazione. Inoltre (K ) -1 =K, cioè linversa della matrice K è la matrice di permutazione definita da -1 Hill cipher realizzato attraverso una matrice di permutazione K produce esattamente Permutation cipher con permutazione. Inoltre (K ) -1 =K, cioè linversa della matrice K è la matrice di permutazione definita da -1 Permutation cipher 3 { 1 se i= (j) 0 altrimenti

40 Esempio 16 Esempio 16 Alla permutazione : Alla permutazione : ed alla sua inversa -1 : ed alla sua inversa -1 : corrispondono, rispettivamente, le matrici corrispondono, rispettivamente, le matrici K = K = K = K = Permutation cipher ) ( ( )

41 Nei crittosistemi visti finora, i caratteri successivi che costituiscono il plaintext vengono codificati utilizzando la stessa chiave k, cioè il testo cifrato viene ottenuto come Nei crittosistemi visti finora, i caratteri successivi che costituiscono il plaintext vengono codificati utilizzando la stessa chiave k, cioè il testo cifrato viene ottenuto come y=y 1 y 2 …=e k (x 1 )e k (x 2 )… Crittosistemi di questo tipo sono detti cifrari a blocchi Crittosistemi di questo tipo sono detti cifrari a blocchi Un approccio alternativo presuppone lutilizzo di STREAM cipher, in cui un flusso di chiavi z=z 1 z 2 … viene progressivamente generato ed utilizzato per codificare il plaintext Un approccio alternativo presuppone lutilizzo di STREAM cipher, in cui un flusso di chiavi z=z 1 z 2 … viene progressivamente generato ed utilizzato per codificare il plaintext Fissata una chiave k K, Stream cipher genera la successione di chiavi Fissata una chiave k K, Stream cipher genera la successione di chiavi z i =f i (k,x 1,…x i-1 ) che vengono impiegate per ottenere il testo cifrato che vengono impiegate per ottenere il testo cifrato y=y 1 y 2 …=e z (x 1 )e z (x 2 )… y=y 1 y 2 …=e z (x 1 )e z (x 2 )… Stream cipher 1 21

42 Formalmente... Formalmente... oDefinizione 6 Un cifrario a flusso è rappresentato da una tupla (P,C,K,L,F,E,D) per cui valgono le seguenti condizioni Un cifrario a flusso è rappresentato da una tupla (P,C,K,L,F,E,D) per cui valgono le seguenti condizioni 1.P è un insieme finito di plaintext 2.C è un insieme finito di testi cifrati 3.K, lo spazio delle chiavi, è un insieme finito di possibili chiavi 4.L è lalfabeto finito del flusso di chiavi 5.F=(f 1,f 2,…) è il generatore del flusso di chiavi f i : K P i-1 L 6.Per ogni z L, esiste una regola di codifica e z E ed una corrispondente regola di decodifica d z D. Per ogni funzione e z : P C e d z : C P, d z (e z (x))=x, per ogni x P Stream cipher 2

43 Un cifrario a blocchi è un caso particolare di Stream cipher in cui il flusso di chiavi è costante, z i =k, i 1 Un cifrario a blocchi è un caso particolare di Stream cipher in cui il flusso di chiavi è costante, z i =k, i 1 Uno Stream cipher è sincrono se il flusso di chiavi è indipendente dal plaintext, cioè la funzione f dipende solo da k; k è il seme che viene espanso in un flusso di chiavi Uno Stream cipher è sincrono se il flusso di chiavi è indipendente dal plaintext, cioè la funzione f dipende solo da k; k è il seme che viene espanso in un flusso di chiavi Uno Stream cipher è periodico, con periodo d, se z i+d =z i, i 1 Uno Stream cipher è periodico, con periodo d, se z i+d =z i, i 1 Vigenere cipher, con chiave di lunghezza m, è uno Stream cipher periodico con periodo m e con z=(z 1,z 2,…z m ). In questottica, le funzioni di codifica e di decodifica di Vigenere cipher corrispondono con quelle di Shift cipher Vigenere cipher, con chiave di lunghezza m, è uno Stream cipher periodico con periodo m e con z=(z 1,z 2,…z m ). In questottica, le funzioni di codifica e di decodifica di Vigenere cipher corrispondono con quelle di Shift cipher e z (x) = x + z d z (y) = y – z Stream cipher 3

44 Gli Stream cipher sono spesso descritti per mezzo dellalfabeto binario, cioè P =C =L =Z 2, con funzioni di codifica/decodifica date da Gli Stream cipher sono spesso descritti per mezzo dellalfabeto binario, cioè P =C =L =Z 2, con funzioni di codifica/decodifica date da e z (x) = x + z (mod 2) d z (y) = y + z (mod 2) Laddizione modulo 2 realizza loperazione di XOR, quindi le funzioni di codifica/decodifica possono essere implementate in hardware in modo molto efficienteLaddizione modulo 2 realizza loperazione di XOR, quindi le funzioni di codifica/decodifica possono essere implementate in hardware in modo molto efficiente Stream cipher 4

45 Un altro metodo per generare il flusso di chiavi consiste, a partire dal seme (k 1,k 2,…k m ), nellutilizzare una relazione di ricorrenza lineareUn altro metodo per generare il flusso di chiavi consiste, a partire dal seme (k 1,k 2,…k m ), nellutilizzare una relazione di ricorrenza lineare z i+m = c j z i+j (mod 2) con c 0,c 1,…c m-1 Z 2 costanti predefinite; senza perdita di generalità, c 0 =1 con c 0,c 1,…c m-1 Z 2 costanti predefinite; senza perdita di generalità, c 0 =1 La chiave k consiste dei 2m valori (k 1,k 2,…,k m,c 0,c 1,…c m-1 )La chiave k consiste dei 2m valori (k 1,k 2,…,k m,c 0,c 1,…c m-1 ) Se (k 1,k 2,…,k m )=(0,0,…,0) il flusso di chiavi è completamente costituito da 0: situazione da evitare!Se (k 1,k 2,…,k m )=(0,0,…,0) il flusso di chiavi è completamente costituito da 0: situazione da evitare! Viceversa, mediante unopportuna scelta delle costanti c 0,c 1,…c m-1, per qualsiasi altro valore del vettore di inizializzazione (k 1,k 2,…,k m ), si ottiene un flusso periodico, con periodo 2 m -1Viceversa, mediante unopportuna scelta delle costanti c 0,c 1,…c m-1, per qualsiasi altro valore del vettore di inizializzazione (k 1,k 2,…,k m ), si ottiene un flusso periodico, con periodo 2 m -1 Un seme breve produce uno Stream cipher con periodo lungo… difficile da violare Un seme breve produce uno Stream cipher con periodo lungo… difficile da violare Stream cipher 5 m-1 j=0

46 Esempio 17 Esempio 17 Sia m=4 e (k 1,k 2,k 3,k 4 )=(1,0,0,0). Utilizzando la regola di ricorsione lineare Sia m=4 e (k 1,k 2,k 3,k 4 )=(1,0,0,0). Utilizzando la regola di ricorsione lineare z i+4 =z i +z i+1 (mod 2) con (c 0,c 1,c 2,c 3 )=(1,1,0,0), si ottiene il flusso di chiavi, di periodo 15, con (c 0,c 1,c 2,c 3 )=(1,1,0,0), si ottiene il flusso di chiavi, di periodo 15,1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,… Qualsiasi altro vettore di inizializzazione diverso da 0,a parità di c i, i=0,…,3, produrrà una permutazione ciclica dello stesso flusso di chiavi Qualsiasi altro vettore di inizializzazione diverso da 0,a parità di c i, i=0,…,3, produrrà una permutazione ciclica dello stesso flusso di chiavi Stream cipher 6

47 La generazione del flusso di chiavi può essere realizzata in maniera efficiente, in hardware, per mezzo di un linear feedback shift register (LSFR) a m stadi; il vettore (k 1,k 2,…,k m ) viene utilizzato per inizializzare il registro La generazione del flusso di chiavi può essere realizzata in maniera efficiente, in hardware, per mezzo di un linear feedback shift register (LSFR) a m stadi; il vettore (k 1,k 2,…,k m ) viene utilizzato per inizializzare il registro In ogni istante di tempo, vengono eseguite, in concorrenza, le seguenti operazioni: In ogni istante di tempo, vengono eseguite, in concorrenza, le seguenti operazioni: 1.k 1 viene utilizzato come prossimo bit da elaborare 2.k 2,…,k m vengono shiftati di una posizione a sinistra 3.Il nuovo valore di k m viene calcolato come c j k j+1 c j k j+1 Stream cipher 7 m-1 j=0

48 Il feedback lineare viene realizzato utilizzando quegli stadi del registro corrispondenti ai c j =1 e calcolando la somma modulo 2 (XOR) Il feedback lineare viene realizzato utilizzando quegli stadi del registro corrispondenti ai c j =1 e calcolando la somma modulo 2 (XOR) Ad esempio, per m=4 e (c 0,c 1,c 2,c 3 )=(1,1,0,0), si ottiene un LFSR del tipo… Ad esempio, per m=4 e (c 0,c 1,c 2,c 3 )=(1,1,0,0), si ottiene un LFSR del tipo… che genera il flusso 1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,… che genera il flusso 1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,… Stream cipher 8 k4k4k4k4 k1k1k1k1 k2k2k2k2 k3k3k3k3 +

49 Un esempio di Stream cipher aciclico, noto come AUTOKEY cipher, è dovuto ancora a Blaise de Vigenere Un esempio di Stream cipher aciclico, noto come AUTOKEY cipher, è dovuto ancora a Blaise de Vigenere La particolare denominazione del metodo di cifratura è dovuta al fatto che il plaintext viene utilizzato come chiave (dopo la fase di inizializzazione in cui si usa la chiave primaria k) La particolare denominazione del metodo di cifratura è dovuta al fatto che il plaintext viene utilizzato come chiave (dopo la fase di inizializzazione in cui si usa la chiave primaria k) Autokey cipher 1 Siano P = C = K =L =Z 26. Sia z 1 =k e z i =x i-1 (i 1) Per 0 z 25 e z (x) = x + z (mod 26) d z (y) = y – z (mod 26) x,y Z 26

50 Esempio 18 Esempio 18 Sia k=8 e sia rendezvous il plaintext da codificare, corrispondente alla sequenza di interi Sia k=8 e sia rendezvous il plaintext da codificare, corrispondente alla sequenza di interi il flusso di chiavi da utilizzare per la cifratura è il flusso di chiavi da utilizzare per la cifratura è che, sommato al plaintext (mod 26), fornisce la stringa che, sommato al plaintext (mod 26), fornisce la stringa ovvero zvrqhdujim ovvero zvrqhdujim Autokey cipher 2

51 Vediamo ora come Bob decifra il codice cifrato. Dovrà convertire la stringa alfabetica nella stringa di interi corrispondente… Vediamo ora come Bob decifra il codice cifrato. Dovrà convertire la stringa alfabetica nella stringa di interi corrispondente… Esempio 19 Esempio 19 A partire dalla stringa , A partire dalla stringa , x 1 =d 8 (25)=25-8 (mod 26)=17 Successivamente… Successivamente… x 2 =d 17 (21)=21-17 (mod 26)=4 etc… ogni volta che Bob ottiene un carattere del plaintext, lo utilizza per decifrare il successivo etc… ogni volta che Bob ottiene un carattere del plaintext, lo utilizza per decifrare il successivo Autokey cipher è non sicuro, poiché vi sono soltanto 26 possibili chiavi primarie Autokey cipher è non sicuro, poiché vi sono soltanto 26 possibili chiavi primarie Autokey cipher 3


Scaricare ppt "Crittografia Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena."

Presentazioni simili


Annunci Google