26
Vigénère e altri cifrari polialfabetici di Martina Andreozzi, Claudio Ferreri, Emanuele Mirante Indice Cifrari polialfabetici Alberti Periodo storico d’interesse Vigénère Vernam I primi cifrari ad essere inventati e usati furono i cifrari monoalfabetici. Essi sono caratterizzati dal fatto che associano ad ogni lettera dell’ alfabeto sempre lo stesso carattere cifrato (un esempio sono i cifrari a sostituzione o a trasposizione). I cifrari polialfabetici possono essere considerati un’evoluzione dei cifrari monoalfabetici, in quanto associano ad ogni lettera dell’ alfabeto caratteri diversi tramite l’uso di una parola chiave. Il vantaggio principale apportato dai cifrari polialfabetici riguarda la maggiore robustezza nei confronti dell’analisi statistica della frequenza delle lettere, poiché la stessa lettera del testo chiaro non è sempre cifrata con lo stesso carattere. Il primo cifrario polialfabetico si deve a Leon Battista Alberti intorno al 1446, il quale fu il primo a comprendere l’importanza di un’analisi statistica, (anche perché ne fu sostanzialmente l’inventore) che rende debole il cifrario monoalfabetico. Furono molti gli studiosi che dopo l’Alberti si occuparono di metodi di cifratura polialfabetica. Tra il 1467 ed il 1590 si possono indicare le seguenti tappe: 1467 Roma L.B. Alberti manoscritto del De Componendis Cyfris 1518 Oppenheim J. Tritemio pubblicazione del primo metodo con la Tabula recta

Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Vigénère e altri cifrari polialfabeticidi Martina Andreozzi, Claudio Ferreri, Emanuele Mirante

Indice

Cifrari polialfabetici Alberti Periodo storico d’interesse Vigénère Vernam

I primi cifrari ad essere inventati e usati furono i cifrari monoalfabetici. Essi sono caratterizzati dal fatto che associano ad ogni lettera dell’ alfabeto sempre lo stesso carattere cifrato (un esempio sono i cifrari a sostituzione o a trasposizione). I cifrari polialfabetici possono essere considerati un’evoluzione dei cifrari monoalfabetici, in quanto associano ad ogni lettera dell’ alfabeto caratteri diversi tramite l’uso di una parola chiave. Il vantaggio principale apportato dai cifrari polialfabetici riguarda la maggiore robustezza nei confronti dell’analisi statistica della frequenza delle lettere, poiché la stessa lettera del testo chiaro non è sempre cifrata con lo stesso carattere.

Il primo cifrario polialfabetico si deve a Leon Battista Alberti intorno al 1446, il quale fu il primo a comprendere l’importanza di un’analisi statistica, (anche perché ne fu sostanzialmente l’inventore) che rende debole il cifrario monoalfabetico. Furono molti gli studiosi che dopo l’Alberti si occuparono di metodi di cifratura polialfabetica. Tra il 1467 ed il 1590 si possono indicare le seguenti tappe:

1467 Roma L.B. Alberti manoscritto del De Componendis Cyfris1518 Oppenheim J. Tritemio pubblicazione del primo metodo con la Tabula recta 1553 Brescia G.B. Belaso sembra essere il primo a far uso della parola- chiave 1557 Lione G. Cardano ideazione di varie tecniche1563 Napoli G.B. Della Porta tavola per diagrammi1586 Parigi B. de Vigénère ideazione di varie tecniche

Tali tappe condussero alla “messa a punto” del metodo, per anni riconosciuto come il più difficile ed il più impenetrabile codice, attribuito erroneamente a Vigénère (in realtà era il metodo inventato da Belaso) che lo aveva diffuso.Come già accennato, Alberti fu il primo a ideare un cifrario polialfabetico con un sistema che sarà ora esposto. Il cifrario di Alberti è realizzato tramite una coppia di cerchi concentrici, come riportato nella figura seguente. Il disco esterno, fisso, contiene le venti lettere maiuscole dell’alfabeto in chiaro (sono escluse J K Y W H e posto V=U) e quattro numeri 1 2 3 4, invece il

Page 2: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

disco interno, mobile, contiene l’alfabeto segreto costituito da venti lettere minuscole (esclusa W e posto V=U) scritte in ordine casuale.

L’algoritmo di cifratura per il cifrario di Alberti è il seguente:.

- fissa una lettera dell’alfabeto cifrante: Indice del Cifrario;

- ruota il disco interno per portare l’indice del cifrario in corrispondenza di una lettera dell’alfabeto in chiaro scelta;

- ogni lettera del testo in chiaro viene cifrata con la corrispondente lettera del disco interno secondo una corrispondenza biunivoca;

- per cambiare alfabeto cifrante

- bisogna scegliere uno dei quattro numeri del disco esterno;

- inserire la lettera del disco interno in corrispondenza del numero;

- ruotare il disco finché l’indice del cifrario sia in corrispondenza del numero scelto;

- l’alfabeto ottenuto con questa rotazione viene impiegato fino ad un ulteriore cambio.

Esempio:

Messaggio esatto: QUESTO E’ IL CIFRARIO DI ALBERTI

Messaggio da inviare: QUESTOEILCIFRARIODIALBERTI

Sono stati eliminati gli spazi e gli accenti per rendere più difficile la crittoanalisi.

Prima di cominciare a codificare il messaggio, va scelto il disco da utilizzare in accordo con il destinatario e poi va inizializzata la macchina fissando, a piacere, una lettera dell'alfabeto cifrante, ad esempio la a, da collocare sotto la A dell'alfabeto in chiaro, attraverso una rotazione del disco interno. Poiché c'è una corrispondenza biunivoca tra le caselle dei due dischi, alla lettera scelta come indice del codice, ovvero la a, corrisponde una ed una sola lettera del disco esterno. Dopo

Page 3: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

aver posto la a sotto la A si inizia a codificare il messaggio tenendo conto della corrispondenza tra le lettere dell'alfabeto in chiaro e quelle dell'alfabeto cifrante.

1° PASSO) Qx, Uz, Eb QUExzb

Se continuiamo per questa strada, cioè usando un codice monoalfabetico, la probabilità che esso sia scoperto è estremamente alta per cui occorre cambiare alfabeto utilizzando uno dei quattro numeri che compaiono nell'alfabeto in chiaro. Scegliamo, ad esempio, 3, da inserire tra la R e la A del messaggio da cifrare:

QUESTOEILCIFRARIODIALBERTI QUE3STOEILCIFRARIODIALBERTI

2° PASSO) 3l

Cambiamo così l'inizializzazione portando la a, scelta all'inizio, sotto il numero 3 e procediamo come in precedenza.

3° PASSO) Sp, Tz, Oi STOpzi

Cambiamo di nuovo alfabeto, scegliendo questa volta il numero 1, da inserire tra la O e la E del messaggio da decifrare:

QUESTOEILCIFRARIODIALBERTIQUE3STO1EILCIFRARIODIALBERTI

4° PASSO) 1l

Inizializziamo nuovamente la macchina, portando la a sotto il numero 1 e proseguendo come al solito.

5° PASSO) Ec, Iy, Lq, Cs EILCcyqs

Si può ora cambiare di nuovo l'inizializzazione della macchina scegliendo un altro numero a piacere e ripetendo il discorso precedente, ottenendo così:

Messaggio in chiaro: QUE3STO1EILC ……

Messaggio cifrato: ipb l pzi l cyqs ……

Per decifrare il messaggio chiaramente si utilizza lo stesso procedimento al contrario, conoscendo a priori il disco cifrante da utilizzare e l'inizializzazione della macchina.

E’ evidente che tale algoritmo di cifratura permette l’impiego di più alfabeti segreti, perché ad ogni rotazione del disco interno corrisponde una nuova serie di corrispondenze, ovvero un nuovo alfabeto, e considerando tutte le possibili disposizioni del disco interno si può costruire una tabella analoga alla tabula recta.

Page 4: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Tritemio

La tabula recta (in figura) venne creata nel 1518 da Johannes Trithemius, ma viene spesso chiamata tavola di Vigénère in quanto è stata in seguito utilizzata nell'omonimo cifrario. Tritemio utilizzò la tabula recta per definire una cifra polialfabetica che era equivalente nel suo risultato finale al disco cifrante di Leon Battista Alberti, eccetto per il fatto che nel disco cifrante di Alberti, gli alfabeti erano mescolati. La particolarità è che tutte le cifrature polialfabetiche basate sul Cifrario di Cesare, possono essere descritte in termini di tabula recta.

Dunque tutti i metodi polialfabetici si basano su tavole che danno le corrispondenze; a cambiare sono le tecniche, cioè gli algoritmi di cifratura, e l’ordinamento degli alfabeti. Tornando all’esempio di Aberti la tabula recta che si può ricavare dall’esempio è del tipo:

Page 5: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Bellaso

Uomo portato alla ricerca, interessato alle matematiche, il Bellaso si occupa di scritture segrete in un'epoca in cui quest'arte gode di gran favore presso tutte le corti italiane e in primis presso la curia romana. Bellaso era uno dei tanti segretari che un po' per passione e un po' per necessità, sperimentavano nuovi sistemi di cifratura nella loro pratica quotidiana. Fu il Bellaso che propose per primo di individuare la serie degli alfabeti messi in gioco per mezzo di una parola chiave, oltre ad insegnare vari modi per formare alfabeti cifranti mischiati allo scopo di liberare i corrispondenti dalla necessità di scambiarsi dischi o tabelle precompilate.

