Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoJustin Smith Modificato 6 anni fa
1
NUMERI PRIMI E CRITTOGRAFIA Parte I. Crittografia a chiave simmetrica
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 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 1
2
PARTE I CRITTOGRAFIA A CHIAVE SIMMETRICA
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 PARTE I CRITTOGRAFIA A CHIAVE SIMMETRICA Introduzione alla Crittografia Concetto di canale di comunicazione Concetto di chiave crittografica Crittografia e Crittoanalisi Codici Monoalfabetici (Codice di Cesare, Analisi delle Frequenze) Codici Polialfabetici (Codice di Vigenére, Codice di Vernam) Crittografia e Computer (DES, AES) Il problema dello scambio delle chiavi Protocollo dei due lucchetti, Protocollo di Diffie-Hellman LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 2
3
La crittografia è una forma di comunicazione in ambiente ostile
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 La crittografia è una forma di comunicazione in ambiente ostile Ronald Rivest, (la “R” di RSA) LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 3
4
Concetto di CANALE DI COMUNICAZIONE
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Concetto di CANALE DI COMUNICAZIONE Alice (Partner A) Bob (Partner B) Messaggio 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 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 4
5
Concetto di SICUREZZA DEL CANALE
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Concetto di SICUREZZA DEL CANALE Canale insicuro Alice (Partner A) Bob (Partner B) 2. Ruolo attivo (ascolto e trasmissione) 1. Ruolo passivo (solo ascolto) Oscar (Opponent) CRITTOGRAFIA (lo “scudo” di Alice e Bob) vs CRITTOANALISI (la “spada” di Oscar) LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 5
6
SISTEMA CRITTOGRAFICO A CHIAVE SIMMETRICA Simboli e definizioni
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 Dato segreto condiviso da Alice e Bob (che Oscar non deve assolutamente conoscere) E cifratura encryption Funzione di cifratura operata da Bob: m → c = E(m,K) c crittogramma ciphertext Messaggio cifrato trasmesso da Bob ad Alice sul canale insicuro c = E(m,K) D decifrazione decryption Funzione di decifrazione operata da Alice: c → m = D(c,K) Messaggio in chiaro recuperato da Alice: m = D(c,K) LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 6
7
E D SISTEMA CRITTOGRAFICO A CHIAVE SIMMETRICA Schema a blocchi chiaveK
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 SISTEMA CRITTOGRAFICO A CHIAVE SIMMETRICA Schema a blocchi chiaveK chiaveK messaggio in chiaro m messaggio recuperato m = D (c, K) crittogramma: c = E (m, K) E (encryption) D (decryption) Canale insicuro Cifratura (Bob) Decifrazione (Alice) NB: la sicurezza del sistema crittografico è la segretezza della chiave K. Gli algoritmi E, D si suppongono di dominio pubblico. Strategie di Crittoanalisi: Ciphertext only Known Plaintext Chosen Plaintext c: ??? Intercettazione (Oscar) LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 7
8
Esempio di Sistema Crittografico a Chiave Simmetrica: CODICE DI CESARE
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 = (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 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 8
9
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” LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 9
10
CARATTERISTICHE DEI CODICI MONOALFABETICI
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 corri-spondenze 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 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 10
11
Analisi delle Frequenze: Italiano e Inglese a confronto
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Analisi delle Frequenze: Italiano e Inglese a confronto LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 11
12
Codici Polialfabetici: il CODICE DI VIGENÈRE
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 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 12
13
Attacco al Codice di Vigenère (1)
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 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 13
14
Attacco al Codice di Vigenère (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. LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 14
15
CODICE DI VERNAM One –Time – Pad
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 CODICE DI VERNAM One –Time – Pad Alice e Bob possiedono 2 copie identiche dello stesso blocco “usa e getta” Ogni foglio del blocco contiene una lunga sequenza di caratteri casuali La sequenza viene trattata come la chiave di un Codice di Vigenère: Dopo l’uso (cifratura e decifrazione), Alice e Bob strappano il foglio usato del proprio blocco e lo distruggono Foglio #57 KMWAIDLGMZ LDPMQXKAHI QGSIEMFGZO QDTBDYSMEX PKBUGJRMWJ FHBCOKYZAR ... Blocco #57 KMWAIDLGMZ LDPMQXKAHI QGSIEMFGZO QDTBDYSMEX PKBUGJRMWJ FHBCOKYZAR ... Blocco #57 KMWAIDLGMZ LDPMQXKAHI QGSIEMFGZO QDTBDYSMEX PKBUGJRMWJ FHBCOKYZAR ... Blocco #57 KMWAIDLGMZ LDPMQXKAHI QGSIEMFGZO QDTBDYSMEX PKBUGJRMWJ FHBCOKYZAR ... Esempio: cifratura: c = (m+K) mod 26; decifrazione: m = (c-K) mod 26 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 15
16
Sicurezza del Codice di Vernam
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 K1, Oscar trova un possibile plaintext: Se invece la chiave fosse K2, 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! LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 16
17
CARATTERISTICHE DEI CODICI POLIALFABETICI
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 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)! 26n (n = lunghezza messaggio) Strategie d’attacco Analisi delle frequenze (una volta noto L) Nessuna: il codice è intrinsecamente sicuro LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 17
18
Rappresentazione a computer dei caratteri standard:
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Rappresentazione a computer dei caratteri standard: Codice ASCII (American Standard Code for Information Interchange) LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 18
19
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13
Codice ASCII: rappresentazione decimale e binaria di printable characters Printable Character Codice ASCII decimale Codice ASCII binario A 65 a 97 3 51 ! 33 @ 64 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 19
20
Sistemi crittografici moderni a chiave simmetrica
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Sistemi crittografici moderni a chiave simmetrica DES (Data Encryption Standard ) AES (Advanced Encryption Standard ) Schema a blocchi del sistema K A B C round #1 A B C round #16 rounds #2÷15 m c1 c15 c16 Cifratura Decifrazione A: trattamento con la chiave (somma binaria) B: trasposizione (rimescolamento) C: permutazione di righe e colonne LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 20
21
Sistemi crittografici DES/AES:
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Sistemi crittografici DES/AES: suddivisione in blocchi del messaggio e codifica binaria ASCII LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 21
22
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13
Il problema della Crittografia a Chiave Simmetrica: lo scambio delle chiavi Alice Canale insicuro Bob Alice ha creato la chiave del sistema e la trasmette a Bob Quesito: si può evitare lo scambio delle chiavi? Se Oscar riesce ad intercettare la trasmissione della chiave, la sicurezza del sistema crittografico è totalmente compromessa! Oscar LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 22
23
W.Diffie e M.Hellman: i padri della Crittografia moderna
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 W.Diffie e M.Hellman: i padri della Crittografia moderna Stanford University, 1976 Martin Hellman Whitfield Diffie LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 23
24
× × × × Protocollo dei due lucchetti BOB ALICE 1 2 3
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Protocollo dei due lucchetti BOB ALICE Crea il messaggio Lo mette nella scatola Chiude con un lucchetto Spedisce ad Alice 1 × 2 Aggiunge alla scatola un altro lucchetto Rispedisce a Bob × × 3 Toglie dalla scatola il proprio lucchetto Rispedisce ad Alice × Risultato: Non c’è stato alcuno scambio di chiavi Il messaggio è sempre stato protetto Toglie il suo lucchetto Apre la scatola Recupera il messaggio LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 24
25
Considerazioni sul Protocollo dei due lucchetti
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: Il messaggio ha fatto 3 viaggi (invece di uno), ed è stato soggetto a 4 manipolazioni (invece di 2) problema di ridondanza Gli algoritmi di cifratura e decifrazione (E, D) creati dai due partners devono essere commutativi (in generale ritenuti più deboli) problema di efficienza 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. LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 25
26
Concetto di FUNZIONE UNIDIREZIONALE
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. 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: 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: x LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 26
27
Concetto di Complessità Computazionale di un algoritmo
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Concetto di Complessità Computazionale di un algoritmo cronometro Schema di calcolo: T(A) Computer input = n output = A(n) n = argomento (esempio: n ≈ ) 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 dove Se T(A) = f (L(n)) allora l’algoritmo A(n) si dice efficiente, ovvero a tempo polinomiale Se T(A) = f (n) allora l’algoritmo A(n) si dice inefficiente, ovvero a tempo esponenziale Se T(A) ≈ mesi/anni si dice anche che il problema A(n) è intrattabile LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE III 27
28
Esempio: Complessità Computazionali a confronto
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13 Esempio: Complessità Computazionali a confronto Algoritmo A: Moltiplicazione input: n1, n2 output: n3 = n1 · n2 n1, n2 1010 L(n1)·L(n2) 100 T(A) 1 ms 1020 400 4 ms 1030 900 9 ms 1040 1.600 16 ms Alg. B: Fattorizzazione (per tentativi) input: n3; output: n1, n2 con n1 · n2 = n3 n3 1010 n3 105 T(B) 1 ms 1020 1010 1,7 min 1030 1015 116 d 1040 1020 > y L’algoritmo A (Moltiplicazione) è efficiente (a tempo polinomiale) L’algoritmo B (Fattorizzazione) è inefficiente (a tempo esponenziale) La Fattorizzazione diventa rapidamente un problema intrattabile LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE III 28
29
Funzione unidirezionale
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 = moltiplicazione: tutti sanno calcolare il prodotto : 47 = ??? divisione: nessuno è capace di calcolare il quoziente In questo ipotetico mondo, la moltiplicazione è una Funzione unidirezionale LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 29
30
PROGETTO LAUREE SCIENTIFICHE – A.A. 2012/13
Schema concettuale del Protocollo di Diffie-Hellman Generazione della chiave senza scambio ALICE BOB Alice sceglie un numero casuale N e lo trasmette a Bob sul canale insicuro: N = 37 Bob riceve da Alice il numero N = 37 N = 37 α = 555 Alice sceglie un proprio numero segreto A = 15, lo moltiplica per N, trasmette a Bob il prodotto α = A·N = 555 Bob sceglie un proprio numero segreto B = 23, lo moltiplica per N, trasmette ad Alice il prodotto = B·N = 851 = 851 Alice moltiplica il dato ricevuto da Bob per il proprio numero segreto A: K = A · = Bob moltiplica il dato α ricevuto da Alice per il proprio numero segreto B: K = B · α = 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. LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 30
31
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 che α = 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 LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 31
32
ARITMETICA MODULARE Funzioni unidirezionali in Crittografia
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: Generazione delle chiavi senza scambio (Diffie-Hellman 1976) Implementazione della Crittografia a chiave pubblica (RSA: Rivest-Shamir-Adleman 1978) LABORATORIO NUMERI PRIMI E CRITTOGRAFIA – PARTE I 32
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.