Side-Channel Attack

12/2/2014
Introduction to Cryptographic Side‐Channel Attacks
Yinqian Zhang
Postdoctoral Research Associate
UNC‐Chapel Hill
Side‐Channel Attack
 Obtaining information from the unintended communication channels introduced in the design or implementation of a system
2
1
12/2/2014
Cryptographic Side‐Channel Attacks
 Side‐channel attacks against cryptographic systems
• Attacks based on information gained from the physical implementation of a crypto system
 Targets of attacks
• Cryptographic keys, plaintext of a given ciphertext
• Asymmetric Encryption: RSA, ElGamal, etc.
• Symmetric Encryption: AES, DES, etc.
3
Today’s Topic:
 Taxonomy of cryptographic side‐channel attacks
 Explanation of several types of side‐channel attacks against RSA encryptions.
• Cache‐based access‐driven attacks
• Remote timing attacks
• Power analysis attacks*
• Acoustic attacks*
4
2
12/2/2014
RSA Encryption and Decryption
 Public key (e, N); private key (d, N)
• N = p × q, where p and q are prime numbers
• gcd(e, Φ(N)) = 1 , where Φ(N) = (p‐1) × (q‐1)
• d ≡ e‐1 mod Φ(N)  RSA encryption, plaintext m, ciphertext c
• c ≡ me mod N  RSA decryption
•
m ≡ cd
mod N
Modular exponentiation with big numbers is SLOW!
5
Square‐and‐Multiply Algorithms
/* x = cd mod N */
Modular Exponentiation (c, d, N):
let dn … d1 be the bits of d
x ← 1
for di in {dn …d1}
x ← x2 mod N if di = 1 then x ← x × c mod N
return x What is of interest to an attacker?
3
12/2/2014
Taxonomy of Side‐Channel Attacks
 Internal side‐channel attacks
• Attacker controls a process/application/virtual machine in a shared computing device
Cloud computing, grid computing, mobile computing
 External side‐channels attacks
• Attacker physically possesses a computing device
• Attacker remotely connects to a computer server
7
Internal Side‐Channel Attacks
 According to security isolation
• Cross‐process side‐channel attacks
• Cross‐VM side‐channel attacks
 According to the shared media
• L1 data cache
• L1 instruction cache
• Prediction units in CPUs
• Function units in CPUs 8
4
12/2/2014
Internal Side‐Channel Attacks
 According to security domains
• Cross‐process side‐channel attacks
• Cross‐VM side‐channel attacks
 According to shared media
• L1 data cache
• L1 instruction cache
• Prediction units in CPUs
• Function units in CPUs 9
Cross‐Process Attacks
 Requires the attacker to control an unprivileged process on the shared system on which the victim cryptographic operation runs
Process
Process
Memory/file access
Attacker
Side channels
Shared Operating System
Victim
Secret Keys
10
5
12/2/2014
Prime‐Probe Protocols
PRIME
PRIME‐PROBE Interval
PROBE
Time
4‐way set associative L1 data cache
Cache Set
Square‐and‐Multiply Algorithms
/* x = ae mod N */
Modular Exponentiation (a, e, N):
let en … e1 be the bits of e
x ← 1
for ei in {en …e1}
x ← x2 mod N (Square)
if ei = 1 then x ← x × a mod N (Multiply)
return x
ei = 1 → Square + Multiply
ei = 0 → Square
6
12/2/2014
Prime‐Probe Results
13
Internal Side‐Channel Attacks
 According to security domains
• Cross‐process side‐channel attacks
• Cross‐VM side‐channel attacks
 According to shared media
• L1 data cache
• L1 instruction cache
• Prediction units in CPUs
• Function units in CPUs 14
7
12/2/2014
External Side‐Channel Attacks
 Against remote servers
• Timing (side) channels
 Against physically possessed devices
• Timing (side) channels
• Power (side) channels
• Acoustic (side) channels
15
External Side‐Channel Attacks
 Against remote servers
• Timing (side) channels
 Against physically possessed devices
• Timing (side) channels
• Power (side) channels
• Acoustic (side) channels
16
8
12/2/2014
Timing Attacks against Smartcards
 [Kocher, 1996] Timing attacks on implementations of Diffie‐Hellman, RSA, DSS and other systems
 Performance characteristics of a cryptosystems (e.g., a smartcard) depend on both the encryption key and the input data
• The computation time of a private‐key operation is known to the attacker
• Chosen‐ciphertext attack
17
Square‐and‐Multiply Algorithm
/* x = cd mod N */
Modular Exponentiation (c, d, N):
let dn … d1 be the bits of d
Attack Step 1: xn+1 ← 1
Guess the value for di in {dn …d1}
of di in order of xi ← xi+12 mod N dn …d1. One bit at a time.
if di = 1 then xi ← xi × c mod N
return x1
Attack Step 2: For each di in {dn …d1}, select c so that xi × c is VERY slow. If the overall exponentiation is unaffected, di = 0
9
12/2/2014
External Side‐Channel Attacks
 Against remote servers
• Timing (side) channels
 Against physically possessed devices
