0 Crittografia a chiave asimmetrica o pubblica (PKC) m Proposta pubblicamente nel 1976 da Diffie e...

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

Transcript of 0 Crittografia a chiave asimmetrica o pubblica (PKC) m Proposta pubblicamente nel 1976 da Diffie e...

Page 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.

1

Crittografia a chiave asimmetrica o pubblica (PKC)

Proposta pubblicamente nel 1976 da Diffie e Hellman ma nota alla NSA dalla metà degli anni 60, rappresenta l’avanzamento più significativo nella lunga storia della criptografia

Usa due chiavi: pubblica e privata Sistema asimmetrico poichè le due estremità

non si trovano nella stessa condizione Rappresenta un complemento e non una sostituzione

della criptografia a chiave privata Fondata sull’applicazione di concetti inerenti

la teoria dei numeri

Page 2: 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.

2

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

Page 3: 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.

3

Crittografia a chiave pubblica

Anche se può assicurare la segretezza, la crittografia asimmetrica non viene utilizzata per questo scopo a causa dei lunghi tempi computazionali.

Viene utilizzata in prevalenza per garantire autenticazione.

Page 4: 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.

4

Crittografia a chiave asimmetrica

Ciascun utente dispone di una coppia di

chiavi (Kpu, Kpr), da lui stesso generate:

Kpu viene resa pubblica in un elenco centrale, consultabile liberamente, mentre Kpr deve restare segreta (la conosce solo il proprietario),

un msg cifrato con una chiave può essere decifrato solo con l’altra e viceversa,

dalla conoscenza di Kpu non è possibile risalire a Kpr

Page 5: 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.

5

Testoin chiaro

Testo cifrato

Kd

Ki

Crittografia a chiave asimmetrica

Page 6: 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.

6

Crittografia a chiave pubblica

A cifra un messaggio in chiaro X con la chiave KUb

(pubblica) di B, genera il testo cifrato Y e lo recapita a destinazione.

B utilizza la sua chiave KRb (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 sull’identità del mittente

segretezza)

Page 7: 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.

7

Crittografia a chiave pubblica •Segretezza

Page 8: 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.

8

Crittografia a chiave pubblica (msg pubblico e certezza identità mittente

autenticazione) A cifra un messaggio X con la propria chiave

KRb(privata) e lo invia a n persone.

Chiunque delle n persone decifra il testo cifrato Y con KUb (pubblica) di A ottenendo X e la certezza sull’identità del mittente perché solo A conosce la sua chiave segreta

Page 9: 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.

9

Crittografia a chiave pubblica •Autenticazione

Page 10: 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.

10

Crittografia a chiave pubblica (msg privato e certezza identità mittente

A cifra un messaggio X con la propria chiave KRa

(privata)Y (certezza su identità del mittente), poi cifra Y con KUb (pubblica) di B ( privatezza del msg) e lo recapita a destinazione Z

B decifra Z con la propria chiave KRb (privata)Y, (privatezza del msg) poi decifra Y con KUa (pubblica) di A (certezza identità di A) riottenendo X.

Solo B può leggere il msg (privato) ed avere la certezza sull’identità del mittente.

segretezza e autenticazione)

Page 11: 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.

11

Crittografia a chiave pubblica •Segretezza eAutenticazione

Page 12: 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.

12

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

Page 13: 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.

13

Crittografia a chiave pubblica: considerazioni

◘Nello schema visto viene crittografato l’intero 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 l’origine e il contenuto in caso di disputa

◘ L’algoritmo di crittografia a chiave pubblica lento e complesso deve essere applicato 4 volte

SoluzioneViene crittografato solo un piccolo blocco di bit che rappresenta una funzione del documento che funziona come

blocco di autenticazione

Page 14: 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.

14

Crittografia a chiave pubblica: sicurezza

◘Come negli schemi a chiave privata è sempre possibile

in via teorica l’attacco con ricerca esaustiva a forza bruta

