PROGETTO LAUREE SCIENTIFICHE A A 201213 NUMERI PRIMI

  • Slides: 32
Download presentation
PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 NUMERI PRIMI E CRITTOGRAFIA Parte I. Crittografia

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 NUMERI PRIMI E CRITTOGRAFIA Parte I. Crittografia a chiave simmetrica dall’antichità all’era del computer Parte II. Note della Teoria dei Numeri concetti ed algoritmi a supporto della Crittografia Parte III. Crittografia a chiave pubblica il superamento del problema dello scambio delle chiavi Parte IV. Esercitazione di gruppo implementazione di un minisistema crittografico RSA Tutor: Franco Danielli (franco. danielli@tin. it)

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 PARTE I CRITTOGRAFIA A CHIAVE SIMMETRICA q

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 PARTE I CRITTOGRAFIA A CHIAVE SIMMETRICA q Introduzione alla Crittografia q Concetto di canale di comunicazione q Concetto di chiave crittografica q Crittografia e Crittoanalisi q Codici Monoalfabetici (Codice di Cesare, Analisi delle Frequenze) q Codici Polialfabetici (Codice di Vigenére, Codice di Vernam) q Crittografia e Computer (DES, AES) q Il problema dello scambio delle chiavi q Protocollo dei due lucchetti, q Protocollo di Diffie-Hellman

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 La crittografia è una forma di comunicazione

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 La crittografia è una forma di comunicazione in ambiente ostile Ronald Rivest, (la “R” di RSA)

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Concetto di CANALE DI COMUNICAZIONE Alice Messaggio

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Concetto di CANALE DI COMUNICAZIONE Alice Messaggio (Partner A) Bob (Partner B) Canale di comunicazione a distanza Canale di comunicazione Forma tipica del messaggio Corriere privato, Servizio postale Documento scritto Telegrafo Sequenza di impulsi elettrici Telefono Messaggio vocale Radio Emissione di Onde elettromagnetiche Internet (World Wide Web) File binario

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Concetto di SICUREZZA DEL CANALE Canale insicuro

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Concetto di SICUREZZA DEL CANALE Canale insicuro Alice (Partner A) 2. Ruolo attivo (ascolto e trasmissione) Bob (Partner B) 1. Ruolo passivo (solo ascolto) Oscar (Opponent) CRITTOGRAFIA (lo “scudo” di Alice e Bob) vs CRITTOANALISI (la “spada” di Oscar)

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 SISTEMA CRITTOGRAFICO A CHIAVE SIMMETRICA Simboli e

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 SISTEMA CRITTOGRAFICO A CHIAVE SIMMETRICA Simboli e definizioni Simbolo Definizione Descrizione m messaggio plaintext Messaggio in chiaro che Bob vuole trasmettere ad Alice sul canale insicuro K chiave key E cifratura encryption Dato segreto condiviso da Alice e Bob (che Oscar non deve assolutamente conoscere) Funzione di cifratura operata da Bob: m → c = E(m, K) c crittogramma Messaggio cifrato trasmesso da Bob ad Alice ciphertext sul canale insicuro c = E(m, K) D decifrazione decryption Funzione di decifrazione operata da Alice: c → m = D(c, K) m messaggio plaintext Messaggio in chiaro recuperato da Alice: m = D(c, K)

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 SISTEMA CRITTOGRAFICO A CHIAVE SIMMETRICA Schema a

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 SISTEMA CRITTOGRAFICO A CHIAVE SIMMETRICA Schema a blocchi messaggio in chiaro m chiave K E (encryption) chiave K messaggio crittogramma: c = E (m, K) Canale insicuro Cifratura (Bob) NB: la sicurezza del sistema crittografico è la segretezza della chiave K. Gli algoritmi E, D si suppongono di dominio pubblico. D recuperato m = D (c, K) (decryption) Decifrazione (Alice) Strategie di Crittoanalisi: c: ? ? ? Intercettazione (Oscar) q Ciphertext only q Known Plaintext q Chosen Plaintext

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Esempio di Sistema Crittografico a Chiave Simmetrica:

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Esempio di Sistema Crittografico a Chiave Simmetrica: CODICE DI CESARE Traslazione alfabetica di K posti (K = chiave) Cifratura: Decifrazione: c = E(m, K) = m = D(c, K) = = (m + K) mod 26 = (c – K) mod 26 Alfabeto cifrante del Codice di Cesare per K = 5: Testo da trasmettere: “ Veni, vidi, vici. Julius Caesar ” La chiave è un numero intero K = 1 ÷ 25

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Generalizzazione del codice di Cesare: CIFRATURA MONOALFABETICA

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Generalizzazione del codice di Cesare: CIFRATURA MONOALFABETICA Permutazione alfabetica Esempio - Tabella di permutazione ( = chiave) di un Codice Monoalfabetico: Testo da trasmettere: “Aprire fuoco di sbarramento”

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 CARATTERISTICHE DEI CODICI MONOALFABETICI Codice Monoalfabetico Codice

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 CARATTERISTICHE DEI CODICI MONOALFABETICI Codice Monoalfabetico Codice di CESARE Generalizzato Funzioni di Encryption, Decryption Traslazione alfabetica Permutazione alfabetica Chiave Un numero intero (1÷ 25) Una tabella di corrispondenze di ordine 26 Spazio delle chiavi 25 26! 4 x 1026 Strategie d’attacco Ricerca esaustiva nello spazio delle chiavi (metodo “forza bruta”) Analisi delle Frequenze

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Analisi delle Frequenze: Italiano e Inglese a

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Analisi delle Frequenze: Italiano e Inglese a confronto

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Codici Polialfabetici: il CODICE DI VIGENÈRE Successione

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Codici Polialfabetici: il CODICE DI VIGENÈRE Successione ciclica di L Codici di Cesare (L = lunghezza della chiave K) Blaise de Vigenère Testo da trasmettere: “Attaccheremo all’alba le postazioni nemiche” Chiave: K = “TRINCEA” (blocco di 7 caratteri: L = 7) Ordinamento del plaintext e della chiave, costruzione del crittogramma carattere per carattere: c = (m + K) mod 26

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Attacco al Codice di Vigenère (1) Bob

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Attacco al Codice di Vigenère (1) Bob ha spedito ad Alice 5 messaggi cifrati col Codice di Vigenère, parola chiave K = “FORMICA”: 1) Oscar ha intercettato i crittogrammi, ed ha evidenziato le stringhe di 3 o più caratteri che si ripetono: EAV, XMBV, AQNT, GLQW, SUJ

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Attacco al Codice di Vigenère (2) 2)

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Attacco al Codice di Vigenère (2) 2) Oscar misura le posizioni relative delle stringhe ripetute, e trova che si tratta di distanze di 7 ovvero 14 posti: deduce che la lunghezza della chiave è di 7 caratteri. 3) Scompone ora i crittogrammi a blocchi di 7 caratteri, e scrive ordinatamente tali blocchi uno sotto l’altro. 4) Applica infine l’Analisi delle Frequenze colonna per colonna (7 volte). I caratteri di ognuna delle 7 colonne sono stati infatti cifrati con lo stesso carattere della chiave. NB. Perché l’attacco riesca, occorre disporre di un numero abbondante di crittogrammi, tutti cifrati con la stessa chiave. Reciprocamente: per contrastare l’attacco, occorre scegliere chiavi lunghe, e cambiarle spesso.

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 CODICE DI VERNAM One –Time – Pad

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 CODICE DI VERNAM One –Time – Pad Foglio #57 Blocco #57 KMWAIDLGMZ LDPMQXKAHI QGSIEMFGZO QDTBDYSMEX PKBUGJRMWJ FHBCOKYZAR. . . 1. Alice e Bob possiedono 2 copie identiche dello stesso blocco “usa e getta” 2. Ogni foglio del blocco contiene una lunga sequenza di caratteri casuali 3. La sequenza viene trattata come la chiave di un Codice di Vigenère: 4. Dopo l’uso (cifratura e decifrazione), Alice e Bob strappano il foglio usato del proprio blocco e lo distruggono Esempio: cifratura: c = (m+K) mod 26; decifrazione: m = (c-K) mod 26

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Sicurezza del Codice di Vernam Oscar ha

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Sicurezza del Codice di Vernam Oscar ha intercettato il seguente crittogramma sul canale insicuro: Ipotizzando che la chiave sia K 1, Oscar trova un possibile plaintext: Se invece la chiave fosse K 2, Oscar troverebbe un altro plaintext, di significato opposto: Chiavi diverse, ma tutte legittime nel Codice di Vernam, hanno dato luogo a decifrazioni leggibili ma incoerenti come significato. Conclusione: nemmeno il metodo di ricerca “forza bruta” nello spazio delle chiavi può aiutare il crittoanalista. Nel crittogramma può essere celato qualunque messaggio: il Codice di Vernam è intrinsecamente sicuro!

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 CARATTERISTICHE DEI CODICI POLIALFABETICI Codice Vigenère Vernam

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 CARATTERISTICHE DEI CODICI POLIALFABETICI Codice Vigenère Vernam (One-Time-Pad) Funzioni di Encryption, Decryption Somma/differenza modulo 26 Chiave Una parola di L caratteri diversi Una sequenza di caratteri casuali lunga come il messaggio (n caratteri) Spazio delle chiavi 26! (26 - L)! 26 n (n = lunghezza messaggio) Strategie d’attacco Analisi delle frequenze (una volta noto L) Nessuna: il codice è intrinsecamente sicuro

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Rappresentazione a computer dei caratteri standard: Codice

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Rappresentazione a computer dei caratteri standard: Codice ASCII (American Standard Code for Information Interchange)

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Codice ASCII: rappresentazione decimale e binaria di

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Codice ASCII: rappresentazione decimale e binaria di printable characters Printable Character Codice ASCII decimale binario A 65 01000001 a 97 01100001 3 51 0011 ! 33 00100001 @ 64 01000000

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Sistemi crittografici moderni a chiave simmetrica DES

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Sistemi crittografici moderni a chiave simmetrica DES (Data Encryption Standard - 1977) AES (Advanced Encryption Standard - 2001) Schema a blocchi del sistema K m A B C round #1 c 1 rounds #2÷ 15 c 15 A B C round #16 Cifratura Decifrazione A: trattamento con la chiave (somma binaria) B: trasposizione (rimescolamento) C: permutazione di righe e colonne c 16

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Sistemi crittografici DES/AES: suddivisione in blocchi del

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Sistemi crittografici DES/AES: suddivisione in blocchi del messaggio e codifica binaria ASCII

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Il problema della Crittografia a Chiave Simmetrica:

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Il problema della Crittografia a Chiave Simmetrica: lo scambio delle chiavi Alice Canale insicuro Alice ha creato la chiave del sistema e la trasmette a Bob Se Oscar riesce ad intercettare la trasmissione della chiave, la sicurezza del sistema crittografico è totalmente compromessa! Bob Quesito: Oscar si può evitare lo scambio delle chiavi?

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 W. Diffie e M. Hellman: i padri

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 W. Diffie e M. Hellman: i padri della Crittografia moderna Stanford University, 1976 Martin Hellman Whitfield Diffie

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 BOB Protocollo dei due lucchetti Crea il

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 BOB Protocollo dei due lucchetti Crea il messaggio Lo mette nella scatola Chiude con un lucchetto Spedisce ad Alice × × Toglie dalla scatola il proprio lucchetto Rispedisce ad Alice 1 2 ALICE × Aggiunge alla scatola un altro lucchetto Rispedisce a Bob 3 Risultato: q Non c’è stato alcuno scambio di chiavi q Il messaggio è sempre stato protetto × Toglie il suo lucchetto Apre la scatola Recupera il messaggio

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Considerazioni sul Protocollo dei due lucchetti Anche

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Considerazioni sul Protocollo dei due lucchetti Anche senza scambio di chiavi, il protocollo dei due lucchetti ha garantito la riservatezza del messaggio fra Alice e Bob. Tuttavia: q Il messaggio ha fatto 3 viaggi (invece di uno), ed è stato soggetto a 4 manipolazioni (invece di 2) problema di ridondanza q Gli algoritmi di cifratura e decifrazione (E, D) creati dai due partners devono essere commutativi (in generale ritenuti più deboli) problema di efficienza q Oscar potrebbe impadronirsi facilmente del messaggio spacciandosi per il legittimo destinatario: occorre sviluppare contromisure a questo tipo di attacco problema di sicurezza Per questi motivi, il Protocollo dei due lucchetti non è mai stato implementato sul campo, ma resta comunque un modello concettuale importante verso la soluzione del problema dello scambio delle chiavi.

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Concetto di FUNZIONE UNIDIREZIONALE Esistono operazioni e

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Concetto di FUNZIONE UNIDIREZIONALE Esistono operazioni e procedure che sono molto facili da eseguire in un senso, ma estremamente complicate o addirittura impossibili in senso inverso. q Ad esempio, se si mescolano due colori diversi, se ne otterrà sempre un terzo (operazione facile), ma dato un qualunque colore ottenuto per mescolamento, sarà impossibile separarne i colori costituenti: q Ancora, in Aritmetica è facile calcolare il prodotto di due fattori, anche se molto grandi; viceversa, dato un grande numero composto, può essere faticoso, anche disponendo di un calcolatore, scomporlo in fattori: 333. 331 x 498. 761 166. 252. 502. 891

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Concetto di Complessità Computazionale di un algoritmo

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Concetto di Complessità Computazionale di un algoritmo Schema di calcolo: input = n n= dove cronometro T(A) Computer output = A(n) argomento (esempio: n ≈ 5. 000) L(n) = numero di cifre di n (esempio: L(n) = 10) A(n) = algoritmo di calcolo di argomento n T(A) = tempo impiegato dal computer ad eseguire il calcolo q Se T(A) = f (L(n)) allora l’algoritmo A(n) si dice efficiente, efficiente ovvero a tempo polinomiale q Se T(A) = f (n) allora l’algoritmo A(n) si dice inefficiente, inefficiente ovvero a tempo esponenziale q Se T(A) ≈ mesi/anni si dice anche il problema A(n) è intrattabile

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Esempio: Complessità Computazionali a confronto Algoritmo A:

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Esempio: Complessità Computazionali a confronto Algoritmo A: Moltiplicazione input: n 1, n 2 output: n 3 = n 1 · n 2 n 1 , n 2 1010 1020 1030 1040 L(n 1)·L(n 2) 100 400 900 1. 600 T(A) 1 ms 4 ms 9 ms 16 ms Alg. B: Fattorizzazione (per tentativi) input: n 3; output: n 1, n 2 con n 1 · n 2 = n 3 1010 1020 1030 1040 n 3 105 1010 1015 1020 T(B) 1 ms 1, 7 min 116 d >30. 000 y q L’algoritmo A (Moltiplicazione) Moltiplicazione è efficiente (a tempo polinomiale) q L’algoritmo B (Fattorizzazione) Fattorizzazione è inefficiente (a tempo esponenziale) q La Fattorizzazione diventa rapidamente un problema intrattabile LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE III 28

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Funzioni unidirezionali in Crittografia Supponiamo che Alice,

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Funzioni unidirezionali in Crittografia Supponiamo che Alice, Bob, Oscar vivano in un mondo in cui si sanno moltiplicare fra di loro fattori comunque grandi, ma non si è capaci di eseguire in tempi ragionevoli alcuna divisione: 331 x 47 = 15. 557 moltiplicazione: tutti sanno calcolare il prodotto 15. 557 : 47 = ? ? ? divisione: nessuno è capace di calcolare il quoziente In questo ipotetico mondo, la moltiplicazione è una Funzione unidirezionale

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Schema concettuale del Protocollo di Diffie-Hellman Generazione

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Schema concettuale del Protocollo di Diffie-Hellman Generazione della chiave senza scambio ALICE Alice sceglie un numero casuale N e lo trasmette a Bob sul canale insicuro: N = 37 Alice sceglie un proprio numero segreto A = 15, lo moltiplica per N, trasmette a Bob il prodotto α = A·N = 555 Alice moltiplica il dato ricevuto da Bob per il proprio numero segreto A: K = A · = 12. 765 BOB N = 37 α = 555 = 851 Bob riceve da Alice il numero N = 37 Bob sceglie un proprio numero segreto B = 23, lo moltiplica per N, trasmette ad Alice il prodotto = B·N = 851 Bob moltiplica il dato α ricevuto da Alice per il proprio numero segreto B: K = B · α = 12. 765 Scambiandosi sul canale insicuro i dati N, α, , Alice e Bob hanno ottenuto il medesimo numero K = A·B·N unicamente con operazioni di moltiplicazione (che sanno calcolare). K sarà la chiave segreta del loro sistema crittografico.

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Protocollo di Diffie-Hellman: Crittoanalisi e Funzione unidirezionale

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Protocollo di Diffie-Hellman: Crittoanalisi e Funzione unidirezionale OSCAR Oscar ha intercettato sul canale insicuro i dati N = 37, α = 555, = 851 Oscar è a conoscenza del fatto che la chiave è K = A·B·N, quindi gli servono i numeri segreti A e B Oscar sa anche α = A·N, = B·N Per procurarsi A, B Oscar dovrebbe essere capace di eseguire le divisioni A = α / N, B = / N cosa che, per ipotesi, nel suo mondo nessuno sa fare Conclusione: L’applicazione di una funzione unidirezionale ha permesso ad Alice e Bob di costruirsi in sicurezza la loro chiave, scambiandosi solo dati parziali di nessuna utilità per Oscar

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Funzioni unidirezionali in Crittografia Elevazione a potenza

PROGETTO LAUREE SCIENTIFICHE – A. A. 2012/13 Funzioni unidirezionali in Crittografia Elevazione a potenza modulo n Funzione diretta: dati: a, b, n Z = ab mod n OK Funzione inversa: dati: a, Z, n b = (loga Z) mod n ? ? ? Funzione inversa: dati: b, Z, n a = (b√ Z ) mod n ? ? ? ARITMETICA MODULARE in questa disciplina matematica la Crittografia moderna ha trovato le funzioni unidirezionali utili alla soluzione dei problemi: q Generazione delle chiavi senza scambio (Diffie-Hellman 1976) q Implementazione della Crittografia a chiave pubblica (RSA: Rivest-Shamir-Adleman 1978)