•Stelvio Cimato
•14/05/2010
Computazioni in RSA
Crittografia a chiave
pubblica
Sicurezza di RSA
Come effettuare le computazioni?
Elevazione a potenza modulare
Stelvio Cimato
Generazione numeri primi
Dipartimento di Tecnologie dell’Informazione
Università di Milano
[email protected]
http://www.dti.unimi.it/~cimato
Generazione e,d
generazione di e
d ← e-1 mod (p-1)(q-1)
Stelvio Cimato
1
DTI – Università di Milano, Polo di Crema
Generazione di un
primo ‘grande’
Generazione di un
primo ‘grande’
1. Genera a caso un dispari p di grandezza appropriata
1. Genera a caso un dispari p di grandezza appropriata
2. Testa se p è primo
3. Se p è composto, go to 1.
2. Testa se p è primo
3. Se p è composto, go to 1.
Variante con sequenza di ricerca
1. Genera a caso un dispari p di grandezza appropriata
2. Testa se p è primo
3. Se p è composto, p ← p+2, go to 2.
Stelvio Cimato
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
2
Distribuzione dei
numeri primi
Numeri Primi
π(x) = numero di primi in [2,x]
Thm: Esistono infiniti numeri primi
Prova:
Teorema dei numeri primi:
Assumiamo pmax è massimo numero primo.
Calcola N=p1*p2*…*pmax+1.
N deve essere composto perché è più grande di pmax.
Ma non è vero perché tutti i primi noti dividono N con
resto 1.
Quindi N è primo: contraddicendo l’ipotesi.
lim
x →∞
π (x)
=1
x/ln x
Esempio: π(1010) = 455.052.511
1010/ln 1010 ≈ 434.294.481,9 (4% in meno)
Per x ≥ 17
x
x
< π (x) < 1.25506
ln x
ln x
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
3
DTI – Università di Milano, Polo di Crema
Stelvio Cimato
4
DTI – Università di Milano, Polo di Crema
5
•1
•Stelvio Cimato
•14/05/2010
Scelta di un primo
di 512 bit
Scelta di un primo
di 1024 bit
Scelto un intero in [2,2512] la probabilità che sia primo
è circa 1 su ln 2512 (ln 2512 ≈ 354,89)
Scelto un intero in [2,21024] la probabilità che sia
primo è circa 1 su ln 21024 (ln 21024 ≈ 709,78)
Numero medio di tentativi ≈ 354,89
Numero medio di tentativi ≈ 709,78
Se si scelgono solo dispari dimezza ≈ 177,44
Se si scelgono solo dispari dimezza ≈ 354,89
Se si scelgono dispari in [2511,2512] probabilità è
Se si scelgono dispari in [21023,21024] probabilità
≈
(
512
511
2
2
−
ln 2 512 ln 2 511
)
1
2
511
1 …
Stelvio Cimato
…
2
≈
≈
1
177,79
(
21024
21023
−
1024
ln 2
ln 21023
)
… 1
1
21023 2
1 …
Stelvio Cimato
510 bit scelti a caso
6
DTI – Università di Milano, Polo di Crema
≈
1
355,23
…
… 1
1022 bit scelti a caso
DTI – Università di Milano, Polo di Crema
7
Test di primalità
deterministici
Test di Primalità
Fino al 2002, il miglior algoritmo deterministico era una
Due tipi di test:
variante di Cohen e H. Lenstra del test di Adleman,
Probabilistici
Deterministici
Pomerance e Rumely [1983]
Complessità (ln p)O(lg lg lg p)
Nel 2002 Agrawal et al. scoprirono un algoritmo
deterministico polinomiale in grado di testare se un
numero è primo (AKS test)
Complessità O(ln p)6+ε
Stelvio Cimato
Stelvio Cimato
8
DTI – Università di Milano, Polo di Crema
Probabilmente!
primo
Test Primalità
9
Diminuzione della
probabilità di errore
Test di primalità probabilistici
p
DTI – Università di Milano, Polo di Crema
Probabilità di errore (n è composto ma viene
dichiarato primo) di tale test ≤ 1/2
composto
Certamente!
Se il test viene ripetuto indipendentemente t volte
allora la probabilità di errore ≤ (1/2)t
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
Stelvio Cimato
10
DTI – Università di Milano, Polo di Crema
11
•2
•Stelvio Cimato
•14/05/2010
Test di primalità
probabilistici
Test di primalità probabilistici
Probabilmente!
Test di Solovay-Strassen
p
Test Primalità
Pubblicato nel 1977
Probabilità di errore ≤
primo
(1/2)t
Certamente!
Test di Miller-Rabin
Insieme di witness W(p)
Il più usato in pratica
dato a∈[0, p-1] è facile verificare se a∈W(p)
se p è primo allora W(p) è vuoto
Scelgo a
se p è composto allora |W(p)| ≥ p/2
Il più veloce
Probabilità di errore ≤ (1/4)t
Stelvio Cimato
Stelvio Cimato
12
DTI – Università di Milano, Polo di Crema
Test di Miller-Rabin
Insieme di witness di Miller-Rabin
Se p è primo, per ogni a ∈ Zp*, ap-1 = 1 mod p
p-1 = 2k q con q dispari
W MR(p) = {a : aq ≠ 1 mod p and
j
a2 q ≠ -1 mod p per ogni j∈[0,k-1]}
Se p è un primo dispari
Prima proprietà:
Se p è primo e a<p allora
a2 mod p =1 se e solo se (a mod p= 1) o (a mod p =-1=p-1)
ricorda che a2 mod p = (a modp)(a mod p)
Seconda proprietà
p dispari, p-1 pari
W MR(p) è vuoto
k
Scegli 1 < a < p-1 e calcola aq, a2q, …,a2 q
k
Se p è primo, a2 q = 1 mod p (teorema di Fermat)
Vale
1. aq = 1 mod p
j
13
DTI – Università di Milano, Polo di Crema
Test di Miller-Rabin
Basato sul Teorema di Fermat:
p-1=2kq, con q dispari e k>0
composto
k-1
Se p è un numero composto dispari
| W MR(p) | ≥ (3/4) ·φ(p)
k
2. Se esamino la sequenza a2 q ,ossia aq ,a2q , a4q , ... , a2 q , a2 q,
L’ultimo numero vale 1 e ogni numero della sequenza è il quadrato di quello che lo
precede
La lista contiene un elemento uguale a p-1
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
Stelvio Cimato
14
Test di Miller-Rabin p=29
15
Test di Miller-Rabin p=221
Witness di Miller-Rabin
29-1 = 22 · 7
W MR(29) = {a : a7 ≠ 1 mod 29 and
j
a2 ·7 ≠ -1 mod 29 per ogni j∈[0,1]}
a=10
107 mod 29=17 (continua)
Witness di Miller-Rabin
221-1 = 22 · 55
W MR(221) = {a : a55 ≠ 1 mod 221 and
j
a2 ·55 ≠ -1 mod 221 per ogni j∈[0,1]}
a=5
555 mod 221=112 (continua)
(107)2 mod 29=28=-1 mod 29 (stop: “primo”)
(555)2 mod 221=168 (valori terminati, stop: “composto”)
a=2
a=21
27 mod 29=12 (continua)
2155 mod 221=220= -1 mod 221 (stop: “primo”)
(27)2 mod 29=28= -1 mod 29 (stop: “primo”)
Per ogni a ∈ {1,…,220}/ W MR(221), output: “primo”
Prova per tutti gli a ∈[1,28]: sempre output “primo”
a=1, 21, 47, 174, 200, 220
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
DTI – Università di Milano, Polo di Crema
Stelvio Cimato
16
DTI – Università di Milano, Polo di Crema
17
•3
•Stelvio Cimato
•14/05/2010
Generazione numeri primi
Computazioni in RSA
Come effettuare le computazioni?
p e q devono essere molto grandi
Per scegliere un numero primo:
1. Si sceglie un intero dispari n
2. Si seleziona a caso a
3. Si esegue un test di primalità (Miller Rabin)
4. Se n passa il test viene accettato
L’operazione viene effettuata solo nella
generazione della coppia di chiavi
Elevazione a potenza modulare
Generazione numeri primi
generazione di e
Generazione e,d
Stelvio Cimato
d ← e-1 mod (p-1)(q-1)
Stelvio Cimato
18
DTI – Università di Milano, Polo di Crema
Calcolo di e e d
19
DTI – Università di Milano, Polo di Crema
Algoritmo di Euclide Esteso
Una volta trovati i primi p e q, bisogna
Euclide-esteso (a,n)
if n = 0 then return (a, 1, 0)
(d´, x´, y´) ← Euclide-esteso (n, a mod n)
(d, x, y) ← (d´, y´, x´- a/n y´)
return (d, x, y)
Selezionare e calcolando d
Tale che gcd(ø(n),e)=1
Calcolare d = e-1 mod ø(n)
L’algoritmo esteso di Euclide consente di:
Calcolare il gcd di due interi
Se gcd=1 determinare l’inverso di uno degli
interi modulo l’altro
Oltre a computare d=gcd(a,n) computa anche due interi x, y tali
che d = gcd(a,n) = a·x+n·y
Stesso running time asintotico di Euclide (a,n)
Stelvio Cimato
Stelvio Cimato
20
DTI – Università di Milano, Polo di Crema
Algoritmo di Euclide Esteso
Soluzione di ax≡b (mod n)
Dati
Euclide-esteso (a,n)
if n = 0 then return (a, 1, 0)
(d´, x´, y´) ← Euclide-esteso (n, a mod n)
(d, x, y) ← (d´, y´, x´- a/n y´)
return (d, x, y)
a
n
d
x
99
78
21
15
6
3
78
21
15
6
3
0
3
3
3
3
3
3
-11
3
-2
1
0
1
y
14
-11
3
-2
1
0
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
22
21
DTI – Università di Milano, Polo di Crema
a, b, n calcolare x
0
Esempi:
1
3x≡7 (mod 8) soluzione 5
2
3
2x≡4 (mod 8) soluzione 2,6
4
4x≡2 (mod 8) nessuna soluzione
5
6
Stelvio Cimato
7
DTI – Università di Milano, Polo di Crema
0
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
7
2
0
2
4
6
0
2
4
6
3
0
3
6
1
4
7
2
5
4
0
4
0
4
0
4
0
4
5
0
5
2
7
4
1
6
3
6
0
6
4
2
0
6
4
2
7
0
7
6
5
4
3
2
1
23
•4
•Stelvio Cimato
•14/05/2010
Soluzione di ax≡b (mod n)
La congruenza ax≡b (mod n)
Soluzione di ax≡1 (mod n)
g = gcd(a,n)
Ha soluzioni se e solo se gcd(a,n) =1
Ha soluzioni se e solo se g|b
Caso specifico di ax≡b (mod n) con n primo
Se g|b ci sono esattamente g distinte soluzioni mod n:
b n
x' + i
g g
dove
Se gcd(a,n) =1 l’unica soluzione mod n è:
x´
per i = 0,1,…, g-1
dove
Tale soluzione viene denotata con a-1 mod n
(inversa moltiplicativa di a, mod n)
g = a·x′+n·y (da Euclide-esteso (a,n) )
Stelvio Cimato
Stelvio Cimato
24
DTI – Università di Milano, Polo di Crema
Soluzione di ax≡1 (mod 8)
3 = 3-1 mod 8
5=
5-1
mod 8
Ha soluzioni se e solo se gcd(a,7) =1
7 = 7-1 mod 8
Stelvio Cimato
0
0 0
1 0
2 0
1
0
1
2
2
0
2
4
3
0
3
6
4
0
4
0
5
0
5
2
6
0
6
4
7
0
7
6
1 = 1-1 mod 7
3
4
5
6
7
3
4
5
6
7
6
0
2
4
6
1
4
7
2
5
4
0
4
0
4
7
4
1
6
3
2
0
6
4
2
5
4
3
2
1
2 = 4-1 mod 7
0
0
0
0
0
4 = 2-1 mod 7
5 = 3-1 mod 7
3 = 5-1 mod 7
6 = 6-1 mod 7
Stelvio Cimato
26
DTI – Università di Milano, Polo di Crema
Esempio: calcolo di 5-1 mod 7
Euclide-esteso (a,n)
if n = 0 then return (a, 1, 0)
(d´, x´, y´) ← Euclide-esteso (n, a mod n)
(d, x, y) ← (d´, y´, x´- a/n y´)
return (d, x, y)
a n
d = x·a + y·n
1 = 3·5 -2·7
3 = 5-1 mod 7
0
1
2
3
4
5
6
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
2
0
2
4
6
1
3
5
3
0
3
6
2
5
1
4
4
0
4
1
5
2
6
3
5
0
5
3
1
6
4
2
6
0
6
5
4
3
2
1
27
DTI – Università di Milano, Polo di Crema
Esempio: calcolo di 5-1 mod 11
7
5
d
1
x
-2
y
3
5
2
1
1
-2
2
1
1
0
1
1
0
1
1
0
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
25
DTI – Università di Milano, Polo di Crema
Soluzione di ax≡1 (mod 7)
Ha soluzioni se e solo se gcd(a,8) =1
1 = 1-1 mod 8
1 = a·x′+n·y (da Euclide-esteso (a,n) )
Euclide-esteso (a,n)
if n = 0 then return (a, 1, 0)
(d´, x´, y´) ← Euclide-esteso (n, a mod n)
(d, x, y) ← (d´, y´, x´- a/n y´)
return (d, x, y)
a n
d = x·a + y·n
1 = 1·11 + (-2)·5
-2 = 5-1 mod 11
Stelvio Cimato
28
-2 = 9 mod 11
DTI – Università di Milano, Polo di Crema
11
5
d
1
x
1
y
-2
5
1
1
0
1
1
0
1
1
0
9 = 5-1 mod 11
29
•5
•Stelvio Cimato
•14/05/2010
Teorema cinese del resto
Soluzione di ax≡b (mod n)
Gli interi in un intervallo posso essere rappresentati dai
resti modulo una coppia di numeri primi relativi.
Se n è composto es. n=pq, allora la
soluzione di ax≡b (mod n) può essere
vista come soluzione del sistema di
congruenze:
Soluzione di ax≡b (mod p)
Soluzione di ax≡b (mod q)
Per Z10 = 0,1,2,…,9, se considero una coppia di primi
relativi, es 2 e 5, e la coppia di resti 0 e 3,
allora esiste un unico intero rappresentato da quei
resti, cioè esiste un unico x tale che
x≡0 mod 2
In questo caso x=8
x≡3 mod 5
Stelvio Cimato
Stelvio Cimato
30
DTI – Università di Milano, Polo di Crema
DTI – Università di Milano, Polo di Crema
31
Teorema cinese del resto
Teorema cinese del resto
Esempio
Dati
x≡2 mod 5
m1, m2,…,mt interi positivi tali che gcd(mi,mj)=1, i≠j
x≡3 mod 13
M= m1·m2 …·mt
a1, a2,…,at interi
a1=2, m1=5, M1=13, y1=13-1 mod 5=2
Esiste una sola soluzione modulo M al sistema di congruenze
x≡a1 mod m1
x≡a2 mod m2
…
a2=3, m2=13, M2=5, y2=5-1 mod 13= 8
M=65
t
X = ∑ ai ⋅ Mi ⋅ yi mod M
Soluzione del sistema:
i =1
x≡at mod mt
Mi = M/mi
2
yi =
Mi-1
X = ∑ ai ⋅ Mi ⋅ yi mod 65 = 2 ⋅ 26 + 3 ⋅ 40 mod65 = 42 mod 65
mod mi
i=1
Stelvio Cimato
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
32
33
Generazione chiavi
Algoritmo CRT
Per trovare la soluzione di x mod N dal
sistema xi mod pi con N=p1p2…pr
Per tutti gli i=1,…,r calcola:
1. Input
L (lunghezza modulo)
2. Genera 2 primi di lunghezza L/2
3. n ← p ·q
4. Scegli a caso e
5. If gcd ( e, (p-1)(q-1) ) = 1
then d ← e-1 mod (p-1)(q-1)
else goto 4.
Le inverse yi di N/pi mod pi
X=Σ i=1,…rN/pi *xiyi mod N
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
DTI – Università di Milano, Polo di Crema
Stelvio Cimato
34
DTI – Università di Milano, Polo di Crema
35
•6
•Stelvio Cimato
•14/05/2010
Sicurezza generazione
chiavi di RSA
Sicurezza di RSA
Sicurezza della generazione delle chiavi
Conoscendo la chiave pubblica (n,e)
vuole calcolare la chiave privata
C
Sicurezza della cifratura
d=e-1 mod (p-1)(q-1)
Stelvio Cimato
Stelvio Cimato
36
DTI – Università di Milano, Polo di Crema
Attacco 1: fattorizzare n
Se
Attacco 2: computare ϕ(n)
saprebbe fattorizzare n
computare d
n = pq
1. Fattorizza n
ϕ(n) = (p-1)(q-1)
2. Computa ϕ(n)=(p-1)(q-1)
3. Computa d ← e-1 mod (p-1)(q-1)
Stelvio Cimato
38
DTI – Università di Milano, Polo di Crema
potesse computare ϕ(n) = (p-1)(q-1),
Attacco 3: computare d
Se
Saprebbe fattorizzare n
39
DTI – Università di Milano, Polo di Crema
Attacco 2: computare ϕ(n)
ϕ(n) = (p-1)(q-1)
sostituendo p = n/q
p2- (n-ϕ(n)+1)p + n = 0
Due soluzioni: p,q
Stelvio Cimato
n = pq
potesse computare ϕ(n)=(p-1)(q-1),
Se
potesse fattorizzare n, saprebbe
Se
37
DTI – Università di Milano, Polo di Crema
potesse computare d saprebbe fattorizzare n
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
sostituendo p = n/q
p2- (n-ϕ(n)+1)p + n = 0
84.773.093 = pq
p2- 18.426 p + 84.773.093
84.754.668 = (p-1)(q-1)
radici: 9539 e 8887
(n,e)
=0
Calcola
d
(p,q)
nessuna
risposta
prob 1/2
prob 1/2
*un algoritmo Las Vegas è un algoritmo probabilistico chepuò non dare una risposta, ma se la dà
questa è corretta
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
Fattorizza n
Stelvio Cimato
40
DTI – Università di Milano, Polo di Crema
41
•7
•Stelvio Cimato
•14/05/2010
Sicurezza generazione
chiavi di RSA
Fattorizzazione: progressi
1MIPS/anno: un milione di istr./s per un anno
Pentium 1 Ghz= 250 mips
Fattorizza n Computa d
Computa d
anno
1984
1988
1993
1994
1996
1999
2005
2003
2003
2005
numero digit numero bit mips per anno
71
236
0.01
106
350
140
120
397
825
129
425
5000
130
430
1000
155
512
8000
160
530
174
576
200
663
RSARSA-129
RSARSA-155
193
640
1600 computer
300 workstation +
per 8 mesi
CRAY per 5 mesi
Stelvio Cimato factoring by e-mail
Fattorizza n
Computare d è equivalente a fattorizzare n
Stelvio Cimato
42
DTI – Università di Milano, Polo di Crema
#op. in bit
7200
3.11+e06
3.72+e10
1.97+e12
2.35+e15
1.26+e18
2.36+e19
Dividi per 106
per avere tempo in s
Limite 1e+14
Ci sono 3e+13 ns/a
30 2.2GHz2.2GHzOpteron-CPU
Opteronyears /5 mesi
DTI – Università di Milano, Polo di Crema
43
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
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
algoritmo
QS
QS
QS
QS
GNFS
GNFS
Che modulo scegliere?
Fattorizzazione
Digit decimali
20
40
80
100
140
180
200
1 mips per anno
≈ 3 ·1013 istruzioni
Stelvio Cimato
44
DTI – Università di Milano, Polo di Crema
Sicurezza cifratura RSA
45
Sicurezza cifratura RSA
Se
Conoscendo la chiave pubblica (n,e) e il
potesse fattorizzare n saprebbe
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
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
Stelvio Cimato
46
DTI – Università di Milano, Polo di Crema
47
•8
•Stelvio Cimato
•14/05/2010
Sicurezza cifratura RSA
Se
Attacchi ad RSA
potesse computare M …
Attacchi non basati sul problema della
fattorizzazione
Importante problema aperto:
non si sa se questo sia computazionalmente
Chosen ciphertext attack
Common modulus attack
Low exponent attack
equivalente a fattorizzare!
Stelvio Cimato
Stelvio Cimato
48
DTI – Università di Milano, Polo di Crema
Chosen ciphertext attack
C1 = M1e mod n
C2 = M2e mod n
(M1·M2)e = M1e · M2e = C1·C2 mod n
Chiave Alice: (n,e1), chiave Bob: (n,e2)
gcd(e1,e2)=1
Stesso messaggio M inviato ai vari utenti
Obiettivo: decifrare C (= Me mod n)
Cifratura per Alice: C1=Me1 mod n,
Cifratura per Bob: C2=Me2 mod n
Scelgo x a caso
C' ← C · x mod n
e
M' ← (C')d mod n
M' = (C')d =(C ·xe )d = Cd ·x mod n
Common Modulus Attack
Stesso modulo n per diverse chiavi pubbliche
Proprietà di omomorfismo
Decifrazione
(d,n)
E’ semplice risalire ad M
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
Stelvio Cimato
Stelvio Cimato
50
DTI – Università di Milano, Polo di Crema
Stesso e per diverse chiavi pubbliche
Chiave Alice: (n1,3), chiave Bob: (n2,3), chiave Eva: (n3,3)
gcd(ni,nj)=1, i≠j
Dato C
Cifratura per Alice: C1=M3 mod n1
Cifratura per Bob: C2=M3 mod n2
Cifratura per Eva: C3=M3 mod n3
e … “difficili” ?
E’ semplice risalire ad M
(hard bit : ultimi c ·loglog n bit)
Usa Teorema cinese del resto per calcolare la soluzione di
x≡C1 mod n1
x≡C2 mod n2
3
n3
mod n1·n2·n3
poi calcola
DTI – Università di Milano, Polo di Crema
C = Me mod n
potrebbero esserci informazioni parziali
sul messaggio M “facili” da ottenere
(senza dover decifrare C ! )
Stesso messaggio M inviato ai vari utenti
x=M3
51
DTI – Università di Milano, Polo di Crema
Informazioni parziali
per RSA
Low Exponent Attack
Stelviox≡C
Cimato
mod
49
DTI – Università di Milano, Polo di Crema
M=x1/3
Stelvio Cimato
52
DTI – Università di Milano, Polo di Crema
53
•9
•Stelvio Cimato
•14/05/2010
Un bit “difficile”
per RSA
Un bit “difficile”
per RSA
0 se M < n/2
halfn,e(C) =
0 se M < n/2
halfn,e(C) =
1 se M > n/2
1 se M > n/2
Calcolare halfn,e(·) è computazionalmente
equivalente ad invertire RSA
C
Calcola
halfn,e(C)
halfn,e( ·)
Stelvio Cimato
C
Decifran,e
M
Calcola
halfn,e(·)
Stelvio Cimato
54
DTI – Università di Milano, Polo di Crema
DTI – Università di Milano, Polo di Crema
55
RSA: Attacchi ad
implementazioni
Predicato parità
C = Me mod n
Timing Attack [Kocher, 97]
Ricava i bit di d uno alla volta, analizzando il
tempo richiesto per l’esponenziazione modulare
(decifratura)
paritàn,e(C) = bit meno significativo di M
I predicati paritàn,e(·) e halfn,e( ·)
sono computazionalmente equivalenti
Power Attack [Kocher, 99]
Ricava d analizzando la potenza consumata da
una smartcard durante la decifratura
paritàn,e(C) = halfn,e(y)
y = C ·(2-1 )e mod n
= (M ·2-1)e mod n
Stelvio Cimato
DTI – Università di Milano, Polo di Crema
Stelvio Cimato
56
DTI – Università di Milano, Polo di Crema
57
•10
Scarica

corso-13 [modalità compatibilità] - Dipartimento di Informatica