Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2. Crittografia
F. Garzia, Crittografia
Sommario
1. Crittografia e hashing: introduzione 2. Crittografia e hashing: concetti fondamentali e definizioni 3. Algoritmi di crittografia: DES, AES, RSA 4. Servizi fondamentali di sicurezza
F. Garzia, Crittografia
F. Garzia, Crittografia
F. Garzia, Crittografia
Algoritmi di crittografia
Trasformano (cifrano) reversibilmente un insieme di dati, ad esempio un documento, in modo da renderlo non intelligibile. Affinch tali algoritmi siano di qualche utilit pratica occorre che soddisfino le seguenti condizioni fondamentali: la cifratura e la decifratura deve avvenire in funzione di una variabile detta chiave costituita da una sequenza di bit di lunghezza variabile in funzione dell'algoritmo e del livello di sicurezza che si desidera ottenere; le operazioni di cifratura e decifratura sono relativamente semplici nel caso in cui si conosca la chiave; in caso contrario risultano laboriose al punto da risultare praticamente inattuabili; risulta egualmente laborioso dedurre la chiave con cui stato cifrato un documento confrontandolo con la sua versione in chiaro (cio non cifrata).
F. Garzia, Crittografia
Algoritmi di crittografia
La lunghezza delle chiavi, quando non fissata dal particolare algoritmo di crittografia, pu tipicamente assumere un insieme di valori che varia in funzione dell'algoritmo stesso e degli standard applicabili. La lunghezza effettivamente scelta per le chiavi da utilizzare nell'ambito di una specifica applicazione sempre il risultato di un compromesso fra esigenze di sicurezza e potenza dei calcolatori a disposizione. Al crescere della dimensione della chiave, infatti, aumenta infatti la sicurezza (intesa come difficolt di decifrare le informazioni crittografate) ma anche la potenza di elaborazione (numero di istruzioni al secondo) necessaria per contenere i tempi delle operazioni di cifratura entro limiti accettabili.
F. Garzia, Crittografia
Algoritmi simmetrici
Anche detti a chiave privata, utilizzano la stessa (ed unica) chiave privata, per cifrare e decifrare. Non adatti nella comunicazione continuativa fra N soggetti indipendenti: occorre una chiave privata per ogni coppia di soggetti; ogni soggetto deve possedere N-1 chiavi, mantenerle segrete e ricordare la chiave da utilizzare con ciascuno degli altri soggetti; Se la chiave generata autonomamente dal soggetto che avvia la comunicazione, necessario che venga trasmessa al destinatario, e durante il trasferimento potrebbe essere intercettata. Relativamente poco complessi vengono spesso usati in congiunzione con algoritmi asimmetrici. Uno degli algoritmi simmetrici utilizzati al momento il DES (Data Encription Standard) con chiavi di 56 o 112 bit.
F. Garzia, Crittografia
Algoritmi asimmetrici
a doppia chiave o a chiave pubblica, di concezione recente (1976) utilizzano due chiavi distinte per cifrare e decifrare: un documento cifrato con una chiave pu essere decifrato con laltra e viceversa; le chiavi vengono generate in coppia da uno speciale algoritmo ed di fatto impossibile ottenere una chiave a partire dallaltra; una qualsiasi delle due chiavi viene detta pubblica, pu essere distribuita; laltra, detta privata, deve essere mantenuta segreta. Nella comunicazione fra N soggetti sono pi adatti dei simmetrici: occorre una sola coppia di chiavi per ciascun soggetto. ogni soggetto genera autonomamente una propria coppia di chiavi, ed tenuto a mantenere segreta una sola di esse, quella privata, mentre pu, anzi deve, pubblicare laltra;
F. Garzia, Crittografia
Algoritmi asimmetrici
le chiavi private non devono essere scambiate, dunque non sussiste pericolo di intercettazioni. Se il soggetto A vuole inviare un messaggio riservato al soggetto B, ad esempio, cifra il messaggio con la chiave pubblica di B che, in quanto pubblica, nota a tutti. In questo modo il messaggio sar decifrabile soltanto con la chiave privata di B che, in quanto privata, solo B conosce. Lalgoritmo RSA, proposto da Rivest, Shamir e Adleman nel 1978, attualmente considerato come standard per la crittografia a chiave pubblica. Esistono varie implementazioni di RSA, che utilizzano coppie di chiavi di 512 o di 1024 bit.
F. Garzia, Crittografia
10
11
12
F. Garzia, Crittografia
13
F. Garzia, Crittografia
14
F. Garzia, Crittografia
15
F. Garzia, Crittografia
16
Codice di Cesare
Garantire la sicurezza nello scambio di informazioni sempre stato, nella storia delluomo, un problema rilevante si ha traccia di applicazioni di crittografia (in special modo sulle comunicazioni) risalenti persino agli antichi egizi Giulio Cesare per far arrivare gli ordini alle sue truppe ricorreva al mascheramento dellinformazione, in modo che il messaggio venisse interpretato solo dai suoi generali e non da nemici che avrebbero potuto impossessarsene Sostituzione monoalfabetica (di Cesare) TESTO IN CHIARO: TESTO CIFRATO: ABCDEFGHIJKLMNOPQRSTUVWXYZ QWERTYUIOPASDFGHJKLZXCVBNM
F. Garzia, Crittografia
17
F. Garzia, Crittografia
18
F. Garzia, Crittografia
19
F. Garzia, Crittografia
20
La chiave
una funzione opportunamente progettata e consiste di una stringa relativamente corta caratteristica fondamentale: possibilit di cambiare la chiave quando necessario o quando si desidera lunghezza della chiave: parametro di progetto critico, che determina il tempo necessario per decifrare il testo cifrato. In base al numero di cifre che compongono una chiave, varia il numero di chiavi disponibili con una data tecnica: 2 cifre 3 cifre 6 cifre 100 possibili chiavi da (00 a 99) 1000 chiavi possibili 1000000 possibili chiavi.
F. Garzia, Crittografia
21
La chiave
Chiave lunga chiave molto tempo necessario (work factor) per trovare la
se lalgoritmo ben progettato possibile solo lattacco esaustivo numero medio di tentativi richiesti: 2N-1 con N=lunghezza della chiave work factor proporzionale all'esponente della lunghezza della chiave La segretezza consiste nell'avere un buon algoritmo di dominio pubblico ed una chiave abbastanza lunga, ma segreta
Dimensione chiave (bits) 32 56 128 168 Numero di chiavi diverse 232 = 4.3 x 109 256 = 7.2 x 1016 2128 = 3.4 x 1038 2168 = 3.7 x 1050 Tempo richiesto a 106 decriptazioni per millisecondo 2.15 milliseconds 10 ore 5.4 x 1018 anni 5.9 x 1030 anni
F. Garzia, Crittografia
22
Crittoanalisi
Ciphertext only algoritmo di crittografia testo cifrato Known plaintext algoritmo di crittografia testo cifrato una o pi coppie testo in chiaro / testo cifrato Chosen plaintext algoritmo di crittografia testo cifrato messaggi in chiaro scelti dal criptoanalista con i corrispondenti messaggi cifrati
F. Garzia, Crittografia
23
F. Garzia, Crittografia
24
F. Garzia, Crittografia
25
F. Garzia, Crittografia
26
F. Garzia, Crittografia
27
28
F. Garzia, Crittografia
29
30
cifratura e la decifratura sono processi molto simili, la sola differenza che nella fase di decifratura le sottochiavi sono applicate nell'ordine inverso Questo semplifica enormemente l'implementazione, in particolare se effettuata direttamente con un circuito poich non occorre avere algoritmi separati per cifrare e per decifrare.
F. Garzia, Crittografia
31
Triplo DES
standardizzato per le applicazioni finanziarie nel 1985, dal 1999 incorporato nello standard DES tre esecuzioni del DES secondo uno schema EDE stessa resistenza del DES alla crittoanalisi tre chiavi da 56 bit equivalenti a una da 168 bit
F. Garzia, Crittografia
32
F. Garzia, Crittografia
33
34
SubBytes
Nel passaggio SubBytes ogni byte della matrice viene modificato tramite la S-box a 8 bit, fornendo non linearit all'algoritmo La S-box utilizzata derivata da una funzione inversa nei campi finiti (28), conosciuta per avere delle ottime propriet di non linearit. Per evitare un potenziale attacco basato sulle propriet algebriche la S-box costruita combinando la funzione inversa con una trasformazione affine invertibile. La S-box stata scelta con cura per non possedere punti fissi e nemmeno l'inversa possiede punti fissi.
trasformazione S; bij = S(aij)
F. Garzia, Crittografia
35
ShiftRows
provvede a scostare le righe della matrice di un parametro dipendente dal numero di riga. prima riga: invariata, seconda: spostata di un posto verso sinistra, terza: due posti, quarta: tre posti l'ultima colonna dei dati in ingresso forma la diagonale della matrice in uscita Nelle operazioni l'indice della colonna inteso come modulo il numero di colonne
F. Garzia, Crittografia
36
MixColumns
prende i quattro byte di ogni colonna e li combina utilizzando una trasformazione lineare invertibile ShiftRows e MixColumns insieme provvedono a far rispettare il criterio di confusione e diffusione nell'algoritmo (teoria di Shannon). Ogni colonna trattata come un polinomio in GF(28) e viene moltiplicata modulo x4 + 1 per un polinomio fisso c(x) = 3x3 + x2 + x + 2
F. Garzia, Crittografia
37
AddRoundKey
Combina con uno XOR la chiave di sessione con la matrice ottenuta dai passaggi precedenti (State) Una chiave di sessione viene ricavata dalla chiave primaria ad ogni round (con dei passaggi pi o meno semplici, ad esempio uno shift di posizione dei bit) grazie al Key Scheduler
F. Garzia, Crittografia
38
Sicurezza
National Security Agency (NSA) ha scelto AES per: flessibilit nel trattare chiavi di lunghezza diversa semplice implementazione in hardware e in software basse richieste di memoria implementazione anche in dispositivi con scarse risorse come le smart card. L'AES pu essere utilizzato per proteggere le informazioni classificate. livello SECRET: chiave a 128 bit livello TOP SECRET: chiavi a 192 o 256 bit. per la prima volta il pubblico ha accesso ad una tecnologia crittografica che NSA ritiene adeguata per proteggere i documenti TOP SECRET Chiave lunga: elevato margine di sicurezza per i prossimi decenni contro un potenziale attacco esaustivo.
F. Garzia, Crittografia
39
Sicurezza
La maggior parte degli algoritmi crittografici viene forzata riducendo il numero di round. L'AES effettua 10 round per la chiave a 128 bit, 12 round per la chiave a 192 bit e 14 round per la chiave a 256 bit. I migliori attacchi sono riusciti a forzare l'AES con 7 round e chiave di 128 bit, 8 round e chiave di 192 bit e 9 round e chiave di 256 bit. Attualmente una ricerca esaustiva impraticabile: la chiave a 128 bit produce 3,4 1038 combinazioni diverse. Servir ancora moltissimo tempo prima che una chiave da 128 bit sia attaccabile con il metodo forza bruta.
F. Garzia, Crittografia
40
RC5 sviluppato da Ron Rivest (RC = Rons code) algoritmo proprietario di RSA Data Security Inc. adatto sia per hw che per sw,veloce (word oriented) parametrizzabile (dimensione word, numero di round, lunghezza chiave) adatto a smart card e dispositivi con ridotta memoria
F. Garzia, Crittografia
41
F. Garzia, Crittografia
42
proposta nel 1976 da Diffie e Hellman usata per distribuire chiavi segrete e per la firma digitale
F. Garzia, Crittografia
43
Requisiti
deve essere computazionalmente semplice per un utente B generare una coppia di chiavi KUb, KRb deve essere computazionalmente semplice per un mittente A ottenere il testo cifrato C = EKUb(M) deve essere computazionalmente semplice per il ricevente B recuperare il testo originale M = DKRb(C) deve essere computazionalmente complesso per un impostore determinare KRb da KUb deve essere computazionalmente complesso per un impostore ricavare M da Kub e C le chiavi KRb da KUb devono avere funzionalit reciproche
F. Garzia, Crittografia
44
45
Algoritmo RSA
si scelgono a caso due numeri primi, p e q, l'uno indipendentemente dall'altro, abbastanza grandi da garantire la sicurezza dell'algoritmo si calcola il loro prodotto n=pq, chiamato modulo (dato che tutta l'aritmetica seguente modulo n) si sceglie poi un numero d (chiamato esponente privato), coprimo e pi piccolo di (p-1)(q-1) si calcola il numero e (chiamato esponente pubblico) tale che: e*d=1 (mod (p-1)(q-1) )
la chiave pubblica (n,e), mentre la chiave privata (n,d) i fattori p e q possono essere distrutti, anche se spesso vengono mantenuti all'interno della chiave privata.
F. Garzia, Crittografia
46
Algoritmo RSA
La forza dell'algoritmo sta nel fatto che per calcolare d da e o viceversa, non basta la conoscenza di n, ma serve il numero (p-1)(q-1) Infatti fattorizzare (cio scomporre un numero nei suoi divisori) un'operazione molto lenta, ma soprattutto l'operazione di modulo non invertibile, dunque anche conoscendo n non si pu risalire al prodotto modulo n di p e q. un messaggio m viene cifrato attraverso l'operazione: il messaggio c viene decifrato con: me (mod n)
cd = med = m1 (mod n)
Il procedimento funziona solo se le due chiavi sono legate tra loro dalla relazione: e*d=1 (mod (p-1)(q-1)) quando un messaggio viene cifrato con una delle due chiavi pu essere decifrato solo utilizzando l'altra.
F. Garzia, Crittografia
47
Algoritmo RSA
Debolezza dell'algoritmo: si basa sull'assunzione mai dimostrata (nota come assunzione RSA,) che il calcolo di un numero composto di cui non si conoscono i fattori sia computazionalmente non trattabile. La firma digitale non altro che l'inverso: il messaggio viene crittato con la chiave privata, in modo che chiunque possa decifrarlo utilizzando la chiave pubblica conosciuta da tutti, e, oltre a poterlo leggere in chiaro, essere certo che il messaggio stato mandato dal possessore della chiave privata corrispondente a quella pubblica utilizzata per leggerlo.
F. Garzia, Crittografia
48
Key Generation Select p, q p and q both prime Calculate n=pxq Calculate (n) = (p-1)(q-1) Select integer e gcd((n),e)=1; 1<e< (n) Calculate d de mod(n) = 1 Public key KU = [e, n] Private key KR = [d, n]
F. Garzia, Crittografia
49
RSA: un esempio
1. Si scelgono due numeri primi p=7, q=17 2. si calcola n = pq = 7 x 17 = 119 3. si calcola (n) = (p-1)(q-1) = 6x16 =96 4. si sceglie e < (n), relativamente primo con (n), e = 5 5. si determina d tale che de mod 96 = 1 e d<96, d = 77 (infatti 77x5 = 385 = 96x4+1)
F. Garzia, Crittografia
50
Sicurezza di RSA
Possibile attacco esaustivo: nella scelta di e e d trade-off tra sicurezza e prestazioni Crittoanalisi: fattorizzazione di n 1977: sfida degli inventori su un testo criptato con una chiave pubblica n di 129 cifre decimali (circa 428 bit) 1994: sfida vinta su Internet con 1600 calcolatori in otto mesi di lavoro attualmente chiavi di 1024 bit sono considerate sufficientemente sicure
F. Garzia, Crittografia
51
Bob
Alice
F. Garzia, Crittografia
52
Firma digitale
Garantisce che il messaggio autentico ed integro il mittente non pu disconoscere il messaggio
F. Garzia, Crittografia
53
Funzione di hash
Produce un'impronta del messaggio Deve possedere le seguenti propriet: accetta un messaggio di dimensione variabile produce un digest di lunghezza fissa veloce da calcolare difficilmente invertibile estremamente improbabile che messaggi diversi generino lo stesso digest
F. Garzia, Crittografia
54
F. Garzia, Crittografia
55
F. Garzia, Crittografia
56
F. Garzia, Crittografia
57
F. Garzia, Crittografia
58
F. Garzia, Crittografia
59
F. Garzia, Crittografia
60
Introduzione di riservatezza
Obiettivo: rendere un documento, o pi genericamente una informazione, leggibile solo da parte di un destinatario prefissato, cio senza possibilit che terze parti possano interpretarlo. In teoria basta il solo RSA, la cui lentezza (come tutti gli asimmetrici) rende necessario l'utilizzo congiunto di un algoritmo simmetrico (il DES) 1. Viene generata una chiave DES pseudo-casuale. 2. L'informazione che si vuole rendere riservata viene cifrata con DES utilizzando la chiave pseudo-casuale. 3. La chiave pseudo-casuale, che se intercettata permetterebbe di decifrare l'informazione originale, viene a sua volta cifrata con RSA utilizzando la chiave pubblica del destinatario, cio di colui al quale si desidera comunicare l'informazione in modo riservato.
F. Garzia, Crittografia
61
Introduzione di riservatezza
2. L'informazione che si vuole rendere riservata viene cifrata con DES utilizzando la chiave pseudo-casuale 1. Si genera una chiave DES pseudo-casuale.
3. La chiave pseudo-casuale viene a sua volta cifrata con RSA utilizzando la chiave pubblica del destinatario.
F. Garzia, Crittografia
62
Introduzione di riservatezza
RSA, troppo lento per cifrare la intera informazione originale (tipicamente costituita da un documento di molte pagine), pu invece essere applicato alla chiave DES con prestazioni soddisfacenti in quanto questa di appena 112 bit. Una volta cifrata con la chiave RSA pubblica del destinatario, la chiave DES che permetterebbe la decodifica della informazione riservata sar decifrabile solo dal destinatario stesso, in quanto egli l'unico a possedere la corrispondente chiave RSA privata.
F. Garzia, Crittografia
63
Rimozione di riservatezza
Obiettivo di questo servizio quello di permettere al destinatario di una informazione a lui riservata di riportare in chiaro, cio in forma leggibile, l'informazione stessa. 1. Viene ricevuta la informazione cifrata e, in allegato, la relativa chiave DES (con cui l'informazione stessa stata cifrata). La chiave DES a sua volta cifrata RSA con la chiave pubblica del destinatario. 2. Il destinatario decifra la chiave DES applicando su di essa RSA con la propria chiave privata. Essendo tale chiave nota solo a lui, nessun altro pu decifrare la chiave DES e quindi l'informazione originale. 3. L'informazione cifrata viene riportata in chiaro, cio in forma intelligibile, applicando su di essa DES con la chiave decifrata.
F. Garzia, Crittografia
64
Rimozione di riservatezza
F. Garzia, Crittografia
65
66
F. Garzia, Crittografia
67
2. Con SHA si genera il digest del doc. Se il doc non ha subito modifiche e se la firma autentica, coincide con quello ottenuto al passo precedente 3. Se i due digest coincidono la firma valida, altrimenti la firma apocrifa (cio apposta da un soggetto diverso) e/o il doc stato modificato dopo la firma.
F. Garzia, Crittografia
68
F. Garzia, Crittografia
69
Timbratura
Obiettivo di questo servizio quello di associare in modo incontestabile un riferimento temporale (data ed ora esatta) ad un dato documento. Affinch questo servizio sia di qualche utilit essenziale che venga svolto da un soggetto al di sopra degli altri e da tutti ritenuto autorevole e fidato. Questo soggetto, spesso indicato come terza parte fidata, dovr naturalmente gestire autonomamente ed in modo sicuro un orologio di sistema.
F. Garzia, Crittografia
70
Timbratura
1. Alla informazione da timbrare viene applicato SHA ed ottenuto il digest. Questa operazione tipicamente compiuta dal soggetto che richiede il servizio di timbratura 2. La terza parte fidata accoda al digest la data e l'ora dell'orologio di sistema da essa gestito in modo autonomo 3. La terza parte fidata cifra digest e la sequenza temporale tramite RSA e propria chiave privata, ottenendo il timbro
4. La validit del timbro verificabile da chiunque decifrandolo con la chiave pubblica della terza parte fidata.
F. Garzia, Crittografia
71
Servizi di notariato
I servizi di notariato sono offerti da una Autorit di certificazione (nel seguito indicata come Autorit) che sia riconosciuta come fidata ed autorevole da tutti gli utenti del sistema informativo. Come ogni altro utente, anche l'Autorit dispone di una coppia (privata, pubblica) di chiavi asimmetriche. I principali servizi di notariato offerti dall'Autorit sono la certificazione delle chiavi pubbliche, la gestione delle chiavi pubbliche sospese o revocate, la certificazione temporale, detta anche timbratura.
F. Garzia, Crittografia
72
F. Garzia, Crittografia
73
F. Garzia, Crittografia
74
Problemi di gestione
Gestione delle chiavi pubbliche sospese o revocate Le chiavi pubbliche possono essere sospese o revocate (ad esempio a seguito di furto o smarrimento delle corrispondenti chiavi private). L'Autorit deve quindi gestire un registro storico delle chiavi pubbliche revocate, al fine di garantire nel tempo la verificabilit delle firme generate utilizzando le corrispondenti chiavi private. Gestione del tempo di riferimento e timbratura ufficiale Il servizio base di timbratura ricade fra i servizi di notariato in quanto richiede che il time-stamp sia generato ed apposto da una Autorit riconosciuta da parte tutti gli utenti del sistema come detentrice affidabile del riferimento temporale.
F. Garzia, Crittografia
75
un pacchetto freeware che fornisce confidenzialit e autenticit per la posta elettronica e la memorizzazione di file
Combina i vantaggi degli algoritmi di crittografia a chiave pubblica e privata : Chiavi private mai trasmesse Possibile la firma digitale Molto pi veloce (ad es., DES 100 volte pi veloce di RSA, in hardware tra 1.000 e 10.000 volte)
F. Garzia, Crittografia
76
oppure firmarla lasciando il testo in chiaro o fare tutte e due le cose insieme
F. Garzia, Crittografia
77
F. Garzia, Crittografia
78
La chiave (session key) generata dal mittente per ogni messaggio La session key poi cifrata con la chiave pubblica del destinatario - Algoritmi usati: DH, RSA
F. Garzia, Crittografia
79
F. Garzia, Crittografia
80
81
F. Garzia, Crittografia
82
F. Garzia, Crittografia
83
F. Garzia, Crittografia
84
F. Garzia, Crittografia
85
F. Garzia, Crittografia
86
F. Garzia, Crittografia
87
F. Garzia, Crittografia
88
F. Garzia, Crittografia
89
F. Garzia, Crittografia
90
F. Garzia, Crittografia
91
F. Garzia, Crittografia
92
F. Garzia, Crittografia
93
F. Garzia, Crittografia
94
F. Garzia, Crittografia
95
Chiave pubblica
Public key Owner trust
F. Garzia, Crittografia
96
F. Garzia, Crittografia
97
possono
98
F. Garzia, Crittografia
99
F. Garzia, Crittografia
100
F. Garzia, Crittografia
101
Per esportare la chiave in un file di testo aprire PGP keys selezionare la chiave desiderata fare clic su Export dal menu Keys inserire il nome del file in cui si vuole esportare la chiave
F. Garzia, Crittografia
102
F. Garzia, Crittografia
103
F. Garzia, Crittografia
104
F. Garzia, Crittografia
105
certificati X.509 Solo una Certification Authority pu creare un certificato X.509 Un certificato X.509 pu essere firmato o revocato solo dalla CA
F. Garzia, Crittografia
106
F. Garzia, Crittografia
107
F. Garzia, Crittografia
108
F. Garzia, Crittografia
109
F. Garzia, Crittografia
110
F. Garzia, Crittografia
PGP (Pretty Good Privacy) Cancellare una chiave E possibile eliminare una chiave o una firma
Aprire PGP keys Selezionare la chiave/firma da eliminare Scegliere Delete dal menu Edit Una finestra chiede conferma delleliminazione
111
F. Garzia, Crittografia
112
F. Garzia, Crittografia
113
Per decifrare /verificare una e-mail Aprire il messaggio cifrato Copiarlo negli Appunti Fare click sulle icone di Decrypt e Verify dalla toolbar Inserire la passphrase Il messaggio decifrato Se stato firmato e si possiede la chiave pubblica del firmatario un messaggio indica se la firma valida
F. Garzia, Crittografia
114
F. Garzia, Crittografia
115
F. Garzia, Crittografia
116
F. Garzia, Crittografia
117
F. Garzia, Crittografia
118
F. Garzia, Crittografia