Crittografia a chiave pubblica - Dipartimento di Informatica
by user
Comments
Transcript
Crittografia a chiave pubblica - Dipartimento di Informatica
Crittografia a chiave pubblica Cifrari simmetrici Barbara Masucci Dipartimento di Informatica ed Applicazioni Alice Università di Salerno canale insicuro [email protected] http://www.dia.unisa.it/professori/masucci Bob Barbara Masucci - DIA – Università di Salerno Gestione delle chiavi Problemi Come fanno Alice e Bob a condividere In una rete con n utenti ogni coppia di utenti deve condividere una chiave una chiave comune? - Ogni utente deve memorizzare n-1 chiavi Uso di un canale privato - Il numero totale delle chiavi segrete e’ dell’ordine di n2/2 - un corriere fidato… - un incontro faccia a faccia in un posto segreto… - che stabilisce la chiave di sessione e la invia ad Barbara Masucci - DIA – Università di Salerno L’aggiunta di un nuovo utente alla rete implica la distribuzione della chiave a tutti i precedenti utenti... Uso di una terza parte fidata... entrambi in modo sicuro... 1 Soluzione: cifrari asimmetrici 2 Barbara Masucci - DIA – Università di Salerno 3 Cifrari asimmetrici Cifrari asimmetrici Usano una cassaforte con due lucchetti m ¾Con una chiave (pubblica) chiudiamo la cassaforte ¾Con l’altra chiave (privata) apriamo la cassaforte m Alice can a chiave pubblica di Bob Public key ≠ Private key ≠ 4 Barbara Masucci - DIA – Università di Salerno chiave privata kpriv utente chiave pubblica … file pubblico utente chiave pubblica Alice kpub … … Alice Alice 6 kpub … canal e insi curo Devo cifrare il messaggio M ed inviarlo ad Alice Barbara Masucci - DIA – Università di Salerno Bob 5 Cifratura file pubblico Alice le i nsic uro Barbara Masucci - DIA – Università di Salerno Cifrari asimmetrici chiave privata kpriv chiave privata di Bob Barbara Masucci - DIA – Università di Salerno Bob 7 Cifratura chiave privata kpriv Decifratura file pubblico Devo decifrare il messaggio cifrato C utente chiave pubblica Alice … kpub … file pubblico utente chiave pubblica Alice kpub … … C canal e insi curo Alice C? Cifratura di M per Alice C ← CIFRA (kpub, M) Alice Bob 8 Barbara Masucci - DIA – Università di Salerno Decifratura chiave privata kpriv … Decifratura di C M ← DECIFRA (kpriv, C) Barbara Masucci - DIA – Università di Salerno 9 ¾ Chiunque può cifrare un messaggio per Alice ¾ Solo Alice può decifrare un messaggio cifrato per lei ¾ Non ci sono chiavi condivise tra gli utenti utente chiave pubblica Alice kpub Alice Barbara Masucci - DIA – Università di Salerno Cifrari asimmetrici file pubblico … ?? ¾ Ogni utente genera da solo la propria coppia di chiavi (public key, private key) e rende pubblica la chiave pubblica C ¾ Ogni utente memorizza una sola chiave (privata) 10 Barbara Masucci - DIA – Università di Salerno 11 Cifrari simmetrici e asimmetrici Cifrari ibridi chiave privata kpriv Vantaggi della crittografia a chiave pubblica ¾ Chiavi private mai trasmesse ¾ Possibile la firma digitale Alice 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 Barbara Masucci - DIA – Università di Salerno Cifrari ibridi chiave privata kpriv file pubblico utente chiave pubblica Alice C C 2 kpub … canal 1 e insi curo Cifratura di M per Alice k ← genera chiave sessione C1 ← CIFRA (kpub, k) C2 ← E (k, M) Bob Barbara Masucci - DIA – Università di Salerno 13 Cifrari asimmetrici file pubblico utente chiave pubblica Alice kpub … Decifratura di C1,C2 k ← DECIFRA (kpriv, C1) M ← D (k, C2) Alice Barbara Masucci - DIA – Università di Salerno Come realizzarli? … C1,C2 14 Barbara Masucci - DIA – Università di Salerno 15 Funzioni one-way Funzioni one-way trapdoor “Facili” da calcolare e “Facili” da calcolare e “difficili” da invertire “difficili” da invertire … a meno che si conosca una “trapdoor” Barbara Masucci - DIA – Università di Salerno 16 RSA Chiavi RSA Proposto nel 1978 da chiave privata (n,d) file pubblico utente chiave pubblica Alice (n,e) … Rivest Shamir … n = pq p,q primi Adleman Alice Barbara Masucci - DIA – Università di Salerno 17 Barbara Masucci - DIA – Università di Salerno 18 gcd(e, (p-1)(q-1))=1 ed = 1 mod (p-1)(q-1) Barbara Masucci - DIA – Università di Salerno 19 Cifratura RSA Cifratura RSA chiave privata (n,d) chiave privata (n,d) file pubblico utente chiave pubblica Alice … (n,e) … … canal e insi curo Alice 20 … Alice … C Barbara Masucci - DIA – Università di Salerno 21 Barbara Masucci - DIA – Università di Salerno Decifratura RSA file pubblico file pubblico utente chiave pubblica Alice (n,e) Bob C ← Me mod n Decifratura RSA Devo decifrare il messaggio cifrato C C Cifratura di M per Alice Bob Barbara Masucci - DIA – Università di Salerno … canal e insi curo Alice Devo cifrare il messaggio M ed inviarlo ad Alice file pubblico utente chiave pubblica (n,e) Alice chiave privata (n,d) ?? utente chiave pubblica Alice (n,e) … Decifratura di C M ← C d mod n C? Alice 22 Barbara Masucci - DIA – Università di Salerno … C 23 “Piccolo” esempio: “Piccolo” esempio: Chiavi RSA chiave privata (n=3337, d=1019) Cifratura RSA file pubblico utente Alice … file pubblico chiave pubblica 1570 (n = 3337, e = 79) … utente chiave pubblica Alice … (n = 3337, e = 79) … 3337 = 47 ·71 p = 47, q = 71 Alice Cifratura di M = 688 per Alice 79 1570 ← 688 mod 3337 ed = 79 ·1019 = 1 mod 3220 (p-1)(q-1) = 46 ·70 = 3220 Bob 24 Barbara Masucci - DIA – Università di Salerno “Piccolo” esempio: Correttezza decifratura RSA Decifratura RSA chiave privata (n=3337, d=1019) utente Alice … 25 Barbara Masucci - DIA – Università di Salerno file pubblico Cd mod n = (Me)d mod n ed = 1 mod (p-1)(q-1) ed = M mod n = M1+k(p-1)(q-1) mod n = M·(M(p-1)(q-1))k Teorema di Eulero M∈Zn* ⇒ M =1 mod n = M mod n Per ∈Zn//Z Z * usa Per M M∈Z n nn* usa il teorema cinese del il teorema cinese del resto resto =M chiave pubblica (n = 3337, e = 79) … Decifratura di C = 1570 1019 mod 3337 688 ← 1570 (p-1)(q-1) Alice 1570 poichè 0≤M<n Barbara Masucci - DIA – Università di Salerno 26 Barbara Masucci - DIA – Università di Salerno 27 Efficienza delle computazioni Generazione chiavi RSA utilizza le seguenti computazioni 1. 1. Input Input LL (lunghezza (lunghezza modulo) modulo) 2. 2. Genera Genera 22 primi primi di di lunghezza lunghezza L/2 L/2 3. 3. nn ← ← pp ·q ·q 4. 4. Scegli Scegli aa caso caso ee 5. 5. If If gcd gcd (( e, e, (p-1)(q-1) (p-1)(q-1) )) == 11 then then dd ← ← ee-1-1 mod mod (p-1)(q-1) (p-1)(q-1) else else goto goto 4. 4. ¾Generazione numeri primi p e q ¾Generazione e,d generazione di e d ← e-1 mod (p-1)(q-1) ¾Elevazione a potenza modulare ¾Per cifratura e decifratura Barbara Masucci - DIA – Università di Salerno 28 Scelta esponente pubblico ¾Minimizzare operazioni per elevazione a potenza 29 Generazione chiavi (comunemente usata in pratica) 1. 1. Input Input LL (lunghezza (lunghezza modulo) modulo) 16+1 2. 2. ee ← ← 33 oppure oppure ee ← ← 2216 +1 (= (= 65.537) 65.537) 3. 3. Genera Genera 22 primi primi di di lunghezza lunghezza L/2 L/2 4. 4. nn ← ← pp ·q ·q 5. 5. If If gcd gcd (( e, e, (p-1)(q-1) (p-1)(q-1) )) == 11 then then dd ← ← ee-1-1 mod mod (p-1)(q-1) (p-1)(q-1) else else goto goto 3. 3. ¾e←3 ¾ e ← 216+1 ¾decimale 65.537 ¾binario 10000000000000001 Barbara Masucci - DIA – Università di Salerno Barbara Masucci - DIA – Università di Salerno 30 Barbara Masucci - DIA – Università di Salerno 31 Sicurezza di RSA RSA Performance Celeron 850MHz, Windows 2000, Crypto++, millisecondi/ operazione 512 bit cifratura 0,14 512 bit decifratura 1,93 1024 bit cifratura 0,32 1024 bit decifratura 10,23 2048 bit cifratura 0,89 2048 bit decifratura 64,13 Barbara Masucci - DIA – Università di Salerno Sicurezza della generazione delle chiavi C 32 Sicurezza generazione chiavi di RSA Sicurezza della cifratura Barbara Masucci - DIA – Università di Salerno 33 Attacco 1: fattorizzare n Se Conoscendo la chiave pubblica (n,e) potesse fattorizzare n, saprebbe computare d 1. Fattorizza n 2. Computa ϕ(n)=(p-1)(q-1) 3. Computa d ← e-1 mod (p-1)(q-1) vuole calcolare la chiave privata d=e-1 mod (p-1)(q-1) Barbara Masucci - DIA – Università di Salerno 34 Barbara Masucci - DIA – Università di Salerno 35 Attacco 2: computare ϕ(n) Attacco 2: computare ϕ(n) Se Se potesse computare ϕ(n)=(p-1)(q-1), Saprebbe fattorizzare n saprebbe fattorizzare n n = pq ϕ(n) = (p-1)(q-1) ϕ(n) = (p-1)(q-1) 84.773.093 = pq p2- 18.426 p + 84.773.093 = 0 84.754.668 = (p-1)(q-1) radici: 9539 e 8887 Due soluzioni: p,q 36 37 Barbara Masucci - DIA – Università di Salerno Algoritmo Las Vegas per fattorizzare Attacco 3: computare d Se sostituendo p = n/q 2 p - (n-ϕ(n)+1)p + n = 0 n = pq sostituendo p = n/q p2- (n-ϕ(n)+1)p + n = 0 Barbara Masucci - DIA – Università di Salerno potesse computare ϕ(n) = (p-1)(q-1), potesse computare d saprebbe (n,e) Calcola fattorizzare n d d Un algoritmo che computa d (con input n,e) può essere usato come oracolo in un algoritmo Las Vegas che (n,e) fattorizza n con probabilità ≥1/2 Barbara Masucci - DIA – Università di Salerno Fattorizza n Calcola d 38 (p,q) nessuna risposta Barbara Masucci - DIA – Università di Salerno prob 1/2 prob 1/2 39 Sicurezza generazione chiavi di RSA Fattorizzazione Fattorizza n Æ Computa d ¾Dato n, calcolare due primi p, q >1 tali che n=pq Computa d ¾ Per valori grandi di n è un problema ritenuto computazionalmente difficile Æ Fattorizza n ¾Complessità di tempo sub-esponenziale in media Computare d è equivalente a fattorizzare n 40 Barbara Masucci - DIA – Università di Salerno Calcolo di un fattore primo: a n] con c > 0 ed 0 < a < 1 (esponenziale nella lunghezza dell’input) Barbara Masucci - DIA – Università di Salerno 1-a Lq[a,c] = O(e(c+o(1))(ln q) (lnln q) ) Complessità caso peggiore Θ( n ) = Θ(21/2 log n) n ≈2 41 Barbara Masucci - DIA – Università di Salerno Complessità di tempo sub-esponenziale in media Se p|n allora p è fattore di n Se n ha 512 bit allora f(n) =0 ¾f(n)=o(g(n)) se lim n →∞ g(n) Fattorizzazione: complessità algoritmi Fattorizzazione: un semplice algoritmo Per tutti i primi p in [2, ¾ Running time O(2o(k)), dove k è la taglia dell’input ¾ Algoritmo basato su curve ellittiche: Ln[ 1/2, 1] ¾ Quadratic sieve: Ln[ 1/2, 1] ¾ General number field sieve: Ln[ 1/3, 1.923] 256 il più veloce 42 Barbara Masucci - DIA – Università di Salerno 43 Fattorizzazione: progressi Fattorizzazione: sfide 1 mips per anno 13 ≈ 3 ·10 istruzioni ¾ Nel 1977 gli inventori di RSA anno 1984 1988 1993 1994 1996 1999 2003 2005 ¾ Pubblicarono una sfida ¾ Rompere RSA con una chiave di 428 bit, premio 100 $ ¾ Stimarono il tempo richiesto: 40 quadrilioni di anni ¾ Nel 1994: task force di Internet ha reclamato il premio dopo 9 mesi di lavoro ¾ RSA Laboratories ¾ Altre sfide con chiavi di varia lunghezza ¾ Ultima sfida vinta: chiave con 512 bit Barbara Masucci - DIA – Università di Salerno numero digit 71 106 120 129 130 155 174 193 numero bit 236 350 397 425 430 512 576 640 mips per anno 0.01 140 825 5000 500 8000 RSARSA-129 1600 computer per 8 mesi 44 Prossima sfida RSA algoritmo QS QS QS QS GNFS GNFS RSARSA-193 5 mesi Barbara Masucci - DIA – Università di Salerno 45 Che modulo scegliere? ¾ $ 30.000 a chi fattorizza RSA-704 (212 digit) 74037563479561712828046796097429573142593188889231 28908493623263897276503402826627689199641962511784 39958943305021275853701189680982867331732731089309 00552505116877063299072396380786710086096962537934 650563796359 ¾ Ad oggi, i numeri più difficili da fattorizzare sono del tipo n = p ·q con p,q primi della stessa lunghezza ¾ … e di almeno (per essere tranquilli!) ¾ 768 bit per uso personale ¾ 1024 bit per le aziende ¾ 2048 per chiavi “importanti” -ad esempio Autorità di Certificazione http://www.rsasecurity.com/rsalabs/node.asp?id=2093 Barbara Masucci - DIA – Università di Salerno 46 Barbara Masucci - DIA – Università di Salerno 47 Sicurezza cifratura RSA Sicurezza cifratura RSA Se Conoscendo la chiave pubblica (n,e) e il computare M messaggio cifrato C ← Me mod n 1. Fattorizza n 2. Computa ϕ(n)=(p-1)(q-1) 3. Computa d ← e-1 mod (p-1)(q-1) 4. Ricava M decifrando C vuole calcolare il messaggio M Barbara Masucci - DIA – Università di Salerno 48 Sicurezza cifratura RSA Se Barbara Masucci - DIA – Università di Salerno 49 Altri attacchi ad RSA ¾Attacchi non basati sul problema della fattorizzazione potesse computare M … Importante problema aperto: non si sa se questo sia computazionalmente equivalente a fattorizzare! Barbara Masucci - DIA – Università di Salerno potesse fattorizzare n saprebbe 50 ¾Chosen ciphertext attack ¾Common modulus attack ¾Low exponent attack ¾Attacchi ad implementazioni Barbara Masucci - DIA – Università di Salerno 51 Chosen ciphertext attack C1 = M1e mod n C2 = M2e mod n Decifrazione Decifrazione (d,n) (d,n) ¾ Stesso modulo n per diverse chiavi pubbliche (M1·M2)e = M1e · M2e = C1·C2 mod n ¾ Chiave Alice: (n,e1), chiave Bob: (n,e2) ¾ gcd(e1,e2)=1 Proprietà di omomorfismo Obiettivo: decifrare C (= Me mod n) ¾ Stesso messaggio M inviato ai vari utenti ¾ Cifratura per Alice: C1=Me1 mod n, ¾ Cifratura per Bob: C2=Me2 mod n Scelgo x a caso C' ← C · xe mod n ¾ E’ semplice risalire ad M M' ← (C')d mod n M' = (C')d =(C ·xe )d = Cd ·x mod n ¾ Usa Euclide–esteso per calcolare x, y tali che 1=e1·x+e2·y ¾ C1x·C2y mod n = (Me1)x·(Me2)y = Me1x+e2y = M M ← M' ·x-1 mod n 52 Barbara Masucci - DIA – Università di Salerno ¾ Stesso e per diverse chiavi pubbliche ¾Ricava i bit di d uno alla volta, analizzando il tempo richiesto per l’esponenziazione modulare (decifratura) ¾ Stesso messaggio M inviato ai vari utenti ¾Power Attack [Kocher, 99] ¾ Cifratura per Alice: C1=M3 mod n1 ¾ Cifratura per Bob: C2=M3 mod n2 ¾ Cifratura per Eva: C3=M3 mod n3 ¾Ricava d analizzando la potenza consumata da una smartcard durante la decifratura ¾Contromisure ¾ E’ semplice risalire ad M ¾ Ritardo costante (tutte le esponenziazioni richiedono lo stesso tempo) ¾ Ritardo casuale (introduce “rumore” per confondere l’avversario) ¾ Blinding (moltiplica il cifrato per un numero casuale prima di decifrare) ¾ Usa Teorema cinese del resto per calcolare la soluzione di x≡C1 mod n1 x=M3 mod n1·n2·n3 poi calcola Barbara Masucci - DIA – Università di Salerno 53 ¾Timing Attack [Kocher, 97] ¾ Chiave Alice: (n1,3), chiave Bob: (n2,3), chiave Eva: (n3,3) ¾ gcd(ni,nj)=1, i≠j x≡C3 mod n3 Barbara Masucci - DIA – Università di Salerno RSA: Attacchi ad implementazioni Low Exponent Attack x≡C2 mod n2 Common Modulus Attack M=x1/3 54 Barbara Masucci - DIA – Università di Salerno 55 Bibliografia ¾Cryptography and Network Security by W. Stallings (2003) ¾cap. 9 (Public-Key Cryptography and RSA) ¾Cryptography: Theory and Practice (I ed.) by D.R. Stinson (1995) ¾cap 5 (The RSA System and Factoring) Barbara Masucci - DIA – Università di Salerno 56