crittografia i cifrari storici monica bianchini [email protected]

61
Crittografia Crittografia I cifrari I cifrari storici storici Monica Bianchini Monica Bianchini [email protected] [email protected]

Upload: simona-tarantino

Post on 01-May-2015

228 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Crittografia Crittografia I cifrari storici I cifrari storici

Monica BianchiniMonica [email protected]@ing.unisi.it

Page 2: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Crittografia Crittografia 1 1 LaLa crittografiacrittografia (dal greco (dal greco kryptoskryptos, nascosto, e , nascosto, e

grapheingraphein, scrivere) è la , scrivere) è la scrittura segretascrittura segreta, ovvero , ovvero l’arte di scrivere messaggi che possano essere l’arte di scrivere messaggi che possano essere letti e compresi solo dal legittimo destinatario letti e compresi solo dal legittimo destinatario

Le sue origini risalgono alla più remota antichità, Le sue origini risalgono alla più remota antichità, se già la Bibbia parla di un codice segreto per se già la Bibbia parla di un codice segreto per scrivere il nome, innominabile e sacrilego, di scrivere il nome, innominabile e sacrilego, di Babele Babele il il codice Atbashcodice Atbash

Nel libro di Geremia, infatti, viene usato un Nel libro di Geremia, infatti, viene usato un semplicissimo codice monoalfabetico per cifrare semplicissimo codice monoalfabetico per cifrare la parola Babele; la prima lettera dell’alfabeto la parola Babele; la prima lettera dell’alfabeto ebraico (ebraico (אא, , Aleph) viene cifrata con l’ultima (Aleph) viene cifrata con l’ultima (תת, , Taw), la seconda (Taw), la seconda (בב, , Beth) viene cifrata con la Beth) viene cifrata con la penultima (penultima (שש, , Shin) e così via; da queste quattro Shin) e così via; da queste quattro lettere è derivato il nome di Atbash (A con T, B lettere è derivato il nome di Atbash (A con T, B con SH) per questo codicecon SH) per questo codice

Page 3: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Crittografia Crittografia 2 2 La La scitala lacedemonicascitala lacedemonica è un antico è un antico

esempio di un sistema per cifrare esempio di un sistema per cifrare messaggi tramite l’utilizzo di un bastone messaggi tramite l’utilizzo di un bastone cilindrico, che opera come un cifrario a cilindrico, che opera come un cifrario a trasposizione (secondo gli scritti di trasposizione (secondo gli scritti di Plutarco, in uso dai tempi di Licurgo, IX sec Plutarco, in uso dai tempi di Licurgo, IX sec a.C.)a.C.)

Una sottile striscia di carta veniva avvolta Una sottile striscia di carta veniva avvolta su un bastone di diametro ben definito, su un bastone di diametro ben definito, misura di cui era a conoscenza anche il misura di cui era a conoscenza anche il destinatario; sulle spire di papiro destinatario; sulle spire di papiro affiancate veniva scritto il messaggio da affiancate veniva scritto il messaggio da criptarecriptare Terminata la scrittura, il papiro veniva svolto e inviato Terminata la scrittura, il papiro veniva svolto e inviato al destinatarioal destinatario

Il destinatario poteva ricomporre il messaggio, Il destinatario poteva ricomporre il messaggio, avvolgendo la striscia di papiro sul suo bastone di avvolgendo la striscia di papiro sul suo bastone di diametro identico a quello usato per crittografare il diametro identico a quello usato per crittografare il testotesto

Page 4: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Crittografia Crittografia 3 3 Per secoli la crittografia è stata appannaggio Per secoli la crittografia è stata appannaggio

quasi esclusivo dei militari e dei diplomatici, e i quasi esclusivo dei militari e dei diplomatici, e i metodi crittografici erano specifici per l’invio di metodi crittografici erano specifici per l’invio di messaggi affidati a corrierimessaggi affidati a corrieri

Nel XX secolo però, prima l’invenzione della radio, Nel XX secolo però, prima l’invenzione della radio, poi quella del computer hanno cambiato in modo poi quella del computer hanno cambiato in modo radicale lo scenarioradicale lo scenario

Il periodo d’oro della crittografia coincide con la Il periodo d’oro della crittografia coincide con la seconda guerra mondiale, quando seconda guerra mondiale, quando Alan TuringAlan Turing, il , il padre dell’informatica teorica, insieme al gruppo padre dell’informatica teorica, insieme al gruppo di ricerca di Bletchley Park, formalizzò la teoria di ricerca di Bletchley Park, formalizzò la teoria necessaria per uno studio sistematico dei cifrarinecessaria per uno studio sistematico dei cifrari

Nel 1918, infatti, Arthur Scherbius aveva Nel 1918, infatti, Arthur Scherbius aveva inventato la inventato la macchina Enigmamacchina Enigma, una, una macchina macchina cifrante che i tedeschi impiegarono per le loro cifrante che i tedeschi impiegarono per le loro comunicazioni segrete durante la seconda guerra comunicazioni segrete durante la seconda guerra mondiale mondiale

Page 5: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Crittografia Crittografia 4 4 La macchina Enigma consentiva di cifrare un testo La macchina Enigma consentiva di cifrare un testo

scegliendo tra 17576scegliendo tra 175766610039179150010039179150010101616, 10 , 10 milioni di miliardi, di combinazioni distintemilioni di miliardi, di combinazioni distinte

Page 6: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Crittografia Crittografia 5 5 Dal gruppo di Bletchley Park, Dal gruppo di Bletchley Park,

nel 1943, nasce il primo nel 1943, nasce il primo calcolatore elettronico, il calcolatore elettronico, il computer computer ColossusColossus,, utilizzato utilizzato per decifrare le comunicazioni per decifrare le comunicazioni “segrete” dei tedeschi, e che “segrete” dei tedeschi, e che permise la violazione del permise la violazione del codice Enigma e la vittoria codice Enigma e la vittoria angloanglo americana americana sull’Atlanticosull’Atlantico

