La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

0 Crittografia a chiave asimmetrica o pubblica (PKC) m Proposta pubblicamente nel 1976 da Diffie e Hellman ma nota alla NSA dalla metà degli anni 60, rappresenta.

Presentazioni simili


Presentazione sul tema: "0 Crittografia a chiave asimmetrica o pubblica (PKC) m Proposta pubblicamente nel 1976 da Diffie e Hellman ma nota alla NSA dalla metà degli anni 60, rappresenta."— Transcript della presentazione:

1 0 Crittografia a chiave asimmetrica o pubblica (PKC) m Proposta pubblicamente nel 1976 da Diffie e Hellman ma nota alla NSA dalla metà degli anni 60, rappresenta lavanzamento più significativo nella lunga storia della criptografia m Usa due chiavi: pubblica e privata m Sistema asimmetrico poichè le due estremità non si trovano nella stessa condizione m Rappresenta un complemento e non una sostituzione della criptografia a chiave privata m Fondata sullapplicazione di concetti inerenti la teoria dei numeri

2 1 Crittografia a chiave asimmetrica Perchè? Due importanti problemi da risolvere Distribuzione delle chiavi Come avere delle comunicazioni sicure senza dovere ottenere le chiavi da un KDC fiduciale Firma digitale Come verificare che un messaggio provenga effettivamente da chi se dichiara autore

3 2 Crittografia a chiave pubblica mAnche se può assicurare la segretezza, la crittografia asimmetrica non viene utilizzata per questo scopo a causa dei lunghi tempi computazionali. mViene utilizzata in prevalenza per garantire autenticazione.

4 3 Crittografia a chiave asimmetrica mCiascun utente dispone di una coppia di chiavi (K pu, K pr ), da lui stesso generate: mK pu viene resa pubblica in un elenco centrale, consultabile liberamente, mentre K pr deve restare segreta (la conosce solo il proprietario), mun msg cifrato con una chiave può essere decifrato solo con laltra e viceversa, mdalla conoscenza di K pu non è possibile risalire a K pr

5 4 Testo in chiaro Testo cifrato KdKd KiKi Crittografia a chiave asimmetrica

6 5 Crittografia a chiave pubblica mA cifra un messaggio in chiaro X con la chiave KU b (pubblica) di B, genera il testo cifrato Y e lo recapita a destinazione. mB utilizza la sua chiave KR b (privata e segreta) per decifrare Y e ottenere il messaggio X. Nessuno, eccetto B, può decifrare il messaggio X, neanche A che lo ha cifrato. (msg privato e incertezza sullidentità del mittente segretezza)

7 6 Crittografia a chiave pubblica Segretezza

8 7 Crittografia a chiave pubblica (msg pubblico e certezza identità mittente autenticazione) mA cifra un messaggio X con la propria chiave KR b (privata) e lo invia a n persone. mChiunque delle n persone decifra il testo cifrato Y con KU b (pubblica) di A ottenendo X e la certezza sullidentità del mittente perché solo A conosce la sua chiave segreta

9 8 Crittografia a chiave pubblica Autenticazione

10 9 Crittografia a chiave pubblica (msg privato e certezza identità mittente mA cifra un messaggio X con la propria chiave KR a (privata) Y (certezza su identità del mittente), poi cifra Y con KU b (pubblica) di B ( privatezza del msg) e lo recapita a destinazione Z mB decifra Z con la propria chiave KR b (privata) Y, (privatezza del msg) poi decifra Y con KU a (pubblica) di A (certezza identità di A) riottenendo X. mSolo B può leggere il msg (privato) ed avere la certezza sullidentità del mittente. segretezza e autenticazione)

11 10 Crittografia a chiave pubblica Segretezza eAutenticazione

12 11 Crittografia a chiave pubblica Vari sistemi applicabili per Encryption/decryption (segretezza) Firma digitale (autenticazione) Scambio delle chiavi (per le chiavi di sessione) Non tutti gli algoritmi adatti per tutti gli usi, alcuni sono specifici