• Timing (side) channels
• Power (side) channels
• Acoustic (side) channels
19
Remote Timing Attacks
 [Brumley and Boneh, 2003] Remote timing attacks are practical
 Extend Kocher’s attack: • Attacking remote SSL servers • “State‐of‐the‐art” OpenSSL implementation
Chinese Remainder Theorem
Montgomery reduction
Karatsuba multiplication
20
10
12/2/2014
Chinese Remainder Theorem
 Pre‐compute dp and dq
• dp = d mod φ(p)
• dq = d mod φ(q)
 Pre‐compute qinv = 1/q mod p
 To calculate m ≡ cd mod N
• mp = cd mod p
• mq = cd mod q
• h = qinv × (mp – mq) mod p
• m = mq + h × q
p
q
21
Factorization of N given dp and dq
 Given dp and a pair {c, m}, c ≡ me mod N  Calculate mp ≡ cd mod N
 p = gcd (m‐mp, N), because
p
• m ≡ cd mod p ≡ cdp + k(p‐1) mod p ≡ cdp c k(p‐1) mod p
≡ cdp mod p
 Calculate q similarly
22
11
12/2/2014
Montgomery Reduction
 A modular reduction (multi‐precision division & returning the remainder) is very expensive
 OpenSSL needs to do one modular reduction after every multiplication or squaring
 Peter Montgomery (1985):
• Modular arithmetic is performed fast with large number
c ≡ a × b mod N is faster in Montgomery form
• Transform a number into Montgomery form, do modular arithmetic computation, convert back. 23
Montgomery Reduction Examples
Example: calculate c = a × b mod q
 Transform into Montgomery form
• aR mod q
• bR mod q
 Compute the product as integers
• aR × bR = abR = cR
 Fast Montgomery reduction
2 2
• cR2 × R‐1 = cR mod q
• Extra reduction if cR > q
 Transform from Montgomery form
• cR × R‐1 mod q = c mod q
24
12
12/2/2014
Number of Extra Reductions
 [Schindler, 2000]: calculate gd mod q
• Pr(Extra Reduction) = (g mod q) / 2R
25
Karatsuba Multiplication
 Fast multiplication algorithm: multiplication of two n‐digit numbers takes time O(nlog23), rather than O(n2).
 OpenSSL uses Karatsuba multiplication (faster) when multiplies two numbers with equal size.
 OpenSSL uses normal multiplication (slower) when multiplies two numbers with unequal size.
26
13
12/2/2014
Square‐and‐Multiply Algorithms
Convert g and q /* x = gd mod q */
into Montgomery Modular Exponentiation (g, d, q):
form
let dn … d1 be the bits of d
xn+1 ← 1
Extra reduction
for di in {dn …d1}
xi ← xi+12 mod q if di = 1 then xi ← xi × g mod q
return x1
Convert x1 back
Karatsuba multiplication
or normal multiplication
Timing Differences
 When g approaches q from below:
• More extra reductions in Montgomery reduction
• Faster Karatsuba multiplication
 When g is just over q:
• Fewer extra reductions in Montgomery reduction
• g mod q is very small ‐‐‐ slower multiplications
 The two effects are opposite to each other
 When g approaches q from below and grows just over q ‐‐‐ drastic timing difference!
28
14
12/2/2014
Timing Attacks on Exponents
 Chosen‐ciphertext attacks on gd mod q
• Select g to guess q
• Guess one bit at a time from MSB to LSB
 When the top i‐1 bits of q is known, let g be an integer with top i‐1 bits same as q and remaining bits as 0, let g’ be the same value of g, except ith bit is 1: g < g’ and g < q
• q = {1, 0, 1, qn‐3, qn‐4, …, q1}
• g = {1, 0, 1, 0, 0, …, 0}
• g’ = {1, 0, 1, 1, 0, …, 0}
29
Timing Attacks on Exponents
To recover the ith bit of q:
 Compute u = gR‐1 mod N and u’ = g’R‐1 mod N
 Decrypt u and u’
• t = DecryptTime(u)
• t’ = DecryptTime(u’)
 If |t – t’| is large: g < q < g’ • bit i of q is 0
 If |t – t’| is small: g < g’ < q
• bit i of q is 1
30
15
12/2/2014
External Side‐Channel Attacks
 Against remote servers
• Timing (side) channels
 Against physically possessed devices
• Timing (side) channels
• Power (side) channels
• Acoustic (side) channels
31
External Side‐Channel Attacks
 Against remote servers
• Timing (side) channels
 Against physically possessed devices
• Timing (side) channels
• Power (side) channels
• Acoustic (side) channels
32
16
12/2/2014
Simple Power Analysis
33
Simple Power Analysis
34
17
12/2/2014
External Side‐Channel Attacks
 Against remote servers
• Timing (side) channels
 Against physically possessed devices
• Timing (side) channels
• Power (side) channels
• Acoustic (side) channels
35
Differentiating CPU Operations
36
18
12/2/2014
Differentiating Bits in Exponents
 Bits in exponents can be differentiated between frequency 34~39kHz
37
Summary
 Internal side‐channel attacks
• CPU caches
• CPU function units
 External side‐channels attacks
• Timing channels
• Power channels
• Acoustic channels
 RSA, AES, DES, DH, DSS, …
38
19