La cifratura avviene mediante l'uso di un versetto convenuto fra i due corrispondenti, chiamato contrassegno, che viene sovrapposto al testo da cifrare.

Lo scopo è quello di ricavare diversi alfabeti disordinati da una parola chiave. Le lettere della parola segreta vengono scritte all’inizio a sinistra e intercalate su due righe. Le altre lettere dell’alfabeto vengono scritte di seguito sempre su due righe.Un esempio dell'autore: data la parola chiave IOVE, il primo alfabeto derivato (alfabeto latino di 20 lettere posta V=U) è:

Il secondo si ottiene spostando circolarmente la seconda riga:

e così via fino ad ottenere cinque alfabeti; ognuno di questi sarà identificato da un gruppo di quattro lettere, come nella tabella a lato.

Page 6: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

A questo punto si deve convenire un altro motto segreto, per esempio OPTARE MELIORA; le lettere di quest'ultimo servono a selezionare l'alfabeto da usare.

Volendo allora cifrare la frase "Inviare truppe domani" si ha:

O P T Chiaro I N V I A R E T R U P P E D O M A N ICifrato X C O X E G A A I C H H D M T D X F S

Le cifre del Bellaso sono più deboli di quella dell'Alberti perché usano alfabeti invertiti e non del tutto arbitrari, mentre il cambio di lista non è segreto.

Cardano

Un altro sistema di permutazione meccanica delle lettere di un testo chiaro fu inventato nel 1550 nientemeno che da Girolamo Cardano, poliedrica figura del Rinascimento italiano che nella sua lunga e rocambolesca vita fu matematico, medico e astrologo.

Pensato originariamente dal suo autore più come forma di steganografia che di crittografia, il sistema prevede l'uso di un ausilio meccanico costituito da un foglio di cartoncino o di metallo sul quale sono praticati alcuni fori in corrispondenza di determinate posizioni individuate all'interno di un adeguato numero di righi di scrittura. Per cifrare basta appoggiare la griglia su un foglio bianco e scrivere il messaggio attraverso i fori; poi, una volta tolta la griglia, bisogna riempire gli spazi bianchi rimanenti con lettere prive di senso o, se possibile, completare il messaggio con lettere tali da formare un testo di senso compiuto con quelle già inserite (cosa oltremodo più difficile). In ogni caso solo il possessore di una griglia identica può estrarre il testo chiaro dal cifrato.

Il sistema di Cardano, pur difficilmente applicabile in pratica, fu effettivamente utilizzato in varie occasioni nei secoli successivi. Sembra ad esempio che fosse il preferito dal cardinale Richelieu, che lo adoperava sia per la sua corrispondenza privata che per quella diplomatica. Ma dall'idea di Cardano si sviluppò soprattutto il concetto di usare le griglie per creare un vero e proprio meccanismo sistematico di permutazione del testo. Si giunse così verso il '700 a definire un sistema basato su griglie a rotazione assai più semplice ed efficace da usare rispetto a quello originale.

Porta

Giovanni Battista Porta (o Della porta) pubblicò nel 1563 a Napoli un trattato di crittografia “De Furtivis literarum notis - vulgo de ziferis” molto vasto e di ottimo livello. Tra le cifre proposte da

Page 7: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Porta è nota soprattutto la tavola che non è certo tra le migliori di quelle presenti nel trattato e che è più debole di quella dell’Alberti e del Bellaso.La tabella aveva come indice di riga e colonna lettere dell'alfabeto ma a differenza di quest'ultimo al posto delle lettere aveva dei numeri e ogni coppia di lettere del testo in chiaro veniva usata per ricavare l'indice di riga e di colonna per identificare il numero da inserire nel testo cifrato.

Esempio:Per cifrare la parola DOMANI la dividiamo in sillabe DO MA NI e la cifriamo con i seguenti numeri 92 312 346. La D nell’alfabeto verticale e la O nell’alfabeto orizzontale infatti individuano proprio il numero 92, e così via.

La chiave può essere una permutazione arbitraria o dei numeri del cifrario o delle letter su righe e colonne.

Esiste un'altra versione di Porta che al posto dei numeri nella tabella ci sono dei caratteri speciali dell'alfabeto (disegnini). Quindi la chiave in questo cifrario corrispondeva ad una permutazione dei numeri (o disegnini) all'interno della tabella.

Vigénère