13 12 Crittografia a chiave pubblica: considerazioni Nello schema visto viene crittografato lintero messaggio Richiede una grande area di memorizzazione poiché è necessario conservare copia del testo in chiaro Una copia di testo cifrato deve essere conservata per verificare lorigine e il contenuto in caso di disputa Lalgoritmo di crittografia a chiave pubblica lento e complesso deve essere applicato 4 volte Soluzione Viene crittografato solo un piccolo blocco di bit che rappresenta una funzione del documento che funziona come blocco di autenticazione

14 13 Crittografia a chiave pubblica: sicurezza Come negli schemi a chiave privata è sempre possibile in via teorica lattacco con ricerca esaustiva a forza bruta Possibilità pratica di attacco dipende dalla lunghezza delle chiavi (tipicamente – 2048 bit) Sicurezza basata su differenza tra difficoltà di un pesante problema di criptanalisi e facilità di encrypt/decrypt Bisogno di usare numeri grandissimi Lentezza nei confronti degli schemi a chiave privata

15 14 Could One be Fundamentally Harder than the Other? Tour ? Funzioni one-way Seating

16 15 msoluzione per ottenere una coppia di chiavi: funzioni one-way con trapdoor midea: una funzione f: è one-way se: –dato x, calcolare f(x) è facile –dato y, calcolare x tale che f(x) = y è difficile mla funzione one-way è con trapdoor se: –dato y, calcolare x tale che f(x) = y è facile conoscendo uninformazione segreta k –dato y, calcolare x tale che f(x) = y è difficile se non si conosce k Funzioni one-way

17 16 mdefinizione formale: f: è one-way se: –f è calcolabile in tempo polinomiale da una MdT (Macchina di Touring) deterministica (cioè è facile da calcolare) –esistono due polinomi p( ) e q( ) tali che: –p(|x|) |f(x)| q(|x|) –(cioè non deve produrre un output troppo corto) –per ogni algoritmo A eseguibile su una MdT probabilistica, e per ogni polinomio p( ) esiste un numero naturale n A,p tale che: Funzioni one-way

18 17 mosservazione: se P = NP, allora non esistono funzioni one-way ! mcontronominale: se esiste una funzione one-way, allora P NP mdaltra parte, potrebbe essere P NP senza che esistano funzioni one-way m(linversione di una funzione one-way deve essere quasi sempre difficile) min crittografia, spesso si lavora con permutazioni (su {0,1}n) one- way mnon sapendo se P = NP oppure P NP, si suppone che esistano funzioni one-way Funzioni one-way

19 18 La classe dei problemi che hanno un algoritmo di soluzione che lavora in tempo polinomiale viene denotata P, La classe di complessità NP è linsieme di tutti i problemi decisionali per cui la risposta SI può essere verificata in un tempo polinomiale avendo una informazione extra detta certificato (non è detto che però sia semplice ottenerlo). La classe di complessità co-NP è lanalogo del precedente, ma riguardante la risposta NO. Funzioni one-way

20 19 mprimo esempio di funzione che sembra essere one- way: lesponenziazione modulare msia p un numero primo consideriamo il campo p, e in particolare il suo gruppo moltiplicativo p * = {1,2,…,p-1} si dimostra che p * è un gruppo ciclico g p * tale che p * = {g 0, g 1,…, g p-2 } mlesponenziazione modulare è la funzione f : p * definita come segue: f(z) = g z mod p Esponenziazione modulare

21 20 Esempio: 5 * = {1,2,3,4} è il gruppo moltiplicativo contenuto nel campo 5 = {0,1,2,3,4} 2 è un generatore di 5 * ; infatti: 5 * = {2 0,2 1,2 2,2 3 } = {1,2,4,3} mpossiamo definire la seguente esponenziazione modulare: f(z) = 2 z mod 5 ogni esponenziazione modulare produce una permutazione (one-way) degli elementi di p * Esponenziazione modulare

22 21 dato x, possiamo calcolare g x mod p in tempo polinomiale possiamo supporre che 0 x p-2 la dimensione dellinput è il numero di bit necessari per rappresentare gli elementi di p *, quindi n = log 2 p mvale: dove (x n-1,…,x 1,x 0 ) è la rappresentazione binaria di x Esponenziazione modulare

