Crittografia Monica Bianchini [email protected] Dipartimento di Ingegneria dellInformazione...

51
Crittografia Crittografia Monica Bianchini Monica Bianchini [email protected] [email protected] Dipartimento di Ingegneria dell’Informazione Dipartimento di Ingegneria dell’Informazione Università di Siena Università di Siena

Transcript of Crittografia Monica Bianchini [email protected] Dipartimento di Ingegneria dellInformazione...

Page 1: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

CrittografiaCrittografia

Monica BianchiniMonica Bianchini

[email protected]@ing.unisi.it

Dipartimento di Ingegneria Dipartimento di Ingegneria dell’Informazionedell’Informazione

Università di SienaUniversità di Siena

Page 2: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

CrittografiaCrittografia• Negli attuali sistemi informativi distribuiti, e più Negli attuali sistemi informativi distribuiti, e più

in generale nel settore delle telecomunicazioni, in generale nel settore delle telecomunicazioni, la la crittografiacrittografia ha assunto un rilievo ed un ha assunto un rilievo ed un interesse crescenti nelle infrastrutture di sicurezza interesse crescenti nelle infrastrutture di sicurezza

• La ragione è evidente: un numero considerevole La ragione è evidente: un numero considerevole di messaggi viaggiadi messaggi viaggia sui canali più disparati, dalla sui canali più disparati, dalla posta al telefono, alle comunicazioni via etere, al posta al telefono, alle comunicazioni via etere, al telex, finotelex, fino alle linee di trasmissione datialle linee di trasmissione dati

• Altrettanto enorme è l’informazione immagazzinataAltrettanto enorme è l’informazione immagazzinata nelle memorie di massa dei calcolatori e nelle nelle memorie di massa dei calcolatori e nelle banche dati banche dati

• Se da un lato il progresso tecnologico Se da un lato il progresso tecnologico agevola agevola la manipolazione (e l'intercettazione) dei la manipolazione (e l'intercettazione) dei dati, dati, dall'altro facilita anche l'applicazione della dall'altro facilita anche l'applicazione della crittografia per proteggere l'informazione stessacrittografia per proteggere l'informazione stessa

Page 3: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• In un sistemaIn un sistema crittografico, il testo in crittografico, il testo in chiaro viene trasformato, secondo regole, chiaro viene trasformato, secondo regole, nel testo in cifranel testo in cifra o o crittogrammacrittogramma; tale ; tale operazione si chiamaoperazione si chiama cifraturacifratura

• Il Il testo cifrato viene quindi trasmesso al testo cifrato viene quindi trasmesso al destinatario attraverso un opportuno canale di destinatario attraverso un opportuno canale di comunicazione. Il canale non sarà comunicazione. Il canale non sarà completamente affidabile: lungocompletamente affidabile: lungo il percorso il percorso può trovarsipuò trovarsi una spia che può intercettare il una spia che può intercettare il crittogramma e tentare di decrittarlocrittogramma e tentare di decrittarlo

• Il destinatario legittimo decifra il crittogramma Il destinatario legittimo decifra il crittogramma e riottiene il testo in chiaro: se il sistema di e riottiene il testo in chiaro: se il sistema di cifra, o cifra, o cifrariocifrario, è ben congegnato, l'operazione, è ben congegnato, l'operazione didi decifrazionedecifrazione o  decifratura deve risultare o  decifratura deve risultare semplice al destinatario legittimo, ma di semplice al destinatario legittimo, ma di complessità proibitiva alla spia complessità proibitiva alla spia possibile in possibile in quanto gli interlocutori legittimi possiedono quanto gli interlocutori legittimi possiedono un'informazione che deve rimanere un'informazione che deve rimanere inaccessibile alla spia, lainaccessibile alla spia, la chiave del cifrariochiave del cifrario

Terminologia Terminologia 1 1

Page 4: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Il modello delineato è schematizzato in figura:Il modello delineato è schematizzato in figura:

• Occorre notare la distinzione tra Occorre notare la distinzione tra decifrazione edecifrazione e decrittazionedecrittazione: quest'ultima è : quest'ultima è l'operazione illegittima in cui non ci si può l'operazione illegittima in cui non ci si può avvalere della chiaveavvalere della chiave

Terminologia Terminologia 2 2

Cifratura (C), decifrazione (D1) e decrittazione (D2)Cifratura (C), decifrazione (D1) e decrittazione (D2)

Page 5: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Il problema della distribuzione delle chiavi è un punto Il problema della distribuzione delle chiavi è un punto di importanza cruciale in qualsiasi cifrario: si dice che di importanza cruciale in qualsiasi cifrario: si dice che la chiave è comunicata al destinatario tramite un la chiave è comunicata al destinatario tramite un corrierecorriere

• Per rendere nota la chiave segreta ciPer rendere nota la chiave segreta ci si può affidare ad si può affidare ad un canale speciale assolutamente fidato, ma se così un canale speciale assolutamente fidato, ma se così è, esso potrebbe essere usato per è, esso potrebbe essere usato per trasmettere il trasmettere il crittogramma o il messaggio in chiaro    crittogramma o il messaggio in chiaro    

• In realtà, l'uso di un canale speciale è costoso inoltre In realtà, l'uso di un canale speciale è costoso inoltre esso potrebbeesso potrebbe essere disponibile solo per brevi essere disponibile solo per brevi intervalli di tempo e/o in determinati momentiintervalli di tempo e/o in determinati momenti

• I metodi di costruzione di un cifrario non possono I metodi di costruzione di un cifrario non possono essere disgiunti dallo studio degli eventuali metodi per essere disgiunti dallo studio degli eventuali metodi per demolirlo, ovvero non demolirlo, ovvero non ci si può occupare dici si può occupare di crittografiacrittografia (la parte costruttiva) senza occuparsi di (la parte costruttiva) senza occuparsi di crittoanalisicrittoanalisi (la parte distruttiva): (la parte distruttiva): insieme esse insieme esse costituiscono una disciplina unitaria dettacostituiscono una disciplina unitaria detta crittologiacrittologia

• Nell'uso corrente si usa Nell'uso corrente si usa ""crittografiacrittografia"" là dove si là dove si dovrebbe dire dovrebbe dire ""crittologiacrittologia""

Terminologia Terminologia 3 3

Page 6: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Alcuni sistemi crittografici si affidano Alcuni sistemi crittografici si affidano esclusivamente alla segretezza degli algoritmi esclusivamente alla segretezza degli algoritmi utilizzati utilizzati solo di interesse storico, inadeguati solo di interesse storico, inadeguati per le applicazioni realiper le applicazioni reali

• Tutti i moderni algoritmi utilizzano unaTutti i moderni algoritmi utilizzano una chiavechiave per controllare sia cifratura che decifratura;per controllare sia cifratura che decifratura; un un messaggio può cioè essere letto solo se la messaggio può cioè essere letto solo se la chiave di decifrazione corrisponde in qualche modo chiave di decifrazione corrisponde in qualche modo a quella di cifraturaa quella di cifratura

• Esistono due classi di algoritmi: Esistono due classi di algoritmi: – simmetricisimmetrici (o a chiave segreta): utilizzano la stessa (o a chiave segreta): utilizzano la stessa

chiave per cifrare e decifrare (o la chiave di chiave per cifrare e decifrare (o la chiave di decifrazione è facilmente ottenibile a partire da decifrazione è facilmente ottenibile a partire da quella di cifratura)quella di cifratura)

– asimmetrici asimmetrici (o a chiave pubblica): utilizzano due (o a chiave pubblica): utilizzano due chiavi diverse e la chiave di decifrazione non può chiavi diverse e la chiave di decifrazione non può essere ricavata a partire dalle informazioni essere ricavata a partire dalle informazioni contenute nella chiave di cifraturacontenute nella chiave di cifratura        

