Crittografia a chiave pubblica Barbara Masucci Dipartimento di Informatica Università di Salerno bmasucci@unisa.it http://www.di.unisa.it/professori/masucci Cifrari simmetrici canale insicuro Bob 1 Distribuzione delle chiavi Come fanno e Bob a condividere una chiave comune? Uso di un canale privato - un incontro faccia a faccia in un posto segreto - un corriere fidato Uso di una terza parte fidata... - che stabilisce la chiave di sessione e la invia ad entrambi in modo sicuro... 2 1
Gestione delle chiavi In una rete con n utenti ogni coppia di utenti deve condividere una chiave - Ogni utente deve memorizzare n-1 chiavi - Il numero totale delle chiavi segrete è dell ordine di n 2 L aggiunta di un nuovo utente alla rete implica la distribuzione della chiave a tutti i precedenti utenti... Soluzione: cifrari asimmetrici 3 Cifrari asimmetrici Usano una cassaforte con due lucchetti Ø Con una chiave (pubblica) chiudiamo la cassaforte Ø Con l altra chiave (privata) apriamo la cassaforte Public key Private key 4 Cifrari asimmetrici chiave privata di Bob m m canale insicuro chiave pubblica di Bob Bob 5 2
Cifrari asimmetrici chiave privata sk file pubblico utente chiave pubblica pk 6 Cifratura chiave privata sk file pubblico utente chiave pubblica pk canale insicuro Devo cifrare il messaggio m ed inviarlo ad Bob 7 chiave privata sk Cifratura file pubblico utente chiave pubblica pk canale insicuro C Cifratura di m per C CIFRA (pk, m) Bob 8 3
Decifratura Devo decifrare il messaggio cifrato C file pubblico utente chiave pubblica pk?? C? 9 Decifratura chiave privata sk file pubblico utente chiave pubblica pk Decifratura di C m DECIFRA (sk, C) C 10 Cifrari asimmetrici Chiunque può cifrare un messaggio per Solo può decifrare un messaggio cifrato per lei Non ci sono chiavi condivise tra gli utenti Ogni utente genera da solo la propria coppia di chiavi (public key, private key) e rende pubblica la chiave pubblica Ogni utente memorizza una sola chiave (privata) 11 4
Cifrari simmetrici e asimmetrici Vantaggi della crittografia a chiave pubblica Chiavi private mai trasmesse Possibile la firma digitale Vantaggi della crittografia a chiave privata Molto più veloce (ad es., DES è 100 volte più veloce di RSA, in hardware tra 1.000 e 10.000 volte) Sufficiente in diverse situazioni (ad esempio, applicazioni per singolo utente) 12 Schema di cifratura a chiave pubblica E una tripla di algoritmi ppt (Gen, Enc, Dec): Gen: algoritmo di generazione delle chiavi (pk,sk) ß Gen (1 n ) Enc: algoritmo di cifratura c ß Enc pk (m) Dec: algoritmo di decifratura (deterministico) m ß Dec sk (c) Correttezza: Dec sk (Enc pk (m)) = m 13 Sicurezza Vedremo varie definizioni Sicurezza rispetto a Eavesdropping Attack (EAV) Sicurezza rispetto a Chosen Plaintext Attack (CPA) Sicurezza rispetto a Chosen Ciphertext Attack (CCA) 14 5
Sicurezza EAV Siano Π=(Gen, Enc, Dec) uno schema di cifratura a chiave pubblica un avversario passivo che intercetta un singolo testo cifrato (eavesdropper) Definiamo l esperimento PubK,Π eav (n) 15 Esperimento PubK,Π eav (n) (pk,sk)ßgen(1 n ) Su input pk, dà in output due messaggi m 0,m 1 di ugual lunghezza Sia b un bit scelto a caso e cßenc pk (m b ) (challenge ciphertex) Su input (pk, c), dà in output un bit b L output dell esperimento è 1 se b =b 0 altrimenti 16 Sicurezza EAV ha successo se l output di PubK,Π eav (n) è 1 -determina quale dei due messaggi è stato cifrato Il vantaggio di è definito come Adv,Π PubK,eav (n) = Pr[PubK,Π eav (n) = 1]-1/2 17 6
Sicurezza EAV Lo schema Π=(Gen, Enc, Dec) è EAV-sicuro (fornisce cifrature indistinguibili rispetto ad un avversario passivo) se per ogni avversario passivo polinomiale esiste una funzione trascurabile negl tale che Adv,Π PubK,eav (n) negl(n) 18 Sicurezza CPA Il fatto che conosca pk ed Enc lo rende capace di cifrare qualsiasi messaggio di sua scelta Equivale all accesso ad un oracolo di cifratura Enc pk () Su input un messaggio m (query), l oracolo restituisce Enc pk (m) 19 Esperimento PubK,Π cpa (n) (pk,sk)ßgen(1 n ) Su input pk ed accesso all oracolo Enc pk (), dà in output due messaggi m 0,m 1 di ugual lunghezza Sia b un bit scelto a caso e cßenc pk (m b ) Su input (pk, c), dà in output un bit b L output dell esperimento è 1 se b =b 0 altrimenti 20 7
Sicurezza CPA ha successo se l output di PubK,Π cpa (n) è 1 -determina quale dei due messaggi è stato cifrato Il vantaggio di è definito come Adv,Π PubK,cpa (n) = Pr[PubK,Π cpa (n) = 1]-1/2 21 Sicurezza CPA Lo schema Π=(Gen, Enc, Dec) è CPA-sicuro se per ogni avversario polinomiale esiste una funzione trascurabile negl tale che Adv,Π PubK,cpa (n) negl(n) 22 Equivalenza delle definizioni Uno schema di cifratura a chiave pubblica è CPA-sicuro se e solo se è EAV-sicuro 23 8
Impossibilità della sicurezza perfetta Nessuno schema di cifratura a chiave pubblica offre sicurezza perfetta Un avversario con risorse illimitate, su input (pk,c), dove cßenc pk (m), può determinare m con probabilità 1! 24 Insicurezza della cifratura deterministica Nessuno schema di cifratura a chiave pubblica in cui Enc è deterministica è CPA-sicuro Se cifriamo due volte lo stesso m otteniamo lo stesso c Se l insieme dei messaggi in chiaro è piccolo è facile risalire al messaggio m 25 Cifrature multiple Finora abbiamo considerato un avversario che osserva un singolo messaggio cifrato Che accade nel caso di cifrature multiple (ottenute con la stessa chiave pk)? Modifichiamo l esperimento PubK,Π cpa (n) facendo dare in output a due liste M 0, M 1 di messaggi di ugual lunghezza Dopo la scelta del bit b, ciascun messaggio in M b viene inviato a Enc pk (), che fornisce la lista dei cifrati 26 9
Cifrature multiple Per modellare avversari che scelgono i messaggi da cifrare adattivamente, consideriamo l oracolo Left-or-Right LR pk,b (,) che Su input due messaggi m 0,m 1 di ugual lunghezza, computa cßenc pk (m b ) Se b=0, cifra il left message Se b=1, cifra il right message La lista dei messaggi cifrati si ottiene con query successive all oracolo 27 Esperimento PubK,Π LR-cpa (n) (pk,sk)ßgen(1 n ) Sia b un bit scelto a caso Su input pk ed accesso all oracolo LR pk,b (,), dà in output un bit b L output dell esperimento è 1 se b =b 0 altrimenti 28 Esperimento Pub,Π LR-cpa (n) ha successo se l output di PubK,Π LR-cpa (n) è 1 Il vantaggio di è definito come Adv,Π PubK,LR-cpa (n)= Pr[PubK,Π LR-cpa (n) = 1]-1/2 29 10
Esperimento Pub,Π LR-cpa (n) Lo schema Π=(Gen, Enc, Dec) fornisce cifrature multiple indistinguibili (rispetto a un attacco CPA) se per ogni avversario polinomiale esiste una funzione trascurabile negl tale che Adv,Π PubK,LR-cpa (n) negl(n) 30 Sicurezza CPA e cifrature multiple Teorema 11.6 Se Π=(Gen, Enc, Dec) è CPA-sicuro, allora fornisce anche cifrature multiple indistinguibili (rispetto a un attacco CPA) 31 Sia Π=(Gen, Enc, Dec) uno schema CPAsicuro Sia un avversario polinomiale nell esperimento PubK,Π LR-cpa (n) Supponiamo che faccia solo 2 query all oracolo LR (versione semplificata) (m 1,0,m 1,1 ) e (m 2,0,m 2,1 ) Nella prova completa, numero di query polinomiale in n 32 11
Nell esperimento, l avversario riceve Enc pk (m 1,0 ), Enc pk (m 2,0 ) se b=0 (left) Enc pk (m 1,1 ), Enc pk (m 2,1 ) se b=1 (right) Consideriamo le distribuzioni di coppie di testi cifrati C 0 : coppie del tipo (Enc pk (m 1,0 ), Enc pk (m 2,0 )) C 1 : coppie del tipo (Enc pk (m 1,1 ), Enc pk (m 2,1 )) Definiamo una terza distribuzione ibrida C 01 : coppie del tipo (Enc pk (m 1,0 ), Enc pk (m 2,1 )) 33 Mostreremo che le due distribuzioni C 0 e C 1 sono indistinguibili tra loro, cioè che esiste una funzione trascurabile negl tale che Pr[ (pk, Enc pk (m 1,0 ), Enc pk (m 2,0 ))=1] -Pr[ (pk, Enc pk (m 1,1 ), Enc pk (m 2,1 ))=1] negl(n) 34 Per provare che C 0 e C 1 sono indistinguibili tra loro mostreremo che entrambe sono indistinguibili da C 01, in particolare che C 0 è indistinguibile da C 01 C 01 è indistinguibile da C 1 Per far ciò sfrutteremo il fatto che Π è CPAsicuro 35 12
Mostriamo che C 0 è indistinguibile da C 01, cioè che esiste una funzione trascurabile negl tale che Pr[ (pk, Enc pk (m 1,0 ), Enc pk (m 2,0 ))=1] -Pr[ (pk, Enc pk (m 1,0 ), Enc pk (m 2,1 ))=1] negl(n) Gli input di differiscono solo nel secondo elemento! 36 Quindi ci basta mostrare che esiste una funzione trascurabile negl tale che Pr[ (pk, Enc pk (m 2,0 ))=1]-Pr[ (pk, Enc pk (m 2,1 ))=1] negl(n) Ma questo è vero, perché Π è CPA-sicuro! 37 Mostriamo che C 01 è indistinguibile da C 1, cioè che esiste una funzione trascurabile negl tale che Pr[ (pk, Enc pk (m 1,0 ), Enc pk (m 2,1 ))=1] -Pr[ (pk, Enc pk (m 1,1 ), Enc pk (m 2,1 ))=1] negl(n) Gli input di differiscono solo nel primo elemento! 38 13
Quindi ci basta mostrare che esiste una funzione trascurabile negl tale che Pr[ (pk, Enc pk (m 1,0 ))=1]-Pr[ (pk, Enc pk (m 1,1 ))=1] negl(n) Ma questo è vero, perché Π è CPA-sicuro! 39 Dato che C 0 è indistinguibile da C 01 e C 01 è indistinguibile da C 1, segue che C 0 è indistinguibile da C 1 Quindi lo schema Π fornisce cifrature multiple indistinguibili nel caso in cui le query all oracolo LR siano 2 40 Nella prova semplificata il numero di query è 2 Utilizza una distribuzione ibrida tra le due distribuzioni C 0 e C 1 di coppie di cifrati Nella prova completa il numero di query è t=poly(n) Utilizza t-1 distribuzioni ibride tra le due distribuzioni C 0 e C 1 di coppie di cifrati Ciascuna distribuzione differisce dalla precedente solo per un elemento Ciascuna coppia di distribuzioni contigue è indistinguibile (segue dal fatto che Π è CPA-sicuro) 41 14
Cifratura messaggi di lunghezza arbitraria Se Π=(Gen, Enc, Dec) è CPA-sicuro per messaggi di lunghezza fissata allora è CPA-sicuro per messaggi di lunghezza arbitraria 42 Cifratura messaggi di lunghezza arbitraria Sia Π=(Gen, Enc, Dec) uno schema per messaggi in {0,1} Possiamo costruire Π =(Gen, Enc, Dec ) per messaggi in {0,1}* Dato m=m 1 m t con m i {0,1}, definiamo Enc pk (m)=enc pk (m 1 ) Enc pk (m t ) Se Π è CPA-sicuro anche Π lo è Enc pk (m) può essere vista come cifratura di t bit usando Π 43 Bibliografia Introduction to Modern Cryptography by J. Katz e Y. Lindell (2nd ed.) cap. 11 (11.1, 11.2, 11.2.1, 11.2.2) 44 15