L’opera di Alberti non ebbe però l’importanza che meritava, probabilmente perché conteneva concetti troppo innovativi per quel periodo, ma ha trovato compimento e diffusione con Vigénère nel 1586, tanto che il cifrario di Vigénère lo possiamo considerare come la finalizzazione dell’opera di Alberti e ha raggiunto uno strepitoso successo con il suo impiego per secoli da parte di molti eserciti tra cui quello francese e austriaco. La forza del cifrario di Vigenére sta nell'utilizzare non uno ma 26 alfabeti cifranti per cifrare un solo messaggio. Il metodo si può considerare una generalizzazione del codice di Cesare; invece di spostare sempre dello stesso numero di posti la lettera da cifrare, questa viene spostata di un numero di posti variabile, determinato in base ad una parola chiave, da concordarsi tra mittente e destinatario, e da scriversi sotto il messaggio, carattere per carattere; la parola è detta verme, per il motivo che, essendo in genere molto più corta del messaggio, deve essere ripetuta molte volte sotto questo: è importante sottolineare che se la chiave ha lunghezza m, lo spazio delle chiavi ha dimensione 26m. Caratteristica particolare di questo algoritmo è la tavola di Vigénère, una matrice 26x26 composta dai citati 26 alfabeti cifranti.

Sui dati di ingresso si possono fare alcune considerazioni:

Page 8: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

- in primo luogo il testo deve essere privo di ridondanza, cioè ripetizioni degli stessi digrammi/trigrammi, per limitare la possibilità di decrittare il testo attraverso l’analisi statistica delle frequenze;

- la chiave deve essere più lunga possibile, per utilizzare una maggior numero di alfabeti cifranti per nascondere il messaggio; inoltre l’ideale sarebbe cambiare spesso la chiave;

- ma queste erano condizioni difficili da rispettare nel sedicesimo secolo.

L’algoritmo di cifratura opera in questo modo:

- considera la prima lettera del testo in chiaro e della chiave;- le usa come coordinate cartesiane nella tavola;- l’intersezione fornisce il carattere da sostituire nel testo cifrato;- itera per tutta la lunghezza del testo.

Esempio:

Si consideri il testo in chiaro costituito dalla parola ARRIVANO e la chiave da utilizzare VERME. Per quanto detto risulta:

A R R I V A N O

V E R M E V E R

Per cui la cifratura fornisce il testo VVIUZVRF (come si può vedere dalla tabella seguente).

Similmente, l’algoritmo di decifrazione è il seguente:

- considera la prima lettera della chiave;- nella riga corrispondente alla lettera della chiave individua la lettera del testo cifrato;- il carattere che contrassegna tale colonna è la lettera in chiaro;- itera per tutta la lunghezza del testo.

Page 9: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Esempio:

Si consideri l’esempio precedente. Il testo cifrato è costituito dalla parola VVIUZVRF e la chiave da utilizzare è ancora VERME. Per quanto detto risulta

V V I U Z V R F

V E R M E V E R

Per cui la decifratura fornisce il testo ARRIVANO.

Altro modo per effettuare la cifratura/decifratura di un testo è quella tramite il modello matematico:

- altra rappresentazione per cifrare il testo;- corrispondenza tra le lettere dell’alfabeto e i numeri naturali (a=0; b=1; …; z=25);- si somma al numero del simbolo del messaggio in chiaro il numero d’ordine del simbolo

della chiave;- si applica l’operatore mod26 per ottenere il carattere cifrato;- per decifrare si procede allo stesso modo ma sottraendo gli indici.

I vantaggi del metodo di Vigénère rispetto a quello dell’Alberti consistono in due aspetti ben precisi. In primo luogo la modifica dell’alfabeto utilizzato avviene comunque ad ogni lettera, pertanto lettere vicine provengono da cifrature che utilizzano alfabeti differenti, mentre nel metodo di Alberti la modifica è legata all’inserimento dei numeri, che può essere saltuaria, e che solo in teoria potrebbe effettuarsi dopo ogni lettera del messaggio in chiaro. In secondo luogo in Vigénère il cambio degli alfabeti avviene in modo “coperto” per mezzo della chiave, che è un “oggetto” di cui non si ha alcuna traccia all’interno del messaggio. Su questo aspetto il metodo di Vigénère è decisamente più sicuro. Anzi, è stata proprio questa caratteristica a decretarne la plurisecolare fortuna.

Viceversa il metodo di Alberti ha un vantaggio spesso sottovalutato, l’alfabeto sul disco più piccolo, ovvero l’alfabeto cifrante, non è ordinato nel modo convenzionale ma in modo casuale. Il grande pregio del disco cifrante è proprio questo e, sebbene Alberti non lo precisa in modo netto, si intende che tale ordine può essere scelto arbitrariamente, magari come convenzione tra le due parti, e quindi come ulteriore segreto da condividere. Infatti il disco interno si può cambiare in esattamente 24!-1 modi e quindi si può a priori scegliere un disco in funzione, ad esempio, della data. Un attacco ad un messaggio cifrato con un codice di Alberti a disco interno variabile può essere solo di tipo esaustivo. L’attaccante, quindi, si trova davanti un tale numero di possibilità tra cui scegliere che la sua probabilità di successo è dell’ordine di 1/24!, ovvero l’insuccesso nel caso in cui il codice sia usato nella sua completa potenzialità.