Terminologia Terminologia 4 4

Page 7: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Gli algoritmi simmetrici possono essere suddivisi Gli algoritmi simmetrici possono essere suddivisi inin cifrari di flussocifrari di flusso ee cifrari di bloccocifrari di blocco. I cifrari di . I cifrari di flusso possono crittare un singolo bit del flusso possono crittare un singolo bit del messaggio in chiaro alla volta, mentre i cifrari di messaggio in chiaro alla volta, mentre i cifrari di blocco trasformano l'informazione a blocchi di bit blocco trasformano l'informazione a blocchi di bit (tipicamente 64 bit )(tipicamente 64 bit )

• I cifrari asimmetrici permettono che la I cifrari asimmetrici permettono che la chiave di cifratura sia resa pubblica, chiave di cifratura sia resa pubblica, consentendo a chiunque di cifrare messaggi con consentendo a chiunque di cifrare messaggi con tale chiave, mentre solo il legittimo destinatario tale chiave, mentre solo il legittimo destinatario (colui che conosce la chiave di decifrazione) può (colui che conosce la chiave di decifrazione) può decifrare il messaggio. La chiave di cifratura è decifrare il messaggio. La chiave di cifratura è anche dettaanche detta chiave pubblicachiave pubblica e la chiave di e la chiave di decifrazionedecifrazione chiave privatachiave privata

Terminologia Terminologia 5 5

Page 8: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Crittografia classica Crittografia classica 1 1• Scopo della crittografia è permettere a due Scopo della crittografia è permettere a due

persone, Alice e Bob, di comunicare persone, Alice e Bob, di comunicare attraverso un canale insicuro, in modo tale attraverso un canale insicuro, in modo tale che una spia, Oscar, non possa comprendere che una spia, Oscar, non possa comprendere il contenuto del messaggio il contenuto del messaggio

• Il canale può essere una normale linea Il canale può essere una normale linea telefonica, la rete, etc.telefonica, la rete, etc.

• L’informazione che Alice invia a Bob, il L’informazione che Alice invia a Bob, il plaintextplaintext, o testo in chiaro, può essere , o testo in chiaro, può essere testuale, numerica, etc.testuale, numerica, etc.

• Alice critta il plaintext, utilizzando una Alice critta il plaintext, utilizzando una chiave predefinita, ed invia il testo cifrato chiave predefinita, ed invia il testo cifrato sul canalesul canale

• Oscar non può determinare il contenuto del Oscar non può determinare il contenuto del messaggio, ma Bob, che conosce la chiave, messaggio, ma Bob, che conosce la chiave, può decifrare il testo cifrato e ricostruire il può decifrare il testo cifrato e ricostruire il plaintextplaintext

Page 9: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Crittografia classica Crittografia classica 2 2• Formalmente…Formalmente…

o Definizione 1Definizione 1 Un crittosistema è una quintupla (Un crittosistema è una quintupla (P,C,K,E,DP,C,K,E,D) )

per cui valgono le seguenti condizioniper cui valgono le seguenti condizioni1.1. PP è un insieme finito di plaintext è un insieme finito di plaintext2.2. CC è un insieme finito di testi cifrati è un insieme finito di testi cifrati3.3. KK, lo spazio delle chiavi, è un insieme , lo spazio delle chiavi, è un insieme

finito di possibili finito di possibili chiavichiavi4.4. PerPer ogni k ogni kK,K, esiste esiste una regola di una regola di

codifica ecodifica ekkEE ed una corrispondente ed una corrispondente regola di decodifica dregola di decodifica dkkD. D. Per ogni Per ogni funzionefunzione eekk: : PPCC e d e dkk: : CCPP, d, dkk(e(ekk(x))=x, (x))=x, per ogni xper ogni xPP

Page 10: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Crittografia classica Crittografia classica 3 3• Alice e Bob impiegheranno il seguente Alice e Bob impiegheranno il seguente

protocollo per realizzare uno specifico protocollo per realizzare uno specifico crittosistemacrittosistema

a)a) Scelta di una chiave k: deve avvenire quando Scelta di una chiave k: deve avvenire quando Alice e Bob sono nello stesso posto e non Alice e Bob sono nello stesso posto e non osservati da Oscar, ovvero quando possono osservati da Oscar, ovvero quando possono utilizzare un canale sicuro utilizzare un canale sicuro

b)b) Se Alice vuole comunicare a Bob il messaggio, Se Alice vuole comunicare a Bob il messaggio, rappresentato dalla stringa x=xrappresentato dalla stringa x=x11xx22…x…xnn, n , n 1, 1, ciascun xciascun xii viene codificato per mezzo della viene codificato per mezzo della regola eregola ekk, cioè y, cioè yii=e=ekk(x(xii), ed il testo cifrato ), ed il testo cifrato trasmesso è rappresentato dalla stringa trasmesso è rappresentato dalla stringa y=yy=y11yy22…y…ynn

c)c) Quando Bob riceve y, la decifra usando la Quando Bob riceve y, la decifra usando la funzione di decodifica dfunzione di decodifica dkk, ricostruendo il , ricostruendo il plaintext xplaintext x

Page 11: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Crittografia classica Crittografia classica 4 4

Canale sicuro

Bob

Chiave

Oscar

k

Codificay

Decodifica

xxAlice

o NoteNote

1.1. Le funzioni di codifica sono iniettive: se Le funzioni di codifica sono iniettive: se esistessero xesistessero x11xx22 tali che y=e tali che y=ekk(x(x11)=e)=ekk(x(x22), Bob ), Bob non potrebbe decodificare univocamente il non potrebbe decodificare univocamente il messaggiomessaggio

2.2. Se Se PP ==C C ogni funzione di codifica è una ogni funzione di codifica è una permutazione, cioè il testo cifrato viene permutazione, cioè il testo cifrato viene composto utilizzando gli stessi caratteri del composto utilizzando gli stessi caratteri del plaintext x, organizzati diversamente a plaintext x, organizzati diversamente a formare la stringa yformare la stringa y

Page 12: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Aritmetica modulare Aritmetica modulare 1 1

• Definizione 2Definizione 2 Siano Siano aa e e bb interi ed interi ed mm intero positivo; intero positivo; aa bb (mod (mod

mm), se m divide ), se m divide b-a, b-a, cioè cioè aa è congruente a è congruente a bb modulo modulo mm; l’intero ; l’intero mm è il modulo è il modulo

• Definizione 3Definizione 3 L’aritmetica modulo L’aritmetica modulo m m è costituita dall’insieme Zè costituita dall’insieme Zmm

degli interi {0,1,…,degli interi {0,1,…,mm-1} dotato delle operazioni -1} dotato delle operazioni di somma e moltiplicazione. Le operazioni di somma e moltiplicazione. Le operazioni producono risultati ridotti modulo producono risultati ridotti modulo mm

• Esempio 1Esempio 1 In ZIn Z1616, l’operazione 11, l’operazione 1113 produce come risultato 13 produce come risultato

il numero 143 mod 16=15il numero 143 mod 16=15

Page 13: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Aritmetica modulare Aritmetica modulare 2 2• Proprietà delle operazioni modulariProprietà delle operazioni modulari

1.1. L’insieme ZL’insieme Zmm è chiuso rispetto all’addizione ed alla è chiuso rispetto all’addizione ed alla

moltiplicazione, cioè per ogni moltiplicazione, cioè per ogni a,ba,b ZZmm, , aa ++b, ab, a bb

ZZmm

2.2. L’addizione e la moltiplicazione godono delle L’addizione e la moltiplicazione godono delle proprietà commutativa e associativaproprietà commutativa e associativa

