610 likes | 714 Views
Crittografia I cifrari storici. Monica Bianchini monica@ing.unisi.it. Crittografia 1.
E N D
Crittografia I cifrari storici Monica Bianchini monica@ing.unisi.it
Crittografia 1 • Lacrittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la scrittura segreta, ovvero l’arte di scrivere messaggi che possano essere letti e compresi solo dal legittimo destinatario • Le sue origini risalgono alla più remota antichità, se già la Bibbia parla di un codice segreto per scrivere il nome, innominabile e sacrilego, di Babele il codice Atbash • Nel libro di Geremia, infatti, viene usato un semplicissimo codice monoalfabetico per cifrare la parola Babele; la prima lettera dell’alfabeto ebraico (א, Aleph) viene cifrata con l’ultima (ת, Taw), la seconda (ב, Beth) viene cifrata con la penultima (ש, Shin) e così via; da queste quattro lettere è derivato il nome di Atbash (A con T, B con SH) per questo codice
Crittografia 2 • La scitala lacedemonicaè un antico esempio di un sistema per cifrare messaggi tramite l’utilizzo di un bastone cilindrico, che opera come un cifrario a trasposizione (secondo gli scritti di Plutarco, in uso dai tempi di Licurgo, IX sec a.C.) • Una sottile striscia di carta veniva avvolta su un bastone di diametro ben definito, misura di cui era a conoscenza anche il destinatario; sulle spire di papiro affiancate veniva scritto il messaggio da criptare • Terminata la scrittura, il papiro veniva svolto e inviato al destinatario • Il destinatario poteva ricomporre il messaggio, avvolgendo la striscia di papiro sul suo bastone di diametro identico a quello usato per crittografare il testo
Crittografia 3 • Per secoli la crittografia è stata appannaggio quasi esclusivo dei militari e dei diplomatici, e i metodi crittografici erano specifici per l’invio di messaggi affidati a corrieri • Nel XX secolo però, prima l’invenzione della radio, poi quella del computer hanno cambiato in modo radicale lo scenario • Il periodo d’oro della crittografia coincide con la seconda guerra mondiale, quando Alan Turing, il padre dell’informatica teorica, insieme al gruppo di ricerca di Bletchley Park, formalizzò la teoria necessaria per uno studio sistematico dei cifrari • Nel 1918, infatti, Arthur Scherbius aveva inventato la macchina Enigma, unamacchina cifrante che i tedeschi impiegarono per le loro comunicazioni segrete durante la seconda guerra mondiale
Crittografia 4 • La macchina Enigma consentiva di cifrare un testo scegliendo tra 1757661003917915001016, 10 milioni di miliardi, di combinazioni distinte
Crittografia 5 • Dal gruppo di Bletchley Park, nel 1943, nasce il primo calcolatore elettronico, il computer Colossus,utilizzato per decifrare le comunicazioni “segrete” dei tedeschi, e che permise la violazione del codice Enigma e la vittoria anglo americana sull’Atlantico • Nel 1949, Claude Shannon, l’ideatore della moderna teoria dell’informazione, pubblicò un articolo rimasto nella storia della crittografia “Communication theory of secrecy systems”
Crittografia 6 • Con l’avvento del computer, che ha di colpo resi inaffidabili e superati quasi tutti i metodi classici, nascono i metodi specifici per l’uso informatico come il DES (Data Encryption Standard, 1975) della IBM, e il rivoluzionario RSA (Rivest, Shamir, Adelman, 1977), capostipite dei cifrari a chiave pubblica • I cifrari a chiave pubblica sono intrinsecamente sicuri poiché si basano sulla soluzione di problemi matematici “difficili”, derivati dalla teoria dei numeri, dalla teoria delle curve ellittiche, etc.
Crittografia 7 • Negli attuali sistemi informativi distribuiti, e più in generale nel settore delle telecomunicazioni, la crittografia ha assunto un rilievo ed un interesse crescenti nelle infrastrutture di sicurezza • La ragione è evidente: un numero considerevole di messaggi viaggia sui canali più disparati, dalla posta al telefono, alle comunicazioni via etere, al telex, fino alle linee di trasmissione dati • Altrettanto enorme è l’informazione immagazzinata nelle memorie di massa dei calcolatori e nelle banche dati • Se da un lato il progresso tecnologico agevola la manipolazione (e l’intercettazione) dei dati, dall’altro facilita anche l’applicazione della crittografia per proteggere l’informazione stessa
Terminologia 1 • In un sistema crittografico, il testo in chiaro viene trasformato, secondo regole, nel testo in cifra o crittogramma; tale operazione si chiama cifratura • Il testo cifrato viene quindi trasmesso al destinatario attraverso un opportuno canale di comunicazione • Il canale non sarà completamente affidabile: lungo il percorso può trovarsi una spia che può intercettare il crittogramma e tentare di decriptarlo • Il destinatario legittimo decifra il crittogramma e riottiene il testo in chiaro: se il sistema di cifra, o cifrario, è ben congegnato, l’operazione di decifrazione o decifratura deve risultare semplice al destinatario legittimo, ma di complessità proibitiva alla spia possibile in quanto gli interlocutori legittimi possiedono un’informazione che deve rimanere inaccessibile alla spia, la chiave del cifrario
Terminologia 2 • Il modello delineato è schematizzato in figura: • Si noti la distinzione tra decifrazione edecrittazione: quest’ultima è l’operazione illegittima in cui non ci si può avvalere della chiave Cifratura (C), decifrazione (D1) e decrittazione (D2)
Terminologia 3 • Il problema della distribuzione delle chiavi è un punto di importanza cruciale in qualsiasi cifrario: si dice che la chiave è comunicata al destinatario tramite un corriere • Per rendere nota la chiave segreta ci si può affidare ad un canale speciale assolutamente fidato; ma se così è, esso potrebbe essere usato per trasmettere il crittogramma o il messaggio in chiaro • In realtà, l’uso di un canale speciale è costoso ed inoltre esso potrebbe essere disponibile solo per brevi intervalli di tempo e/o in determinati momenti
Terminologia 4 • I metodi di costruzione di un cifrario non possono essere disgiunti dallo studio degli eventuali metodi per demolirlo, ovvero non ci si può occupare di crittografia (la parte costruttiva) senza occuparsi di crittoanalisi(la parte distruttiva): insieme esse costituiscono una disciplina unitaria detta crittologia • Nell’uso corrente si usa crittografia là dove si dovrebbe parlare di crittologia
Terminologia 5 • Alcuni sistemi crittografici si affidano esclusivamente alla segretezza degli algoritmi utilizzati solo di interesse storico, inadeguati per le applicazioni reali • Tutti i moderni algoritmi utilizzano una chiave per controllare sia cifratura che decifratura; un messaggio può cioè essere letto solo se la chiave di decifrazione “corrisponde in qualche modo” a quella di cifratura • Esistono due classi di algoritmi: • Simmetrici, o a chiave segreta utilizzano la stessa chiave per cifrare e decifrare (o la chiave di decifrazione è facilmente ottenibile a partire da quella di cifratura) • Asimmetrici, o a chiave pubblica utilizzano due chiavi diverse e la chiave di decifrazione non può essere ricavata a partire dalle informazioni contenute nella chiave di cifratura
Terminologia 6 • Gli algoritmi simmetrici possono essere suddivisi in cifrari di blocco e cifrari di flusso • I cifrari di flusso codificano un singolo carattere del messaggio alla volta, mentre i cifrari di blocco trasformano l’informazione a blocchi (di varia granularità) • I cifrari asimmetrici permettono la pubblicazione della chiave di cifratura, consentendo a chiunque di cifrare messaggi con tale chiave, mentre solo il legittimo destinatario (colui che conosce la chiave di decifrazione) può decifrare il messaggio • La chiave di cifratura è anche detta chiave pubblica e la chiave di decifrazione chiave privata
Crittografia classica 1 • Scopo della crittografia è permettere a due persone, Alice e Bob, di comunicare attraverso un canale insicuro, in modo tale che una spia, Oscar, non possa comprendere il contenuto del messaggio • Il canale può essere una normale linea telefonica, la rete, etc. • L’informazione che Alice invia a Bob, il plaintext, o testo in chiaro, può essere testuale, numerica, etc. • Alice “cripta” il plaintext, utilizzando una chiave predefinita, ed invia il testo cifrato sul canale • Oscar non può determinare il contenuto del messaggio, ma Bob, che conosce la chiave, può decifrare il testo cifrato e ricostruire il plaintext
Crittografia classica 2 • Formalmente… • Definizione 1 • Un crittosistema è una quintupla (P,C,K,E,D) per cui valgono le seguenti condizioni • P è un insieme finito di plaintext • C è un insieme finito di testi cifrati • K, lo spazio delle chiavi, è un insieme finito di possibili chiavi • Per ogni kK, esisteuna regola di codifica ekE ed una corrispondente regola di decodifica dkD;per ogni funzioneek: PC e dk: CP, dk(ek(x))=x, per ogni xP
Crittografia classica 3 • Alice e Bob impiegheranno il seguente protocollo per realizzare uno specifico crittosistema • Scelta di una chiave k: deve avvenire quando Alice e Bob sono nello stesso posto e non osservati da Oscar, ovvero quando possono utilizzare un canale sicuro • Se Alice vuole comunicare a Bob il messaggio, rappresentato dalla stringa x=x1x2…xn, n1, ciascun xi viene codificato per mezzo della regola ek, cioè yi=ek(xi), ed il testo cifrato trasmesso è rappresentato dalla stringa y=y1y2…yn • Quando Bob riceve il messaggio y, lo decifra usando la funzione di decodifica dk, ricostruendo il plaintext x
Oscar y x x Alice Codifica Decodifica Bob Canale sicuro k Chiave Crittografia classica 4 • Note • Le funzioni di codifica sono iniettive: se esistessero x1x2 tali che y=ek(x1)=ek(x2), Bob non potrebbe decodificare univocamente il messaggio • Se P=C,il testo cifrato viene composto utilizzando caratteri tratti dallo stesso alfabeto del plaintext x, organizzati diversamente a formare la stringa y
I gruppi 1 • Un gruppo è uninsieme G munito di un’operazione binaria che ad ogni coppia di elementi a,b di G associa un elemento ab, e che gode delle seguenti proprietà: • proprietà associativa: datia,b,cG, vale (ab)c = a(bc) • esistenza dell’elemento neutro: esiste in G un (unico) elemento neutro rispetto a , cioè tale che ae = ea = a per ogni aG • esistenza dell’inverso:ad ogni elementoa di G è associato un elementob, detto inverso dia, tale che ab = ba = e
I gruppi 2 • Esempi: • I numeri interi sono un gruppo rispetto all’addizione • Le potenze di un qualsiasi numero costituiscono un gruppo rispetto alla moltiplicazione (l’elemento neutro è 1) • Un gruppo si dice commutativo, o abeliano, se vale anche la proprietà commutativa ab= ba per ogni coppiaa,bdi elementi di G
Aritmetica modulare 1 • Definizione 2 • Siano a e b interi ed m intero positivo; ab (mod m), se m divide ba, cioè a è congruo b modulo m; l’intero m è il modulo • Definizione 3 • L’aritmetica modulo mè costituita dall’insieme Zm degli interi {0,1,…,m1} dotato delle operazioni di somma e moltiplicazione; le operazioni producono risultati ridotti modulo m • Esempio 1 • In Z16, l’operazione 1113 produce come risultato il numero 143 (mod 16)=15
Aritmetica modulare 2 • Proprietà delle operazioni modulari • L’insieme Zmè chiuso rispetto all’addizione ed alla moltiplicazione, cioè per ogni a,bZm, ab, abZm • L’addizione e la moltiplicazione godono delle proprietà commutativa e associativa • 0 è l’elemento neutro per l’operazione di addizione, 1 è l’elemento neutro per la moltiplicazione • Per ogni aZm, maè l’opposto di a, cioè vale la relazione a(ma)=(ma)a=0 • La moltiplicazione gode della proprietà distributiva (destra e sinistra) rispetto all’addizione, cioè per ogni a,b,cZm,(ab)c=acbc, a(bc)=abac • Zm è un gruppo abeliano rispetto all’operazione di somma e, grazie alla presenza della moltiplicazione, con le proprietà sopra descritte, è un anello
Aritmetica modulare 3 • Dato che Zm contiene l’opposto, rispetto alla somma, di ogni elemento dell’insieme, è ivi definita anche l’operazione di sottrazione • ab = amb (mod m ) • Esempio 2 • Per calcolare 1118 in Z31, si esegue l’operazione di somma 1113 (mod 31), ottenendo 24 • Teorema 1 (Piccolo teorema di Fermat) • Sia p un numero primo t.c. xp = x mod(p); se x non è divisibile per p, allora xp1 = 1 mod(p) • Esempio: 23 = 2 (mod 3) 8 = 2 (mod 3) • 22 = 1 (mod 3) 4 = 1 (mod 3)
Shift cipher 1 • Il crittosistema SHIFT cipher è definito in Z26, poiché 26 sono le lettere che compongono l’alfabeto inglese • Per k=3, il crittosistema a shift è il Cifrario di Cesare, che lo utilizzava per comunicare con i generali delle sue legioni e per le comunicazioni familiari Siano P=C=K=Z26. Per 0k25, ek(x) = x k (mod 26) dk(y) = y k (mod 26) x,yZ26
Shift cipher 2 • Per utilizzare Shift cipher per codificare testo, occorre stabilire una corrispondenza biunivoca fra le lettere dell’alfabeto ed il relativo numero d’ordine; quindi è necessario scegliere la chiave k • Esempio 3 Sia k=11; la stringa plaintext we will meet at midnight può 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 19 cui deve essere sommato il numero 11 (mod 26) 7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4 La sequenza di numeri ottenuta, nuovamente tradotta in caratteri, fornisce hphtwwxppelextoytrse
Shift cipher 3 • Per decodificare il testo cifrato, Bob deve prima convertirlo nella corrispondente sequenza di interi, quindi sottrarre 11 (mod 26) da ognuno di essi, ed infine convertire gli interi così ottenuti nelle lettere corrispondenti • Perché un crittosistema sia operativo, deve soddisfare certe proprietà: • Le funzioni di codifica, ek, e di decodifica, dk, devono essere computazionalmente poco onerose • Una eventuale spia non deve essere in grado di risalire alla chiave k né al plaintext x dall’osservazione del testo cifrato y • La seconda proprietà esprime l’idea di “sicurezza”
Shift cipher 4 • Il tentativo di determinare la chiave k, dato il testo cifrato y, costituisce la crittoanalisi: se Oscar può risalire a k, può anche decrittare y, come Bob, utilizzando dk • Il problema di determinare k deve essere almeno difficile quanto quello di decifrare x a partire da y • Shift cipher è un crittosistema che non garantisce la sicurezza, poiché può essere crittoanalizzato attraverso il metodo ovvio di ricerca esaustiva della chiave (su solo 26 possibili…)
Shift cipher 5 • Esempio 4 • Dato il testo cifrato jbcrclqrwcrvnbjenbwrwn, provando in successione le chiavi k=1,2,… si ottiene • iabqbkpqvbqumaidmavqvm • hzapajopuaptlzhclzupul • gyzozinotzoskygbkytotk • fxynyhmnsynrjxfajxsnsj • ewxmxglmrxmqiweziwrmri • dvwlwfklqwlphvdyhvqlqh • cuvkvejpkvkogucxgupkpg • btujudijoujnftbwftojof • a stitch in time saves nine • il plaintext è decifrato e k=9 • In media, occorrono 26/2=13 tentativi per violare il crittosistema Un punto a tempo ne risparmia cento
Sicurezza • Una condizione necessaria affinché il crittosistema sia sicuro è costituita dall’impossibilità di eseguire una ricerca esaustiva nello spazio delle chiavi • Tuttavia, anche per |K| molto grande, la sicurezza non è garantita
Substitution cipher 1 Siano P=C=Z26 Sia K l’insieme delle permutazioni di {0,1,…,25} Per ogni K e(x) = (x) d(y) = 1 (y) x,yZ26 e 1 permutazione inversa di • Esempio5 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 e(a)=x, e(b)=n, etc. d(a)=d, d(b)=l, etc. 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
Substitution cipher 2 • Una chiave per SUBSTITUTION cipher è una delle possibili permutazioni dei 26 caratteri dell’alfabeto • Il numero di tali permutazioni è 26! > 4.01026 la ricerca esaustiva nello spazio delle chiavi è computazionalmente troppo onerosa anche per un computer • Tuttavia, Substitution cipher può essere facilmente crittoanalizzato utilizzando metodi statistici (basati sulla frequenza delle lettere, dei digrammi, etc.) • Nota Shift cipher è un caso speciale di Substitution cipher in cui vengono selezionate soltanto 26 delle 26! possibili permutazioni
Affine cipher 1 • Per AFFINE cipher, l’insieme delle funzioni di codifica è ristretto alla classe delle trasformazioni affini (in aritmetica modulare) e(x)=axb (mod 26) a,bZ26 • Per a=1, Affine cipher coincide con Shift cipher • Per poter decifrare un testo cifrato mediante Affine cipher è necessario che la funzione e() sia iniettiva, cioè che la congruenza axb y (mod 26) ammetta un’unica soluzione • Teorema 2 • La congruenza axb (mod m) ha un’unica soluzione in Zm, per ogni bZm, se e solo se MCD(a,m)=1
Affine cipher 2 • Infatti, in Z26… • Supponiamo che MCD(a,26)=d>1, allora la congruenza ax0 (mod 26) ammette almeno due soluzioni distinte in Z26, cioè x=0 e x=26/d la funzione di codifica e(x)=axb (mod 26) non è iniettiva • Esempio 6: Se a=4, MCD(4,26)=2 e, per e(x)=4x7, e(3)=19, e(16)=71=19, ovvero x, x e x13 producono lo stesso valore per e(x) • Viceversa, sia MCD(a,26)=1 e siano x1x2, tali che ax1ax2(mod 26); allora a(x1x2)0 (mod 26); in base alle proprietà della divisione, se il MCD(a,26)=1 e a(x1x2) è divisibile per 26, (x1x2) è divisibile per 26, cioè x1x2 (mod 26) • Poiché 26=213, possibili valori per aZ26 sono 1,3,5,7,9,11,15,17,19,21,23,25, mentre b può assumere qualsiasi valore in Z26 Affine cipher dispone di 1226=312 chiavi possibili (…è sicuramente insicuro!)
Affine cipher 3 • Definizione 4 Siano a ed m interi tali che a1 e m2; se MCD(a,m)=1 allora a ed m sono relativamente primi fra loro. Il numero degli interi in Zm che sono primi rispetto ad m è rappresentato dalla funzione di Eulero (m) • Teorema 3 Sia m = pi con pi fattori primi distinti di m ed ei>0. Allora (m)= (pi pi) Il numero di chiavi per Affine cipher in Zm è m(m) • Esempio 7 Per m=60=2235, (m)=224=16 e |K|=960 n ei i=1 n ei ei1 i=1
Affine cipher 4 • Per decifrare il testo codificato tramite Affine cipher occorre risolvere la congruenza yaxb(mod 26) rispetto ad x, che ha soluzione unica quando MCD(a,26)=1 • Definizione 5 Sia aZm; l’inverso di a, a1 Zm, è tale che aa1 a1a1 • a ha un inverso modulo m se e solo MCD(a,m)=1 e, se un inverso esiste, è unico • Se p è un numero primo, allora ogni elemento 0 di Zp ammette un inverso; un anello con questa proprietà è un campo • Esistono algoritmi efficienti per il calcolo dell’inverso; tuttavia, in Z26 l’inverso può essere calcolato per tentativi • Ad esempio, 71=15, 111=19, 251=25; infatti 715=1051 (mod 26), 1119=2091, 2525=6251
Affine cipher 5 • Sia yaxb (mod 26), da cui axyb(mod 26); poiché MCD(a,26)=1, a ammette un inverso modulo 26; pertanto, moltiplicando entrambi i membri della congruenza, per a1… a1(ax)a1(yb) (mod 26) xa1(yb) (mod 26) Siano P=C=Z26, K ={(a,b)Z26Z26: MCD(a,26)=1} Per k=(a,b)K, siano ek(x) = axb (mod 26) dk(y) = a1 (yb) (mod 26) x,yZ26
Affine cipher 6 • Esempio 8 Sia k=(7,3); 71 (mod 26)=15; la funzione di codifica è ek(x)=7x3 mentre la corrispondente funzione di decodifica risulta dk(y)=15(y3)=15y19 Si può verificare che dk(ek(x))=x, xZ26, infatti… dk(ek(x))=dk(7x3)=15(7x3)19=x4519=x • Esempio 9 Supponiamo di dover convertire il plaintext hot,che corrisponde alla sequenza di cifre 7 14 19; la funzione di codifica restituisce 773 (mod 26)=52 (mod 26)=0 7143 (mod 26)=101 (mod 26)=23 7193 (mod 26)=136 (mod 26)=6 da cui il testo cifrato axg
Vigenere cipher 1 • Sia Substitution che Affine cipher, una volta selezionata la chiave, mappano in modo univoco ciascuna lettera dell’alfabeto sono crittosistemi monoalfabetici • VIGENERE cipher, da Blaise de Vigenere (15231596), è invece un crittosistema polialfabetico Sia m un intero fissato e siano P=C=K=(Z26)m Per k=(k1,k2,…,km)K, definiamo ek(x1,x2,…,xm) = (x1k1,x2k2,…,xmkm) dk(y1,y2,…,ym) = (y1k1,y2k2,…,ymkm) dove tutte le operazioni sono eseguite modulo 26
Vigenere cipher 2 • Esempio 10 Sia m=6 e sia k=CIPHER o, in maniera equivalente, k=(2,8,15,7,4,17); supponiamo che il plaintext sia costituito dalla stringa this cryptosystem is not secure, corrispondente a… 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 = _______________________________________________________________________ 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 19 vpxzgiaxivwpubttmjpwizitwzt
Vigenere cipher 3 • Il numero complessivo di chiavi di lunghezza m è 26m anche per m piccolo la ricerca esaustiva è computazionalmente onerosa • Ad esempio, per m=5, |K|>107: la ricerca a mano è preclusa, ma il computer può ragionevolmente realizzarla • In Vigenere cipher, con chiave di m caratteri, ciascuna lettera dell’alfabeto può essere mappata in base ad uno qualsiasi degli m caratteri possibili (se la chiave è costituita da tutti caratteri distinti) • La crittoanalisi di sistemi polialfabetici è generalmente molto più difficile
Hill cipher 1 • HILL cipher fu inventato nel 1929 da Lester S. Hill ed è un crittosistema polialfabetico • Sia m un intero e siano P=C=(Z26)m; l’operazione di codifica avviene considerando m combinazioni lineari di m caratteri consecutivi nel plaintext, e producendo gli m caratteri corrispondenti del testo cifrato • Esempio 11 Sia m=2; una sezione elementare del plaintext può essere rappresentata da (x1,x2), ed il corrispondente testo cifrato da (y1,y2), dove y1=11x13x2 y2= 8x17x2 o, in notazione matriciale… (y1,y2)T=(x1,x2) ( ) 11 8 3 7
( ) k11 k12 … k1m k21 k22 … k2m … … km1 km2 … kmm Hill cipher 2 • In generale, si considera una matrice K, mm, quale chiave per Hill cipher, e la funzione ek(x) viene calcolata come ek(x)=(y1,y2,…,ym)T=(x1,x2,…,xm) In altre parole y=xTK: il testo cifrato è ottenuto dal plaintext attraverso una trasformazione lineare • Se l’inversa della matrice K esiste in Z26, per decifrare il testo cifrato e ricostruire il plaintext, si applica la trasformazione xT=yK1 • Esempio 12 = ( ) ( ) 1 11 8 3 7 7 18 23 11
Hill cipher 3 • Esempio 13 Supponiamo di voler codificare il plaintext july, cui corrisponde la sequenza di numeri (9,20,11,24) (9,20) =(9960,72140)=(3,4) (11,24) =(12172,88168)=(11,22) Il testo cifrato è delw ( ) 11 8 3 7 ( ) 11 8 3 7
Hill cipher 4 • Una matrice reale K possiede l’inversa se e solo se det(K)0 • In Z26, K ammette un’inversa se e solo se MCD(det(K),26)=1; infatti… • Sia MCD(det(K),26)=1; per 1im, 1jm, sia Kij la matrice ottenuta da K eliminando la riga iesima e la colonna jesima; sia K* tale K*ij=(1)i+j det(Kji) K* è l’aggiunta di K; si può dimostrare che K1=(det(K))1 K* K è invertibile • Viceversa, se K ammette l’inversa K1, si ha 1=det(I)=det(KK1)=det(K) det(K1) det(K) è invertibile in Z26 MCD(det(K),26)=1
Hill cipher 5 • Esempio 14 Nel caso particolare m=2, A1=(det(A))1 Considerando la matrice degli esempi precedenti… det =11783 (mod 26)=7724 (mod 26) =53 (mod 26)=1 Inoltre 11 (mod 26)=1 e quindi = ( ) a22a12 a21a11 ( ) 11 8 3 7 ( ) ( ) 1 11 8 3 7 7 18 23 11
Hill cipher 6 Sia m un intero positivo fissato Siano P=C=(Z26)m Sia K={matrici invertibili mm in Z26} Per ogni AK eK(x) = xTA dK(y) = yA1 dove tutte le operazioni sono eseguite modulo 26
Permutation cipher 1 • Tutti i crittosistemi descritti finora presuppongono la sostituzione dei caratteri del plaintext con caratteri differenti che costituiscono il testo cifrato • L’idea sottesa a PERMUTATION cipher è quella di mantenere i caratteri del plaintext inalterati, cambiandoli di posizione • Permutation (o Transposition) cipher è stato usato per oltre 400 anni: già nel 1536, G. B. Porta ne evidenziò le differenze rispetto ai cifrari per sostituzione Sia m un intero positivo fissato. Siano P=C=(Z26)m K insieme delle permutazioni di {0,1,…,m1}. Per ogni K e(x1,x2,…,xm) = (x(1),x(2),…x(m)) d(y1,y2,…,ym) = (y (1), y (2),… y (m)) 1 permutazione inversa di 1 1 1
1 3 4 5 6 1 3 4 5 6 2 2 3 3 6 1 5 4 5 1 6 2 2 4 Permutation cipher 2 • Esempio 15 Sia m=6 e sia k= la permutazione: 1: Se dunque il plaintext è rappresentato dalla stringa she sells sea shells by the sea shore… shesel lsseas hellsb ythese ashore eeslsh salses lshble hsyeet hraeos cioè eeslshsalseslshblehsyeethraeos Il testo cifrato può essere decifrato applicando la permutazione inversa
{ 1 se i=(j) 0 altrimenti -1 Permutation cipher 3 • Permutation cipher è un caso particolare di Hill cipher; infatti, ad ogni permutazione , può essere associata una matrice di permutazione K definita come Kij = • Una matrice di permutazione è ottenuta permutando per righe o per colonne la matrice identità I • Hill cipher realizzato attraverso una matrice di permutazione K produce esattamente Permutation cipher con permutazione ; inoltre (K)1=K , cioè l’inversa della matrice K è la matrice di permutazione definita da 1
1 3 4 5 6 1 3 4 5 6 2 2 3 3 6 1 5 4 5 1 6 2 2 4 Permutation cipher 4 • Esempio 16 Alla permutazione : ed alla sua inversa 1: corrispondono, rispettivamente, le matrici K = K = ) ) ( ( 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 -1