Nel 1949, Nel 1949, Claude ShannonClaude Shannon, l’ideatore della , l’ideatore della moderna teoria dell’informazione, pubblicò un moderna teoria dell’informazione, pubblicò un articolo rimasto nella storia della crittografia articolo rimasto nella storia della crittografia “Communication theory of secrecy systems”“Communication theory of secrecy systems”

Page 7: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Crittografia Crittografia 6 6 Con l’avvento del computer, che ha di colpo resi Con l’avvento del computer, che ha di colpo resi

inaffidabili e superati quasi tutti i metodi classici, inaffidabili e superati quasi tutti i metodi classici, nascono i metodi specifici per l’uso informatico nascono i metodi specifici per l’uso informatico come il come il DESDES (Data Encryption Standard, 1975) (Data Encryption Standard, 1975) della IBM, e il rivoluzionario della IBM, e il rivoluzionario RSARSA (Rivest, Shamir, (Rivest, Shamir, Adelman, 1977), capostipite dei Adelman, 1977), capostipite dei cifrari a chiave cifrari a chiave pubblicapubblica

I cifrari a chiave pubblica sono intrinsecamente I cifrari a chiave pubblica sono intrinsecamente sicuri poiché si basano sulla soluzione di problemi sicuri poiché si basano sulla soluzione di problemi matematici “difficili”, derivati dalla teoria dei matematici “difficili”, derivati dalla teoria dei numeri, dalla teoria delle curve ellittiche, etc.numeri, dalla teoria delle curve ellittiche, etc.

Page 8: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Crittografia Crittografia 7 7 Negli attuali sistemi informativi distribuiti, e più in Negli attuali sistemi informativi distribuiti, e più in

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

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

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

Se da un lato il progresso tecnologico agevola la Se da un lato il progresso tecnologico agevola la manipolazione (e l’intercettazione) dei dati, manipolazione (e l’intercettazione) dei 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 9: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

Il testo cifrato viene quindi trasmesso al Il testo cifrato viene quindi trasmesso al destinatario attraverso un opportuno canale di destinatario attraverso un opportuno canale di comunicazionecomunicazione• Il canale non sarà completamente affidabile: lungo il Il canale non sarà completamente affidabile: lungo il

percorso può trovarsi una spia che può intercettare il percorso può trovarsi una spia che può intercettare il crittogramma e tentare di decriptarlocrittogramma e tentare di decriptarlo

Il destinatario legittimo decifra il crittogramma e Il destinatario legittimo decifra il crittogramma e riottiene il testo in chiaro: se il sistema di cifra, o riottiene il testo in chiaro: se il sistema di cifra, o cifrariocifrario, è ben congegnato, l’operazione di , è ben congegnato, l’operazione di decifrazionedecifrazione o decifratura deve risultare semplice al o decifratura deve risultare semplice al destinatario legittimo, ma di complessità proibitiva destinatario legittimo, ma di complessità proibitiva alla spia alla spia

possibile in quanto gli interlocutori legittimi possibile in quanto gli interlocutori legittimi possiedono un’informazione che deve rimanere possiedono un’informazione che deve rimanere inaccessibile alla spia, la inaccessibile alla spia, la chiave del cifrariochiave del cifrario

Terminologia Terminologia 1 1

Page 10: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

Si noti la distinzione tra decifrazione eSi noti la distinzione tra decifrazione e decrittazionedecrittazione : quest’ultima è l’operazione : quest’ultima è l’operazione illegittima in cui non ci si può avvalere della illegittima in cui non ci si può avvalere della chiavechiave

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

Terminologia Terminologia 2 2

Page 11: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

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

In realtà, l’uso di un canale speciale è costoso ed In realtà, l’uso di un canale speciale è costoso ed inoltre esso potrebbe essere disponibile solo per inoltre esso potrebbe essere disponibile solo per brevi intervalli di tempo e/o in determinati brevi intervalli di tempo e/o in determinati momentimomenti

Terminologia Terminologia 3 3

Page 12: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

Nell’uso corrente si usa Nell’uso corrente si usa crittografia crittografia là dove si là dove si dovrebbe parlare di dovrebbe parlare di crittologiacrittologia

Terminologia Terminologia 4 4

Page 13: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

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

Esistono due classi di algoritmi:Esistono due classi di algoritmi: • SimmetriciSimmetrici, , o o a chiave segreta a chiave segreta utilizzano la stessa utilizzano la stessa

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

• AsimmetriciAsimmetrici, o , o a chiave pubblica a chiave pubblica utilizzano due chiavi utilizzano due chiavi diverse e la chiave di decifrazione non può essere diverse e la chiave di decifrazione non può essere ricavata a partire dalle informazioni contenute nella ricavata a partire dalle informazioni contenute nella chiave di cifraturachiave di cifratura        

Terminologia Terminologia 5 5

Page 14: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Gli algoritmi simmetrici possono essere suddivisi Gli algoritmi simmetrici possono essere suddivisi in in cifrari di bloccocifrari di blocco e e cifrari di flussocifrari di flusso• I cifrari di flusso codificano un singolo carattere del I cifrari di flusso codificano un singolo carattere del

messaggio alla volta, mentre i cifrari di blocco messaggio alla volta, mentre i cifrari di blocco trasformano l’informazione a blocchi (di varia trasformano l’informazione a blocchi (di varia granularità)granularità)

I cifrari asimmetrici permettono la pubblicazione I cifrari asimmetrici permettono la pubblicazione della chiave di cifratura, consentendo a chiunque della chiave di cifratura, consentendo a chiunque di cifrare messaggi con tale chiave, mentre solo il di cifrare messaggi con tale chiave, mentre solo il legittimo destinatario (colui che conosce la chiave legittimo destinatario (colui che conosce la chiave di decifrazione) può decifrare il messaggiodi decifrazione) può decifrare il messaggio• La chiave di cifratura è anche detta La chiave di cifratura è anche detta chiave pubblicachiave pubblica

