Università degli Studi di Milano
|
|
|
- Alfonsina Orlandi
- 9 anni fa
- Просмотров:
Транскрипт
1 Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche FABIO SCOTTI I cifrari polialfabetici: Vigenère Laboratorio di programmazione per la sicurezza
2 Indice 1. CIFRARI POLIALFABETICI IL CIFRARIO DI VIGENÈRE Cifrario di Vigenère Quanto è robusto il cifrario di Vigenère e come irrobustirlo? ROTTURA DEI CODICI POLIALFABETICI Calcolo della lunghezza della parola chiave Attacco con il metodo della frequenza delle lettere... 6 I cifrari polialfabetici: Vigenère Pagina 2 di 7
3 1. Cifrari polialfabetici I cifrari polialfabetici si differenziano dai monoalfabetici in quanto un dato carattere del testo in chiaro non viene cifrato sempre con lo stesso carattere, ma con caratteri diversi in base ad una qualche regola, in genere legata ad una parola segreta da concordare. Tipicamente la sicurezza del codice tende ad aumentare significativamente. Diventa infatti più complesso individuare come sono state crittate le lettere del messaggio in base alla loro frequenza caratteristica nella lingua di origine. Uno dei primi esempi documentati di cifrario polialfabetico è il famoso disco cifrante di Leon Battista Alberti o la tavola di Vigenère che descriviamo in questa dispensa. Pur essendo mediamente più sicuri dei monoalfabetici anche questi cifrari sono facilmente attaccabili a meno che si disponga di un testo cifrato sufficientemente lungo. 2. Il cifrario di Vigenère Blaise Vigenère ideò nel 1586 un cifrario che è più robusto del cifrario di Cesare. Infatti, mentre il cifrario di Cesare ha uno spostamenti di caratteri fissato, il cifrario di Vigènere ha invece uno spostamento variabile, che utilizza una chiave fissa di m caratteri. Facendo qualche conto significa che se il nostro alfabeto è composto da 26 caratteri e la nostra chiave è composta da m caratteri, abbiamo uno spazio di chiavi pari a 26 m. Ad esempio, se la chiave è lunga 4 caratteri come la parola ciao abbiamo possibilità da provare se vogliamo trovare il testo in chiaro. Per questo motivo tale cifrario è perdurato per secoli. 2.1 Cifrario di Vigenère Si basa su una parola chiave, un messaggio fatto solo di lettere maiuscole senza spazi ed una tabella del tipo seguente: Algoritmo di crittazione: Si considera la prima lettera del messaggio e la prima lettera della chiave; sulla tavola di Vigenère queste due lettere si usano come una sorta di coordinate cartesiane che individuano rispettivamente la riga identificata dalla prima lettera e la colonna identificata dalla seconda lettera; all'incrocio si trova la lettera da sostituire nel messaggio crittato. Per le altre lettere del messaggio si procede similmente, ma utilizzando le successive lettere della chiave; poiché, in generale, la chiave è più corta del messaggio, la stessa chiave verrà usata ripetutamente partendo di nuovo dall inizio fino a completare la crittazione del messaggio. I cifrari polialfabetici: Vigenère Pagina 3 di 7
4 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 A 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 B 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 A C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z Z 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 Esempio: Usando la parola chiave "CIAO" il messaggio "SIATTACCADOMANI" diventa "UQAHVICQCLOACVI". Le lettere del messaggio in chiaro indirizzano la riga (Es: S di SIATTACCADOMANI), la lettera della chiave sceglie la colonna (Es: C di CIAO) e nella tabella leggiamo la lettera crittata (Es: U) Algoritmo di decrittazione: Data la stessa tabella di Vigenère e la stessa chiave utilizzata per crittare, si procede similmente al procedimento di crittazione, esaminando in successione le lettere della chiave (che selezionano la riga) e le lettere del messaggio crittato (che vanno ricercate nella riga così scelta): individuata la lettera, la lettera che contrassegna quella colonna è la lettera cercata. 2.2 Quanto è robusto il cifrario di Vigenère e come irrobustirlo? Ecco le raccomandazioni per rendere i codici crittati con il metodo di Vigenère maggiormente robusti: 1. La chiave deve essere più lunga possibile, meglio se lunga quanto i messaggi da crittare. I cifrari polialfabetici: Vigenère Pagina 4 di 7
5 2. La chiave dovrebbe essere una sequenza di caratteri il più possibile casuale. (Esempio sbagliato: uso come chiave la stringa "pippo", il nome del mittente, del ricevente, ecc.) 3. Evitare di cominciare i messaggio sempre nello stesso modo ("COMANDO FORZE OPERATIVE..."), ed evitare di ripetere troppe volte le stesse parole. E' un metodo piuttosto robusto. Come detto, un attacco a forza bruta richiede di esplorare 26 m combinazioni per chiavi a m caratteri, che significa quasi 12 milioni di combinazioni per chiavi come "MAMMA", composte da 5 caratteri, quasi 209 miliardi di combinazioni per chiavi a 8 caratteri, ecc. (NB: Attenzione! "mamma" proprio non va bene essendo composto solo da 2 lettere!). F.W. Kasiski nel 1863 scrisse un algoritmo per rompere il codice che per 250 anni venne ritenuto "indecifrabile". Anche C. Babbage trovò un algoritmo per la rottura, nel suo caso, basato sulla ripetizione della chiave. I cifrari polialfabetici: Vigenère Pagina 5 di 7
6 3. Rottura dei codici polialfabetici In questa lezione ci occuperemo del metodo polialfabetico di Vigenère. Il metodo per attaccarlo è composto in 2 passi successivi: 1. calcolo della lunghezza della parola chiave; 2. attacco con il metodo della frequenza delle lettere. 3.1 Calcolo della lunghezza della parola chiave Se la parola chiave è corta rispetto alla lunghezza del messaggio si può usare il metodo delle coincidenze (noi lavoreremo con questa ipotesi). Il testo crittato è confrontato con se stesso traslato e si conteggia il numero di lettere che coincidono nelle due stringhe. Ovviamente, i caratteri che escono da sinistra rientrano da destra durante la traslazione. Possiamo immaginare la traslazione-rotazione come se il messaggio cifrato fosse scritto su un anello di carta chiuso. Per ogni traslazione possibile si ottiene quindi un numero di coincidenze. Numeri di coincidenze alti significano che la traslazione esaminata è multipla della lunghezza della parola chiave. Ecco un esempio: CCJCONCMNCCJCONCMNCCJCONCMN spostamento 1: coincidenze = 3 NCCJCONCMNCCJCONCMNCCJCONCM spostamento 2: coincidenze = 3 MNCCJCONCMNCCJCONCMNCCJCONC spostamento 3: coincidenze = 10 <== soluzione CMNCCJCONCMNCCJCONCMNCCJCON spostamento 4: coincidenze = 3 In questo caso vediamo che compaiono ben 10 coincidenze in corrispondenza della traslazione di 3 caratteri in avanti, rispetto alle 3 coincidenze degli altri casi. Con elevata probabilità abbiamo individuato la lunghezza della parola chiave, ossia essa è di 3 caratteri (piuttosto corta per essere una crittazione di Vigenère fatta bene). 3.2 Attacco con il metodo della frequenza delle lettere Individuata la lunghezza della parola chiave, a questo punto si prendono le lettere che distano multipli della lunghezza trovata. Se la chiave è lunga 3 lettere, mettiamo nel primo I cifrari polialfabetici: Vigenère Pagina 6 di 7
7 gruppo di caratteri la prima lettera, la quarta, ecc., nel secondo gruppo la seconda lettera, la quinta ecc., fino a fare N gruppi composti da L caratteri: L corrisponde alla lunghezza della parola chiave stimata con il metodo delle coincidenze. Anche se non e' banale vederlo, ci si e' riportati alla rottura di un codice di Cesare attaccabile con il metodo delle frequenze. Perché? Perché la chiave si ripete ogni L lettere e quindi tutte le lettere del messaggio in chiaro distanti L sono state crittate alla Cesare con la stessa chiave! Bene, se abbiamo individuato un insieme di lettere del messaggio cifrato che sono state tutte crittate alla Cesare, allora studiando le frequenze delle lettere rispetto alla lingua del messaggio possiamo individuare la chiave. Per esempio, noi sappiamo dal passo precedente che per rompere CJCONCMNCCJCONCMNCCJCONCMNC dobbiamo trovare la chiave [C 1 C 2 C 3 ] di 3 caratteri. Iniziamo a trovare C 1 selezionando SOLO le lettere che sono state crittate con C 1 ossia solo quelle nei riquadri C J C O N C M N C C J C O N C M... Aggreghiamo solo queste lettere in una nuova stringa COMCOM e cerchiamo di capire quale chiave è stata usata per crittarle alla Cesare con il metodo delle frequenze dei caratteri. In questo caso analizzando le frequenze troviamo che le frequenze delle lettere della stringa COMCOM sono GIA QUELLE DELL ITALIANO. Questo significa che queste lettere sono state crittate con Cesare senza spostare in avanti i caratteri e che quindi la prima lettera C 1 della parola chiave C 1 C 2 C 3 è A. In poche parole le lettere nei quadrati SONO GIA IN CHIARO. Passiamo a trovare la seconda lettera della parola chiave. Selezionando SOLO le lettere che sono state crittate con C 2 ossia solo quelle nei riquadri C J C O N C M N C C J C O N C M... Aggreghiamo solo queste lettere in una nuova stringa JNNJN e cerchiamo di capire quale chiave è stata usata per crittarle alla Cesare con il metodo delle frequenze dei caratteri. In questo caso troviamo che traslando indietro di UN carattere tutti i caratteri della stringa JNNJN otteniamo proprio le frequenze dell italiano. Quindi, queste lettere sono state crittate alla Cesare in avanti di UN carattere. Quindi, la seconda lettera C 2 della parola chiave C 1 C 2 C 3 è B. Ora, per ritrovare le lettere in chiaro devo decrittarle alla Cesare tenendo conto che la chiave di crittatura è stata 1. Ecco cosa si ottiene: - J - - N - - N - - J - - N (crittato con Cesare chiave = 1) - I - - M - - M - - I - - M (decrittato) La procedura si ripete per tutte le altre lettere della parola chiave da scoprire fino a quando mettendo in fila tutte le lettere che siamo riusciti a decrittare vediamo tutto il messaggio in chiaro. I cifrari polialfabetici: Vigenère Pagina 7 di 7
Il cifrario di Vigenère. Bizzoni Stefano De Persiis Angela Freddi Giordana
Il cifrario di Vigenère Bizzoni Stefano De Persiis Angela Freddi Giordana Cifrari monoalfabetico e polialfabetico mono: cifrari a sostituzione o a trasposizione, associano ad ogni lettera dell alfabeto
Laboratorio di Crittografia
Laboratorio di Crittografia Scuola Secondaria Inferiore Attività n. 1: Divisi a coppie, ognuno scriva sulla propria scitala un messaggio e consegni al compagno la striscia di carta srotolata. Il compagno
Crittografia con Python
Crittografia con Python Corso introduttivo Marzo 2015 Con materiale adattato dal libro Hacking Secret Cypher With Python di Al Sweigart (http://inventwithpython.com/hacking/index.html) Attacchi statistici
La tabella dei bigrammi è la frequenza con la quale compaiono COPPIE di lettere in una lingua.
Lezione 19 e 20 Crittografia I A) Tabella dei bigrammi B) Riconoscimento automatico della lingua C) Rottura dei codici Fabio Scotti Laboratorio di programmazione per la sicurezza 1 Lezione 19 e 20 Fabio
Elementi di Crittografia
Elementi di Crittografia Algoritmi Messaggio in chiaro messaggio crittografato M X =C k (M C ) Messaggio crittografato messaggio in chiaro M C =D k (M X ) Per la codifica/decodifica è necessario un parametro
Storia della Crittografia. dalle origini al XVI secolo
Storia della Crittografia dalle origini al XVI secolo Stefano Zingale Introduzione La crittografia (dal greco Kryptòs, che significa "nascosto" e gràphein che significa "scrittura") è la scienza che si
CODICI. Crittografia e cifrari
CODICI Crittografia e cifrari CRITTOGRAFIA - La crittografia è una scrittura convenzionale segreta, decifrabile solo da chi conosce il codice. - La parola crittografia deriva da 2 parole greche, ovvero
Elementi di Algebra e di Matematica Discreta Cenno di un applicazione alla crittografia
Elementi di Algebra e di Matematica Discreta Cenno di un applicazione alla crittografia Cristina Turrini UNIMI - 2015/2016 Cristina Turrini (UNIMI - 2015/2016) Elementi di Algebra e di Matematica Discreta
Sicurezza nelle applicazioni multimediali: lezione 2, crittografia classica. Crittografia classica
Crittografia classica Introduzione alla crittografia La crittografia è il processo di trasformazione di un messaggio in modo da renderlo incomprensibile per tutti, tranne che per il legittimo destinatario
a b c d e f g h i l m n o p q r s t u v z
Tavola n. 1A CIFRARIO DI CESARE 1) Prepara l alfabeto cifrante (in lettere maiuscole), spostando di 7 lettere aiutandoti con la griglia. Il numero 7 è la chiave cifrante. a b c d e f g h i l m n o p q
CIFRARI MONOALFABETICI
Il sistema crittografico utilizza un alfabeto per il testo in chiaro e una sua permutazione per il testo cifrato 1 Esempio Codici di Cesare 1 2 3 4 5 6 7 8 9 10 11 12.. 3 4 5 6 7 8 9 10 1112 13 14.. A
SCHEDA DIDATTICA N 7
FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA CIVILE CORSO DI IDROLOGIA PROF. PASQUALE VERSACE SCHEDA DIDATTICA N 7 LA DISTRIBUZIONE NORMALE A.A. 01-13 La distribuzione NORMALE Uno dei più importanti
Tolleranze sulle filettature
Tolleranze sulle filettature Consideriamo di dover sviluppare la seguente tolleranza: M10 6H/6g Analizzando le varie parti sappiamo che: M = Filettatura di tipo metrico 10 = Dn = Dimensione nominale della
Piastrelliamo i rettangoli
Per la quinta primaria Piastrelliamo i rettangoli Qui sotto vedete un rettangolo, disegnato sulla carta a quadretti. Potete immaginare che sia una stanza, che vogliamo piastrellare, con delle piastrelle
la crittografia tratta delle "scritture nascoste", dei metodi per rendere un messaggio "offuscato"
crittografia kryptós gráphein nascosto scrivere la crittografia tratta delle "scritture nascoste", dei metodi per rendere un messaggio "offuscato" 404 a. C Lisandro riceve un corriere a Sparta recante
Lezione 6 Richiami di Geometria Analitica
1 Piano cartesiano Lezione 6 Richiami di Geometria Analitica Consideriamo nel piano due rette perpendicolari che si intersecano in un punto O Consideriamo ciascuna di queste rette come retta orientata
Progetto Informatica. Primo esempio Gruppo 1. Laura Tarsitano
Progetto Informatica Primo esempio Gruppo 1 Laura Tarsitano [email protected] Come costruire un micromondo Quando si costruisce un micromondo su Snap! bisogna immaginare di costruire uno spettacolo
Crittografia per la sicurezza dei dati
Crittografia per la sicurezza dei dati Esigenza di sicurezza in rete significa: -garanzia di riservatezza dei dati in rete (e-mail) -garanzia di transazioni sicure (e-commerce, home banking) La crittografia
RACCOLTA DI ALCUNI ESERCIZI TRATTI DA COMPITI D ESAME SUL SISTEMA CRITTOGRAFICO RSA
RACCOLTA DI ALCUNI ESERCIZI TRATTI DA COMPITI D ESAME SUL SISTEMA CRITTOGRAFICO RSA Attenzione: questi sono alcuni esercizi d esame, sugli argomenti di questa dispensa. Non sono una selezione di quelli
Esercizi di Programmazione Lineare
Esercizi di Programmazione Lineare 1 grafica Si consideri il seguente problema di programmazione lineare: max 3x 1 + 2x 2 s.t. + 2x 1 + x 2 4 2x 1 + x 2 2 + x 1 x 2 1 x 1, x 2 0 a) Risolvere il problema
La moltiplicazione di numeri naturali: esercizi svolti
La moltiplicazione di numeri naturali: esercizi svolti La moltiplicazione è una delle quattro operazioni fondamentali dell'aritmetica. È un modo sintetico per rappresentare la somma di numeri uguali. Il
crittosistema: definizione
crittosistema: definizione Definizione Un crittosistema è una quintupla (P, C, K, E, D), dove 1 P è un insieme finito di testi in chiaro (plaintext) 2 C è un insieme finito di testi cifrati (ciphertext)
Codice Gray. (versione Marzo 2007)
Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.
Prime attività. Sperimentare alcuni strumenti (livello facile) Forme sovrapposte
Prime attività Sperimentare alcuni strumenti (livello facile) Forme sovrapposte Potrebbe essere un'attività iniziale, in quanto permette di utilizzare solo pochissimi strumenti ma è già possibile verificare
Corso di Logica I. Modulo sul Calcolo dei Sequenti. Dispensa Lezione III.
Corso di Logica I. Modulo sul Calcolo dei Sequenti. Dispensa Lezione III. Giovanni Casini Teorema di corrispondenza fra il calcolo sui sequenti SND c e il calcolo dei sequenti SC c. In queste pagine andiamo
Il Codice di Cesare. c = dxjxul gl exrq fgpsohdqqr k = 3 m = auguri di buon compleanno
La Crittografia Il problema fondamentale della crittografia è quello di trasmettere riservato in forma cifrata o, dal punto di vista duale, quello di intercettare e decrittare un messaggio cifrato. T m
A cosa serve la crittografia? La crittografia serve ad aiutare due utenti, Alice e Bob, a comunicare in modo sicuro...
Crittografia A cosa serve la crittografia? La crittografia serve ad aiutare due utenti, Alice e Bob, a comunicare in modo sicuro... Mister X...anche in presenza di Mister X, un avversario che ascolta la
La divisione di numeri naturali: esercizi svolti
La divisione di numeri naturali: esercizi svolti Come abbiamo fatto per la sottrazione, ci chiediamo adesso se, effettuata una operazione di moltiplicazione, sia possibile definire (trovare) una operazione
La codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
Appunti sulla circonferenza
1 Liceo Falchi Montopoli in Val d Arno - Classe 3 a I - Francesco Daddi - 16 aprile 010 Appunti sulla circonferenza In queste pagine sono trattati gli argomenti riguardanti la circonferenza nel piano cartesiano
Numero decimale con la virgola -- numero binario
Numero decimale con la virgola -- numero binario Parlando del SISTEMA DI NUMERAZIONE BINARIO abbiamo visto come è possibile trasformare un NUMERO decimale INTERO in un numero binario. La conversione avviene
Laboratorio di Python
Laboratorio di Python Esercizi di debug Lab07 27 Marzo 2018 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa Outline Correzione esercizi per oggi Debug Strategia
Lista di esercizi 11 maggio 2016
Lista di esercizi 11 maggio 2016 1. Determinare il numero di sequenze binarie di lunghezza n che contengano almeno una coppia di 0 consecutivi. Soluzione. Potrebbe essere utile un programma di calcolo
Crittografia con Python
Crittografia con Python Corso introduttivo Marzo 2015 Con materiale adattato dal libro Hacking Secret Cypher With Python di Al Sweigart (http://inventwithpython.com/hacking/index.html) Cifrari a trasposizione
Note sull algoritmo di Gauss
Note sull algoritmo di Gauss 29 settembre 2009 Generalità Un sistema lineare di m equazioni in n incognite x,..., x n è un espressione del tipo: a x + a 2 x 2 + + a n x n = b a 2 x + a 22 x 2 + + a 2n
Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)
Derivazione numerica Introduzione al calcolo numerico Il calcolo della derivata di una funzione in un punto implica un processo al limite che può solo essere approssimato da un calcolatore. Supponiamo
La codifica. dell informazione
00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111