23 22 mApproccio immediato per il calcolo di g x mod p: ModExp(p, g, x) risultato = 1 while x > 0 do risultato = risultato * g mod p x = x – 1 return risultato min pratica, nella variabile risultato si ottiene: g 0, g 1, g 2, …, g x (sempre mod n ) problema: il numero di iterazioni è elevato e pari a x 2 n (esponenziale rispetto a n ) Esponenziazione modulare

24 23 msoluzione migliore: poiché vale: allora ci basta calcolare i valori g 2 j, per j {0,1,…,n- 1}, e moltiplicare tra loro solo quelli per cui x j =1 il tutto può essere fatto in tempo polinomiale (rispetto a n ) tramite il cosiddetto algoritmosquare-and-multiply Esponenziazione modulare

25 24 m malgoritmo square-and-multiply: ModExp(p, g, x) ris = 1 for j = n-1 downto 0 do ris = (ris * ris) mod p if x j = 1 then ris = (ris * g) mod p return ris m mesempio: 8 7 mod 11 p = 11, g = 8, x = 7, n = 4 osservazione: 8 7 = Esponenziazione modulare

26 25 risjxjxj ris*risris*gris*risris*g m mesecuzione dellalgoritmo: nella prima colonna, il valore di ris allinizio della j-esima iterazione m mnelle ultime due colonne, non è stata fatta la riduzione modulo p Esponenziazione modulare

27 26 mloperazione inversa si chiama logaritmo discreto mdefinizione del problema: dati: –p primo –g generatore di p * –y p * calcolare x {0,1,…,p-2} tale che g x y mod p mil calcolo dei logaritmi discreti sembra essere intrattabile: non si conoscono algoritmi che lo risolvono in tempo polinomiale (rispetto a n = log 2 p ) per tutte le istanze per farsi unidea, provare a calcolare a mano i logaritmi in base 3 in 113 * Logaritmi discreti

28 27 mosservazioni: –113 è troppo piccolo per applicazioni crittografiche –elencare gli elementi di p * richiede tempo O(p) = O(2 n ) mquindi, lesponenziazione modulare può essere usata per nascondere il valore di x {0,1,2,…,p-2} in g x mod p –è come chiudere x in una cassetta che non può più essere aperta –abbiamo la funzione one-way, manca la trapdoor Logaritmi discreti

29 28 maltro esempio di funzione che sembra essere one-way: il prodotto tra numeri interi definizione molto semplice: dati due numeri primi p e q, calcolare n = p q il problema inverso è la fattorizzazione: dato un numero intero n, che si sa essere il prodotto di due numeri primi p e q, calcolare p (o q ) Fattorizzazione

30 29 la dimensione dellinput è il numero di bit necessari per rappresentare gli elementi n, p e q ; poniamo quindi m = log 2 n algoritmo banale: si prova a dividere n per tutti gli interi compresi tra 2 e questo algoritmo richiede però tempo che è esponenziale rispetto a m maltri algoritmi, in generale possono richiedere un tempo esponenziale Fattorizzazione

31 30 Crittografia a chiave asimmetrica mCaratteristiche mSicurezza dei msg da chiunque verso chiunque mIl numero di chiavi è proporzionale al numero di utenti mIl segreto risiede nella chiave mSi possono distribuire le chiavi pubbliche come si vuole

32 31 Crittografia a chiave asimmetrica mR.S.A. (Rivest-Shamir-Adleman Algorithm) mD.S.A. (Digital Signature Algorithm) ALGORITMI CONSENTITI DALLA LEGGE PER IL CALCOLO DELLA FIRMA DIGITALE

33 32 mProblematiche mTempi di computazione lunghi (i numeri -testo e chiave- coinvolti nei calcoli sono estremamente grandi ) mE necessario avere chiavi molto lunghe per ridurre al minimo la probabilità di forzature mInadatti per testi molto lunghi mResta problema certezza attributi associati alla chiave pubblica certificati digitali firmati da C.A. Crittografia a chiave asimmetrica