3.3. 0 è l’elemento neutro per l’operazione di 0 è l’elemento neutro per l’operazione di addizione, 1 è l’elemento neutro per la addizione, 1 è l’elemento neutro per la moltiplicazionemoltiplicazione

4.4. Per ogni Per ogni aa ZZmm, m-a , m-a è l’opposto di è l’opposto di aa, cioè vale la , cioè vale la relazione relazione aa+(+(mm--aa )=()=(mm--aa )+)+aa == 00

5.5. La moltiplicazione gode della proprietà distributiva La moltiplicazione gode della proprietà distributiva rispetto all’addizione, cioè per ogni rispetto all’addizione, cioè per ogni aa,,bb,,cc ZZmm, , ((aa

++bb)) c=c=aa cc ++ bb cc, , aa ((bb ++cc )=)=aa bb ++ aa cc

• ZZmm è un è un gruppo abelianogruppo abeliano rispetto all’operazione di rispetto all’operazione di somma e, grazie alla presenza della moltiplicazione, somma e, grazie alla presenza della moltiplicazione, con le proprietà sopra descritte, è un con le proprietà sopra descritte, è un anelloanello

Page 14: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Aritmetica modulare Aritmetica modulare 3 3• Dato che ZDato che Zmm contiene l’opposto, rispetto alla contiene l’opposto, rispetto alla

somma, di ogni elemento dell’insieme, è ivi somma, di ogni elemento dell’insieme, è ivi definita anche l’operazione di sottrazionedefinita anche l’operazione di sottrazione

aa ––bb == aa ++m-b m-b (mod(mod m m ))

• Esempio 2Esempio 2

Per calcolare 11-18 in ZPer calcolare 11-18 in Z3131, si esegue l’operazione , si esegue l’operazione di somma 11+13 modulo 31, ottenendo 24di somma 11+13 modulo 31, ottenendo 24

• Il primo crittosistema che esamineremo, Il primo crittosistema che esamineremo, SHIFT SHIFT ciphercipher,, è definito in Zè definito in Z2626, poiché 26 sono le , poiché 26 sono le lettere che compongono l’alfabeto ingleselettere che compongono l’alfabeto inglese

• Shift cipher costituisce un crittosistema tale Shift cipher costituisce un crittosistema tale che dche dkk(e(ekk(x))=x, per ogni x(x))=x, per ogni x ZZ2626

• Per k=3, il crittosistema a shift è il Per k=3, il crittosistema a shift è il Cifrario di Cifrario di CesareCesare, che lo utilizzava per comunicare con i , che lo utilizzava per comunicare con i generali delle sue legioni generali delle sue legioni

Page 15: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Shift cipher Shift cipher 1 1

• Per utilizzare Shift cipher per codificare testo, Per utilizzare Shift cipher per codificare testo, occorre stabilire una corrispondenza biunivoca occorre stabilire una corrispondenza biunivoca fra lettere dell’alfabeto e relativo numero fra lettere dell’alfabeto e relativo numero d’ordine; quindi è necessario scegliere la d’ordine; quindi è necessario scegliere la chiave k chiave k

Siano Siano P P = = C C == KK = Z = Z2626. Per 0. Per 0 k k 25, 25,

eekk(x) = x + k (mod 26)(x) = x + k (mod 26)

ddkk(y) = y – k (mod 26)(y) = y – k (mod 26)

x,y x,y Z Z2626

Page 16: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Shift cipher Shift cipher 22

• Esempio 3Esempio 3 Sia k=Sia k= 11; la stringa plaintext 11; la stringa plaintext

““we will meet at midnight”we will meet at midnight” può essere convertita nella sequenza di numeripuò essere convertita nella sequenza di numeri

22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 1922 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19 cui deve essere sommato il numero 11 (mod 26)cui deve essere sommato il numero 11 (mod 26)

7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 47 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4 La sequenza di numeri ottenuta, nuovamente La sequenza di numeri ottenuta, nuovamente

tradotta in caratteri, forniscetradotta in caratteri, fornisce““hphtwwxppelextoytrse”hphtwwxppelextoytrse”

• Per decodificare il testo cifrato, Bob deve prima Per decodificare il testo cifrato, Bob deve prima convertirlo nella corrispondente sequenza di convertirlo nella corrispondente sequenza di interi, quindi sottrarre 11 (mod 26) da ognuno di interi, quindi sottrarre 11 (mod 26) da ognuno di essi, ed infine convertire gli interi così ottenuti essi, ed infine convertire gli interi così ottenuti nelle lettere corrispondentinelle lettere corrispondenti

Page 17: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Perché un crittosistema sia operativo, deve Perché un crittosistema sia operativo, deve soddisfare certe proprietà:soddisfare certe proprietà:1.1. Le funzioni di codifica, eLe funzioni di codifica, ekk, e di decodifica, , e di decodifica,

ddkk, devono essere computazionalmente , devono essere computazionalmente poco onerosepoco onerose

2.2. Una eventuale spia non deve essere in Una eventuale spia non deve essere in grado, dall’osservazione del testo cifrato y, grado, dall’osservazione del testo cifrato y, di risalire alla chiave k né al plaintext xdi risalire alla chiave k né al plaintext x

• La seconda proprietà esprime l’idea di La seconda proprietà esprime l’idea di “sicurezza”“sicurezza”

• Il tentativo di determinare la chiave k, dato il Il tentativo di determinare la chiave k, dato il testo cifrato y, costituisce la testo cifrato y, costituisce la crittoanalisicrittoanalisi: se : se Oscar può risalire a k, può anche decrittare y, Oscar può risalire a k, può anche decrittare y, come Bob, utilizzando dcome Bob, utilizzando dkk

Il problema di determinare k deve essere Il problema di determinare k deve essere almeno difficile quanto quello di decifrare x a almeno difficile quanto quello di decifrare x a partire da ypartire da y

Shift cipher Shift cipher 3 3

Page 18: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Shift cipher è un crittosistema che non Shift cipher è un crittosistema che non garantisce la sicurezza, poiché può essere garantisce la sicurezza, poiché può essere crittoanalizzato attraverso il metodo ovvio di crittoanalizzato attraverso il metodo ovvio di ricerca esaustiva della chiave (su solo 26 ricerca esaustiva della chiave (su solo 26 possibili…)possibili…)

• Esempio 4Esempio 4 Dato il testo cifrato “Dato il testo cifrato “jbcrclqrwcrvnbjenbwrwn”jbcrclqrwcrvnbjenbwrwn”, ,

provando in successione le chiavi k=1,2,… si provando in successione le chiavi k=1,2,… si ottieneottiene

iabqbkpqvbqumaidmavqvmiabqbkpqvbqumaidmavqvmhzapajopuaptlzhclzupulhzapajopuaptlzhclzupulgyzozinotzoskygbkytotkgyzozinotzoskygbkytotkfxynyhmnsynrjxfajxsnsjfxynyhmnsynrjxfajxsnsjewxmxglmrxmqiweziwrmriewxmxglmrxmqiweziwrmridvwlwfklqwlphvdyhvqlqhdvwlwfklqwlphvdyhvqlqhcuvkvejpkvkogucxgupkpgcuvkvejpkvkogucxgupkpgbtujudijoujnftbwftojofbtujudijoujnftbwftojof

a stitch in time saves ninea stitch in time saves nine il plaintext è decifrato e k=9il plaintext è decifrato e k=9 In media, occorrono 26/2=13 tentativi per violare In media, occorrono 26/2=13 tentativi per violare

il crittosistemail crittosistema

Shift cipher Shift cipher 4 4

Un punto a Un punto a tempo ne tempo ne risparmia risparmia centocento

