crittografia i cifrari storici monica bianchini monica@ing.unisi.it
Post on 01-May-2015
224 Views
Preview:
TRANSCRIPT
Crittografia Crittografia I cifrari storici I cifrari storici
Monica BianchiniMonica Bianchinimonica@ing.unisi.itmonica@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
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
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
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
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”
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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
top related