34 33 Rivest, Shamir, Adleman (RSA) Rivest, Shamir e Adleman del MIT nel 1977 Sistema a chiave pubblica più noto e usato Sicurezza dovuta alla difficoltà di fattorizzare grandi numeri Chiavi funzioni di una coppia di grandi numeri primi Cifrario a blocco Basato sulla esponenziazione modulo un primo, di numeri interi in un campo di Galois Utilizza grandi numeri interi (tipicamente > 512 bit) Brevetto scaduto nel 2000

35 34 Rivest, Shamir, Adleman (RSA) cenni preliminari mGenerazione delle chiavi –Selezionare due numeri primi p, q –Calcolare n = p · q –Calcolare Ф(n) = (p – 1) · (q – 1) –Scegliere e primo relativamente a Ф(n) –Scegliere d tale che d · e modulo Ф(n) = 1 mK Pub = [e,n] mK pri = [d,n]

36 35 Rivest, Shamir, Adleman (RSA)

37 36 Rivest, Shamir, Adleman (RSA)

38 37 Rivest, Shamir, Adleman (RSA)

39 38 Rivest, Shamir, Adleman (RSA)

40 39 Rivest, Shamir, Adleman (RSA)

41 40 RSA … altro esempio

42 41 Rivest, Shamir, Adleman (RSA)

43 42 Rivest, Shamir, Adleman (RSA)

44 43 RSA

45 44 Uso di RSA

46 45 RSA

47 | From: Alice | | To: Bob | | Subject: TOP SECRET! | | Parte 1: | | chiave di sessione C | | crittata con RSA | | | | | Parte 2: | | messaggio M | | crittato con DES | | | | RSA

48 47 RSA

49 48 RSA

50 49 msupponiamo che Bob scelga p = 101 e q = 113, da cui n B = p q = e (n B ) = (p-1)(q-1) = mora Bob deve scegliere d B, compreso tra 2 e (n B )-1 = 11199, tale che MCD(d B, (nB)) = MCD(d B, 11200) = 1. Supponiamo che scelga md B = 6597 musando lalgoritmo di Euclide esteso, Bob calcola e B d B -1 mod (n B ) 3533 mod mla chiave pubblica di Bob è (n B, e B ) = (11413, 3533), mentre la chiave privata è d B = 6597 RSA: esempio

51 50 mse Alice vuole inviare a Bob il messaggio mm = 9726, calcola: mc = mod = 5761 me lo invia a Bob mBob recupera m calcolando: mc dB = mod = 9726 RSA: esempio

52 51 mricordiamo che p, q e (n) devono rimanere segreti msupponiamo che Eve conosca p e q –calcola (n) = (p-1)(q-1) –conosce e (fa parte della chiave pubblica) –calcola d e-1 mod (n) mlo stesso accade se Eve conosce solo (n) mquindi, –se Eve sa fattorizzare n, rompe RSA –non è detto che valga il viceversa, ma si congettura che sia vero rompere RSA sarebbe equivalente a fattorizzare n Alcuni attacchi a RSA

53 52 mse Eve conosce solo (n), non solo riesce a rompere RSA, ma riesce anche a fattorizzare n: –sa che n = p q e (n) = (p-1)(q-1) = pq – (p+q) + 1 = n – (p+q) + 1 –ricava p+q = n – (n) + 1 –conoscendo somma e prodotto di p e q, li può ricavare risolvendo lequazione di secondo grado: –x 2 – (p+q)x + pq = 0 Alcuni attacchi a RSA

54 53 mmostriamo ora alcuni accorgimenti da adottare nella scelta dei parametri p, q e (n) mi valori di p e q non devono essere troppo vicini: –supponiamo che sia p > q –se p e q sono vicini, allora (p-q)/2 è piccolo, e (p+q)/2 è poco più grande di –dalluguaglianza (sempre valida) –(p+q) 2 /4 – n = (p-q) 2 /4 –si deduce che (p+q) 2 /4 – n è un quadrato perfetto –cerchiamo allora gli interi x > per cui x 2 - n è un quadrato perfetto, che chiamiamo y 2 Alcuni attacchi a RSA

55 54 –da x 2 – n = y 2 ricaviamo: –n = x 2 – y 2 = (x + y)(x - y) –e quindi p = x + y e q = x – y mbisogna fare attenzione anche al valore di (n): –supponiamo che MCD(p-1, q-1) sia grande –di conseguenza, –sarà piccolo rispetto a (n) Alcuni attacchi a RSA