Page 19: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Una condizione necessaria Una condizione necessaria affinché il crittosistema sia sicuro affinché il crittosistema sia sicuro è costituita dall’impossibilità di è costituita dall’impossibilità di eseguire una ricerca esaustiva eseguire una ricerca esaustiva nello spazio delle chiavinello spazio delle chiavi

• Tuttavia, anche per |Tuttavia, anche per |KK | molto | molto grande, la sicurezza non è grande, la sicurezza non è garantitagarantita

SicurezzaSicurezza

Page 20: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Substitution cipher Substitution cipher 1 1

• EsempioEsempio 55

Siano Siano P P = = C C = Z= Z2626

Sia Sia KK insieme delle permutazioni di {0,1,…,25} insieme delle permutazioni di {0,1,…,25}

Per ogni Per ogni KK

ee(x) = (x) = (x)(x)

dd(y) = (y) = -1 -1 (y)(y)

x,y x,y Z Z26 26 e e -1 -1 permutazione inversa di 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 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 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 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 y z

dd(a)=d, d(a)=d, d(b)=l, etc.(b)=l, etc.ee(a)=x, e(a)=x, e(b)=n, etc.(b)=n, etc.

Page 21: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Substitution cipher Substitution cipher 2 2• Una chiave per il Una chiave per il SUBSTITUTION cipherSUBSTITUTION cipher è una è una

delle possibili permutazioni dei 26 caratteri delle possibili permutazioni dei 26 caratteri dell’alfabetodell’alfabeto

• Il numero di tali permutazioni è 26!Il numero di tali permutazioni è 26! >> 4.04.0101026 26

la ricerca esaustiva nello spazio delle chiavi è la ricerca esaustiva nello spazio delle chiavi è computazionalmente troppo onerosa anche per computazionalmente troppo onerosa anche per un computerun computer

• Tuttavia, Substitution cipher può essere Tuttavia, Substitution cipher può essere facilmente crittoanalizzato utilizzando metodi facilmente crittoanalizzato utilizzando metodi diversidiversi

• NotaNota

Shift cipher è un caso speciale di Substitution Shift cipher è un caso speciale di Substitution cipher in cui vengono selezionate soltanto 26 cipher in cui vengono selezionate soltanto 26 delle 26! possibili permutazionidelle 26! possibili permutazioni

Page 22: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Affine cipher Affine cipher 1 1

• Per Per AFFINE cipherAFFINE cipher, l’insieme delle funzioni di , l’insieme delle funzioni di codifica è ristretto alla classe delle codifica è ristretto alla classe delle trasformazioni affini (in aritmetica modulare)trasformazioni affini (in aritmetica modulare)

e(x)=e(x)=aax+x+bb (mod 26) (mod 26) aa,,bb ZZ2626

• Per Per aa=1, Affine cipher coincide con Shift cipher=1, Affine cipher coincide con Shift cipher• Per poter decifrare un testo cifrato mediante Per poter decifrare un testo cifrato mediante

Affine cipher è necessario che la funzione Affine cipher è necessario che la funzione ee sia sia iniettiva, cioè che la congruenzainiettiva, cioè che la congruenza

aax+x+bb y (mod 26)y (mod 26) ammetta un’unica soluzioneammetta un’unica soluzione• Teorema 1Teorema 1 La congruenza La congruenza aaxxbb (mod (mod mm ) ha un’unica ) ha un’unica

soluzione in Zsoluzione in Zmm, per ogni , per ogni bb ZZmm,, se e solo se se e solo se MCD(MCD(aa,,mm )=1)=1

Page 23: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Infatti, in ZInfatti, in Z2626……1.1. Supponiamo che MCD(Supponiamo che MCD(aa,26)=d>1, allora la ,26)=d>1, allora la

congruenza congruenza aaxx0 (mod 26) ammette almeno 0 (mod 26) ammette almeno due soluzioni distinte in Zdue soluzioni distinte in Z2626, cioè x=0 e , cioè x=0 e x=26/d x=26/d la funzione di codifica e(x)= la funzione di codifica e(x)=aax+x+bb (mod 26) non è iniettiva(mod 26) non è iniettiva

Esempio 6Esempio 6: Se : Se aa=4, MCD(4,26)=2 e, per =4, MCD(4,26)=2 e, per e(x)=4x+7, e(3)=19, e(16)=71=19, ovvero e(x)=4x+7, e(3)=19, e(16)=71=19, ovvero x, x, x e x+13 producono lo stesso valore per e(x) x e x+13 producono lo stesso valore per e(x)

2.2. Viceversa, sia MCD(Viceversa, sia MCD(aa,26)=1 e siano x,26)=1 e siano x11xx22, tali , tali che che aaxx11aaxx22 (mod 26); allora (mod 26); allora aa(x(x11-x-x22))0 (mod 0 (mod 26); in base alle proprietà della divisione, se 26); in base alle proprietà della divisione, se il MCD(il MCD(aa,,bb )=1 e )=1 e bcbc è divisibile per è divisibile per aa, , cc è è divisibile per divisibile per aa, cioè x, cioè x11xx2 2 modulo 26 modulo 26

• Poiché 26=2Poiché 26=213, possibili valori per 13, possibili valori per aa ZZ2626 sono sono 1,3,5,7, 9,11,15,17,19,21,23,25, mentre 1,3,5,7, 9,11,15,17,19,21,23,25, mentre bb può può assumere qualsiasi valore in Zassumere qualsiasi valore in Z2626 Affine cipher Affine cipher dispone di 12dispone di 1226=312 chiavi possibili (…è 26=312 chiavi possibili (…è sicuramente insicuro!)sicuramente insicuro!)

Affine cipher Affine cipher 2 2

Page 24: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Definizione 4Definizione 4 Siano Siano aa ed ed mm interi tali che interi tali che aa 1 e 1 e mm 2. Se 2. Se

MCD(MCD(aa,,mm )=1 allora )=1 allora aa ed ed mm sono relativamente sono relativamente primiprimi fra loro. Il numero degli interi in Zfra loro. Il numero degli interi in Zmm che sono primi che sono primi rispetto ad rispetto ad mm è rappresentato dalla funzione di è rappresentato dalla funzione di Eulero Eulero ((mm))

• Teorema 2Teorema 2

Sia Sia m m = = ppi i con pcon pi i fattori primi distinti di fattori primi distinti di mm ed e ed eii>0. >0.

AlloraAllora

((mm )= )= ((ppi i - p- pii ))

• Il numero di chiavi per Affine cipher in ZIl numero di chiavi per Affine cipher in Zmm è è mm ((mm ) ) • Esempio 7Esempio 7 Per Per mm=60=2=60=222335, 5, ((mm )=2)=2224=16 e |4=16 e |KK |=960|=960

Affine cipher Affine cipher 3 3

eeii

nn

i=1i=1

eeii

nn

i=1i=1

eeii-1-1

Page 25: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Per decifrare il testo codificato tramite Affine cipher Per decifrare il testo codificato tramite Affine cipher occorre risolvere la congruenza yoccorre risolvere la congruenza yaax+x+bb (mod 26) (mod 26) rispetto ad x, che ha soluzione unica quando rispetto ad x, che ha soluzione unica quando MCD(MCD(aa,26)=1,26)=1

• Definizione 5Definizione 5

Sia Sia aa ZZmm. L’inverso di . L’inverso di aa, , aa-1 -1 ZZmm,, è tale che è tale che aaaa-1 -1 aa-1-1a a 11

• aa ha un inverso modulo ha un inverso modulo mm se e solo MCD( se e solo MCD(aa,,mm)=1 e, se )=1 e, se un inverso esiste, è unicoun inverso esiste, è unico