e la chiave di decifrazione e la chiave di decifrazione chiave privatachiave privata

Terminologia Terminologia 6 6

Page 15: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Scopo della crittografia è permettere a due Scopo della crittografia è permettere a due persone, Alice e Bob, di comunicare attraverso un persone, Alice e Bob, di comunicare attraverso un canale insicuro, in modo tale che una spia, Oscar, canale insicuro, in modo tale che una spia, Oscar, non possa comprendere il contenuto del non possa comprendere il contenuto del messaggio messaggio

Il canale può essere una normale linea telefonica, Il canale può essere una normale linea telefonica, la rete, etc.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 testuale, numerica, o testo in chiaro, può essere testuale, numerica, etc.etc.

Alice “cripta” il plaintext, utilizzando una chiave Alice “cripta” il plaintext, utilizzando una chiave predefinita, ed invia il testo cifrato sul canalepredefinita, ed invia il testo cifrato sul canale

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

Crittografia classica Crittografia classica 1 1

Page 16: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Formalmente…Formalmente…

o Definizione 1Definizione 1Un crittosistema è una quintupla (P,C,K,E,D) Un crittosistema è una quintupla (P,C,K,E,D) per cui valgono le seguenti condizioniper cui valgono le seguenti condizioni1.1. P è un insieme finito di plaintextP è un insieme finito di plaintext2.2. C è un insieme finito di testi cifratiC è un insieme finito di testi cifrati3.3. K, lo spazio delle chiavi, è un insieme finito K, lo spazio delle chiavi, è un insieme finito

di possibili di possibili chiavichiavi4.4. Per ogni kPer ogni kKK,, esiste esiste una regola di codifica una regola di codifica

eekkE ed una corrispondente regola di E ed una corrispondente regola di decodifica ddecodifica dkkD;D; per ogni funzioneper ogni funzione eekk: P: PC C e de dkk: C: CP, dP, dkk(e(ekk(x))=x, per ogni x(x))=x, per ogni xPP

Crittografia classica Crittografia classica 2 2

Page 17: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Alice e Bob impiegheranno il seguente protocollo Alice e Bob impiegheranno il seguente protocollo per realizzare uno specifico crittosistemaper realizzare uno specifico crittosistema

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 regola viene codificato per mezzo della regola eekk, cioè y, cioè yii=e=ekk(x(xii), ed il testo cifrato trasmesso è ), ed il testo cifrato trasmesso è rappresentato dalla stringa y=yrappresentato dalla stringa y=y11yy22…y…ynn

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

Crittografia classica Crittografia classica 3 3

Page 18: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Canale Canale sicurosicuro

BobBob

ChiaveChiave

OscarOscar

k

CodificaCodificay

DecodificDecodificaa

xxAliceAlice

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 non ), Bob non potrebbe decodificare univocamente il messaggiopotrebbe decodificare univocamente il messaggio

2.2. Se P=C,Se P=C, il testo cifrato viene composto utilizzando il testo cifrato viene composto utilizzando caratteri tratti dallo stesso alfabeto del plaintext caratteri tratti dallo stesso alfabeto del plaintext x, organizzati diversamente a formare la stringa yx, organizzati diversamente a formare la stringa y

Crittografia classica Crittografia classica 4 4

Page 19: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Un Un gruppogruppo è un è un insieme G munito di insieme G munito di un’operazione binaria che ad ogni coppia di un’operazione binaria che ad ogni coppia di elementi a,b di G associa un elemento aelementi a,b di G associa un elemento ab, e che b, e che gode delle seguenti proprietà:gode delle seguenti proprietà:• proprietà associativa:proprietà associativa: dati dati a,b,ca,b,cG, valeG, vale

(a(ab)b)cc = = aa(b(bc)c)• esistenza dell’elemento neutro:esistenza dell’elemento neutro: esiste in G un esiste in G un

(unico) elemento neutro rispetto a (unico) elemento neutro rispetto a , cioè tale che, cioè tale che

aaee = = eeaa = = aa per ogni aper ogni a GG

• esistenza dell’inverso:esistenza dell’inverso: ad ogni elementoad ogni elemento a di G è a di G è associato un elementoassociato un elemento b, detto inverso dib, detto inverso di a, tale chea, tale che

aabb = = bbaa = = ee

I gruppi I gruppi 1 1

Page 20: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Esempi:Esempi:• I numeri interi sono un gruppo rispetto all’addizioneI numeri interi sono un gruppo rispetto all’addizione• Le potenze di un qualsiasi numero costituiscono un Le potenze di un qualsiasi numero costituiscono un

gruppo rispetto alla moltiplicazione (l’elemento gruppo rispetto alla moltiplicazione (l’elemento neutro è 1)neutro è 1)

Un gruppo si dice Un gruppo si dice commutativo, commutativo, o o abelianoabeliano, se , se vale anche la proprietà commutativavale anche la proprietà commutativa

aabb = = bbaa

per ogni coppiaper ogni coppia a,ba,b di elementi di Gdi elementi di G

I gruppi I gruppi 2 2

Page 21: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Definizione 2Definizione 2Siano a e b interi ed m intero positivo; aSiano a e b interi ed m intero positivo; ab (mod b (mod m), se m divide bm), se m divide baa, , cioè a è cioè a è congruocongruo b modulo m; b modulo m; l’intero m è il modulol’intero m è il modulo

o Definizione 3Definizione 3L’aritmetica modulo mL’aritmetica modulo m è costituita dall’insieme Zè costituita dall’insieme Zmm degli interi {0,1,…,mdegli interi {0,1,…,m1} dotato delle operazioni di 1} dotato delle operazioni di somma e moltiplicazione; le operazioni producono somma e moltiplicazione; le operazioni producono risultati ridotti modulo mrisultati ridotti modulo m