◘ Possibilità pratica di attacco dipende dalla lunghezza delle chiavi (tipicamente 512 - 1024 – 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

Page 15: 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.

15

Could One be Fundamentally Harder than the Other?

Tour

?

Funzioni one-way

Seating

Page 16: 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.

16

soluzione per ottenere una coppia di chiavi: funzioni one-way con trapdoor

idea: una funzione f: è one-way se:– dato x, calcolare f(x) è facile

– dato y, calcolare x tale che f(x) = y è difficile

la funzione one-way è con trapdoor se:– dato y, calcolare x tale che f(x) = y è facile conoscendo

un’informazione segreta k

– dato y, calcolare x tale che f(x) = y è difficile se non si conosce k

Funzioni one-way

Page 17: 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.

17

definizione 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 nA,p tale che:

)(

1)]'()(:))((';}1,0{Pr[, np

xfxfxfAxxnn npA

Funzioni one-way

Page 18: 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.

18

osservazione: se P = NP, allora non esistono funzioni one-way ! contronominale: se esiste una funzione one-way, allora P NP d’altra parte, potrebbe essere P NP senza che esistano funzioni

one-way (l’inversione di una funzione one-way deve essere “quasi

sempre” difficile) in crittografia, spesso si lavora con permutazioni (su {0,1}n) one-

way non sapendo se P = NP oppure P NP, si suppone che esistano

funzioni one-way

Funzioni one-way

Page 19: 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.

19

•La classe dei problemi che hanno un algoritmo di soluzione che lavora in tempo polinomiale viene

denotata P,

•La classe di complessità NP è l’insieme 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 è l’analogo del precedente, ma riguardante la risposta NO.

Funzioni one-way

Page 20: 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.

20

primo esempio di funzione che sembra essere one-way: l’esponenziazione modulare

sia 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* = {g0, g1,…, gp-2} l’esponenziazione modulare è la funzione

f : p* definita come segue:

f(z) = g z mod p

Esponenziazione modulare

Page 21: 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.

21

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* = {20,21,22,23} = {1,2,4,3} possiamo 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

Page 22: 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.

22

dato x, possiamo calcolare g x mod p in tempo

polinomiale possiamo supporre che 0 x p-2 la dimensione dell’input è il numero di bit

necessari per rappresentare gli elementi di p*, quindi n = log2 p

vale:

1

0

2n

j

jjxx

dove (xn-1,…,x1,x0 ) è la rappresentazione binaria di

x

Esponenziazione modulare

Page 23: 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.

23

Approccio immediato per il calcolo di gx mod p:ModExp(p, g, x)risultato = 1while x > 0

do risultato = risultato * g mod p x = x – 1

return risultato in pratica, nella variabile risultato si ottiene:

g0, g1, g2, …, gx (sempre mod n) problema: il numero di iterazioni è elevato e pari a x

2n (esponenziale rispetto a n)

Esponenziazione modulare

Page 24: 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.

24

soluzione migliore: poiché vale:

pggggn

j

xn

j

xx

x jjj

j

n

j

jj

mod)(1

0

21

0

22

1

0

allora ci basta calcolare i valori g2

j, per j {0,1,…,n-1}, e moltiplicare tra loro solo quelli per cui xj=1

il tutto può essere fatto in tempo polinomiale (rispetto a n) tramite il cosiddetto algoritmo “square-and-multiply”

Esponenziazione modulare

Page 25: 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.

25

algoritmo “square-and-multiply”:ModExp(p, g, x)ris = 1for j = n-1 downto 0

do ris = (ris * ris) mod p if xj = 1 then ris = (ris * g) mod p

return ris

esempio: 87 mod 11 p = 11, g = 8, x = 7, n = 4

osservazione: 87 = 2097152

Esponenziazione modulare

Page 26: 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.

26

ris j xj ris*ris ris*g ris*ris ris*g

1 3 0111 1 1

1 2 0111 1 8 1 8

8 1 0111 9 6 64 512

6 0 0111 3 2 262144 2097152

esecuzione dell’algoritmo: nella prima colonna, il valore di ris all’inizio della j-esima iterazione

nelle ultime due colonne, non è stata fatta la riduzione modulo p

Esponenziazione modulare

Page 27: 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.

27

l’operazione inversa si chiama logaritmo discreto definizione del problema: dati:

– p primo– g generatore di p*– y p*calcolare x {0,1,…,p-2} tale che gx y mod p

il calcolo dei logaritmi discreti sembra essere intrattabile: non si conoscono algoritmi che lo risolvono in tempo polinomiale (rispetto an = log2 p) per tutte le istanze

per farsi un’idea, provare a calcolare a mano i logaritmi in base 3 in 113*

Logaritmi discreti

Page 28: 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.

28

osservazioni:– 113 è troppo piccolo per applicazioni

crittografiche– elencare gli elementi di p* richiede tempo O(p)

= O(2n) quindi, l’esponenziazione modulare può

essere usata per “nascondere” il valore dix {0,1,2,…,p-2} in gx mod p– è come chiudere x in una cassetta che non può

più essere aperta– abbiamo la funzione one-way, manca la

trapdoor

Logaritmi discreti

Page 29: 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.

29

altro 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

Page 30: 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.

30

la dimensione dell’input è il numero di bit necessari per rappresentare gli elementi n, p e q; poniamo quindi m = log2 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 altri algoritmi, in generale possono richiedere un

tempo esponenziale

n

)2()2()( 2/mm OOnO

Fattorizzazione

Page 31: 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.

31

Crittografia a chiave asimmetrica

Caratteristiche

Sicurezza dei msg da chiunque verso chiunqueIl numero di chiavi è proporzionale al numero di utentiIl segreto risiede nella chiaveSi possono distribuire le chiavi pubbliche come si vuole

Page 32: 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.

32

Crittografia a chiave asimmetrica

R.S.A. (Rivest-Shamir-Adleman Algorithm)

D.S.A. (Digital Signature Algorithm)

ALGORITMI CONSENTITI DALLA LEGGE PER IL CALCOLO DELLA FIRMA DIGITALE

Page 33: 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.

33

Problematiche

Tempi di computazione lunghi (i numeri -testo e chiave- coinvolti nei calcoli sono estremamente grandi )

E’ necessario avere chiavi molto lunghe per ridurre al minimo la probabilità di forzature

Inadatti per testi molto lunghiResta problema certezza attributi associati alla chiave

pubblica certificati digitali firmati da C.A.

Crittografia a chiave asimmetrica

Page 34: 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.

34

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

Page 35: 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.

35

Rivest, Shamir, Adleman (RSA)cenni preliminari

Generazione 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

KPub = [e,n]

Kpri = [d,n]

Page 36: 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.

36

La prima applicazione pratica basata sulle tecniche di crittografia a doppia chiave fu sviluppata nel 1978 da tre professori: Ronald Rivest, Adi Shamir e Leonard Adleman, che realizzarono una procedura di calcoli matematici oggi nota con il nome di "algoritmo RSA", dalle iniziali dei suoi inventori. Quando ci si rese conto dell'efficacia di questo algoritmo, ritenuto ancora oggi inattaccabile, il governo americano decise che i programmi basati su questo algoritmo potevano essere utilizzati liberamente negli Stati Uniti, ma la loro esportazione costituiva reato.

•Rivest, Shamir, Adleman (RSA)

Page 37: 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.

37

Un secondo ostacolo all'immediato sviluppo di questo algoritmo è dovuto al fatto che i tre inventori del sistema RSA decisero nel 1982 di brevettare il loro algoritmo e fondare la RSA Data Security Inc, una compagnia nata per lo sfruttamento commerciale del loro sistema di crittografia. Nonostante le restrizioni statunitensi relative all'utilizzo dell'RSA, al di fuori degli USA, dove il governo americano non ha potere e gli algoritmi non sono coperti da brevetto, iniziano a diffondersi numerosi programmi ispirati molto da vicino alla tecnica di Rivest, Shamir e Adleman.

•Rivest, Shamir, Adleman (RSA)

Page 38: 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.

38

•Rivest, Shamir, Adleman (RSA)

Il codice RSA si basa su un procedimento che utilizza numeri primi e funzioni matematiche che è computazionalmente oneroso invertire. Dati due numeri primi, e' molto facile stabilire il loro prodotto, mentre è molto più difficile determinare, a partire da un determinato numero, quali numeri primi hanno prodotto quel risultato dopo essere stati moltiplicati tra loro. In questo modo si garantisce quel principio di sicurezza alla base della crittografia a chiave pubblica infatti l'operazione di derivare la chiave segreta da quella pubblica è troppo complessa per venire eseguita in pratica.

Page 39: 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.

39

•Rivest, Shamir, Adleman (RSA)

1. Calcolare il valore di n, prodotto di p e q, di due numeri primi molto elevati (sono consigliati valori maggiori di 10^100. Negli esempi che seguiranno utilizzeremo numeri più piccoli per facilitare la lettura.

2. Esempio: n = p*q = 7*5= 35 3. Calcolare il valore di z =(p-1)*(q-1). 4. z = (p-1)*(q-1) = 24 5. Scegliere un intero d tale che d sia primo rispetto a z, il

che significa che i due numeri non devono avere fattori primi in comune.

6. Esempio: 7. z = 24 8. d=7 9. Trovare un numero e tale che e*d mod z = 1, cioè che il

resto della divisione tra d*e e z sia 1. 10. e = 7 --> 49 mod 24 = 1

Page 40: 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.

40

•Rivest, Shamir, Adleman (RSA)

Dopo aver calcolato questi parametri inizia la cifratura. Il testo in chiaro viene visto come una stringa di bit e viene diviso in blocchi costituiti da kbit, dove k è il più grande intero che soddisfa la disequazione 2^k < n. A questo punto per ogni blocco M si procede con la cifratura calcolando Mc = M^e mod n. In ricezione, invece, per decifrare Mc si calcola Mc^d mod n. Come si può capire da quanto appena detto per la cifratura si devono conoscere e ed n che quindi costituiranno in qualche modo la chiave pubblica, mentre per decifrare è necessario conoscere d ed n che quindi faranno parte della chiave segreta.

Page 41: 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.

41

RSA … altro esempio

Page 42: 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.

42

•Rivest, Shamir, Adleman (RSA)

Il codice RSA viene considerato sicuro perché non è ancora stato trovato il modo per fattorizzare numeri primi molto grandi Nel caso specifico significa riuscire a trovare p e q conoscendo n. Nel corso degli anni l'algoritmo RSA ha più volte dimostrato la sua robustezza: in un esperimento del 1994, coordinato da Arjen Lenstra dei laboratori Bellcore, per "rompere" una chiave RSA di 129 cifre, svelando il meccanismo con cui quella chiave generava messaggi crittografati, sono stati necessari 8 mesi di lavoro coordinato effettuato da 600 gruppi di ricerca sparsi in 25 paesi, che hanno messo a disposizione 1600 macchine da calcolo, facendole lavorare in parallelo collegate tra loro attraverso Internet.

Page 43: 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.

43

•Rivest, Shamir, Adleman (RSA)

Data la mole delle risorse necessarie per rompere la barriera di sicurezza dell'algoritmo RSA, è chiaro come un attacco alla privacy di un sistema a doppia chiave non sia praticamente realizzabile. Inoltre, nell'esperimento era stata utilizzata una chiave di 129 cifre mentre i programmi di crittografia attualmente a disposizione prevedono chiavi private con una "robustezza" che raggiunge e supera i 2048 bit, risultando quindi praticamente inattaccabili, visto anche che l'ordine di grandezza dei tempi necessari alla rottura di chiavi di questo tipo è esponenziale e passa in fretta da qualche giorno a qualche centinai di anni.

Page 44: 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.

44

1. Esiste un limite alla dimensione del messaggio M: l'algoritmo RSA diventa tremendamente lento quando i numeri da trattare sono più lunghi di qualche migliaio di cifre binarie. Di conseguenza RSA viene utilizzato non per crittare il messaggio, ma per crittare la chiave di crittazione (detta chiave di sessione) usata per crittare il messaggio vero e proprio.

•RSA

Page 45: 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.

45

Uso di RSA

Page 46: 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.

46

Nella realtà le cose funzionano così:

1. Alice scrive un messaggio M. 2. Il programma di Alice genera una chiave di sessione

casuale C e la usa per crittare il messaggio M usando un algoritmo a chiavi simmetriche, come DES.

3. Quindi Alice invia a Bob un messaggio di posta elettronica X che contiene la chiave di sessione C crittata con RSA, e il messaggio M crittato con DES.

4. La figura illustra la struttura in due parti del messaggio X risultante.

•RSA

Page 47: 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.

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

Page 48: 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.

48

Una volta che il messaggio è arrivato, Bruno attiva il suo programma che esegue queste operazioni:

1. Dal messaggio di posta X ricava la parte che contiene la chiave di sessione crittata e il messaggio crittato.

2. Usa RSA per decrittare la parte della chiave di sessione, ed ottiene così la chiave di sessione in chiaro C.

3. Usa DES con la chiave C per decrittare la parte che contiene il messaggio, ed ottenere infine il messaggio in chiaro M.

•RSA

Page 49: 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.

49

Naturalmente tutti questi passaggi intricati vengono svolti automaticamente dal programma e, dettagli tecnici a parte, lo schema di figura 2 resta valido: l'unica differenza è che ora il messaggio X contiene il messaggio M crittato con DES e la chiave di sessione C crittata con RSA, e nelle due scatole c'è anche un algoritmo di crittazione a chiavi simmetriche.

•RSA

Page 50: 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.

50

supponiamo che Bob scelga p = 101 e q = 113, da cui nB = p q = 11413 e (nB) = (p-1)(q-1) = 11200

ora Bob deve scegliere dB, compreso tra 2 e (nB)-1 = 11199, tale che MCD(dB,(nB)) = MCD(dB, 11200) = 1. Supponiamo che scelga

dB = 6597

usando l’algoritmo di Euclide esteso, Bob calcola eB dB

-1 mod (nB) 3533 mod 11200

la chiave pubblica di Bob è (nB, eB) = (11413, 3533), mentre la chiave privata è dB = 6597

RSA: esempio

Page 51: 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.

51

se Alice vuole inviare a Bob il messaggio m = 9726, calcola:c = 97263533 mod 11413 = 5761 e lo invia a BobBob recupera m calcolando:cdB = 57616597 mod 11413 = 9726

RSA: esempio

Page 52: 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.

52

ricordiamo che p, q e (n) devono rimanere segretisupponiamo 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)

lo stesso accade se Eve conosce solo (n)quindi,

– 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

Page 53: 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.

53

se 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 l’equazione di secondo grado:

– x2 – (p+q)x + pq = 0

Alcuni attacchi a RSA

Page 54: 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.

54

mostriamo ora alcuni accorgimenti da adottare nella scelta dei parametri p, q e (n)

i 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

– dall’uguaglianza (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 x2 - n è un quadrato perfetto, che chiamiamo y2

Alcuni attacchi a RSA

n

n

Page 55: 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.

55

– da x2 – n = y2 ricaviamo:

– n = x2 – y2 = (x + y)(x - y)

– e quindi p = x + y e q = x – y bisogna fare attenzione anche al valore di (n):

– supponiamo che MCD(p-1, q-1) sia grande

– di conseguenza,

– sarà piccolo rispetto a (n)

)1,1(

)(

)1,1(

)1)(1()1,1(

qpMCD

n

qpMCD

qpqpmcmu

Alcuni attacchi a RSA

Page 56: 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.

56

– 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

cattiva idea: usare lo stesso n per un gruppo di utenti (es: un ente o un’azienda)– supponiamo che un utente debba mandare m a due (o più)

utenti

Alcuni attacchi a RSA

Page 57: 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.

57

Alcuni attacchi a RSA

– detti e1 ed e2 gli esponenti di cifratura, calcola:

– se MCD(e1, e2) = 1 allora Eve, usando l’algoritmo di Euclide esteso, calcola r, s tali che re1 + se2 = 1

– calcolati r ed s, Eve può calcolare:

1

1

2

2

mod

mod

e

e

c m n

c m n

1 2 1 2re se re ser s

1 2c c = m m = m = m mod n

Page 58: 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.

58

altra 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 nA, nB e nC. Calcola:

– cA = m3 mod nA

– cB = m3 mod nB

– cC = m3 mod nC

– se nA, nB ed nC sono a due a due coprimi, Eve può usare il Teorema Cinese del Resto (CRT) e calcolare x tale che:

Alcuni attacchi a RSA

Page 59: 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.

59

– x cA mod nA

– x cB mod nB

– x cC mod nC

– Eve trova un’unica soluzione x* compresa tra 0 ed N-1, dove N = nAnBnC

– poiché m3 è minore di nA, di nB e di nC, allora m3 < N, ovvero x* = m3

– Eve calcola la radice cubica intera di x* (Koblitz, capitolo 1) per calcolare m

Alcuni attacchi a RSA

Page 60: 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.

60

calcolare d sembra essere difficileteorema (Salomaa, pag. 143): un algoritmo per

calcolare d può essere convertito in un algoritmo probabilistico per fattorizzare n

quindi, rompere RSA sembrerebbe essere equivalente a fattorizzare n

Attacchi a RSA: conclusioni

Page 61: 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.

61

ProblematicheTempi di computazione lunghi (i numeri -testo e chiave-

coinvolti nei calcoli sono estremamente grandi )E’ necessario avere chiavi molto lunghe per ridurre al

minimo la probabilità di forzatureInadatti per testi molto lunghiResta problema certezza attributi associati alla chiave

pubblica certificati digitali firmati da C.A.

Crittografia a chiave asimmetrica

Page 62: 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.

62

•RSA

Page 63: 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.

63

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à dell’algoritmo)

Page 64: 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.

64

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

Page 65: 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.

65

Grafico dei MIPS-anno necessari per la fattorizzazione

Page 66: 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.

66

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.•L’esponente è calcolato bit per bit partendo dal LSB•Il pericolo è eliminato facilmente introducendo un tempo

un ritardo casuale.