• Se p è un numero primo, allora ogni elemento Se p è un numero primo, allora ogni elemento 0 di Z0 di Zpp ammette un inverso. Un anello con questa proprietà è ammette un inverso. Un anello con questa proprietà è un un campocampo

• Esistono algoritmi efficienti per il calcolo dell’inverso. Esistono algoritmi efficienti per il calcolo dell’inverso. Tuttavia, in ZTuttavia, in Z2626, l’inverso può essere calcolato,per , l’inverso può essere calcolato,per tentativitentativi

• Ad esempio, 7Ad esempio, 7-1-1=15, 11=15, 11-1-1=19, 25=19, 25-1-1=25; infatti =25; infatti 7715=10515=1051 (mod 26), 111 (mod 26), 1119=20919=2091, 251, 2525=62525=62511

Affine cipher Affine cipher 4 4

Page 26: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Sia ySia yaax+x+bb (mod 26), da cui (mod 26), da cui aaxxy-y-b b (mod 26). (mod 26). Poiché MCD(Poiché MCD(aa,26)=1, ,26)=1, aa ammette un inverso ammette un inverso modulo 26. Pertanto moltiplicando entrambi i modulo 26. Pertanto moltiplicando entrambi i membri della congruenza per membri della congruenza per aa-1-1……

aa-1-1((aax)x)aa-1-1(y-(y-bb) (mod 26) ) (mod 26) x xaa-1-1(y-(y-bb) (mod 26) ) (mod 26)

Affine cipher Affine cipher 5 5

Siano Siano P P = = C C = Z= Z2626,,KK ={( ={(a,ba,b) ) ZZ26 26 ZZ2626: : MCD(MCD(aa,26)=1},26)=1}

Per k=(Per k=(a,ba,b))KK, siano, siano

eekk(x) = (x) = aax+x+bb (mod 26) (mod 26)

ddkk(y) = (y) = a a -1 -1 (y-(y-bb) (mod 26)) (mod 26)

x,y x,y Z Z2626

Page 27: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 8Esempio 8 Sia k=(7,3). Come già notato 7Sia k=(7,3). Come già notato 7-1-1 (mod 26)=15. La (mod 26)=15. La

funzione di codifica èfunzione di codifica è

eekk(x)=7x+3(x)=7x+3 mentre la corrispondente funzione di decodifica mentre la corrispondente funzione di decodifica

risultarisulta

ddkk(y)=15(y-3)=15y-19(y)=15(y-3)=15y-19

Si può verificare che dSi può verificare che dkk(e(ekk(x))=x, (x))=x, xxZZ2626, infatti…, infatti…

ddkk(e(ekk(x))=d(x))=dkk(7x+3)=15(7x+3)-19=x+45-19=x (7x+3)=15(7x+3)-19=x+45-19=x • Esempio 9Esempio 9 Supponiamo di dover convertire il plaintext “Supponiamo di dover convertire il plaintext “hot”, hot”,

che corrisponde alla sequenza di cifre 7 14 19. La che corrisponde alla sequenza di cifre 7 14 19. La funzione di codifica restituiscefunzione di codifica restituisce

777+3 (mod 26)=52 (mod 26)=07+3 (mod 26)=52 (mod 26)=07714+3 (mod 26)=101 (mod 26)=2314+3 (mod 26)=101 (mod 26)=237719+3 (mod 26)=136 (mod 26)=619+3 (mod 26)=136 (mod 26)=6

da cui il testo cifrato “da cui il testo cifrato “axg”axg”

Affine cipher Affine cipher 6 6

Page 28: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Sia Shift che Substitution cipher, una volta Sia Shift che Substitution cipher, una volta selezionata la chiave, mappano in modo selezionata la chiave, mappano in modo univoco ciascuna lettera dell’alfabeto univoco ciascuna lettera dell’alfabeto sono sono crittosistemi crittosistemi monoalfabeticimonoalfabetici

• VIGENERE cipherVIGENERE cipher, da Blaise de Vigenere , da Blaise de Vigenere (vissuto nel XVI sec.), è invece un (vissuto nel XVI sec.), è invece un crittosistema crittosistema polialfabeticopolialfabetico

Vigenere cipher Vigenere cipher 1 1

Sia Sia mm un intero fissato e siano un intero fissato e siano P P ==CC ==KK =(Z=(Z2626))mm

Per k=(Per k=(kk11,k,k22,…,k,…,kmm))KK, definiamo, definiamo

eekk(x(x11,x,x22,…x,…xmm) = (x) = (x11+k+k11,x,x22+k+k22,…x,…xmm+k+kmm))

ddkk(y(y11,y,y22,…,y,…,ymm) = (y) = (y11-k-k11,y,y22-k-k22,…y,…ymm-k-kmm))

dove tutte le operazioni sono eseguite modulo 26 dove tutte le operazioni sono eseguite modulo 26

Page 29: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 10Esempio 10

Sia Sia mm=6 e sia k==6 e sia k=CIPHERCIPHER o, in maniera o, in maniera equivalente, k=(2,8,15,7,4,17). Supponiamo che il equivalente, k=(2,8,15,7,4,17). Supponiamo che il plaintext sia costituito dalla stringa “plaintext sia costituito dalla stringa “this this cryptosystem is not secure”, cryptosystem is not secure”, corrispondente a… corrispondente a…

19 7 8 18 2 17 24 15 19 14 18 24 18 19 4 12 8 18 13 14 19 18 4 2 20 17 419 7 8 18 2 17 24 15 19 14 18 24 18 19 4 12 8 18 13 14 19 18 4 2 20 17 4

19 7 8 18 2 17 24 15 19 14 18 24 18 19 4 12 8 18 13 14 19 18 4 2 20 17 4 +19 7 8 18 2 17 24 15 19 14 18 24 18 19 4 12 8 18 13 14 19 18 4 2 20 17 4 +

2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 =2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 =

______________________________________________________________________________________________________________________________________________ 21 15 23 25 6 8 0 23 8 21 22 15 20 1 19 19 12 9 15 22 8 25 8 19 22 25 1921 15 23 25 6 8 0 23 8 21 22 15 20 1 19 19 12 9 15 22 8 25 8 19 22 25 19

““vpxzgiaxivwpubttmjpwizitwzt”vpxzgiaxivwpubttmjpwizitwzt”

Vigenere cipher Vigenere cipher 2 2

Page 30: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Il numero complessivo di chiavi di lunghezza Il numero complessivo di chiavi di lunghezza mm è 26è 26mm

anche per anche per mm piccolo la ricerca esaustiva è piccolo la ricerca esaustiva è computazionalmente onerosacomputazionalmente onerosa

• Ad esempio, per Ad esempio, per mm=5, |=5, |KK |>10|>1077: la ricerca a : la ricerca a mano è preclusa, ma il computer può mano è preclusa, ma il computer può ragionevolmente realizzarlaragionevolmente realizzarla

• In Vigenere cipher, con chiave di In Vigenere cipher, con chiave di mm caratteri, caratteri, ciascuna lettera dell’alfabeto può essere ciascuna lettera dell’alfabeto può essere mappata su uno qualsiasi degli mappata su uno qualsiasi degli mm caratteri caratteri possibili (se la chiave è costituita da tutti possibili (se la chiave è costituita da tutti caratteri distinti)caratteri distinti)

• La crittoanalisi di sistemi polialfabetici è La crittoanalisi di sistemi polialfabetici è generalmente molto più difficilegeneralmente molto più difficile

Vigenere cipher Vigenere cipher 3 3

Page 31: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• HILL cipherHILL cipher fu inventato nel 1929 da Lester S. Hill fu inventato nel 1929 da Lester S. Hill ed è un crittosistema polialfabeticoed è un crittosistema polialfabetico

