ecc on small devices
play

ECC on small devices Junfeng Fan Katholieke Universiteit Leuven, - PowerPoint PPT Presentation

ECC on small devices Junfeng Fan Katholieke Universiteit Leuven, Belgium junfeng.fan@esat.kuleuven.be What is a small device? 2 What is a small device? 3 What is a small device? 4 What is a small device? Trusted Platform


  1. ➢ Common-Z trick (7 --> 6) Point Addition: Point Doubling: ● 7 registers in total: ( X 1 , Z 1 ) + ( X 2 , Z 2 ) 2( X 1 , Z 1 ) ( x 0 , X 1 , Z 1 , X 2 , Z 2 , T 1 , T 2 ) ● Further reduction: T 1 ← x 0 T 1 ← c ( x 0 , X 1 , X 2 , Z, T 1 , T 2 ) X 1 ← X 1 2 X 1 ← X 1 · X 2 Z 1 ← Z 1 2 Z 1 ← Z 1 · X 2 X 1 ← X 1 ·Z 2 T 1 ← Z 1 · T 1 T 2 ← X 1 · Z 1 X 2 ← X 2 ·Z 1 Z 1 ← X 1 · Z 1 Z 1 ← X 1 +Z 1 Z ← Z 1 ·Z 2 T 1 ← T 1 2 Z 1 ← Z 1 2 ● Cost for one iteration: X 1 ← X 1 2 X 1 ← T 1 · Z 1 X 1 ← X 1 +T 1 X 1 ← X 1 +T 2 6M+5S → 7M+4S Register: 7 Register: 3 Mul. : 4 Mul. : 2 Sqr. : 1 Sqr. : 4 56

  2. ➢ Circular-shift register file 57 Slides courtesy: Yongki Lee

  3. ➢ Power & Energy 58

  4. ➢ Power & Energy  To support the computations 59

  5. ➢ Power & Energy  To support the computations  To support a reasonable reading distance 60

  6. ➢ Power & Energy 61

  7. ➢ Power & Energy P d = α C V 2 f Dynamic Switch Vdd Clock Output Power Activity Frequency capacitance 62

  8. ➢ A bit-serial multiplier Input : A(x)= { a m-1 ,a m-2 …a 1 ,a 0 }, B(x)= { b m-1 ,b m-2 …b 1 ,b 0 } , and P(x)= { 1,p m-1 …p 1 ,1 } Output : C(x) = A(x)B(x ) mod P(x) 1: C(x) ← 0; 2: for i = m-1 to 0 do 3: C(x) ← xC(x)+ b i A(x); C(x) ← C(x) mod P(x); 4: end for Return: C(x) 63

  9. ➢ A bit-serial multiplier A(x) Input : A(x)= { a m-1 ,a m-2 …a 1 ,a 0 }, B(x)= { b m-1 ,b m-2 …b 1 ,b 0 } , b i and P(x)= { 1,p m-1 …p 1 ,1 } Output : C(x) = A(x)B(x ) mod P(x) 1: C(x) ← 0; C(x) 2: for i = m-1 to 0 do 3: C(x) ← xC(x)+ b i A(x); C(x) ← C(x) mod P(x); 4: end for C out (x) Return: C(x) Bit-serial multiplier [ Delay: ≈ m cycles ] 64

  10. ➢ Power & Energy A(x) b i C(x) A(x) b i Bit-serial Mul. C(x) Bit-serial Mul. ... Bit-serial Mul. C out (x) Digit-serial Multiplier Bit-serial multiplier [ Delay: ≈ m/d cycles ] [ Delay: ≈ m cycles ] 65

  11. ➢ Power & Energy  Target : One point multiplication within 0.25s 66

  12. ➢ Power & Energy  Target : One point multiplication within 0.25s 120 100 80 Area [kGE] Cycles [x10^4] Freq [x10kHz] 60 Power [uw] Energy [uJ] 40 20 0 1 2 3 4 5 Digit-size of the multiplier 67

  13. ➢ Physical attacks 68

  14. ➢ Physical attacks Side-Channel Analysis 69

  15. ➢ Physical attacks Side-Channel Analysis Fault Analysis 70

  16. ➢ Power analysis Oscilloscope VDD +3,3V ECC ECC Processor Processor R GND 71

  17. ➢ Simple power analysis k = (k l-1 ,k l-2 ,...,k 0 ) Left-to-right binary method for point multiplication R ← O for i=l-1 downto 0 do R ← [2] R if k i = 1 then R ← R + P end if end for 72

  18. ➢ Simple power analysis k = (k l-1 ,k l-2 ,...,k 0 ) Left-to-right binary method for point multiplication R ← O for i=l-1 downto 0 do R ← [2] R if k i = 1 then R ← R + P end if end for 73

  19. ➢ Montgomery Ladder? Algorithm 1: Montgomery Powering Ladder Input: k= {1, k t -1 ,.., k 0 } and point P Output: [ k ] P 1: P 1 ← P , P 2 ← [2] P 2: for i=t-1 to 0 do 3: if k i =1 then P 1 ← P 1 + P 2 , P 2 ← [2] P 2 else P 2 ← P 1 + P 2 , P 1 ← [2] P 1 4: end for Return P 1 74

  20. ➢ Montgomery Ladder? Algorithm 1: Montgomery Powering Ladder Input: k= {1, k t -1 ,.., k 0 } and point P Output: [ k ] P 1: P 1 ← P , P 2 ← [2] P 2: for i=t-1 to 0 do 3: if k i =1 then P 1 ← P 1 + P 2 , P 2 ← [2] P 2 else P 2 ← P 1 + P 2 , P 1 ← [2] P 1 4: end for Return P 1 75

  21. ➢ Montgomery Ladder? Algorithm 1: Montgomery Powering Ladder Input: k= {1, k t -1 ,.., k 0 } and point P Output: [ k ] P 1: P 1 ← P , P 2 ← [2] P 2: for i=t-1 to 0 do 3: if k i =1 then P 1 ← P 1 + P 2 , P 2 ← [2] P 2 else P 2 ← P 1 + P 2 , P 1 ← [2] P 1 4: end for Return P 1 76

  22. ➢ Differential power analysis 77

  23. ➢ Differential power analysis Power k Model 78

  24. ➢ Differential power analysis P 1 , P 2 , ..., P n Power k Model [ k ] P 1 , [ k ] P 2 , ...,[ k ] P n [ k ] P 1 [ k ] P 2 ... ... [ k ] P n 79

  25. ➢ Differential power analysis P 1 , P 2 , ..., P n Power k Key guess k = k' Model [ k ] P 1 , [ k ] P 2 , ...,[ k ] P n [ k ] P 1 [ k ] P 2 ... ... [ k ] P n 80

  26. ➢ Differential power analysis P 1 , P 2 , ..., P n P 1 , P 2 , ..., P n Power k Key guess k = k' Model [ k ] P 1 , [ k ] P 2 , ...,[ k ] P n [ k' ] P 1 , [ k' ] P 2 , ...,[ k' ] P n [ k ] P 1 [ k ] P 2 ... ... [ k ] P n 81

  27. ➢ Differential power analysis P 1 , P 2 , ..., P n P 1 , P 2 , ..., P n Power k Key guess k = k' Model [ k ] P 1 , [ k ] P 2 , ...,[ k ] P n [ k' ] P 1 , [ k' ] P 2 , ...,[ k' ] P n [ k ] P 1 [ k' ] P 1 [ k ] P 2 [ k' ] P 2 ... ... ... ... [ k ] P n [ k' ] P n 82

  28. ➢ Differential power analysis P 1 , P 2 , ..., P n P 1 , P 2 , ..., P n Power k Key guess k = k' Model [ k ] P 1 , [ k ] P 2 , ...,[ k ] P n [ k' ] P 1 , [ k' ] P 2 , ...,[ k' ] P n [ k ] P 1 [ k' ] P 1 [ k ] P 2 [ k' ] P 2 ... ... ... ... [ k ] P n [ k' ] P n 83

  29. ➢ Fault analysis 84

  30. ➢ Fault analysis 85

  31. ➢ Fault analysis (weak curve) [Biehl+'00] Q= [ k ] P P(x P ,y P ) k 86

  32. ➢ Fault analysis (weak curve) [Biehl+'00] Q= [ k ] P P(x P ,y P ) k  The specified curve is: E : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6, and P ( x P ,y P ) is on E.  Inject a fault: P( x P ,y P ) → P'( x P ,y ' P ), E' : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a' 6, 87

  33. ➢ Fault analysis (weak curve) [Biehl+'00] Q= [ k ] P P(x P ,y P ) k  The specified curve is: E : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6, and P ( x P ,y P ) is on E.  Inject a fault: P( x P ,y P ) → P'( x P ,y ' P ), E' : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a' 6, 88

  34. ➢ Fault analysis (weak curve) [Biehl+'00] Q= [ k ] P P(x P ,y P ) k  The specified curve is: E : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6, and P ( x P ,y P ) is on E. Not used for PA/PD  Inject a fault: P ( x P ,y P ) → P' ( x P ,y ' P ), E' : y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a' 6, 89

  35. ➢ Point validation Q= [ k ] P P(x P ,y P ) k PV: Before the point multiplication : 1, check the integrity of curve E . 2, check if P is on the curve or not. 90

  36. ➢ Point validation Q= [ k ] P P(x P ,y P ) k PV: Before the point multiplication : 1, check the integrity of curve E . 2, check if P is on the curve or not. But: Can the adversary inject faults after the validation step? 91

  37. ➢ Fault analysis (twist curve) [Fouque+'08]  Consider a curve defined on F p : E : y 2 z = x 3 + a xz 2 + bz 3 . y coordinates is not needed for Montgomery ladder.  The twist of E :  E' : ε y 2 z = x 3 + a xz 2 + bz 3 , where ε is quadratic non-residue in F p.  Let ( x P , - ) be a point on E , then a random fault on x P may lead to a point on E' with a probability of 1/2. So, it is necessary to perform PV after point multiplication. 92

  38. ➢ Fault analysis (twist curve) [Fouque+'08]  Consider a curve defined on F p : E : y 2 z = x 3 + a xz 2 + bz 3 . y coordinates is not needed for Montgomery ladder.  The twist of E :  E' : ε y 2 z = x 3 + a xz 2 + bz 3 , where ε is quadratic non-residue in F p.  Let ( x P , - ) be a point on E , then a random fault on x P may lead to a point on E' with a probability of 1/2. So, it is necessary to perform PV after point multiplication. 93

  39. ➢ Fault analysis (twist curve) [Fouque+'08]  Consider a curve defined on F p : E : y 2 z = x 3 + a xz 2 + bz 3 . y coordinates is not needed for Montgomery ladder.  The twist of E :  E' : ε y 2 z = x 3 + a xz 2 + bz 3 , where ε is quadratic non-residue in F p.  Let ( x P , - ) be a point on E , then a random fault on x P may lead to a point on E' with a probability of 1/2. So, it is necessary to perform PV after point multiplication. 94

  40. ➢ Fault analysis (twist curve) [Fouque+'08]  Consider a curve defined on F p : E : y 2 z = x 3 + a xz 2 + bz 3 . y coordinates is not needed for Montgomery ladder.  The twist of E :  E' : ε y 2 z = x 3 + a xz 2 + bz 3 , where ε is quadratic non-residue in F p.  Let ( x P , - ) be a point on E , then a random fault on x P may lead to a point on E' with a probability of 1/2. So, it is necessary to perform PV after point multiplication. But: Can the adversary inject faults before the validation step? 95

  41. √ : Effective x : Attacked - : Not related H : helps the attack ? : Not clear or not published * : Implementation dependent Passive attacks Active attacks Safe-error Weak curve Differential SPA Temp- DPA Doubl. RPA Carry M C Invalid Invalid Twist Sign Diff. TA late Attack ZPA based type type Point curve curve change Fault √ - - ? - - - - - - - - - Indistinguishable PA/PD √ - - x - - - H - - - - - Double-add-always √ - - x ? - √* - - - H √ - Montgomery ladder ┴ √ - - x x - √* - - - √ - - Montgomery ladder ┬ - ? √ ? √ x - - - - ? ? ? Random key splitting - x x x √ x - - - - - ? ? Scalar randomization - x x x √ - - - ? *? - - ? Base point blinding - √ √ ? x - - - - - - - ? Randomized proj. coord. - ? √ ? x - - - - - - - ? Randomized EC Iso. - ? √ ? x - - - - - - - ? Randomized Field Iso. - - - - - - - H √ ? √┬ H √ Point validity check - - - - - - - - - √ - - Curve integrity check - - - - - - - H - ? - √* √ Coherence check 96

  42. ➢ Attacking points ● Tag's private key: x ● Tag's public key : X (=[ -x ] P ) Reader (Verifier) Tag (Prover) r 1 = TRNG( ) R 1 R 1 = [ r 1 ] P r 2 r 2 = TRNG( ) v v=xr 2 + r 1 mod n If [ v ] P + [ r 2 ] X == R 1 Then accept The Schnorr Protocol 97

  43. ➢ Attacking points ● Tag's private key: x ● Tag's public key : X (=[ -x ] P ) Reader (Verifier) Tag (Prover) r 1 = TRNG( ) R 1 R 1 = [ r 1 ] P r 2 r 2 = TRNG( ) v v=xr 2 + r 1 mod n If [ v ] P + [ r 2 ] X == R 1 Then accept The Schnorr Protocol 98

  44. ➢ Attacking points ● Tag's private key: x ● Tag's public key : X (=[ -x ] P ) Reader (Verifier) Tag (Prover) r 1 = TRNG( ) R 1 R 1 = [ r 1 ] P r 2 r 2 = TRNG( ) v v=xr 2 + r 1 mod n If [ v ] P + [ r 2 ] X == R 1 Then accept The Schnorr Protocol 99

  45. ➢ Attacking points ● Tag's private key: x ● Tag's public key : X (=[ -x ] P ) Reader (Verifier) Tag (Prover) r 1 = TRNG( ) R 1 R 1 = [ r 1 ] P r 2 r 2 = TRNG( ) v v=xr 2 + r 1 mod n If [ v ] P + [ r 2 ] X == R 1 Then accept The Schnorr Protocol 100

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend