marco calderini - Dipartimento di Matematica e Informatica

TIMING ATTACK AD
RSA
MARCO CALDERINI
domenica 15 maggio 2011
IDEA DEL TIMING ATTACK
gli algoritmi di crittografia eseguono i calcoli in tempi non
costanti
time
difference
d=1001001
l’idea di base è sfruttare queste misurazioni per ottenere
informazioni sulla chiave privata
domenica 15 maggio 2011
RSA
crittosistema a chiave pubblica ideato da Rivest, Shamir e
Adleman nel 1978
generare le chiavi pubbliche e le chiavi private
✓ si generano due numeri primi p e q distinti
✓ si calcolano n = pq e φ(n) = (p − 1)(q − 1)
✓ si sceglie e ∈ Zφ(n) tale che M CD(e, φ(n)) = 1
✓ si calcola d ∈ Zφ(n) tale che de ≡ 1mod(φ(n))
✓ la chiave pubblica sarà (e, n) e quella privata (d, n)
domenica 15 maggio 2011
RSA
cifratura
C = M mod(n)
e
M
M e mod(n)
decifratura
M = C d mod(n) = M ed mod(n)
C d mod(n)
firma
S = M mod(n)
d
domenica 15 maggio 2011
d
M M mod(n)
M
ALGORITMO LEFT-TO-RIGHT
algoritmo proposto da Rivest, Shamir e Adleman per svolgere
l’esponenziale modulare
se il bit è 0 viene calcolato solo il
quadrato
se il bit è 1 viene calcolato il quadrato e la
moltiplicazione
domenica 15 maggio 2011
TIMING ATTACK
L’attaccante chiede ad Alice di firmare i messaggi M1 , ..., Mk
e memorizza i tempi necessari alle firme T1 , ..., Tk
L’attaccante ha a disposizione un PC identico a quello di
Alice così da poter riprodurre i calcoli dell’algoritmo leftto-right con gli stessi tempi
L’attaccante inizia a calcolare i cicli iterativi del FOR, uno
alla volta ipotizzando ogni volta il valore del bit
dell’esponente
domenica 15 maggio 2011
TIMING ATTACK
Per cominciare si considera il bit dw−1
M
=⇒firmo
tempo T�
= 1 =⇒ firmo M
tempo �
ipotesi dw−1 = 0
ipotesi dw−1
calcolo
S02
i con
i,w−1,0
0
T1 − T�1,w−1,0
..
.
Tk − T�k,w−1,0
k
�
i
l’esponente 0 e ottengo il
con l’esponente 1 e ottengo il
Ti,w−1,1
1
T1 − T�1,w−1,1
..
.
Tk − T�k,w−1,1
1
1
2
2
=
S1 =
(Ti,0 − T 0 )
k − 1 i=1
k−1
Ti − T�i,w−1,0 media differenze
scelgo il bit che da la varianza minore
domenica 15 maggio 2011
k
�
i=1
(Ti,1 − T 1 )2
TIMING ATTACK
sia ora db un bit generico e dw−1 , ..., db+1 calcolati
correttamente
ipotesi db = 0
M con l’esponente d
=⇒firmo
ottengo il tempo T�
i
w−1 ...db+1 0
e
i,b,0
ipotesi db = 1
M con l’esponente d
=⇒firmo
ottengo il tempo T�
i
i,b,1
calcolo
2
S0
2
S
e 1
scelgo il bit che da la varianza minore
domenica 15 maggio 2011
w−1 ...db+1 1e
TIMING ATTACK IN DETTAGLIO
Il tempo necessario per firmare un messaggio Mi è
Ti = ei +
w−1
�
(si,j + ti,j )
j=0
errori di
misurazione
tempo di
calcolo del
quadrato
tempo di
calcolo del
prodotto
Il tempo necessario per firmare un messaggio Mi con
l’esponente dw−1 ...db+1 h dove h è l’ipotesi per il bit db è
T�i,b,h =
domenica 15 maggio 2011
�
j>b
(si,j + ti,j ) + (si,b + �
ti,b,h )
candidato per ti,b
TIMING ATTACK IN DETTAGLIO
se l’ipotesi su db è corretta
Ti − T�i,b,h = ei +
�
(si,j + ti,j )
j<b
se l’ipotesi su db è errata
Ti − T�i,b,h = ei +
�
j<b
(si,j + ti,j ) + (ti,b − �
ti,b,h )
consideriamo le variabili aleatorie T, T�b,h , e, s, t
tempo di
tempo
di della
calcolo
errori
tempo
tempo
di di
calcolo
della
firma
con
calcolo
calcolo
deldel
firma
esponentequadrato
prodotto
scelto
domenica 15 maggio 2011
TIMING ATTACK IN DETTAGLIO
varianza ipotesi corretta


�
� 


V ar(T − T�b,h ) = V ar 
e
+
s
+
t