• Sia Sia mm un intero e siano un intero e siano PP ==CC =(Z=(Z2626))mm. L’operazione di . L’operazione di codifica avviene considerando codifica avviene considerando mm combinazioni combinazioni lineari di lineari di mm caratteri consecutivi nel plaintext, e caratteri consecutivi nel plaintext, e producendo gli producendo gli mm caratteri corrispondenti del testo caratteri corrispondenti del testo cifratocifrato

• Esempio 11Esempio 11

Sia Sia mm=2. Una sezione elementare del plaintext può =2. Una sezione elementare del plaintext può essere rappresentata da (xessere rappresentata da (x11,x,x22), ed il ), ed il corrispondente testo cifrato da (ycorrispondente testo cifrato da (y11,y,y22), dove), dove

yy11=11x=11x11+3x+3x22

YY22=8x=8x11+7x+7x22

o, in notazione matriciale…o, in notazione matriciale…

(y(y11,y,y22)=(x)=(x11,x,x22))

Hill cipher Hill cipher 1 1

( )( )11 811 8

3 73 7

Page 32: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• In generale, si considera una matrice K, In generale, si considera una matrice K, mm m, m, quale chiave per Hill cipher, e la funzione equale chiave per Hill cipher, e la funzione ekk(x) (x) viene calcolata comeviene calcolata come

eekk(x)= (y(x)= (y11,y,y22,…,y,…,ymm)=(x)=(x11,x,x22,…x,…xmm))

In altre parole y=xK. Il testo cifrato è ottenuto dal In altre parole y=xK. Il testo cifrato è ottenuto dal plaintext attraverso una plaintext attraverso una trasformazione linearetrasformazione lineare

• Se l’inversa della matrice K esiste in ZSe l’inversa della matrice K esiste in Z2626, per , per decifrare il testo cifrato e ricostruire il plaintext, decifrare il testo cifrato e ricostruire il plaintext, si applica la trasformazione x=yKsi applica la trasformazione x=yK-1-1

• Esempio 12Esempio 12

==

Hill cipher Hill cipher 2 2

( ( ) )kk1111 k k1212 … k … k11mm

kk2121 k k2222 … k … k22mm

kkmm11 k kmm22 … … kkmmmm

… …… …

( )( )( )( ) 7 7 1818

23 1123 11

-1-111 811 8

3 73 7

Page 33: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 13Esempio 13

Supponiamo di voler codificare il plaintext “Supponiamo di voler codificare il plaintext “july”july”, , cui corrisponde la sequenza di numeri cui corrisponde la sequenza di numeri (9,20,11,24)(9,20,11,24)

(9,20) (9,20) =(99+60,72+140)=(3,4)=(99+60,72+140)=(3,4)

(11,24) (11,24) =(121+72,88+168)=(11,22)=(121+72,88+168)=(11,22)

Il testo cifrato è “Il testo cifrato è “delw”delw”

Hill cipher Hill cipher 3 3

( )( )

11 811 8

3 73 7( )( )11 811 8

3 73 7

Page 34: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Una matrice reale K possiede l’inversa se e solo Una matrice reale K possiede l’inversa se e solo se det(K)se det(K)00

• In ZIn Z2626, K ammette un’inversa sse , K ammette un’inversa sse MCD(det(K),26)=1. Infatti…MCD(det(K),26)=1. Infatti…

1.1. Sia MCD(det(K),26)=1. Per 1Sia MCD(det(K),26)=1. Per 1 ii mm, 1, 1 jj m, m, sia Ksia Kijij la matrice ottenuta da K eliminando la riga i-esima la matrice ottenuta da K eliminando la riga i-esima e la colonna j-esima. Sia K* tale K*e la colonna j-esima. Sia K* tale K*ijij=(-1)=(-1)i+ji+j det(K det(Kjiji) ) K* è l’ K* è l’aggiuntaaggiunta di K. Si può dimostrare che di K. Si può dimostrare che

KK-1-1=(det(K))=(det(K))-1-1 K*K*

K è invertibileK è invertibile

2.2. Viceversa, se K ammette l’inversa KViceversa, se K ammette l’inversa K-1-1, si ha, si ha

1=det(I)=det(KK1=det(I)=det(KK-1-1)=det(K))=det(K) det(Kdet(K-1-1))

det(K) è invertibile in Zdet(K) è invertibile in Z2626 MCD(det(K),26)=1 MCD(det(K),26)=1

Hill cipher Hill cipher 4 4

Page 35: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 14Esempio 14

Nel caso particolare Nel caso particolare mm=2,=2,

AA-1-1=(det(A))=(det(A))-1-1

Considerando la matrice degli esempi Considerando la matrice degli esempi precedenti…precedenti…

det det =11=117-87-83 (mod 26)=77-24 (mod 26)3 (mod 26)=77-24 (mod 26)

=53 (mod 26)=1=53 (mod 26)=1

Inoltre 1Inoltre 1-1-1 (mod 26)=1 e quindi (mod 26)=1 e quindi

= =

Hill cipher Hill cipher 5 5

( )( ) aa2222 -a -a1212

-a-a2121 a a1111

( )( )11 811 8

3 3 77

11 811 8

3 73 7 ( )( )-1-1( )( ) 7 7 1818

23 1123 11

Page 36: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Hill cipher Hill cipher 6 6

Sia Sia mm un intero positivo fissato un intero positivo fissato

Siano Siano P P = = C C = (Z= (Z2626))mm

Sia Sia KK ={matrici invertibili ={matrici invertibili mm mm in Z in Z2626}}

Per ogni KPer ogni KKK

eeKK(x) = xK(x) = xK

ddKK(y) = yK(y) = yK-1-1

dove tutte le operazioni sono eseguite modulo dove tutte le operazioni sono eseguite modulo 2626

Page 37: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Tutti i crittosistemi descritti finora presuppongono la Tutti i crittosistemi descritti finora presuppongono la sostituzione dei caratteri del plaintext con caratteri sostituzione dei caratteri del plaintext con caratteri differenti che costituiscono il testo cifratodifferenti che costituiscono il testo cifrato

• L’idea sottesa a L’idea sottesa a PERMUTATION cipherPERMUTATION cipher è quella di è quella di mantenere i caratteri del plaintext inalterati, mantenere i caratteri del plaintext inalterati, cambiandoli di posizionecambiandoli di posizione

• Permutation (o Transposition) cipher è stato usato Permutation (o Transposition) cipher è stato usato per oltre 400 anni: già nel 1536, G. Porta ne per oltre 400 anni: già nel 1536, G. Porta ne evidenziò le differenze rispetto al cifrario per evidenziò le differenze rispetto al cifrario per sostituzionesostituzione

Permutation cipher Permutation cipher 1 1

Sia Sia mm un intero positivo fissato. Siano un intero positivo fissato. Siano P P = = C C = (Z= (Z2626))mm

K K insieme delle permutazioni di {0,1,…, insieme delle permutazioni di {0,1,…,m m }. Per }. Per ogni ogni KK

ee(x(x11,x,x22,…,x,…,xmm) = (x) = (x(1)(1),x,x(2)(2),…x,…x((mm))))

dd(y(y11,y,y22,…,y,…,ymm) = (y) = (y (1) (1), y, y (2) (2),… y,… y ( (mm))))

-1 -1 permutazione inversa di permutazione inversa di

-1-1 -1-1-1-1

Page 38: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 15Esempio 15 Sia Sia mm=6 e sia k==6 e sia k= la permutazione la permutazione

-1-1::

Se dunque il plaintext è rappresentato dalla Se dunque il plaintext è rappresentato dalla stringa “stringa “she sells sea shells by the sea shore“ she sells sea shells by the sea shore“ ……

shesel lsseas hellsb ythese ashoreshesel lsseas hellsb ythese ashore