o Esempio 1Esempio 1In 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

Aritmetica modulare Aritmetica modulare 1 1

Page 22: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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 a,bmoltiplicazione, cioè per ogni a,b ZZmm, a, abb, , aabb

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 aPer ogni a ZZmm, , mmaa è l’opposto di a, cioè vale la è l’opposto di a, cioè vale la relazione arelazione a(m(ma)=(ma)=(ma)a)a=0a=0

5.5. La moltiplicazione gode della proprietà distributiva La moltiplicazione gode della proprietà distributiva (destra e sinistra) rispetto all’addizione, cioè per (destra e sinistra) rispetto all’addizione, cioè per ogni a,b,cogni a,b,cZZmm,, (a(ab)b)c=ac=accbbc, c, aa(b(bc)=ac)=abbaacc

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

Aritmetica modulare Aritmetica modulare 2 2

Page 23: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

aab = ab = ammb (mod m )b (mod m )o Esempio 2Esempio 2

Per calcolare 11Per calcolare 1118 in Z18 in Z3131, si esegue l’operazione , si esegue l’operazione di somma 11di somma 1113 (mod 31), ottenendo 2413 (mod 31), ottenendo 24

o Teorema 1 (Piccolo teorema di Fermat)Teorema 1 (Piccolo teorema di Fermat)Sia p un numero primo t.c. xSia p un numero primo t.c. xp p = x mod(p); se x = x mod(p); se x non è divisibile per p, allora xnon è divisibile per p, allora xpp11 = 1 mod(p) = 1 mod(p)

Esempio:Esempio: 2233 = 2 (mod 3) = 2 (mod 3) 8 = 2 (mod 3) 8 = 2 (mod 3)2222 = 1 (mod 3) = 1 (mod 3) 4 = 1 (mod 3) 4 = 1 (mod 3)

Aritmetica modulare Aritmetica modulare 3 3

Page 24: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Shift cipher Shift cipher 1 1 Il crittosistema Il crittosistema SHIFT cipher SHIFT cipher è definito in Zè definito in Z2626, ,

poiché 26 sono le lettere che compongono poiché 26 sono le lettere che compongono l’alfabeto inglesel’alfabeto inglese

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 e per le comunicazioni generali delle sue legioni e per le comunicazioni familiarifamiliari

Siano P=C=K=ZSiano P=C=K=Z2626. Per 0. Per 0 kk 25,25,

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

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

x,yx,yZZ2626

Page 25: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Shift cipher Shift cipher 2 2 Per utilizzare Shift cipher per codificare testo, Per utilizzare Shift cipher per codificare testo,

occorre stabilire una corrispondenza biunivoca fra occorre stabilire una corrispondenza biunivoca fra le lettere dell’alfabeto ed il relativo numero le lettere dell’alfabeto ed il relativo numero d’ordine; quindi è necessario scegliere la chiave kd’ordine; quindi è necessario scegliere la chiave k

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

we will meet at midnightwe will meet at midnightpuò 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 7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 418 4

La sequenza di numeri ottenuta, nuovamente La sequenza di numeri ottenuta, nuovamente tradotta in caratteri, forniscetradotta in caratteri, fornisce

hphtwwxppelextoytrsehphtwwxppelextoytrse

Page 26: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

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

essere computazionalmente poco oneroseessere computazionalmente poco onerose• Una eventuale spia non deve essere in grado di Una eventuale spia non deve essere in grado di

risalire alla chiave k né al plaintext x risalire alla chiave k né al plaintext x dall’osservazione del testo cifrato ydall’osservazione del testo cifrato y

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

Shift cipher Shift cipher 3 3

Page 27: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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 è 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…)

Shift cipher Shift cipher 4 4

Page 28: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Esempio 4Esempio 4Dato il testo cifrato Dato il testo cifrato jbcrclqrwcrvnbjenbwrwnjbcrclqrwcrvnbjenbwrwn, , 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

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

Shift cipher Shift cipher 5 5

Page 29: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

Tuttavia, anche per |K| molto grande, la Tuttavia, anche per |K| molto grande, la sicurezza non è garantitasicurezza non è garantita

SicurezzaSicurezza

Page 30: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o EsempioEsempio 55

Siano P=C=ZSiano P=C=Z2626

Sia K l’insieme delle permutazioni di {0,1,Sia K l’insieme delle permutazioni di {0,1,…,25}…,25}

Per ogni Per ogni KK

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

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

x,yx,yZZ26 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 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 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 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 x 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.

Substitution cipher Substitution cipher 1 1

Page 31: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Una chiave per Una chiave per SUBSTITUTION cipherSUBSTITUTION cipher è una delle è una delle possibili permutazioni dei 26 caratteri possibili permutazioni dei 26 caratteri dell’alfabetodell’alfabeto

Il numero di tali permutazioni è 26! > 4.0Il numero di tali permutazioni è 26! > 4.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 statistici (basati sulla frequenza delle lettere, dei statistici (basati sulla frequenza delle lettere, dei digrammi, etc.)digrammi, etc.)

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

Substitution cipher Substitution cipher 2 2

Page 32: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

e(x)=axe(x)=axb (mod 26)b (mod 26)a,ba,bZZ2626

Per a=1, Affine cipher coincide con Shift cipherPer a=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 e(Affine cipher è necessario che la funzione e() sia ) sia iniettiva, cioè che la congruenzainiettiva, cioè che la congruenza

axaxb b y (mod 26) y (mod 26)ammetta un’unica soluzioneammetta un’unica soluzione

o Teorema 2Teorema 2La congruenza axLa congruenza axb (mod m) ha un’unica b (mod m) ha un’unica soluzione in Zsoluzione in Zmm, per ogni b, per ogni bZZmm,, se e solo se se e solo se MCD(a,m)=1MCD(a,m)=1

