Cifratura Asimmetrica CIFRATURA ASIMMETRICA Algoritmo di Cifratura E() c = E(k 1, m) la cifratura del messaggio in chiaro m con la chiave k 1 produce il testo cifrato c Algoritmo di Decifratura D() m = D(k 2, c) = D(k 2, E(k 1, m)) la decifratura del messaggio cifrato c con la chiave k 2 (k 2 k 1 ) produce il testo in chiaro m Proprietà di E() e D() I. Dato c è molto difficile ricavare m se non si conosce k 2 II. Dati m e c è molto difficile ricavare k 1, a meno che k 1 non sia utilizzata una sola volta III. Anche se si conosce k 1 è molto difficile ricavare k 2 e viceversa Cifratura Asimmetrica 1
Chiave Pubblica e Privata Ogni utente ha una coppia di chiavi (k 1, k 2 ) una la mantiene segreta, l altra la rende pubblica Ad esempio: PUB A : chiave pubblica di Alice PRIV A : chiave privata di Alice Cifratura Asimmetrica 2 Algoritmi più noti RSA (1978) probabilmente il più diffuso; la sua sicurezza non è stata provata Knapsack (1978) violato più volte, non è considerato sicuro Rabin (1979) ElGamal (1985) Schnorr (1991) equivalenti al problema del logaritmo discreto Cifratura Asimmetrica 3
Segretezza Alice vuole inviare un messaggio segreto m a Bob Global DB Alice: PUB A Bob: PUB B PRIV A PRIV B 1. Alice si procura PUB B, la chiave pubblica di Bob 2. Alice calcola c = E(PUB B, m) 3. Alice invia C a Bob 4. Bob calcola m = D(PRIV B, c) Cifratura Asimmetrica 4 Metafora: cassetta postale Alice vuole inviare un messaggio segreto M a Bob Global DB Alice: PUB A Bob: PUB B PRIV A PRIV B Chiunque può inserire un messaggio nella cassetta postale, ma solo chi ha la chiave (privata) può aprire la cassetta e prelevare il messaggio Cifratura Asimmetrica 5
Provenienza di un messaggio Alice non vuole inviare un messaggio segreto a Bob ma vuole fornirgli una prova di provenienza Global DB Alice: PUB A Bob: PUB B PRIV A m, s PRIV B 1. Alice firma m, cioè calcola s = E(PRIV A, m) 2. Alice invia (m, s) a Bob 3. Bob si procura PUB A e verifica s, cioè 4. calcola m = D(PUB A, s) e verifica che m m Cifratura Asimmetrica 6 Metafora: firma Alice non vuole inviare un messaggio segreto a Bob ma vuole fornirgli una prova di provenienza Global DB Alice: PUB A Bob: PUB B PRIV A m, s PRIV B Solo chi ha la chiave privata può firmare un documento. Tutti gli altri possono verificare la firma con la chiave pubblica. Cifratura Asimmetrica 7
Segretezza + Provenienza Alice vuole inviare un messaggio segreto m a Bob, fornendogli anche una prova di provenienza Global DB PRIV A C Alice: PUB A Bob: PUB B PRIV B 1. Alice calcola z = E(PRIV A, m) 2. Alice si procura PUB B e calcola c = E(PUB B, z) 3. Alice invia c a Bob 4. Bob calcola z = D(PRIV B, c) 5. Bob si procura PUB A, 6. calcola m = D(PUB A, c) e 7. verifica che m m Cifratura Asimmetrica 8 Firma Digitale Algoritmo di firma S() s = E(PRIV A, m) s costituisce la firma digitale del messaggio m con la chiave Priv A Algoritmo di verifica V() V(PUB A, m, s) restituisce VERO se s è la firma digitale di m con PRIV A, FALSO altrimenti Proprietà di S() e V() I. Dato m è molto difficile produrre s se non si conosce PRIV A II. Dati m e s è molto difficile ricavare PRIV A, a meno che non sia utilizzata una sola volta III. Anche se si conosce PUB A è molto difficile ricavare PRIV A e viceversa Cifratura Asimmetrica 9
Algoritmi di Firma più Diffusi RSA Lo stesso algoritmo si utilizza sia per firmare sia per cifrare (E S; D V) La verifica della firma restituisce il messaggio ElGamal Per firmare e cifrare si usano algoritmi diversi (E S; D V) DSS Algoritmo per la sola firma digitale Cifratura Asimmetrica 10 Centro Distribuzione Chiavi L algoritmo simmetrico non richiede segreti condivisi Quando necessario, basta solo (!!) procurarsi la chiave pubblica del partner... ma dove si va a prenderla?......presso il Centro Distribuzione Chiavi una terza entità fidata che assicura l integrità del collegamento (utente chiave pubblica dell utente) Alice: PUB A Bob: PUB B Cifratura Asimmetrica 11
Centro Distribuzione Chiavi CDC non deve mantenere alcuna informazione segreta, ma deve garantire l integrità del collegamento utente chiave pubblica dell utente Se un avversario M sostituisce (Alice, PUB A ) con (Alice, PUB M ) allora può leggere i messaggi segreti indirizzati ad Alice e firmare al posto di Alice Cifratura Asimmetrica 12 Distribuzione delle Chiavi M1 CDC M2 M3 Alice vuole conoscere la chiave pubblica PUB B di Bob M1 A CDC: B M2 CDC A: B, PUB B Alice ritiene che PUB B sia la chiave pubblica di Bob Alice invia un messaggio segreto m a Bob M3 A B: E(PUB B, m) Sembra tutto OK ma Cifratura Asimmetrica 13
L uomo nel mezzo è sempre in agguato M1 M4 M5 M2 M3 M6 CDC Alice vuol conoscere la chiave pubblica PUB B di Bob M1 A M: B M2 M CDC: B M3 CDC M: B, PUB B M4 M A: B, PUB M Alice ritiene che PUB M sia la chiave pubblica di Bob Cifratura Asimmetrica 14 L uomo nel mezzo è sempre in agguato M1 M4 M5 M2 M3 M6 CDC Alice invia un messaggio segreto m a Bob M5 A M: E(PUB M, m) M6 M B: E(PUB B, m) L avversario (l uomo-nel-mezzo) può leggere tutti i messaggi segreti che Alice invia a Bob Problema analogo quando Alice vuole procurarsi la chiave pubblica di Bob per verificare una firma digitale che lei presume essere di Bob Cifratura Asimmetrica 15
Certificati IL PROBLEMA Tutti i problemi nascono dal messaggio M4 Alice lo attribuisce (erroneamente) a CDC ma non c è nessuna prova che quel messaggio sia effettivamente di CDC È un problema di autenticità e non di segretezza: M4 non trasporta alcuna informazione segreta Cifratura Asimmetrica 16 Certificati LA SOLUZIONE Il centro distribuzione chiavi CDC deve rilasciare un certificato: C(CA, A) = Alice, PUB A, S(PRIV CA, (A, PUB A )) un documento/messaggio firmato da CDC che stabilisce il collegamento (utente chiave pubblica dell utente) CDC viene detto Certification Authority (Autorità di Certificazione) Cifratura Asimmetrica 17
Certification Authority CA è una terza entità fidata che garantisce l integrita del collegamento (utente chiave pubblica dell utente e la corrispondenza tra una chiave pubblica ed il soggetto possessore della chiave pubblica (certificazione) Cifratura Asimmetrica 18 Distribuzione Chiavi con Certificato M1 M2 Alice: C(CA, A) Bob: C(CA, B) M3 Alice vuole sapere la chiave pubblica PUB B di Bob M1 A CA: B M2 CA A: C(CA, B) Alice verifica la firma della CA e si convince che PUB B è la chiave pubblica di Bob C(CA, B) = B, PUB B, S(PRIV CA, (B, PUB B )) Cifratura Asimmetrica 19
Chi certifica una CA? PROBLEMA Alice deve verificare la firma di CA......ma come fa Alice ad essere sicura che PUB CA è proprio la chiave pubblica di CA? Cifratura Asimmetrica 20 Chi certifica una CA? SOLUZIONE CA pubblica PUB CA sui quotidiani più importanti Every problem in Computer Science can be solved by another level of indirection (D. Wheeler) La chiave di CA è certificata da un altra CA... un altra chiave pubblica, un altro certificato e così via Certification Hierarchy (X.509), Certification Web (PGP) Cifratura Asimmetrica 21
Come si ragiona Alice riceve C(CA, B) e lo verifica per mezzo di PUB CA Siccome Alice crede che PUB CA appartiene a CA allora è portata a credere che CA abbia detto PUB B appartiene a Bob Siccome Alice si fida di CA allora è portata a credere che PUB B appartiene a Bob Cifratura Asimmetrica 22 Come si ragiona Alice si fida di CA, cioè Alice ritiene che CA gestisca correttamente le proprie chiavi Alice ritiene che CA faccia bene il proprio mestiere di certificatore CA ha verificato con certezza l identità di Bob CA ha verificato che PUBB non sia già in uso (difficile!!) CA ha verificato il possesso di PRIVB da parte di Bob Alice ritiene che CA gestisca bene il Database globale CA garantisce l integrità del database Cifratura Asimmetrica 23
Significato di un certificato C(CA, B) Dopo aver ricevuto C(CA, B) Alice può concludere che PUB B appartiene a Bob PUB CA non può concludere che sta parlando con Bob Un certificato non dá alcuna garanzia sull identità del partner della comunicazione Cifratura Asimmetrica 24 Identificazione Alice invia un messaggio (challenge) a Bob che lo deve restituire firmato con PRIV B M1: C(CA, B) M2: r M3: E(PRIV B,r) PUB CA Dopo aver ricevuto M3 e verificato E(PRIV B, r) Alice può concludere che sta parlando con Bob perché solo Bob può aver firmato M2 perché solo lui conosce PRIV B Cifratura Asimmetrica 25
Diffie-Hellmann + Firma Digitale Alice e Bob vogliono condividere un segreto, la chiave K AB C(CA, B) C(CA, A) a K AB? b C(CA, A) C(CA, B) Alice: C(CA, A) Bob: C(CA, B) Cifratura Asimmetrica 26 Diffie-Hellmann + Firma Digitale Alice sceglie un numero random a (segreto) M1 A B: g a mod p Bob sceglie un numero random b (segreto), calcola K AB = (g a ) b mod p = g ab mod p M2 B A: g b mod p, E(K AB, E(PRIV B, (g b mod p, g a mod p))) Alice calcola K AB = (g a ) b mod p = g ab mod p M3 A B: E(K AB, E(PRIV A, (g b mod p, g a mod p))) Alice (Bob) conclude che K AB è la chiave per comunicare ora con Bob (Alice) E(K AB, ): cifratura simmetrica E(PRIV X, ): cifratura asimmetrica; [va bene anche S(PRIV X, )] Cifratura Asimmetrica 27
Organizzazione Gerarchica CA CA = Certification Autority U = User CA CA U CA CA CA U U U U U SCALABILITÀ DELEGA dell AUTORITÀ e della FIDUCIA Privacy Enhanced Internet Mail (PEM) RFC 1421 1424 Cifratura Asimmetrica 28 Organizzazione Gerarchica Y CA CA CA (Certification Autority) C B A U U U Alice vuole inviare la propria chiave PUB A a Bob, allora Alice invia a Bob un certificato: CA(Y, A) = Alice, PUB A, S(PRIV Y, PUB A ) Cifratura Asimmetrica 29
Organizzazione Gerarchica Y Z Y PCA (Policy Certification Autority) X Y CA CA CA C B A U U U Alice vuole inviare la propria chiave PUB A a Carol, allora Alice invia a Carol C(Y, A), C(Z, Y) Delega di Autorità e di Fiducia Cifratura Asimmetrica 30 Delega di Autorità Z delega la certificazione a Y Z deve controllare che Y svolga bene il proprio compito Z pubblica la politica che segue per delegare l autorità Cifratura Asimmetrica 31
Delega di Fiducia Carol si fida di Z ed ha la sua chiave pubblica PUB Z Quando Carol riceve C(Y, A), C(Z, Y), Carol si fida che PUB Y è la chiave pubblica di Y Siccome si fida di Z e Z certifica Y, allora Carol si fida anche di Y e quindi si fida che PUB A è la chiave pubblica di Alice Z Y In generale tra una CA e l utente possono esserci una o più CA L utente si deve fidare di tutte B A Cifratura Asimmetrica 32 Pretty Good Privacy (PGP) È il singolo utente che decide quanta fiducia riporre in un certificato PGP is for people who prefer to pack their own parachutes (P. Zimmerman) C(M, B) Dave C(D, B) Mallet Alice PUB B? Carol C(C, B) In base al numero di certificati e la fiducia in ciascun individuo, Alice definisce il proprio livello di fiducia in PUB B Bob Cifratura Asimmetrica 33
FORMATO DI UN CERTIFICATO STANDARD X.509 (RFC 2459) PRINCIPALI COMPONENTI Il nome dell entità certificata La chiave pubblica di tale entità Il nome della CA La firma digitale ALTRE COMPONENTI Algoritmi usati per la firma digitale Periodo di validità del certificato Cifratura Asimmetrica 34 X.509: ESEMPIO (continua) BASIC INFORMATION del subject Signature Algorithm: sha1withrsaencryption Issuer: C=US, O=American Express Company, Inc., OU=American Express Technologies, CN=American Express Global Certificate Authority Validity Not Before: Aug 14 19:06:00 1998 GMT Not After : Aug 14 23:59:00 2013 GMT Subject: C=US, O=American Express Company, Inc., OU=American Express Technologies, CN=American Express Global Certificate Authority Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (2048 bit) Modulus (2048 bit): X.500 (ITU-T) chiave del subject f0:24:26:66:2e:fb:eb:4a:73:71:53:89:47:cb:26:... Exponent: 65537 (0x10001) Cifratura Asimmetrica 35
CERTIFICATO X.509 (continua) Signature Algorithm: sha1withrsaencryption c7:61:45:a8:8a:71:b9:be:34:e9:21:7b:21:cd:56:13:98:d5:... -----BEGIN CERTIFICATE----- MIIEBDCCAuygAwIBAgICAIUwDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNVBAYTAlVT MScwJQYDVQQKEx5BbWVyaWNhbiBFeHByZXNzIENvbXBhbnksIEluYy4xJjAkBgNV BAsTHUFtZXJpY2FuIEV4cHJlc3MgVGVjaG5vbG9naWVzMTYwNAYDVQQDEy1BbWVy awnhbibfehbyzxnziedsb2jhbcbdzxj0awzpy2f0zsbbdxrob3jpdhkwhhcnotgw ODE0MTkwNjAwWhcNMTMwODE0MjM1OTAwWjCBljELMAkGA1UEBhMCVVMxJzAlBgNV BAoTHkFtZXJpY2FuIEV4cHJlc3MgQ29tcGFueSwgSW5jLjEmMCQGA1UECxMdQW1l cmljyw4grxhwcmvzcybuzwnobm9sb2dpzxmxnja0bgnvbamtluftzxjpy2fuiev4 chjlc3mgr2xvymfsienlcnrpzmljyxrlief1dghvcml0etccasiwdqyjkozihvcn AQEBBQADggEPADCCAQoCggEBAPAkJmYu++tKc3FTiUfLJjxTkpRMysKFtQ34w1e9 Lyofahi3V68MABb6oLaQpvcaoS5mJsdoo4qTaWa1RlYtHYLqkAwKIsKJUI0F89Sr c0hwzxksklrvfjswwuuekhwg3+jh6+hpt0n+h8onggaetcfazx38yw+tm3lpqv7y 8/nabpEQ+ky16n4g3qk5L/WI5IpvNcYgnCuGRjMK/DFVpWusFkDpzTVZbzIEw3u1 D3t3cPNIuypSgs6vKW3xEW9t5gcAAe+a8yYNpnkTZ6/4qxx1rJG1a75AsN6cDLFp hrlxkrnfyt/r/eayypadedvfukpbepalefy+xteflegr9a0caweaaanamfgwegyd VR0TAQH/BAgwBgEB/wIBBTAOBgNVHQ8BAf8EBAMCAQYwFwYDVR0gBBAwDjAMBgoq hkig+q8kaqubmbkga1uddgqsbbbxrzv7nicrqaj8l0yl6yrpma0gcsqgsib3dqeb BQUAA4IBAQDHYUWoinG5vjTpIXshzVYTmNUwY+kYqkuSFb8LHbvskmnFLsNhi+gw RcsQRsFzOFyLGdIr80DrfHKzLh4n43WVihybLsSVBYZy0FX0oZJSeVzb9Pjc5dcS sudhpibkmwvkyjfg3nzxgwlmrmn8kq0wn3qtrpchsy3766lqy8hrqajaa2mhpzde VcHF7cTjjgwml5tcV0ty4/IDBdACOyYDQJCevgtbSQx48dVMVSng9v1MA6lUAjLR V1qFrEPtWzsWX6C/NdtLnnvo/+cNPDuom0lBRvVzTv+SZSGDE1Vx60k8f4gawhIo JaFGS0E3l3/sjvHUoZbCILZerakcHhGg -----END CERTIFICATE----- chiave di CA La CA crea il certificato firmando la basic information con la propria chiave privata Cifratura Asimmetrica 36 Nomi Secondo X.500 COUNTRY CO=IT ORGANIZATION CO=IT, O=University of Pisa ORGANIZATIONAL UNIT CO=IT, O=University of Pisa, OU= Dipartimento di Ingegneria della informazione COMMON NAME CO=IT, O=University of Pisa, OU= Dipartimento di Ingegneria della informazione, CN=Gianluca Dini Cifratura Asimmetrica 37
Esempio di Algoritmo Asimmetrico: RSA Rivest Shamir Adleman (RSA, 1978) CREAZIONE DELLE CHIAVI Selezionare p, q due numeri primi grandi (100 200 cifre decimali) Sia n = p q ed φ(n)=(p-1)(q-1) Scegliere un numero random e tale che GCD(e, φ(n)) = 1 Calcolare d tale che e d = 1 mod φ(n) CHIAVE K 1 (PRIV): (d, n) CHIAVE K 2 (PUB): (e, n) A questo punto i numeri p e q possono essere cancellati ma non devono mai essere rivelati Cifratura Asimmetrica 39
Algoritmo RSA CIFRATURA Sia m un intero 1 m < n c =m e mod n DECIFRATURA c d m mod n Queste due operazioni sono pesanti dal punto di vista computazionale Cifratura Asimmetrica 40 Algoritmo RSA DIMOSTRAZIONE: c d m de m k φ(n)+1 mod n, k (m φ(n) ) k m mod n (Teorema di Eulero) m mod n Ragionamento analogo se si cifra con d e si decifra con e TEOREMA DI EULERO intero n > 1, a n*, a φ(n) 1 mod n Cifratura Asimmetrica 41
RSA: Esempio CREAZIONE delle CHIAVI Siano p = 47 e q = 71 n = p q = 3337 e φ(n) = (p 1) (q 1)= 46 70 = 3220 Sia e = 79 (scelta a random) Si risolve e d 1 mod φ(n) cioè 79 d 1 mod 3220 da cui d = 1019 (continua ) Cifratura Asimmetrica 42 RSA: Esempio CIFRATURA Sia m = 9666683 Si divide m in blocchi m i < n m 1 = 966; m 2 = 668; m 3 = 3 c 1 = m 1 e mod n = 96679 mod 3337 = 2276 c 2 = 66879 mod 3337 = 2423 c 3 = 379 mod 3337 = 158 c = c 1 c 2 c 3 = 2276 2423 158 (continua ) Cifratura Asimmetrica 43
RSA: Esempio DECIFRATURA m 1 = c 1d mod n = 2276 1019 mod 3337 = 966 m 2 = 2423 1019 mod 3337 = 668 m 3 = 158 1019 mod 3337 = 3 m = 966 668 3 Cifratura Asimmetrica 44 Un sistema insicuro con componenti sicure ASTA ELETTRONICA Formato del messaggio d offerta: m = bidder, offer, con offer su 32 bit Per privacy, il campo offer è cifrato con PUB ASTA Alice dispone di un certificato relativo a PUB ASTA Cifratura Asimmetrica 45
Un sistema insicuro con componenti sicure ASTA ELETTRONICA A, c A L avversario prova tutte le possibili (2 32 ) offerte finché ne trova una o, tale che E(PUB ASTA, o) c A L avversario fa quindi la minima offerta o = o + 1 Cifratura Asimmetrica 46 Un sistema insicuro con componenti sicure ASTA ELETTRONICA Sia PRIV ASTA = (d, n) e PUB ASTA = (e, n) Sia c A = o Ae mod n L avversario M si procura c A e chiede alla casa d asta di decifrare c A La casa d asta rifiuta perché, ad esempio, sa/si accorge che c A è la versione cifrata di un offerta (continua...) Cifratura Asimmetrica 47
Un sistema insicuro con componenti sicure L avversario M si procura c A seleziona un valore x (opportuno), calcola c M = x e c A mod n e chiede alla casa d asta di decifrargli c M Questa volta la casa d asta acconsente e calcola e ritorna all avversario M il valore t = c Md = x ed c Ad = x o de A = x o A mod n L avversario M ricava o A = t x -1 mod n Chosen-ciphertext attack Cifratura Asimmetrica 48 Proprietà moltiplicative RSA è un omomorfismo c = m e mod n m = m 1 m 2 c = c 1 c 2 Una possibile contromisura è imporre una certa struttura al testo in chiaro: m = x x Cifratura Asimmetrica 49
Sicurezza di RSA La sicurezza di RSA è basata sulla difficoltà della scomposizione in fattori primi di numeri interi grandi, ma......finora non è mai stato provato che RSA è equivalente alla fattorizzazione Cifratura Asimmetrica 50 Sicurezza di RSA Se la scomposizione è facile violare RSA è facile Dimostrazione Sia (d, n) la chiave privata ed (e, n) la chiave pubblica. Si scompone n e si ricava p e q. Quindi, si puó ricavare φ(n) e quindi si può risolvere e d = 1 mod φ(n) Se la scomposizione è difficile violare RSA è difficile L implicazione non è mai stata provata, ma......finora non è mai stato trovato un metodo più facile per violare RSA che quello di scomporre in fattori il modulo n Cifratura Asimmetrica 51
Alcuni Fatti sui Numeri Primi I numeri primi sono tanti π(n) n/ln n (buona approssimazione anche per n piccoli) È facile dire se un numero n è primo o composto (verifica di primalità) È facile costruire un numero primo random di k bit algoritmi polinomiali in k Fattorizzare numeri grandi è difficile Fattorizzare numeri a più di 110 cifre decimali è praticamente impossibile con la tecnologia corrente Cifratura Asimmetrica 52 Forza dei Meccanismi di Cifratura Algoritmi sicuri da un punto di vista empirico Algoritmi la cui sicurezza non è stata provata ma che hanno superato nel tempo tutti i tentativi di attacco DES, RSA Algoritmi incondizionatamente sicuri Il testo cifrato non dà alcuna informazione sul testo in chiaro Neanche un nemico con risorse illimitate può violare questo algoritmo Esempio: One-Time Pad Cifratura Asimmetrica 53
Forza dei Meccanismi di Cifratura Algoritmi la cui sicurezza è stata provata È stato dimostrato che violare l algoritmo è difficile almeno quanto risolvere un problema difficile dal punto di vista della teoria della complessità. Esempio: ElGamal, Diffie-Hellmann sono equivalenti al problema del logaritmo discreto Attenzione è difficile almeno quanto ha valore asintotico, per un problema di sufficientemente grande. Ma quanto deve essere grande il problema? Non c è nessuna prova che questi problemi computazionalmente difficili siano veramente difficili Cifratura Asimmetrica 54