eeslsh salses lshble hsyeet hraeoseeslsh salses lshble hsyeet hraeos cioè “cioè “eeslshsalseslshblehsyeethraeos”eeslshsalseslshblehsyeethraeos” Il testo cifrato può essere decifrato applicando la Il testo cifrato può essere decifrato applicando la

permutazione inversapermutazione inversa

Permutation cipher Permutation cipher 2 2

11

1133 4422

2233

664455

55 6611

1133 2222

4433

554466

55 66 11

1133 4422

2233

664455

55 66

Page 39: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Permutation cipher è, di fatto, un caso Permutation cipher è, di fatto, un caso particolare di Hill cipher. Infatti, ad ogni particolare di Hill cipher. Infatti, ad ogni permutazione permutazione , può essere associata una , può essere associata una matrice di permutazionematrice di permutazione K definita come K definita come

KKijij = =

• Una matrice di permutazione è ottenuta Una matrice di permutazione è ottenuta permutando permutando per righe o per colonne per righe o per colonne la la matrice identità Imatrice identità I

• Hill cipher realizzato attraverso una matrice di Hill cipher realizzato attraverso una matrice di permutazione K produce esattamente permutazione K produce esattamente Permutation cipher con permutazione Permutation cipher con permutazione . . Inoltre (K Inoltre (K ))-1-1=K , cioè l’inversa della matrice K =K , cioè l’inversa della matrice K è la matrice di permutazione definita da è la matrice di permutazione definita da -1-1

Permutation cipher Permutation cipher 3 3

{{ 1 se i=1 se i=(j)(j)

0 0 altrimealtrimentinti

-1-1

Page 40: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 16Esempio 16

Alla permutazione Alla permutazione : :

ed alla sua inversa ed alla sua inversa -1-1: :

corrispondono, rispettivamente, le matricicorrispondono, rispettivamente, le matrici

K = K =K = K =

Permutation cipher Permutation cipher 4 411

1133 2222

4433

554466

55 66

11

1133 4422

2233

664455

55 66

))0 0 1 0 0 00 0 1 0 0 00 0 0 0 1 00 0 0 0 1 01 0 0 0 0 01 0 0 0 0 00 0 0 0 0 10 0 0 0 0 10 0 0 1 0 00 0 0 1 0 00 1 0 0 0 00 1 0 0 0 0