56 55 –osservazione: se d e -1 mod u, si può usare d al posto di d per decifrare (questo fatto deriva dal teorema di Eulero) –dato che u è relativamente piccolo, può essere cercato per tentativi – è meglio che p-1 e q-1 non abbiano fattori comuni grandi mcattiva idea: usare lo stesso n per un gruppo di utenti (es: un ente o unazienda) –supponiamo che un utente debba mandare m a due (o più) utenti Alcuni attacchi a RSA

57 56 Alcuni attacchi a RSA –detti e 1 ed e 2 gli esponenti di cifratura, calcola: –se MCD(e 1, e 2 ) = 1 allora Eve, usando lalgoritmo di Euclide esteso, calcola r, s tali che re 1 + se 2 = 1 –calcolati r ed s, Eve può calcolare:

58 57 maltra cattiva idea: usare lo stesso valore (piccolo) di e (es: e = 3) e valori diversi per n –supponiamo che un utente voglia spedire m a tre utenti A, B, C, che hanno moduli n A, n B e n C. Calcola: –c A = m 3 mod n A –c B = m 3 mod n B –c C = m 3 mod n C –se n A, n B ed n C sono a due a due coprimi, Eve può usare il Teorema Cinese del Resto (CRT) e calcolare x tale che: Alcuni attacchi a RSA

59 58 –x c A mod n A –x c B mod n B –x c C mod n C –Eve trova ununica soluzione x* compresa tra 0 ed N-1, dove N = n A n B n C –poiché m 3 è minore di n A, di n B e di n C, allora m 3 < N, ovvero x* = m 3 –Eve calcola la radice cubica intera di x* (Koblitz, capitolo 1) per calcolare m Alcuni attacchi a RSA

60 59 mcalcolare d sembra essere difficile mteorema (Salomaa, pag. 143): un algoritmo per calcolare d può essere convertito in un algoritmo probabilistico per fattorizzare n mquindi, rompere RSA sembrerebbe essere equivalente a fattorizzare n Attacchi a RSA: conclusioni

61 60 mProblematiche mTempi di computazione lunghi (i numeri -testo e chiave- coinvolti nei calcoli sono estremamente grandi ) mE necessario avere chiavi molto lunghe per ridurre al minimo la probabilità di forzature mInadatti per testi molto lunghi mResta problema certezza attributi associati alla chiave pubblica certificati digitali firmati da C.A. Crittografia a chiave asimmetrica

62 61 RSA

63 62 Sicurezza di RSA Quattro possibili tipi di attacco: Forza bruta (praticamente impossibile) Attacco matematico (basato sulla difficoltà di calcolare (n) fattorizzando modulo n Timing attacks (basati sul tempo di decryption) Chosen ciphertext attacks (sfruttando proprietà dellalgoritmo)

64 63 Attacco a RSA Tre approcci possibili Fattorizzare n = pq; questo permette di calcolare (n) e quindi d Determinare direttamente (n) e quindi trovare d Trovare d direttamente Sono ritenuti tutti e 3 equivalenti alla fattorizzazione Il problema è meno difficile di quello che sembra Vi sono stati miglioramenti nel tempo dovuti alla potenza dei computer e al miglioramento degli algoritmi usati

65 64 Grafico dei MIPS-anno necessari per la fattorizzazione

66 65 Timing Attacks Similare ad uno scassinatore che osserva quanto tempo si impiega per girare il quadrante di una cassaforte Applicabile pure ai sistemi criptografici Un criptanalista può calcolare una chiave privata notando il tempo necessario per decriptare i messaggi. Lesponente è calcolato bit per bit partendo dal LSB Il pericolo è eliminato facilmente introducendo un tempo un ritardo casuale.


Scaricare ppt "0 Crittografia a chiave asimmetrica o pubblica (PKC) m Proposta pubblicamente nel 1976 da Diffie e Hellman ma nota alla NSA dalla metà degli anni 60, rappresenta."

Presentazioni simili


Annunci Google