A tutto questo va aggiunto che Alberti suggerisce l’uso dei nomenclatori, cioè sequenze, in questo caso numeriche, che hanno significati prestabiliti e che rendono ancora più arduo ogni tentativo di decrittazione.

Page 10: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Si può concludere l’analisi del rapporto Alberti - Vigénère affermando che l’opera dell’Alberti appare in tutta la sua grandezza, non solo per l’invenzione della cifratura polialfabetica, ma specialmente per le idee che muovono la costruzione della tecnica stessa di cifratura.

Spostando l’attenzione su quelli che sono i punti deboli del cifrario di Vigénère, oggetto del nostro lavoro, è chiaro che il tallone d’Achille del cifrario di Vigénère sta nel fatto di essere un insieme di cifrari di Cesare a distanza fissa, cosa che rende più semplice la crittoanalisi, tanto più se la chiave è breve. Diversa diventa la situazione se si sceglie una chiave lunga come il testo in chiaro; infatti si è scoperto solo successivamente che la lunghezza della parola-chiave è importante.

Se la parola fosse idealmente lunga come il testo da cifrare il messaggio non potrebbe essere decrittato.

Vernam

L’idea proposta da Vernam nel 1926 per il suo cifrario può essere vista come la soluzione al tallone d’Achille del cifrario di Vigénère ideato molto tempo prima. Secondo Vernam deve essere generata una chiave del tutto casuale lunga come il testo, successivamente il testo in chiaro e la chiave vengono sommati (lettera per lettera) come per il cifrario di Vigénère.Questo algoritmo, noto come One-Time Pad, non è usato con lettere ma con bits per un approccio informatico. Viene quindi effettuato lo XOR logico di ogni bit del messaggio con il corrispondente bit della chiave come riportato in figura, inoltre questa operazione è reversibile quindi viene impiegata sia per cifrare che per decifrare.

Shannon ha dimostrato nel 1949 che ogni cifrario “teoricamente sicuro” è un cifrario di Vernam, se la chiave segreta è veramente una stringa casuale di bit lunga come il testo (in modo da distruggere tutte le proprietà statistiche del messaggio) e se la chiave non viene riutilizzata.

Chi attenta a decifrare il messaggio senza avere la chiave segreta non ha altra possibilità che provare tutte le chiavi ed ottenere tutti i possibili messaggi di quella lunghezza, considerando che il numero delle chiavi è 2n con n numero bit del messaggio.

Nel caso in cui la chiave venisse riutilizzata comincerebbero ad apparire ripetizioni nel testo, la chiave tornerebbe ad essere più breve del messaggio ed il cifrario non sarebbe più perfetto.

Un altro problema è se l’attaccante è a conoscenza di parte del testo in chiaro, facendo lo XOR tra la parte a lui nota con la corrispondente parte del testo cifrato, può facilmente ottenere i bit della chiave segreta della parte del testo in chiaro che conosce. Ciò accade se la chiave è stata generata da

Page 11: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

un generatore pseudo-casuale: l’informazione ottenuta può essere molto utile all’attaccante per ricostruire tutta la chiave segreta; è evidente che questo sottolinea l’importanza di avere delle chiavi veramente casuali per la buona riuscita dell’algoritmo.

Questo sistema è poco utilizzato perché la trasmissione di una chiave segreta lunga è veramente un problema se viene trasmessa attraverso lo stesso canale usato per il testo cifrato, infatti si ha la stessa probabilità di leggere testo cifrato o chiave perché hanno stessa lunghezza; una possibile soluzione sarebbe quella di trasmettere in anticipo la chiave.

In conclusioni le chiavi, oltre ad essere veramente casuali e sufficientemente lunghe, devono essere scambiate in anticipo; questa tecnica è tuttora impiegata dai servizi segreti per comunicazioni di altissima importanza e si può pertanto affermare che è ragionevole usare l’ One-Time Pad solo se si è sicuri della casualità della chiave e solo in questo caso è un algoritmo semplice e anche sicurissimo.

Crittanalisi di Vigénère

Descriviamo alcuni metodi per crittoanalizzare la cifratura di Vigénère.

La prima cosa da fare è determinare la lunghezza della chiave, che denotiamo con m. Questo è forse il passo più importante per la crittoanalisi del sistema di Vigénère in quanto, date le caratteristiche del sistema, nota la lunghezza della chiave il tutto può essere visto come una serie di cifrari additivi risolvibile con tecniche già note per tale critto sistema.

Ci sono due tecniche che possono essere impiegate note come il test di Kasiski e il test di Friedman.

Test di Kasiski

