Document

Arnaud BOSCHER
Spansion EMEA
Robert NACIRI
Oberthur Card Systems
Emmanuel PROUFF
Oberthur Card Systems
CRT RSA Algorithm
Protected Against Fault
Attacks
WISTP - 5/10/07
Agenda
• RSA and Physical Attacks
• Modular Exponentiation Algorithm Resistant against
Physical Attacks
• CRT RSA Algorithm Resistant against Physical Attacks
2
© 2007 Spansion Inc.
RSA and Physical Attacks
3
© 2007 Spansion Inc.
RSA Algorithm
• Public key:
– Modulus: N
– Public Exponent: e
• Private key:
– Modulus: N = p . q
– Private Exponent: d = e-1 mod (p-1) . (q-1)
• RSA Signature Generation:
– S = Md mod N
• RSA Signature Verification:
– Check M = Se mod N ?
4
© 2007 Spansion Inc.
RSA Algorithm Using Chinese Remainder
Theorem
• Private key CRT format:
– Private Modulus: prime number p
– Private Modulus: prime number q
– Private Exponent: dp = e-1 mod p-1
– Private Exponent: dq = e-1 mod q-1
– Value : A = p-1 mod q
• RSA Signature using CRT:
– Sp = Mdp mod p
– Sq = Mdq mod q
– S = ((Sq - Sp) . A mod q) . p + Sp
5
© 2007 Spansion Inc.
Right-to-Left Modular Exponentation
•
Input: M, d = (dn−1, . . . , d0)2, N
•
Output: Md mod N
•
S←1
•
A←M
•
For i from 0 to n − 1 do
– If di = 1 then S ← S . A mod N
– A ← A2 mod N
•
6
Return (S)
© 2007 Spansion Inc.
Simple Power Analysis
• Measurement of power consumption when the embedded
device executes RSA
• Modular Multiplication and Modular Square with different
power consumptions:
– 2 consecutive Modular Squares  di = 0
– Modular Multiplication followed by a Modular Square  di = 1
• Classical Countermeasure: always perform a Modular
Multiplication
7
© 2007 Spansion Inc.
Fault Analysis and Differential Fault Analysis
• Make external perturbation when the embedded device executes
RSA to get an erroneous result
• DFA on CRT RSA:
– Sp’ = Mdp mod p + ε
– Sq = Mdq mod q
– S’ = ((Sq - Sp’) . A mod q) . p + Sp’
– Gcd(S’e mod N - M, N) = q
• Classical Countermeasures:
– perform twice the signature
– check it with the public exponent (if known)
8
© 2007 Spansion Inc.
Safe-Errors Attacks
• Other kind of Fault Attacks
• Countermeasure against SPA  weakness w.r.t Fault Attacks
• Attack the multiplication :
– Final result correct  dummy multiplication  exponent bit was 0
– Final result wrong  real multiplication  exponent bit was 1
• Retrieve the whole secret exponent bit by bit
• Difficult to counteract SPA and FA together
9
© 2007 Spansion Inc.
Modular Exponentiation
Resistant to Simple Power
Analysis and Fault Attacks
10
© 2007 Spansion Inc.
SPA-Resistant Modular Exponentiation Algorithm
•
•
•
Starting from the SPA-resistant algorithm:
Input: M, d = (dn−1, . . . , d0)2, N
Output: Md mod N
•
•
•
•
S[0] ← 1
S[1] ← 1
A←M
For i from 0 to n − 1 do
– If di = 1 then S[0] ← S[0] . A mod N
– If di = 0 then S[1] ← S[1] · A mod N
– A ← A2 mod N
•
11
Return (S[0])
© 2007 Spansion Inc.
Observations
•
Loop of the algorithm:
–
12
For i from 0 to n − 1 do
• If di = 1 then S[0] ← S[0].A mod N
• If di = 0 then S[1] ← S[1].A mod N
• A ← A2 mod N
•
A is independent of the exponent d :
n
A = M2 mod N
•
S[1]
is the result of the modular exponentiation of M by not(d) =
n
2 -d-1 :
n
S[1] = M2 -d-1 mod N
•
At every step, we have the following relation:
M . S[0] . S[1] = A mod N
© 2007 Spansion Inc.
SPA/FA-Resistant Right-to-Left Modular
Exponentiation
• Input: M, d = (dn−1, . . . , d0)2,N
• Output: Md mod N or ”Error”
•
•
•
•
S[0] ← 1
S[1] ← 1
A←M
For i from 0 to n − 1 do
– S[di] ← S[di] · A mod N
– A ← A2 mod N
• If (M . S[0] . S[1] = A mod N) then
•
Return (S[0])
• Else
•
13
Return (”Error”)
© 2007 Spansion Inc.
Algorithm Analysis
• Cost : 2 modular multiplications compared to the SPA
version
• Resistance against SPA: always a multiplication before a
square.
• Security proof against DFA and Safe-Errors Attacks in the
following Attacker Model :
– Can only perform one fault
– Can make any modification ε on any variable X’ = X + ε
14
© 2007 Spansion Inc.
Security Proof
• Algorithm divided in finite states that corresponds to single
steps computation:
S[0]: 1  Md0  Md1.2+d0  …  Md
• Fault Attack between two computations in S[0]:
1  …  M(di-1, … , d0)2  M(di, … , d0)2 + ε  …  Md + ε’
i
• Final result : S’[0] = Md + ε . (M2 )(dn, … , di+1)2
n
• Equality doesn’t hold: S’[0] . S[1] . M ≠ M2 if ε ≠ 0
• Same behavior for S[1]
15
© 2007 Spansion Inc.
Security Proof: the A variable case
• Error on variable A also impacts S[0] and S[1]
• Error needs to be written in a multiplicative way:
A’ = A + ε = A . β
2n
• A’ = M . β
2n-i
n
• S[0] . S[1] . M = M2 . β2
n-i-1
• Equality doesn’t hold: S[0] . S[1] . M ≠ A’ if β ≠ 1, i.e. if ε ≠ 0
16
© 2007 Spansion Inc.
CRT RSA Resistant to Fault
Attacks
17
© 2007 Spansion Inc.
FA-Resistant CRT-RSA
• Having a DFA-resistant exponentiation is not enough to
have a DFA-resistant CRT RSA:
– recombination step can be attacked
• Involve all the variables of the DFA-resistant exponentiation
algorithm to protect the recombination
• SPA/DFA-resistant exponentiation algorithm outputs:
n
– (S1 , S2 , T) ← (Md , Mnot(d) , M2 )
• Perform 3 recombinations and make final check
18
© 2007 Spansion Inc.
FA-Resistant CRT-RSA Signature
• Input: M, p, q, dp, dq, A, and b the bit-length of p and q
• Output: S or ”Error”
• (S1p , S2p , Tp) ← (Mdp mod p , M2
• (S1q , S2q , Tq) ← (Mdq mod q , M2
b−d
p−1
b−d
q−1
b
mod p , M2 mod p)
• S1 ← ((S1q − S1p) · A mod q) · p + S1p
• S2 ← ((S2q − S2p ) · A mod q) · p + S2p
• T ← ((Tq − Tp) · A mod q) · p + Tp
• If (M · S1 · S2 = T mod N) then
•
Return (S1)
• Else
•
19
b
mod q , M2 mod q)
Return (”Error”)
© 2007 Spansion Inc.
Correctness of the algorithm
• Result of the 3 recombinations:
• S1 = ((S1q − S1p) · A mod q) · p + S1p = Md mod N
• S2 = ((S2q − S2p ) · A mod q) · p + S2p = M
b
2b-d-1
• T = ((Tq − Tp) · A mod q) · p + Tp = M2 mod N
• Equality holds: M · S1 · S2 = T mod N
20
© 2007 Spansion Inc.
mod N
Algorithm Analysis
• Cost: 2 additional recombinations
• Memory occupation larger : alternative solution with less
memory overhead proposed in the paper
– detects an error with some probability
21
© 2007 Spansion Inc.
Conclusion
• New modular exponentiation algorithm resistant against
SPA/DFA
• Proof of security in a realistic fault model
• Suitable for low cost devices
• Can be used to construct SPA/DFA-resistant CRT RSA
signature algorithm
• Can be adapted to compute SPA/DFA-resistant scalar
multiplication for elliptic curve cryptography
22
© 2007 Spansion Inc.
THANK YOU FOR YOUR ATTENTION
23
© 2007 Spansion Inc.
Trademark Attribution
Spansion, the Spansion Logo, MirrorBit, HD-SIM, ORNAND, and
combinations thereof are trademarks of Spansion LLC. Other
names used in this presentation are for informational purposes
only and may be trademarks of their respective owners.
25
© 2007 Spansion Inc.