Crittografia a chiave pubblica



Documenti analoghi
Crittografia a chiave pubblica

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Accordo su chiavi. (key agreement) Alfredo De Santis. Marzo Dipartimento di Informatica Università di Salerno

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)

Introduzione alla Crittografia

Scambio delle chiavi. mercoledì 7 dicembre 2011

Crittografia a chiave pubblica

Cifratura a chiave pubblica Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

Analisi di programmi: Crittografia

Introduzione alla crittografia con OpenPGP

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette

Seminario Sull Algoritmo R.S.A.

Crittografia a chiave pubblica - Un invito a RSA

Crittografia. Primalità e Fattorizzazione. Corso di Laurea Specialistica. in Informatica

Cifratura Asimmetrica

Un po di teoria dei numeri

RSA. Chiavi RSA. Firma Digitale. Firma Digitale. Firma Digitale. Desiderata per la Firma Digitale. Corso di Sicurezza su Reti 1

Aspetti Crittografici nel Cloud Computing

Crittografia e Sicurezza Informatica

Sicurezza nei Sistemi Distribuiti

Sicurezza nei Sistemi Distribuiti

Firma digitale e PEC: aspetti crittografici e sicurezza

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

Cifratura Asimmetrica

Altri cifrari a blocchi

Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO

Capitolo 8 La sicurezza nelle reti

PRIMAVERA IN BICOCCA

Cenni di crittografia. Luca Anselma

Sicurezza dei sistemi informatici Firma elettronica E-commerce

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

La crittografia a chiave pubblica per giocare e imparare: il gioco del codice RSA (parte prima)

Sommario. Introduzione alla Sicurezza Web

Crittografia e Protocolli di Sicurezza

RETI DI CALCOLATORI. Crittografia. La crittografia

Argomenti Crittografia Firma digitale e certificati Certification Authority e PKI La normativa

Approfondimento di Marco Mulas

Crittografia e sicurezza delle reti

Crittografia a chiave pubblica

Cifratura. Decifratura. Cifratura. Decifratura. Crittografia a chiave pubblica ed a chiave privata. Corso di Sicurezza su Reti 1

Quasar Sistemi S.r.l.

Sicurezza nelle applicazioni multimediali: lezione 7, sicurezza dei protocolli. Sicurezza dei protocolli (https, pop3s, imaps, esmtp )

Crittografia. Crittografia Definizione. Sicurezza e qualità dei servizi su internet Università degli Studi di Pavia, C.

metodi crittografici maurizio pizzonia sicurezza dei sistemi informatici e delle reti

Firma digitale Definizione

Crittografia e sicurezza delle reti. Alberto Marchetti Spaccamela

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it

NUMERI PRIMI E CRITTOGRAFIA

La sicurezza nelle reti di calcolatori

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

Firma digitale e PEC: facili e sicure

Protezione del Software

Crittografia. Una Panoramica

Certificati digitali con CAcert Un'autorità di certificazione no-profit

Protezione della posta elettronica mediante crittografia

un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico

PRINCIPI DI COMPUTER SECURITY. Andrea Paoloni

Sicurezza nelle applicazioni multimediali: lezione 8, sicurezza ai livelli di rete e data-link. Sicurezza ai livelli di rete e data link

Aspetti crittografici dell online banking

Il sistema di crittografia NTRU

Metodologie Informatiche Applicate al Turismo 7. Aspetti di sicurezza nell reti

Lezione 7 Sicurezza delle informazioni

Informatica. Rappresentazione dei numeri Numerazione binaria

E necessaria la chiave segreta? RSA. Funzioni One-way con Trapdoor. Un secondo protocollo

Documenti cartacei e digitali. Autenticità. Cosa si vuole garantire? Riservatezza. Integrità 11/12/2012. PA digitale: documenti e firme (I.

Transcript:

Crittografia a chiave pubblica Cifrari simmetrici Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci canale insicuro 1 Problemi Gestione delle chiavi Come fanno e a condividere una chiave comune? Uso di un canale privato - un corriere fidato - un incontro faccia a faccia in un posto segreto Uso di una terza parte fidata... - che stabilisce la chiave di sessione e la invia ad entrambi in modo sicuro... 2 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 e dell ordine di n 2 /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 Cifrari asimmetrici chiave privata di Usano una cassaforte con due lucchetti Con una chiave (pubblica) chiudiamo la cassaforte Con l altra chiave (privata) apriamo la cassaforte m m Public key Private key 4 chiave pubblica di canale insicuro 5 Cifrari asimmetrici Cifratura kpriv kpub kpriv kpub canale insicuro Devo cifrare il messaggio M ed inviarlo ad 6 7

kpriv Cifratura kpub canale insicuro C Devo decifrare il messaggio cifrato C Decifratura kpub?? C? Cifratura di M per C CIFRA (kpub, M) 8 9 Decifratura Cifrari asimmetrici kpriv kpub Decifratura di C M DECIFRA (kpriv, C) C 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) 10 11