Affine cipher Affine cipher 1 1

Page 33: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

congruenza axcongruenza ax0 (mod 26) ammette almeno due 0 (mod 26) ammette almeno due soluzioni distinte in Zsoluzioni distinte in Z2626, cioè x=0 e x=26/d , cioè x=0 e x=26/d la la funzione di codifica e(x)=axfunzione di codifica e(x)=axb (mod 26) non è b (mod 26) non è iniettivainiettivaEsempio 6:Esempio 6: Se a=4, MCD(4,26)=2 e, per Se a=4, MCD(4,26)=2 e, per e(x)=4xe(x)=4x7, e(3)=19, e(16)=71=19, ovvero 7, e(3)=19, e(16)=71=19, ovvero x, x e x, x e xx13 producono lo stesso valore per e(x) 13 producono lo stesso valore per e(x)

2.2. Viceversa, sia MCD(a,26)=1 e siano xViceversa, sia MCD(a,26)=1 e siano x11xx22, tali che , tali che axax11axax22 (mod 26); allora a(x(mod 26); allora a(x11xx22))0 (mod 26); in 0 (mod 26); in base alle proprietà della divisione, se il base alle proprietà della divisione, se il MCD(a,26)=1 e a(xMCD(a,26)=1 e a(x11xx22) è divisibile per 26, (x) è divisibile per 26, (x11xx22) è ) è divisibile per 26, cioè xdivisibile per 26, cioè x11xx2 2 (mod 26) (mod 26)

Poiché 26=2Poiché 26=213, possibili valori per a13, possibili valori per aZZ2626 sono sono 1,3,5,7,9,11,15,17,19,21,23,25, mentre b può 1,3,5,7,9,11,15,17,19,21,23,25, mentre b 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 34: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Definizione 4Definizione 4Siano a ed m interi tali che aSiano a ed m interi tali che a1 e m1 e m2; se 2; se MCD(a,m)=1 allora a ed m sono relativamente MCD(a,m)=1 allora a ed m 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 m è rappresentato dalla funzione di Eulero rispetto ad m è rappresentato dalla funzione di Eulero (m)(m)

o Teorema 3Teorema 3

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

(m)= (m)= (p(pi i p pii ))

Il numero di chiavi per Affine cipher in ZIl numero di chiavi per Affine cipher in Zmm è m è m(m) (m) o Esempio 7Esempio 7

Per m=60=2Per m=60=222335, 5, (m)=2(m)=2224=16 e |K|=9604=16 e |K|=960

eeiinn

i=1i=1

eeiinn

i=1i=1

eeii11

Affine cipher Affine cipher 3 3

Page 35: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

o Definizione 5Definizione 5

Sia aSia aZZmm; l’inverso di a, a; l’inverso di a, a1 1 ZZmm,, è tale che è tale che aaaa1 1 a a11aa 11

a ha un inverso modulo m se e solo MCD(a,m)=1 e, se un a ha un inverso modulo m se e solo MCD(a,m)=1 e, se un inverso esiste, è unicoinverso 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à è un ammette un inverso; un anello con questa proprietà è 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 tentativi l’inverso può essere calcolato per tentativi

Ad esempio, 7Ad esempio, 711=15, 11=15, 1111=19, 25=19, 2511=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 36: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Sia ySia yaxaxb (mod 26), da cui axb (mod 26), da cui axyybb (mod 26); (mod 26); poiché MCD(a,26)=1, a ammette un inverso poiché MCD(a,26)=1, a ammette un inverso modulo 26; pertanto, moltiplicando entrambi i modulo 26; pertanto, moltiplicando entrambi i membri della congruenza, per amembri della congruenza, per a11……

aa11(ax)(ax)aa11(y(yb) (mod 26) b) (mod 26) x xaa11(y(yb) (mod 26)b) (mod 26)

Siano P=C=ZSiano P=C=Z2626, K ={(a,b), K ={(a,b)ZZ2626ZZ2626: MCD(a,26)=1}: MCD(a,26)=1}

Per k=(a,b)Per k=(a,b)K, sianoK, siano

eekk(x) = ax(x) = axb (mod 26)b (mod 26)

ddkk(y) = a(y) = a1 1 (y(yb) (mod 26)b) (mod 26)

x,yx,yZZ26 26

Affine cipher Affine cipher 5 5

Page 37: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Esempio 8Esempio 8Sia k=(7,3); 7Sia k=(7,3); 711 (mod 26)=15; la funzione di codifica è (mod 26)=15; la funzione di codifica è

eekk(x)=7x(x)=7x33mentre la corrispondente funzione di decodifica risultamentre la corrispondente funzione di decodifica risulta

ddkk(y)=15(y(y)=15(y3)=15y3)=15y1919

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(7x3)=15(7x3)=15(7x3)3)19=x19=x454519=x 19=x o Esempio 9Esempio 9

Supponiamo di dover convertire il plaintext Supponiamo di dover convertire il plaintext hothot,, che che corrisponde alla sequenza di cifre 7 14 19; la funzione corrisponde alla sequenza di cifre 7 14 19; la funzione di codifica restituiscedi codifica restituisce

77773 (mod 26)=52 (mod 26)=03 (mod 26)=52 (mod 26)=07714143 (mod 26)=101 (mod 26)=233 (mod 26)=101 (mod 26)=237719193 (mod 26)=136 (mod 26)=63 (mod 26)=136 (mod 26)=6

da cui il testo cifrato da cui il testo cifrato axgaxg

Affine cipher Affine cipher 6 6

Page 38: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

VIGENERE cipherVIGENERE cipher, da Blaise de Vigenere (1523, da Blaise de Vigenere (15231596), 1596), è invece un crittosistema è invece un crittosistema polialfabeticopolialfabetico

Sia m un intero fissato e siano P=C=K=(ZSia m un intero fissato e siano P=C=K=(Z2626))mm