Il cifrario di Vigénère fu per molti anni considerato inattaccabile per le sue caratteristiche. Nel 1963, però, un generale prussiano di nome Friedrich Kasiski pubblicò un libro di 109 pagine sulla crittografia, Die Geheimschriften und die Dechiffrir-Kunst (Le scritture segrete e l'arte di decifrare) in cui era presente una procedura per attaccare il cifrario polialfabetico per sostituzione e in particolare il cifrario di Vigénère. È però possibile che un metodo simile sia stato trovato da Charles Babbage, matematico e filosofo inglese, e che questi l'abbia tenuto segreto.

Il test di Kasiski è basato sull'osservazione che due segmenti identici del plaintext (testo in chiaro) saranno cifrati dallo stesso ciphertext (testo cifrato) se la ricorrenza nel plaintext è di x posizioni, con x≡0 mod m di x (si considera m la lunghezza della chiave). In altre parole elementi del testo in chiaro distanti una quantità pari alla lunghezza della chiave (o multipli interi di essa), saranno shiftati della stessa quantità. Quindi se in genere la stessa lettera, con il cifrario di Vigénère, viene cifrata in modo diverso nelle sue varie occorrenze, si ha che se due lettere uguali nel testo in chiaro sono poste ad una distanza pari alla lunghezza della chiave, saranno cifrate nello stesso modo. Se quindi si osservano due segmenti identici di testo cifrato, di lunghezza almeno pari a tre, vi è una buona probabilità che corrispondano a segmenti identici nel plaintext.Nel caso in cui si abbia un testo cifrato lungo rispetto alla chiave, questa corrispondenza avverrà frequentemente.

Page 12: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Il modo di operare è il seguente: si cerca nel ciphertext la ricorrenza di segmenti identici di lunghezza almeno tre e si registra la distanza dal segmento iniziale. Una volta calcolate tali distanze d1, d2 .. dn, si può ipotizzare che m divida il massimo comun divisore tra di esse.

Test di Friedman

Il secondo test fu definito da Wolfe Friedman nel 1920 il quale trovò, tra l’altro, un metodo più sicuro per il calcolo della lunghezza m della chiave basandosi sull’indice di coincidenza.

DEF: Supponiamo che x=x1,x2….xn sia una stringa di n caratteri alfabetici. L’indice di coincidenza di x, definito come Ic(x), è definito come la probabilità che 2 elementi presi casualmente in x siano identici.

Ricordando la formula generale della probabilità, come rapporto tra casi favorevoli e casi possibili:

P(A)= numero casi favorevoli / numero casi possibili,

si può arrivare a una formulazione diversa per il calcolo dell’indice di coincidenza.Per il numero di casi possibili si procede in questo modo:· essendo la stringa lunga n, ci saranno n modi possibili per scegliere il primo carattere· per scegliere il secondo carattere si avranno i rimanenti n-1 modi possibili· si moltiplicano quindi le scelte possibili --> n ( n-1)· e si divide il risultato per 2 --> n ( n-1) / 2 dato che scegliere A e poi B è uguale a scegliere B e poi A.Alla fine si ottiene il risultato, casi possibili = n ( n-1) / 2.

In più, la probabilità per cui due caratteri in una sequenza siano effettivamente uguali sarà data dal risultato di un'analisi delle occorrenze dei caratteri stessi nella stringa.Ragionando in un modo simile a quanto fatto in precedenza, si avrà:

avendo indicato le frequenze (numero di occorrenze) delle lettere A,B,C,...,Z in x rispettivamente

con f0 , f1 , f2 … f25.

Il tutto poteva semplicemente essere espresso ricordando la definizione di coefficiente binomiale

che denota il numero di modi di scegliere un sottoinsieme di k oggetti da

Page 13: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

un insieme di n oggetti. La possibilità di scegliere due elementi in x sarà semplicemente esprimibile

come .

Per ogni i (con 0<i<25), ci saranno inoltre modi di scegliere entrambi gli elementi pari proprio a i. Da qui la formula

.

Supponiamo che x sia una stringa in lingua inglese.

La probabilità di ottenere una particolare lettera viene denotata con le probabilità p0,p1,p2.. Tale probabilità è stata ottenuta considerando una grande quantità di testi di vario genere vasto a sufficienza da poter approssimare le occorrenze con le probabilità (legge dei grandi numeri).

Per la lingua inglese i risultati sono quelli espressi in tabella:

Note le probabilità a priori per ogni lettera, è possibile calcolare l’indice di coincidenza a partire dalla sua definizione, cioè probabilità di ottenere due simboli uguali.

Si può quindi esprimere nel seguente modo:

, poiché la probabilità che due elementi casuali siano entrambi A è p02, la

probabilità che entrambe sono B è p12,ecc.

Se x è invece una stringa in lingua italiana, le probabilità per le varie lettere saranno diverse:

e con esse anche l’indice di coincidenza:

Page 14: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Lo stesso ragionamento si può applicare anche nel caso in cui x non sia un testo cifrato. In questo caso, si assume che la probabilità di ottenere una qualsiasi lettera sia la medesima (in modo tale da non poter facilmente risalire al testo in chiaro); l’indice di coincidenza diverrà quindi:

L’indice di coincidenza può essere usato per capire con alta probabilità la lunghezza della chiave.

Preso, infatti, un testo cifrato y=y1,y2…yn costruito usando un cifrario di Vigénère,si avrà, calcolando l’IC, un valore attorno a 0.038 (almeno se fatto correttamente) che ci assicurerà di non poter risalire facilmente al testo in chiaro tramite analisi frequenziale. Se invece si scompone la sequenza in un numero m di sottostringhe, pari al valore aspettato della chiave, l’IC per ogni sottostringa si attesterà attorno al valore di 0.075 (se testo in chiaro in italiano). Infatti, essendo il cifrario di Vigénère un cifrario additivo polialfabetico, individuando la lunghezza della chiave, si potrà riscrivere la stringa iniziale come un array rettangolare di dimensioni m×(n/m).Ogni sottostringa sarà un semplice shift del testo in chiaro in base all’elemento della chiave utilizzato, le caratteristiche frequenziali saranno perciò uguali a quelle della lingua di origine del testo in chiaro. L’IC aspettato sarà quindi, in questo caso, circa pari al valore di 0.075.

Il modo di procedere sarà cosi riassunto:

in modo iterativo si aumenterà il valore di m (partendo da 1) ottenendo yi sottostringhe con 1<i<m.

Calcolando l’IC su ogni stringa, se m è effettivamente la lunghezza di parola chiave, ciascun Ic(yi) dovrebbe essere approssimativamente uguale a 0,075 (0,065 per testo in chiaro inglese). Dall’altra parte, se m non è la lunghezza della chiave, la sottostringa yi avrà un valore di Ic molto più basso.

I due valori 0,065 e 0,038 sono sufficiente lontani per poter determinare la lunghezza corretta della parola chiave (o confermare una congettura già fatta facendo uso del test di Kasiski).

ESEMPIO

Testo ottenuto con il cifrario di Vigénère

CHREEVOAHMAERATBIAXXWTNXBEEOPHBSBQMQEQERBWRVXUOAKXAOSXXWEAHBWGJMMQMNKGRFVGXWTRZXWIAKLXFPSKAUTEMNDCMGTSXMXBTUIADNGMGPSRELXNJELXVRVPRTULHDNQWTWDTYGBPHXTFALJHASVBFXNGLLCHRZBWELEKMSJIKNBHWRJGNMGJSGLXFEYPHAGNRBIEQJTAMRVLCRREMNDGLXRRIMGNSNRWCHRQHAEYEVTAQEBBIPEEWEVKAKOEWADREMXMTBHHCHRTKDNVRZCHRCLQOHPWQAIIWXNRMGWOIIFKEE

In primo luogo, proviamo il test di Kasiski.

Page 15: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

La stringa CHR del ciphertext si presenta in cinque posti nel ciphertext, nelle posizioni 1, 166, 236, 276 e 286. Le distanze fra il primo avvenimento e gli altri tre avvenimenti sono rispettivamente 165, 235, 275 e 285. Il mcd (massimo comun divisore) di questi quattro numeri interi è 5, che sia molto probabilmente è la lunghezza della parola chiave.

Vediamo se il calcolo degli indici di coincidenza porta alla stessa conclusione.

Con la m=1, l'indice della coincidenza è 0,045.

Con la m=2, i due indici sono 0,046 e 0,041.

Con m=3, otteniamo 0,043, 0,050, 0,047.

Con m=4, abbiamo indici 0,042, 0,039, 0,046, 0,040.

Provando m=5, otteniamo i valori 0,063, 0,068, 0,069, 0,061 e 0,072, tutti approssimativamente pari al valore 0.065.

Per m=6 i valori si allontanano da tale valore.

Ciò fornisce la prova che, con gran probabilità, la lunghezza di parola chiave è cinque.

Come determiniamo la parola chiave?

Individuata la lunghezza della chiave, si può dividere il testo cifrato in più sottostringhe caratterizzate dal fatto di essere cifrate tutte dalla stessa chiave e analizzare individualmente le sottostringhe con tecniche note per la decifratura del cifrario additivo. Nel caso in cui la chiave sia costituita da una quantità considerevole di elementi, tale procedimento risulta piuttosto laborioso soprattutto se sprovvisti di calcolatore. Friedman quindi trovò il modo di ridurre tale analisi a solo uno degli elementi della chiave servendosi dell'Indice di mutua coincidenza di due stringhe.

DEF: Supponiamo che x=x1,x2,..xn e y =y1,y2..yn siano stringhe, rispettivamente di n e di n’ caratteri alfabetici. L’indice di mutua coincidenza di x e di y, denotato MIc(x, y), è definito come la probabilità che preso un elemento casuale nella stringa x, esso sia identico ad un elemento casuale della stringa y. Se denotiamo le occorrenze di A,B, C,…,Z rispettivamente nella x e nella y, con f0,f1,f2...f25 e f’0f’1…f’25, l’ MIc(x,y) può essere definito come:

ESEMPIO

MIc (CIA, CIAO)=

Page 16: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Dato che è stata determinata la lunghezza m della chiave, è possibile individuare m sottostringhe (y1,y2,…,ym) caratterizzate dallo stesso shift del plaintext.

Nell’esempio si divide il testo cifrato in sottostringhe lunghe 5:

C H R E E V O A H M A E R A TB I A X XW T N X BE E O P H. . . . .Ogni elemento cifrato conk1 k2 k3 k4 k5

Si considera con k=(k1,k2…km) l’insieme degli elementi della parola chiave. Vediamo come si può stimare il MIc (yi ,yj) . Si consideri un carattere casuale in yi e un carattere casuale in yj. La probabilità che entrambi i caratteri siano A è p-ki , e p-kj , la probabilità che siano B è p1-ki e p1-kj, etc… (da ricordare che ogni stinga è ridotta modulo 26). Quindi si stima che

Si osservi che il valore di questa stima dipende soltanto dalla differenza ki-kj MOD 26, che chiamiamo spostamento relativo di yi e yj.

ESEMPIO

Per k0=1 e k1=4

La probabilità che entrambi siano AA nel testo cifrato = alla probabilità che siano ZW nel testo in chiaro.

La probabilità che entrambi siano BB nel testo cifrato = alla probabilità che siano AX nel testo in chiaro.

Inoltre, si noti che uno spostamento relativo di l riporta la stessa stima del MIc come uno spostamento che relativo di 26-l.

Page 17: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Si noti che i possibili valori sono 14.

Tabuliamo queste stime, per gli spostamenti relativi che variano fra 0 – 13.

Indici di mutua coincidenza previsti k0-k1 MIc0 0.0651,25 0.0392,24 0.0323,23 0.0344,22 0.0445,21 0.0336,20 0.0367,19 0.0398 ,18 0.0349,17 0.03410 16 0.03811,15 0.04512,14 0.03913 0.043

L'osservazione importante è che, se lo spostamento relativo non è zero, queste stime variano fra 0,031 e 0,045; considerando che, uno spostamento relativo di zero rende una stima di 0,065.

Possiamo usare questa osservazione per formulare una congettura probabile per l=ki-kj, il relativo spostamento di yi e yj, come segue. Supponiamo di fissare yi, e consideriamo gli effetti della cifratura con e0, e1, e2…

Definiamo le stringhe risultanti yj0, yj

1 e così via. È facile calcolare ora l’indice MIc(yi,yjg), con

0<g<25. Questo può essere fatto con la formula

Quando g=l il MIc dovrebbe essere vicino a 0,065, dallo spostamento relativo di yi e yj

l è zero. Invece, per g≠l il MIc dovrebbe variare tra 0.031 e 0.045. Usando questa tecnica, possiamo ottenere gli spostamenti relativi di qualunque delle sottostringhe yj. Ciò lascia soltanto 26 parolechiavi possibili, che possono essere ottenute facilmente dalla ricerca esaustiva della chiave.ESEMPIO

Indici di mutua coincidenza osservati:

Page 18: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

Questo è il valore dello spostamento relativo.

Sei valori nella tabella sono inscatolati. Forniscono la prova ben fondata che gli spostamenti relativi di y1 e y2 sono 9; gli spostamenti relativi di y1 e y5 sono16; gli spostamenti relativi di y2 e y3 sono 13; gli spostamenti relativi di y2 e y5 sono 7; gli spostamenti relativi di y3 e y5 sono 20; e gli spostamenti relativi di y4 e y5 sono 11. Ciò ci dà cinque equazioni nelle incognite k1, k2, k3, k4, k5:

k1-k2=9k1-k5=16k2-k3=13 k2-k5=7k3-k5=20k4-k5=11

Così la chiave è probabile essere (k1, k1+17, k1+4, k1+21, k1+10) per k1 ∈ ℤ26 . Quindi, sospettiamo che la parola chiave sia un certo spostamento ciclico di AREVK. Non si perde molto tempo per determinare che la parola chiave è JANET. Il testo decifrato completo è il seguente:

The almond tree was in tentative blossom. The days were longer, often ending with

Page 19: Dipartimento di Matematica - Direzionericerca.mat.uniroma3.it/.../seminari/Vigenerefinale.docx · Web viewUn altro problema è se l’attaccante è a conoscenza di parte del testo

magnificent evenings of corrugated pink skies. The hunting season was over, with hounds and guns put away for six months. The vineyards were busy again as the well-organized farmers treated their vines and the more lackadaisical neighbors hurried to do the pruning they should have done in November.