Cifrari simmetrici e asimmetrici Vantaggi della crittografia a chiave pubblica Chiavi private mai trasmesse Possibile la firma digitale Vantaggi della crittografia a 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) kpriv Cifrari ibridi kpub canale insicuro C 1 C 2 Cifratura di M per k genera chiave sessione C 1 CIFRA (kpub, k) C 2 E (k, M) 12 13 Cifrari ibridi Cifrari asimmetrici kpriv kpub Come realizzarli? Decifratura di C 1,C 2 k DECIFRA (kpriv, C 1 ) M D (k, C 2 ) C 1,C 2 14 15

Funzioni one-way Facili da calcolare e difficili da invertire Funzioni one-way trapdoor Facili da calcolare e difficili da invertire a meno che si conosca una trapdoor 16 17 RSA Chiavi RSA Proposto nel 1978 da Rivest Shamir Adleman (n,d) (n,e) n = pq p,q primi gcd(e, (p-1)(q-1))=1 ed = 1 mod (p-1)(q-1) 18 19

Cifratura RSA Cifratura RSA (n,d) (n,e) canale insicuro (n,d) (n,e) canale insicuro C Devo cifrare il messaggio M ed inviarlo ad Cifratura di M per C M e mod n 20 21 Decifratura RSA Decifratura RSA Devo decifrare il messaggio cifrato C (n,e) C?? C? (n,d) (n,e) Decifratura di C M C d mod n C 22 23

Piccolo esempio: Chiavi RSA Piccolo esempio: Cifratura RSA (n=3337, d=1019) (n = 3337, e = 79) 1570 (n = 3337, e = 79) 3337 = 47 71 p = 47, q = 71 ed = 79 1019 = 1 mod 3220 (p-1)(q-1) = 46 70 = 3220 Cifratura di M = 688 per 1570 688 79 mod 3337 24 25 Piccolo esempio: Decifratura RSA Correttezza decifratura RSA (n=3337, d=1019) (n = 3337, e = 79) Decifratura di C = 1570 688 1570 1019 mod 3337 1570 26 C d mod n = (M e ) d mod n = M ed mod n = M 1+k(p-1)(q-1) mod n = M (M (p-1)(q-1) ) k = M mod n = M Teorema di Eulero M Z n * M (p-1)(q-1) =1 mod n poichè 0 M<n ed = 1 mod (p-1)(q-1) Per Per M Z M Z n /Z n /Z n * n *usa il il teorema cinese cinese del del resto resto 27

Efficienza delle computazioni Generazione chiavi RSA utilizza le seguenti computazioni Generazione numeri primi p e q generazione di e Generazione e,d d e -1 mod (p-1)(q-1) Elevazione a potenza modulare Per cifratura e decifratura 1. Input L (lunghezza modulo) 2. Genera 2 primi di di lunghezza L/2 3. n p q q 4. Scegli a caso e 5. If gcd ( e, e, (p-1)(q-1) ) = 1 then d e -1-1 mod (p-1)(q-1) else goto 4. 28 29 Scelta esponente pubblico Minimizzare operazioni per elevazione a potenza e 3 e 2 16 +1 decimale 65.537 binario 10000000000000001 Generazione chiavi (comunemente usata in pratica) 1. Input L (lunghezza modulo) 2. e 3 oppure e 2 16 16 +1 (= (= 65.537) 3. Genera 2 primi di di lunghezza L/2 4. n p q q 5. If gcd ( e, e, (p-1)(q-1) ) = 1 then d e -1-1 mod (p-1)(q-1) else goto 3. 30 31

RSA Performance Sicurezza di RSA Celeron 850MHz, Windows 2000, Crypto++, 512 bit cifratura millisecondi/ operazione 0,14 Sicurezza della generazione delle chiavi 512 bit decifratura 1,93 1024 bit cifratura 0,32 1024 bit 2048 bit decifratura cifratura 10,23 0,89 C Sicurezza della cifratura 2048 bit decifratura 64,13 32 33 Sicurezza generazione chiavi di RSA Conoscendo la chiave pubblica (n,e) vuole calcolare la d=e -1 mod (p-1)(q-1) Attacco 1: fattorizzare n Se 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) 34 35

Attacco 2: computare ϕ(n) Se potesse computare ϕ(n)=(p-1)(q-1), saprebbe fattorizzare n n = pq ϕ(n) = (p-1)(q-1) sostituendo p = n/q p 2 -(n-ϕ(n)+1)p + n = 0 Due soluzioni: p,q Attacco 2: computare ϕ(n) Se potesse computare ϕ(n) = (p-1)(q-1), Saprebbe fattorizzare n n = pq ϕ(n) = (p-1)(q-1) sostituendo p = n/q p 2 -(n-ϕ(n)+1)p + n = 0 84.773.093 = pq p 2-18.426 p + 84.773.093 = 0 84.754.668 = (p-1)(q-1) radici: 9539 e 8887 36 37 Attacco 3: computare d Algoritmo Las Vegas per fattorizzare Se potesse computare d saprebbe fattorizzare n (n,e) Calcola d d Un algoritmo che computa d (con input n,e) può essere usato come oracolo in un algoritmo Las Vegas che fattorizza n con probabilità 1/2 (n,e) Fattorizza n Calcola d (p,q) nessuna risposta prob 1/2 prob 1/2 38 39