j<b
j<b
dj �=0
= V ar(e) + bV ar(s) + lV ar(t)
varianza ipotesi errata
numero bit
non nulli
V ar(T − T�b,h ) = V ar(e) + bV ar(s) + (l + 1)V ar(t)
con l’ipotesi errata abbiamo una varianza
maggiore di V ar(t)
domenica 15 maggio 2011
PROBABILITÀ DI SUCCESSO
s − N (µs , σs2 ) e t − N (µt , σt2 )
�
j<b
s+
�
t−
j<b
dj �= 0
variabile
aleatoria
relativa
colonna
corretta
2
N (µ0 , σ0 )
e
�
j<b
s+
�
t + t − N (µ0 +
j<b
dj �= 0
variabile
aleatoria
relativa
colonna
errata
dove µ0 = bµs + lµt e σ02 = bσs2 + lσt2
domenica 15 maggio 2011
2
µt , σ0
+
2
σt )
PROBABILITÀ DI SUCCESSO
Consideriamo ora le k misurazioni del tempo delle firme
e indichiamo con X e Y le variabili normali
standardardizzate corrette ed errate rispettivamente,
possiamo scrivere la tabella (V ar(e) ≈ 0)
σ0 X1 + µ0
..
.
σ0 Xk + µ0
colonna
corretta
domenica 15 maggio 2011
(σ0 X1 + µ0 ) + (σt Y1 + µt )
..
.
(σ0 Xk + µ0 ) + (σt Yk + µt )
colonna
errata
PROBABILITÀ DI SUCCESSO
poniamo Vi = σ0 Xi + µ0 e Wi = (σ0 Xi + µ0 ) + (σt Yi + µt )
2
P r(SW
>
2
SV
) = Pr
= Pr
�
1
k−1
� k
�
i=1
domenica 15 maggio 2011
k
�
1
(Wi − W ) >
k
−
1
i=1
(Wi − W )2 >
2
k
�
i=1
k
�
i=1
(Vi − V )2
�
(Vi − V )
.
2
�
PROBABILITÀ DI SUCCESSO
se k è sufficientemente grande
V ≈ µ0
2
P r(SW
>
2
SV
⇓�
) ≈ Pr
= Pr
W ≈ µ0 + µt
k
�
(σ0 Xi + σt Yi ) >
2
(σ0 Xi )
2
i=1
i=1
� k
�
k
�
(σ02 Xi2 + σt2 Yi2 + 2σ0 σt Xi Yi ) >
i=1
= Pr
� k
�
�
(2σ0 σt Xi Yi ) +
k
�
i=1
i=1
= P r 2σ0
domenica 15 maggio 2011
�
k
�
i=1
Xi Yi + σt
k
�
i=1
2 2
(σt Yi )
>0
�
Yi2 > 0
�
k
�
i=1
�
(σ02 Xi2 )
PROBABILITÀ DI SUCCESSO
=⇒ E(XY ) = E(X)E(Y ) = 0
sono standardizzate =⇒ E(X 2 ) = E(Y 2 ) = 1
X e Y sono indipendenti
X eY
i=1
2
Yi
≈
k
�
i=1
�
E Y
�
2
=⇒
=
⇒
k
�
=k
V ar(XY ) = E(X Y ) − E(XY )
2
2
= E(X Y ) = E(X )E(Y ) = 1
2
k
�
2
Xi Yi segue la
per il teorema del limite centrale
i=1
distribuzione N (0, k)
k
�
i=1
domenica 15 maggio 2011
Yi2si può approssimare con k
2
2
2
PROBABILITÀ DI SUCCESSO
sia Z una variabile casuale standardizzata
2
P r(SW
σ02
=
�
� √ �
√ �
√
σt k
σt k
2
> SV ) ≈ P r(2σ0 ( kZ) + σt k > 0) = P r Z > −
=Φ
σ0 2
σ0 2
bσs2
3
+
, supponiamo inoltre l = b

4 
√


k
2
2

�
P r(SW > SV ) ≈ Φ 
�
�

σs
b 4 σt + 3
area sottesa
dalla curva
normale
standard
lσt2
col decrementare di b e aumentando il numero di
messaggi k , aumenta la probabilità di determinare la
chiave privata
domenica 15 maggio 2011
possibili difese
utilizzo di algoritmi con tempi di calcolo costanti
non sempre pratico
non sono possibili ottimizzazioni
utilizzo di algoritmi che aggiungono ritardi casuali
over-head
non sono possibili ottimizzazioni
RSA Blinding
domenica 15 maggio 2011
RSA BLINDING
si calcola un numero random r
�
e
d
S
=
(r
M
)
mod(N )
si computa
−1
r
r
si considera l’inverso di ,
−1 �
d
r
S
=
M
mod(N )
si crea la firma eseguendo il calcolo
il tempo impiegato per firmare il messaggio non è più
correlato al messaggio in input, quindi non è possibile
ottenere informazioni
domenica 15 maggio 2011
CONCLUSIONI
attacchi come il timing attack ci dicono che, anche se
un sistema è matematicamente forte, in pratica, la
sicurezza dipende anche dalla modalità di
implementazione del sistema.
La crittografia non deve essere esaminata in maniera
isolata. La progettazione di un sistema sicuro dovrebbe
comprendere ogni aspetto, crittografico e non. si
presume che un aggressore attacca, sempre, l’anello
più debole di un sistema.
domenica 15 maggio 2011
FINE
GRAZIE
domenica 15 maggio 2011