Per k=(kPer k=(k11,,kk22,…,,…,kkmm))K, definiamoK, definiamo

eekk(x(x11,x,x22,…,x,…,xmm) = (x) = (x11kk11,x,x22kk22,…,x,…,xmmkkmm))

ddkk(y(y11,y,y22,…,y,…,ymm) = (y) = (y11kk11,y,y22kk22,…,y,…,ymmkkmm))

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

Vigenere cipher Vigenere cipher 1 1

Page 39: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Esempio 10Esempio 10Sia m=6 e sia k=Sia m=6 e sia k=CIPHERCIPHER o, in maniera equivalente, o, in maniera equivalente, k=(2,8,15,7,4,17); supponiamo che il plaintext sia k=(2,8,15,7,4,17); supponiamo che il plaintext sia costituito dalla stringa costituito dalla stringa this cryptosystem is not this cryptosystem is not securesecure, , 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

vpxzgiaxivwpubttmjpwizitwztvpxzgiaxivwpubttmjpwizitwzt

Vigenere cipher Vigenere cipher 2 2

Page 40: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Il numero complessivo di chiavi di lunghezza m è Il numero complessivo di chiavi di lunghezza m è 2626mm anche per m piccolo la ricerca esaustiva è anche per m piccolo la ricerca esaustiva è computazionalmente onerosacomputazionalmente onerosa

Ad esempio, per m=5, |K|>10Ad esempio, per m=5, |K|>1077: la ricerca a mano è : la ricerca a mano è preclusa, ma il computer può ragionevolmente preclusa, ma il computer può ragionevolmente realizzarlarealizzarla

In Vigenere cipher, con chiave di m caratteri, In Vigenere cipher, con chiave di m caratteri, ciascuna lettera dell’alfabeto può essere mappata ciascuna lettera dell’alfabeto può essere mappata in base ad uno qualsiasi degli m caratteri possibili in base ad uno qualsiasi degli m caratteri possibili (se la chiave è costituita da tutti caratteri distinti)(se la chiave è costituita da tutti 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 41: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

Sia m un intero e siano P=C=(ZSia m un intero e siano P=C=(Z2626))mm; l’operazione di ; l’operazione di codifica avviene considerando m combinazioni lineari codifica avviene considerando m combinazioni lineari di m caratteri consecutivi nel plaintext, e producendo di m caratteri consecutivi nel plaintext, e producendo gli m caratteri corrispondenti del testo cifratogli m caratteri corrispondenti del testo cifrato

o Esempio 11Esempio 11

Sia m=2; una sezione elementare del plaintext può Sia m=2; una sezione elementare del plaintext può essere rappresentata da (xessere rappresentata da (x11,x,x22), ed il corrispondente ), ed il corrispondente testo cifrato da (ytesto cifrato da (y11,y,y22), dove), dove

yy11=11x=11x113x3x22

yy22= = 8x8x117x7x22

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

(y(y11,y,y22))TT=(x=(x11,x,x22))( ( ))11 811 8

3 73 7

Hill cipher Hill cipher 1 1

Page 42: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

In generale, si considera una matrice K, mIn generale, si considera una matrice K, mmm, , 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))TT=(x=(x11,x,x22,…,x,…,xmm))

In altre parole y=xIn altre parole y=xTTK: il testo cifrato è ottenuto K: il testo cifrato è ottenuto dal plaintext attraverso una dal plaintext attraverso una trasformazione trasformazione linearelineare

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, si decifrare il testo cifrato e ricostruire il plaintext, si applica la trasformazione xapplica la trasformazione xTT=yK=yK11

o Esempio 12Esempio 12

==

( ( ))kk1111 k k1212 … k … k1m1m

kk2121 k k2222 … k … k2m2m

kkm1m1 k km2m2 … k … kmmmm

… …… …

(( ) )( )( ) 7 7 1818

23 1123 11

1111 811 8

3 73 7

Hill cipher Hill cipher 2 2

Page 43: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Esempio 13Esempio 13

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

(9,20) =(99(9,20) =(9960,7260,72140)=(3,4)140)=(3,4)

(11,24) =(121(11,24) =(12172,8872,88168)=(11,22)168)=(11,22)

Il testo cifrato è Il testo cifrato è delwdelw

( )( )

11 811 8

3 73 7( )( )11 811 8

3 73 7

Hill cipher Hill cipher 3 3

Page 44: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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 se e solo se , K ammette un’inversa se e solo se 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 1iim, 1m, 1jjmm, , sia Ksia Kijij la matrice ottenuta da K eliminando la riga la matrice ottenuta da K eliminando la riga iiesima e la colonna jesima e la colonna jesima; sia K* tale esima; sia K* tale K*K*ijij=(=(1)1)i+ji+j det(K det(Kjiji) ) K* è l’ K* è l’aggiuntaaggiunta di K; si può di K; si può dimostrare chedimostrare che