Sicurezza generazione chiavi di RSA Fattorizza n Computa d Computa d Fattorizza n Computare d è equivalente a fattorizzare n Fattorizzazione Dato n, calcolare due primi p, q >1 tali che n=pq Per valori grandi di n è un problema ritenuto computazionalmente difficile Complessità di tempo sub-esponenziale in media Running time O(2 o(k) ), dove k è la taglia dell input f(n) f(n)=o(g(n)) se lim = 0 n g(n) 40 41 Fattorizzazione: un semplice algoritmo Fattorizzazione: complessità algoritmi Calcolo di un fattore primo: Per tutti i primi p in [2, n ] Se p n allora p è fattore di n Complessità caso peggiore Θ( ) = Θ(2 1/2 log n ) (esponenziale nella lunghezza dell input) Se n ha 512 bit allora 256 n 2 n 42 Complessità di tempo sub-esponenziale in media L q [a,c] = O(e (c+o(1))(ln q)a (lnln q) 1-a ) con c > 0 ed 0 < a < 1 Algoritmo basato su curve ellittiche: L n [ 1/2, 1] Quadratic sieve: L n [ 1/2, 1] General number field sieve: L n [ 1/3, 1.923] il più veloce 43

Fattorizzazione: sfide Nel 1977 gli inventori di RSA 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 Fattorizzazione: progressi 1 mips per anno 3 10 13 istruzioni anno numero digit numero bit mips per anno algoritmo 1984 71 236 0.01 QS 1988 106 350 140 QS 1993 120 397 825 QS 1994 129 425 5000 QS 1996 130 430 500 GNFS 1999 155 512 8000 GNFS 2003 174 576 2005 193 640 RSA-129 1600 computer per 8 mesi RSA-193 5 mesi 44 45 Prossima sfida RSA Che modulo scegliere? $ 30.000 a chi fattorizza RSA-704 (212 digit) 74037563479561712828046796097429573142593188889231 28908493623263897276503402826627689199641962511784 39958943305021275853701189680982867331732731089309 00552505116877063299072396380786710086096962537934 650563796359 http://www.rsasecurity.com/rsalabs/node.asp?id=2093 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 46 47

Sicurezza cifratura RSA Conoscendo la chiave pubblica (n,e) e il messaggio cifrato C M e mod n vuole calcolare il messaggio M Sicurezza cifratura RSA Se potesse fattorizzare n saprebbe computare M 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 48 49 Sicurezza cifratura RSA Altri attacchi ad RSA Se potesse computare M Importante problema aperto: non si sa se questo sia computazionalmente equivalente a fattorizzare! Attacchi non basati sul problema della fattorizzazione Chosen ciphertext attack Common modulus attack Low exponent attack Attacchi ad implementazioni 50 51

Chosen ciphertext attack C 1 = M 1 e mod n (M 1 M 2 ) e = M 1e M 2 e = C 1 C 2 mod n C 2 = M 2 e mod n Proprietà di omomorfismo Common Modulus Attack Stesso modulo n per diverse chiavi pubbliche Chiave : (n,e 1 ), chiave : (n,e 2 ) gcd(e 1,e 2 )=1 Obiettivo: decifrare C (= M e mod n) Decifrazione (d,n) M' = (C') d =(C x e ) d = C d x mod n C' C x e mod n M' (C') d mod n Scelgo x a caso M M' x -1 mod n Stesso messaggio M inviato ai vari utenti Cifratura per : C 1 =M e1 mod n, Cifratura per : C 2 =M e2 mod n E semplice risalire ad M Usa Euclide esteso per calcolare x, y tali che 1=e 1 x+e 2 y C 1x C 2y mod n = (M e1 ) x (M e2 ) y =M e1x+e2y = M 52 53 Low Exponent Attack RSA: Attacchi ad implementazioni Stesso e per diverse chiavi pubbliche Chiave : (n 1,3), chiave : (n 2,3), chiave Eva: (n 3,3) gcd(n i,n j )=1, i j Stesso messaggio M inviato ai vari utenti Cifratura per : C 1 =M 3 mod n 1 Cifratura per : C 2 =M 3 mod n 2 Cifratura per Eva: C 3 =M 3 mod n 3 E semplice risalire ad M Usa Teorema cinese del resto per calcolare la soluzione di x C 1 mod n 1 x=m 3 mod n 1 n 2 n 3 x C 2 mod n 2 x C poi calcola M=x 1/3 3 mod n 3 54 Timing Attack [Kocher, 97] Ricava i bit di d uno alla volta, analizzando il tempo richiesto per l esponenziazione modulare (decifratura) Power Attack [Kocher, 99] Ricava d analizzando la potenza consumata da una smartcard durante la decifratura Contromisure 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) 55

Bibliografia Cryptography and Network Security by W. Stallings (2005) 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) 56