(( -1-1((0 0 1 0 0 00 0 1 0 0 00 0 0 0 0 10 0 0 0 0 11 0 0 0 0 01 0 0 0 0 00 0 0 0 1 00 0 0 0 1 00 1 0 0 0 00 1 0 0 0 00 0 0 1 0 00 0 0 1 0 0

))

Page 41: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Nei crittosistemi visti finora, i caratteri successivi che Nei crittosistemi visti finora, i caratteri successivi che costituiscono il plaintext vengono codificati utilizzando costituiscono il plaintext vengono codificati utilizzando la stessa chiave k, cioè il testo cifrato viene ottenuto la stessa chiave k, cioè il testo cifrato viene ottenuto comecome

y=yy=y11yy22…=e…=ekk(x(x11)e)ekk(x(x22)…)…

• Crittosistemi di questo tipo sono detti Crittosistemi di questo tipo sono detti cifrari a blocchicifrari a blocchi• Un approccio alternativo presuppone l’utilizzo di Un approccio alternativo presuppone l’utilizzo di

STREAM cipherSTREAM cipher, in cui un flusso di chiavi z=z, in cui un flusso di chiavi z=z11zz22… viene … viene progressivamente generato ed utilizzato per codificare progressivamente generato ed utilizzato per codificare il plaintextil plaintext

• Fissata una chiave kFissata una chiave k K, K, Stream cipher genera la Stream cipher genera la successione di chiavi successione di chiavi

zzii==ff ii (k,x(k,x11,…x,…xi-1i-1) )

che vengono impiegate per ottenere il testo cifratoche vengono impiegate per ottenere il testo cifrato

y=yy=y11yy22…=e…=ezz (x (x11)e)ezz (x (x22)…)…

Stream cipher Stream cipher 1 1

2211

Page 42: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Formalmente...Formalmente...o Definizione 6Definizione 6 Un cifrario a flusso è rappresentato da una tupla Un cifrario a flusso è rappresentato da una tupla

((P,C,K,L,F,E,DP,C,K,L,F,E,D) per cui valgono le seguenti ) per cui valgono le seguenti condizionicondizioni

1.1. PP è un insieme finito di plaintext è un insieme finito di plaintext2.2. CC è un insieme finito di testi cifrati è un insieme finito di testi cifrati3.3. KK, lo spazio delle chiavi, è un insieme finito di , lo spazio delle chiavi, è un insieme finito di

possibili chiavipossibili chiavi4.4. L L è l’alfabeto finito del flusso di chiaviè l’alfabeto finito del flusso di chiavi

5.5. FF=(=(ff 11,,ff 22,…) è il generatore del flusso di chiavi,…) è il generatore del flusso di chiavi

ff ii: : KK PP i-1 i-1 LL

6.6. PerPer ogni z ogni z L,L, esiste esiste una regola di codifica una regola di codifica eezzE E ed una corrispondente regola di ed una corrispondente regola di decodifica ddecodifica dzzD. D. Per ogni funzionePer ogni funzione eezz: : PPCC e e ddzz: : CCPP, d, dzz(e(ezz(x))=x, per ogni x(x))=x, per ogni xPP

Stream cipher Stream cipher 2 2

Page 43: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Un cifrario a blocchi è un caso particolare di Un cifrario a blocchi è un caso particolare di Stream cipher in cui il flusso di chiavi è Stream cipher in cui il flusso di chiavi è costante, zcostante, zii=k, =k, ii 11

• Uno Stream cipher è Uno Stream cipher è sincronosincrono se il flusso di se il flusso di chiavi è indipendente dal plaintext, cioè la chiavi è indipendente dal plaintext, cioè la funzione funzione ff dipende solo da k; k è il “seme” che dipende solo da k; k è il “seme” che viene espanso in un flusso di chiaviviene espanso in un flusso di chiavi

• Uno Stream cipher è Uno Stream cipher è periodicoperiodico,, con periodo d, con periodo d, se zse zi+di+d=z=zii, , ii 11

• Vigenere cipher, con chiave di lunghezza Vigenere cipher, con chiave di lunghezza m, m, è è uno Stream cipher periodico con periodo uno Stream cipher periodico con periodo mm e e con z=(zcon z=(z11,z,z22,…z,…zmm). In quest’ottica, le funzioni di ). In quest’ottica, le funzioni di codifica e di decodifica di Vigenere cipher codifica e di decodifica di Vigenere cipher corrispondono con quelle di Shift ciphercorrispondono con quelle di Shift cipher

eezz(x) = x + z (x) = x + z

ddzz(y) = y – z (y) = y – z

Stream cipher Stream cipher 3 3

Page 44: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Gli Stream cipher sono spesso descritti per mezzo Gli Stream cipher sono spesso descritti per mezzo dell’alfabeto binario, cioè dell’alfabeto binario, cioè PP ==CC ==LL =Z=Z22, con funzioni , con funzioni di codifica/decodifica date dadi codifica/decodifica date da

eezz(x) = x + z (mod 2)(x) = x + z (mod 2)

ddzz(y) = y + z (mod 2)(y) = y + z (mod 2)

• L’addizione modulo 2 realizza l’operazione di XOR, L’addizione modulo 2 realizza l’operazione di XOR, quindi le funzioni di codifica/decodifica possono quindi le funzioni di codifica/decodifica possono essere implementate in hardware in modo molto essere implementate in hardware in modo molto efficienteefficiente

Stream cipher Stream cipher 4 4

Page 45: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Un altro metodo per generare il flusso di chiavi Un altro metodo per generare il flusso di chiavi consiste, a partire dal seme (kconsiste, a partire dal seme (k11,k,k22,…k,…kmm), nell’utilizzare ), nell’utilizzare una relazione di ricorrenza lineareuna relazione di ricorrenza lineare

zzi+i+mm= = c cjjzzi+ji+j (mod 2) (mod 2)

con ccon c00,c,c11,…c,…cmm-1-1 Z Z22 costanti predefinite; senza perdita costanti predefinite; senza perdita di generalità, cdi generalità, c00=1=1

• La chiave k consiste dei 2La chiave k consiste dei 2mm valori (k valori (k11,k,k22,…,k,…,kmm,c,c00,c,c11,…,…ccmm-1-1))

• Se (kSe (k11,k,k22,…,k,…,kmm)=(0,0,…,0) il flusso di chiavi è )=(0,0,…,0) il flusso di chiavi è completamente costituito da 0: situazione da evitare!completamente costituito da 0: situazione da evitare!

• Viceversa, mediante un’opportuna scelta delle Viceversa, mediante un’opportuna scelta delle costanti ccostanti c00,c,c11,…c,…cmm-1-1, per qualsiasi altro valore del , per qualsiasi altro valore del vettore di inizializzazione (kvettore di inizializzazione (k11,k,k22,…,k,…,kmm), si ottiene un ), si ottiene un flusso periodico, con periodo 2flusso periodico, con periodo 2mm-1-1

Un “seme breve” produce uno Stream cipher con Un “seme breve” produce uno Stream cipher con periodo lungo… periodo lungo… difficile da violaredifficile da violare

Stream cipher Stream cipher 5 5

mm-1-1

j=0j=0

Page 46: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 17Esempio 17

Sia Sia mm=4 e (k=4 e (k11,k,k22,k,k33,k,k44)=(1,0,0,0). Utilizzando la )=(1,0,0,0). Utilizzando la regola di ricorsione lineareregola di ricorsione lineare

zzi+4i+4=z=zii+z+zi+1i+1 (mod 2) (mod 2)

con (ccon (c00,c,c11,c,c22,c,c33)=(1,1,0,0), si ottiene il flusso di )=(1,1,0,0), si ottiene il flusso di chiavi, di periodo 15,chiavi, di periodo 15,

1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,…1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,…

Qualsiasi altro vettore di inizializzazione diverso Qualsiasi altro vettore di inizializzazione diverso da 0,a parità di cda 0,a parità di cii, i=0,…,3, produrrà una , i=0,…,3, produrrà una permutazione ciclica dello stesso flusso di chiavi permutazione ciclica dello stesso flusso di chiavi

Stream cipher Stream cipher 6 6

Page 47: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• La generazione del flusso di chiavi può essere La generazione del flusso di chiavi può essere realizzata in maniera efficiente, in hardware, realizzata in maniera efficiente, in hardware, per mezzo di un per mezzo di un linear feedback shift registerlinear feedback shift register (LSFR) a (LSFR) a mm stadi; il vettore (k stadi; il vettore (k11,k,k22,…,k,…,kmm) viene ) viene utilizzato per inizializzare il registroutilizzato per inizializzare il registro

• In ogni istante di tempo, vengono eseguite, in In ogni istante di tempo, vengono eseguite, in concorrenza, le seguenti operazioni:concorrenza, le seguenti operazioni:

1.1. kk11 viene utilizzato come prossimo bit da viene utilizzato come prossimo bit da elaborareelaborare

2.2. kk22,…,k,…,km m vengono “vengono “shiftati” shiftati” didi una posizioneuna posizione a a sinistrasinistra

3.3. Il nuovo valore di kIl nuovo valore di km m viene calcolato come viene calcolato come

ccj j kkj+1j+1

Stream cipher Stream cipher 7 7

mm-1-1

j=0j=0

Page 48: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Il feedback lineare viene realizzato utilizzando Il feedback lineare viene realizzato utilizzando quegli stadi del registro corrispondenti ai cquegli stadi del registro corrispondenti ai cjj=1 =1 e calcolando la somma modulo 2 (XOR)e calcolando la somma modulo 2 (XOR)

• Ad esempio, per Ad esempio, per mm=4 e (c=4 e (c00,c,c11,c,c22,c,c33)=(1,1,0,0), si )=(1,1,0,0), si ottiene un LFSR del tipo…ottiene un LFSR del tipo…

che genera il flusso che genera il flusso 1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,…1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,…

Stream cipher Stream cipher 8 8

kk44kk11 kk22 kk33

++

Page 49: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Un esempio di Stream cipher aciclico, noto come Un esempio di Stream cipher aciclico, noto come AUTOKEY cipherAUTOKEY cipher, è dovuto ancora a Blaise de , è dovuto ancora a Blaise de VigenereVigenere

• La particolare denominazione del metodo di La particolare denominazione del metodo di cifratura è dovuta al fatto che il plaintext viene cifratura è dovuta al fatto che il plaintext viene utilizzato come chiave (dopo la fase di utilizzato come chiave (dopo la fase di inizializzazione in cui si usa la “chiave primaria” inizializzazione in cui si usa la “chiave primaria” k)k)

Autokey cipher Autokey cipher 1 1

Siano Siano P P = = C C = = K K ==L L =Z=Z2626. . Sia zSia z11=k e z=k e zii=x=xi-1i-1 (i (i 1)1)

Per 0 Per 0 z z 25 25

eezz(x) = x + z (mod 26)(x) = x + z (mod 26)

ddzz(y) = y – z (mod 26)(y) = y – z (mod 26)

x,y x,y Z Z2626

Page 50: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Esempio 18Esempio 18

Sia k=8 e sia “Sia k=8 e sia “rendezvous” rendezvous” il plaintext da il plaintext da codificare, corrispondente alla sequenza di interi codificare, corrispondente alla sequenza di interi

17 4 13 3 4 25 21 14 20 1817 4 13 3 4 25 21 14 20 18

il flusso di chiavi da utilizzare per la cifratura è il flusso di chiavi da utilizzare per la cifratura è

8 17 4 13 3 4 25 21 14 208 17 4 13 3 4 25 21 14 20

che, sommato al plaintext (mod 26), fornisce la che, sommato al plaintext (mod 26), fornisce la stringastringa

25 21 17 16 7 3 20 9 8 1225 21 17 16 7 3 20 9 8 12

ovvero “ovvero “zvrqhdujim”zvrqhdujim”

Autokey cipher Autokey cipher 2 2

Page 51: Crittografia Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Vediamo ora come Bob decifra il codice cifrato. Vediamo ora come Bob decifra il codice cifrato. Dovrà convertire la stringa alfabetica nella Dovrà convertire la stringa alfabetica nella stringa di interi corrispondente…stringa di interi corrispondente…

• Esempio 19Esempio 19

A partire dalla stringa 25 21 17 16 7 3 20 9 8 12,A partire dalla stringa 25 21 17 16 7 3 20 9 8 12,

xx11=d=d88(25)=25-8 (mod 26)=17 (25)=25-8 (mod 26)=17

Successivamente…Successivamente…

xx22=d=d1717 (21)=21-17 (mod 26)=4(21)=21-17 (mod 26)=4

etc… ogni volta che Bob ottiene un carattere del etc… ogni volta che Bob ottiene un carattere del plaintext, lo utilizza per decifrare il successivoplaintext, lo utilizza per decifrare il successivo

• Autokey cipher è non sicuro, poiché vi sono Autokey cipher è non sicuro, poiché vi sono soltanto 26 possibili chiavi primariesoltanto 26 possibili chiavi primarie

Autokey cipher Autokey cipher 3 3