KK11=(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 K11, si ha, si ha

1=det(I)=det(KK1=det(I)=det(KK11)=det(K) det(K)=det(K) det(K11))

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 45: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Esempio 14Esempio 14

Nel caso particolare m=2,Nel caso particolare m=2,

AA11=(det(A))=(det(A))11

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

det =11det =1177883 (mod 26)=773 (mod 26)=7724 (mod 26)24 (mod 26)

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

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

= =

( )( ) aa2222 aa1212

aa2121 aa1111

( ( ))11 811 8

3 73 7

11 811 8

3 73 7 ( ( ))11

( )( ) 7 187 18

23 1123 11

Hill cipher Hill cipher 5 5

Page 46: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Sia m un intero positivo fissato Sia m un intero positivo fissato

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

Sia K={matrici invertibili mSia K={matrici invertibili mm in Zm in Z2626}}

Per ogni APer ogni AKK

eeKK(x) = x(x) = xTTAA

ddKK(y) = yA(y) = yA11

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

Hill cipher Hill cipher 6 6

Page 47: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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 per Permutation (o Transposition) cipher è stato usato per oltre 400 anni: già nel 1536, G. B. Porta ne evidenziò oltre 400 anni: già nel 1536, G. B. Porta ne evidenziò le differenze rispetto ai cifrari per sostituzione le differenze rispetto ai cifrari per sostituzione

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

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

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

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

1 1 permutazione inversa di permutazione inversa di

11 1111

Permutation cipher Permutation cipher 1 1

Page 48: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Esempio 15Esempio 15Sia m=6 e sia k=Sia m=6 e sia k= la permutazione: la permutazione:

11::

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

shesel lsseas hellsb ythese ashoreshesel lsseas hellsb ythese ashore

eeslsh salses lshble hsyeet hraeoseeslsh salses lshble hsyeet hraeoscioè cioè eeslshsalseslshblehsyeethraeoseeslshsalseslshblehsyeethraeosIl testo cifrato può essere decifrato applicando la Il testo cifrato può essere decifrato applicando la permutazione inversapermutazione inversa

111133 44

2222

3366

4455

55 66 111133 22

2244

3355

4466

55 66

Permutation cipher Permutation cipher 2 2

Page 49: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Permutation cipher è un caso particolare di Hill Permutation cipher è un caso particolare di Hill cipher; infatti, ad ogni permutazione cipher; infatti, ad ogni permutazione , può essere , può essere associata una associata una matrice di permutazionematrice di permutazione K definita K definita comecome

KKijij = =

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

Hill cipher realizzato attraverso una matrice di Hill cipher realizzato attraverso una matrice di permutazione K produce esattamente Permutation permutazione K produce esattamente Permutation cipher con permutazione cipher con permutazione ; inoltre (K; inoltre (K ))11=K , cioè =K , cioè l’inversa della matrice K è la matrice di l’inversa della matrice K è la matrice di permutazione definita da permutazione definita da 11

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

0 altrimenti0 altrimenti

-1-1

Permutation cipher Permutation cipher 3 3

Page 50: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Esempio 16Esempio 16

Alla permutazione Alla permutazione : :

ed alla sua inversa ed alla sua inversa 11: :

corrispondono, rispettivamente, le matricicorrispondono, rispettivamente, le matrici

KK = = KK = = ))

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

))

Permutation cipher Permutation cipher 4 411

1133 4422

2233

664455

55 66

111133 22

2244

3355

4466

55 66

Page 51: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Nei crittosistemi visti finora, i caratteri (o le Nei crittosistemi visti finora, i caratteri (o le stringhe) successivi che costituiscono il plaintext stringhe) successivi che costituiscono il plaintext vengono codificati utilizzando la stessa chiave k, vengono codificati utilizzando la stessa chiave k, cioè il testo cifrato viene ottenuto comecioè il testo cifrato viene ottenuto come

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 cifrari a

blocchiblocchi 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=z11,z,z22… … viene progressivamente generato ed utilizzato per viene progressivamente generato ed utilizzato per codificare il plaintextcodificare il plaintext

Fissata una chiave kFissata una chiave kKK, , Stream cipher genera la Stream cipher genera la successione di chiavi successione di chiavi

zzii==ffi i (k,x(k,x11,…,x,…,xii11) ) 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)…)…2211

Stream cipher Stream cipher 1 1

Page 52: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Formalmente...Formalmente...o Definizione 6Definizione 6

Un cifrario di flusso è rappresentato da una tupla Un cifrario di flusso è rappresentato da una tupla (P,C,K,L,F,E,D) per cui valgono le seguenti condizioni(P,C,K,L,F,E,D) per cui valgono le seguenti condizioni

1.1. P è un insieme finito di plaintextP è un insieme finito di plaintext

2.2. C è un insieme finito di testi cifratiC è un insieme finito di testi cifrati

3.3. K, lo spazio delle chiavi, è un insieme finito di K, lo spazio delle chiavi, è un insieme finito di possibili chiavipossibili chiavi

4.4. L è l’alfabeto finito del flusso di chiaviL è l’alfabeto finito del flusso di chiavi

5.5. F=(F=(ff11, , ff22,…) è il generatore del flusso di chiavi,…) è il generatore del flusso di chiavi

ffii: K: KPPii1 1 L L

6.6. Per ogni zPer ogni zL, esiste una regola di codifica eL, esiste una regola di codifica ezzE ed E ed una corrispondente regola di decodifica duna corrispondente regola di decodifica dzzD; per D; per ogni funzione eogni funzione ezz: P: PC e dC e dzz: C: CP, dP, dzz(e(ezz(x))=x, per (x))=x, per ogni xogni xPP

Stream cipher Stream cipher 2 2

Page 53: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Un cifrario a blocchi è un caso particolare di Stream Un cifrario a blocchi è un caso particolare di Stream cipher in cui il flusso di chiavi è costante, zcipher in cui il flusso di chiavi è costante, z ii=k, =k, ii11

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

Stream cipher è Stream cipher è periodicoperiodico,, con periodo d, se z con periodo d, se z iidd=z=zii, , ii11

Vigenere cipher, con chiave di lunghezza mVigenere cipher, con chiave di lunghezza m , , è uno è uno Stream cipher periodico con periodo m e con Stream cipher periodico con periodo m e con z=(zz=(z11,z,z22,…z,…zmm); in quest’ottica, le funzioni di codifica ); in quest’ottica, le funzioni di codifica e di decodifica di Vigenere cipher corrispondono e di decodifica di Vigenere cipher corrispondono con quelle di Shift ciphercon quelle di Shift cipher

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

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

Stream cipher Stream cipher 3 3

Page 54: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Gli Stream cipher sono spesso descritti per mezzo Gli Stream cipher sono spesso descritti per mezzo dell’alfabeto binario, cioè P=C=L=Zdell’alfabeto binario, cioè P=C=L=Z22, con funzioni , con funzioni di codifica/decodifica date dadi codifica/decodifica date da

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

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

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

Stream cipher Stream cipher 4 4

Page 55: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

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

zziimm= = c cjjzziijj (mod 2) (mod 2)

con ccon c00,c,c11,…,c,…,cmm11ZZ22 costanti predefinite; senza perdita costanti predefinite; senza perdita di generalità, cdi generalità, c00=1=1

• La chiave k consiste dei 2m valori (kLa chiave k consiste dei 2m valori (k11,k,k22,…,k,…,kmm,c,c00,c,c11,…,c,…,cmm11))

• 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 costanti Viceversa, mediante un’opportuna scelta delle costanti cc00,c,c11,…,c,…,cmm11, per qualsiasi altro valore del vettore di , per qualsiasi altro valore del vettore di inizializzazione (kinizializzazione (k11,k,k22,…,k,…,kmm), si ottiene un flusso ), si ottiene un flusso periodico, con periodo 2periodico, con periodo 2mm11

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

mm11

j=0j=0

Stream cipher Stream cipher 5 5

Page 56: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Esempio 17Esempio 17

Sia m=4 e (kSia m=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

zzii44=z=zii+z+zii11 (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 57: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

Analizzando il contenuto di un testo cifrato, e non Analizzando il contenuto di un testo cifrato, e non conoscendo l’algoritmo di cifratura, attraverso conoscendo l’algoritmo di cifratura, attraverso tecniche statistico/matematiche si possono tecniche statistico/matematiche si possono comunque ottenere informazioni sul testo in comunque ottenere informazioni sul testo in chiarochiaro

Per fortuna ciò non è sempre possibile: la maggior Per fortuna ciò non è sempre possibile: la maggior parte dei cifrari moderni è ancora al sicuro da parte dei cifrari moderni è ancora al sicuro da tecniche di crittoanalisitecniche di crittoanalisi

La storia ci insegna però che non esistono cifrari La storia ci insegna però che non esistono cifrari inviolabiliinviolabili

La crittoanalisi La crittoanalisi 1 1

Page 58: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

I tipi di attacco alla sicurezza dei crittosistemi si I tipi di attacco alla sicurezza dei crittosistemi si distinguono in…distinguono in…• CiphertextCiphertextonlyonly l’intruso è venuto a conoscenza l’intruso è venuto a conoscenza

di una stringa di testo cifrato ydi una stringa di testo cifrato y• Known plaintext Known plaintext l’intruso conosce una stringa di l’intruso conosce una stringa di

plaintext x, ed il corrispondente testo cifrato yplaintext x, ed il corrispondente testo cifrato y• Chosen plaintextChosen plaintext l’intruso ha ottenuto accesso l’intruso ha ottenuto accesso

temporaneo al meccanismo di cifratura: può quindi temporaneo al meccanismo di cifratura: può quindi scegliere un plaintext x e costruire il scegliere un plaintext x e costruire il corrispondente testo cifrato ycorrispondente testo cifrato y

• Chosen ciphertextChosen ciphertext l’intruso ha ottenuto accesso l’intruso ha ottenuto accesso temporaneo al meccanismo di decifratura: può temporaneo al meccanismo di decifratura: può quindi scegliere un testo cifrato y e costruire il quindi scegliere un testo cifrato y e costruire il corrispondente plaintext xcorrispondente plaintext x

La crittoanalisi La crittoanalisi 2 2

Page 59: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o Crittoanalisi statistica del cifrario di CesareCrittoanalisi statistica del cifrario di Cesare

Il cifrario di Cesare, come la maggior parte dei Il cifrario di Cesare, come la maggior parte dei cifrari storici basati su trasposizioni e traslazioni, cifrari storici basati su trasposizioni e traslazioni, può essere facilmente violato utilizzando tecniche può essere facilmente violato utilizzando tecniche statistiche (statistiche (crittoanalisi statisticacrittoanalisi statistica))

• Si analizzano le frequenze relative dei caratteri nel Si analizzano le frequenze relative dei caratteri nel testo cifrato e le si confrontano con quelle di una testo cifrato e le si confrontano con quelle di una lingua conosciuta, ad esempio l’italianolingua conosciuta, ad esempio l’italiano

Un esempio di crittoanalisi Un esempio di crittoanalisi 1 1

Page 60: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

o EsempioEsempio

Testo in chiaro:Testo in chiaro: prova di trasmissioneprova di trasmissione

Crittogramma:Crittogramma: surbdgnzudvpnvvnrqhsurbdgnzudvpnvvnrqh

• Le frequenze relative al testo cifrato risultano Le frequenze relative al testo cifrato risultano s(1/19), u(2/19), r(2/19), b(1/19), d(2/19), g(2/19), s(1/19), u(2/19), r(2/19), b(1/19), d(2/19), g(2/19), n(3/19), z(1/19), v(3/19), p(1/19), h(1/19)n(3/19), z(1/19), v(3/19), p(1/19), h(1/19)

• Si confrontano tali frequenze con quelle delle Si confrontano tali frequenze con quelle delle singole lettere nella lingua italiana: a(0.114), singole lettere nella lingua italiana: a(0.114), e(0.111), i(0.104), o(0.099), t(0.068), r(0.065),...e(0.111), i(0.104), o(0.099), t(0.068), r(0.065),...

Un esempio di crittoanalisi Un esempio di crittoanalisi 2 2

Page 61: Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it

• Con queste informazioni si ottiene, in prima Con queste informazioni si ottiene, in prima approssimazione, la stringa approssimazione, la stringa ssrorobbaaggiizzraravpvpiivvvvioioqhqh, a , a partire dalla quale si può reiterare il procedimentopartire dalla quale si può reiterare il procedimento

Un esempio di crittoanalisi Un esempio di crittoanalisi 3 3