high order masking of look up tables with common shares
play

High Order Masking of Look-up Tables with Common Shares J-S.Coron, - PowerPoint PPT Presentation

High Order Masking of Look-up Tables with Common Shares J-S.Coron, F.Rondepierre, R.Zeitoun 12th September 2018 Outline Outline 1 Introduction 1st Order Solution Higher Order Masking of Look-Up Tables 2 Higher Order: Optimizations 12th


  1. High Order Masking of Look-up Tables with Common Shares J-S.Coron, F.Rondepierre, R.Zeitoun 12th September 2018

  2. Outline Outline 1 Introduction 1st Order Solution Higher Order Masking of Look-Up Tables 2 Higher Order: Optimizations 12th September 2018 3 Conclusion 2

  3. Table of Contents Introduction 1 Introduction 1st Order Solution Higher Order Masking of Look-Up Tables 2 Higher Order: Optimizations 12th September 2018 3 Conclusion 3

  4. SCA Countermeasure Introduction Sharing Principle • Given a sensitive data x • Given t random values x 1 , . . . , x t • Let x 0 be such that: t � x = x i i =0 12th September 2018 • ( x 0 , . . . , x t ) is a sharing of x secure at order t 4

  5. SBox Evaluation Introduction The problematic • Given sensitive data x • Given a known table S • How to compute securely : x �→ S ( x ) 12th September 2018 5

  6. SBox Evaluation Introduction The problematic • Given sensitive data x • Given a known table S • How to compute securely for ℓ evaluations: x ( ℓ ) �→ S ( x ( ℓ ) ) 12th September 2018 5

  7. 1st Order Introduction Secure at 1st Order The ℓ -th evaluation of S is: x ( ℓ ) = ( x ( ℓ ) 0 , m ) �→ S ( x ( ℓ ) ) = ( y ( ℓ ) 0 , m ) 12th September 2018 6

  8. 1st Order Introduction Masked SBox Construction   S (0 ⊕ m ) ⊕ m   .   . T = . S ((2 k − 1) ⊕ m ) ⊕ m     Masked SBox Evaluation 12th September 2018 S ( x ) = ( T ( x 0 ) , m ) 7

  9. Higher Order Introduction Secure at Higher Order (Coron EUROCRYPT’14) The ℓ -th evaluation of S is: x ( ℓ ) = ( x ( ℓ ) 0 , x ( ℓ ) 1 , . . . , x ( ℓ ) 2 t ) �→ S ( x ( ℓ ) ) = ( y ( ℓ ) 0 , y ( ℓ ) 1 , . . . , y ( ℓ ) 2 t ) 12th September 2018 8

  10. Higher Order Introduction Example at 3rd Order x = 2 = (0 , 1 , 1 , 2)   S (0) 0 0 0     S (1) 0 0 0   S (2) 0 0 0     S (3) 0 0 0   12th September 2018 9

  11. Higher Order Introduction Example at 3rd Order x = 2 = (0 , 1 , 1 , 2 )   S (2) 0 0 0     S (3) 0 0 0   S (0) 0 0 0     S (1) 0 0 0   12th September 2018 9

  12. Higher Order Introduction Example at 3rd Order x = 2 = (0 , 1 , 1 , 2)   S (2) ⊕ 3 1 2 0     S (3) ⊕ 1 0 0 1   S (0) ⊕ 0 2 3 1     S (1) ⊕ 0 0 0 0   12th September 2018 9

  13. Higher Order Introduction Example at 3rd Order x = 2 = (0 , 1 , 1 , 2)     S (2) ⊕ 3 1 2 0 S (3) ⊕ 1 0 0 1         S (3) ⊕ 1 0 0 1 S (2) ⊕ 3 1 2 0     = ⇒ S (0) ⊕ 0 2 3 1 S (1) ⊕ 0 0 0 0         S (1) ⊕ 0 0 0 0 S (0) ⊕ 0 2 3 1     12th September 2018 9

  14. Higher Order Introduction Example at 3rd Order x = 2 = (0 , 1 , 1 , 2)   S (3) ⊕ 1 1 2 2     S (2) ⊕ 1 0 2 3   S (1) ⊕ 3 2 1 0     S (0) ⊕ 0 1 0 1   12th September 2018 9

  15. Higher Order Introduction Example at 3rd Order x = 2 = (0 , 1 , 1 , 2)   S (2) ⊕ 1 0 2 3     S (3) ⊕ 1 1 2 2   S (0) ⊕ 0 1 0 1     S (1) ⊕ 3 2 1 0   12th September 2018 9

  16. Higher Order Introduction Example at 3rd Order x = 2 = (0 , 1 , 1 , 2)   S (2) ⊕ 2 2 2 2     S (3) ⊕ 1 1 2 2   S (0) ⊕ 1 1 1 1     S (1) ⊕ 3 3 3 3   12th September 2018 9

  17. Higher Order Introduction Example at 3rd Order x = 2 = ( 0 , 1 , 1 , 2) S (2) ⊕ 2 2 2 2 12th September 2018 9

  18. Higher Order Introduction Example at 3rd Order x = 2 = (0 , 1 , 1 , 2) S (2) ⊕ 0 1 2 3 12th September 2018 9

  19. Higher Order Introduction Masked SBox Construction (Coron EUROCRYPT’14)  sharing of S (0)    . T (0) =   . . sharing of S (2 k − 1)     12th September 2018 10

  20. Higher Order Introduction Masked SBox Construction (Coron EUROCRYPT’14) new sharing of T (0) (0 ⊕ x 2t )     T (1) = .   . .  new sharing of T (0) ((2 k − 1) ⊕ x 2t )    12th September 2018 10

  21. Higher Order Introduction Masked SBox Construction (Coron EUROCRYPT’14) new sharing of T (1) (0 ⊕ x 2t − 1 )     T (2) = .   . .  new sharing of T (1) ((2 k − 1) ⊕ x 2t − 1 )    12th September 2018 10

  22. Higher Order Introduction Masked SBox Construction (Coron EUROCRYPT’14) new sharing of T (2 t − 1) (0 ⊕ x 1 )     T (2 t ) = .   . .  new sharing of T (2 t − 1) ((2 k − 1) ⊕ x 1 )    12th September 2018 10

  23. Higher Order Introduction Masked SBox Construction (Coron EUROCRYPT’14) new sharing of T (2 t − 1) (0 ⊕ x 1 )     T (2 t ) = .   . .  new sharing of T (2 t − 1) ((2 k − 1) ⊕ x 1 )    Masked SBox Evaluation 12th September 2018 S ( x ) = new sharing of T ( t ) ( x 0 ) 10

  24. Table of Contents Higher Order: Optimizations 1 Introduction 1st Order Solution Higher Order Masking of Look-Up Tables 2 Higher Order: Optimizations 12th September 2018 3 Conclusion 11

  25. Contributions Higher Order: Optimizations Our Contributions • Security proof at order t with n = t + 1 shares instead of n = 2 t + 1 shares (t-sni formalism) • Saves a factor 4 (running time) • A variant with increasing number of output shares • Saves a factor 2 (running time) • Adapt the common shares technique for multiple SBox evaluations • Saves a factor 2 (running time) 12th September 2018 12

  26. Common Shares Higher Order: Optimizations Common Shares (CGPZ CHES16) Two values a and b may be securely shared such that at most half of the shares are common: ( a 0 , . . . , a t 2 , m 0 , . . . m t − 1 2 ) ( b 0 , . . . , b t 2 , m 0 , . . . m t − 1 2 ) 12th September 2018 13

  27. Look-Up Tables with Common Shares Higher Order: Optimizations Secure at Higher Order The ℓ -th evaluation of S is: ( x ( ℓ ) 0 , x ( ℓ ) 1 , . . . , x ( ℓ ) 2 ) �→ S ( x ( ℓ ) ) = ( y ( ℓ ) 0 , y ( ℓ ) 1 , . . . , y ( ℓ ) ) 2 , m 0 , . . . , m t − 1 t t 12th September 2018 14

  28. Look-Up Tables with Common Shares Masked SBox Construction (Common Table) Higher Order: Optimizations  sharing of S (0)    . T (0) =   . . sharing of S (2 k − 1)     12th September 2018 15

  29. Look-Up Tables with Common Shares Masked SBox Construction (Common Table) Higher Order: Optimizations new sharing of T (0) (0 ⊕ m 0 )     T (1) = .   . .  new sharing of T (0) ((2 k − 1) ⊕ m 0 )    12th September 2018 15

  30. Look-Up Tables with Common Shares Masked SBox Construction (Common Table) Higher Order: Optimizations new sharing of T (1) (0 ⊕ m 1 )     T (2) = .   . .  new sharing of T (1) ((2 k − 1) ⊕ m 1 )    12th September 2018 15

  31. Look-Up Tables with Common Shares Masked SBox Construction (Common Table) Higher Order: Optimizations new sharing of T ( t − 1  2 ) (0 ⊕ m t − 1  2 )     2 ) =  .  T ( t +1 . .  new sharing of T ( t − 1  2 ) ((2 k − 1) ⊕ m t − 1   2 )   12th September 2018 15

  32. Look-Up Tables with Common Shares Masked SBox Construction (Common Table) Higher Order: Optimizations new sharing of T ( t − 1  2 ) (0 ⊕ m t − 1  2 )     2 ) =  .  T ( t +1 . .  new sharing of T ( t − 1  2 ) ((2 k − 1) ⊕ m t − 1   2 )   Masked SBox Evaluation 2 ) , . . . T ( t ) using shares x 1 , . . . , x t 1 Compute tables T ( t +3 12th September 2018 2 2 Evaluate using table T ( t ) : S ( x ) = new sharing of T ( t ) ( x 0 ) 15

  33. Performances AES Higher Order: Optimizations SBox Implementation 2 3 6 [RP10] 119 185 485 [Cor14] 2104 4413 17136 All optimizations 463 771 2767 Table: Software AES implementation, in thousand of clock cycles DES 12th September 2018 SBox Implementation 2 3 6 [CGP+12]+[CRV14] 219 290 602 [Cor14] 491 907 3075 All optimizations 203 308 764 Table: Software DES implementation, in thousand of clock cycles 16

  34. Table of Contents Conclusion 1 Introduction 1st Order Solution Higher Order Masking of Look-Up Tables 2 Higher Order: Optimizations 12th September 2018 3 Conclusion 17

  35. Conclusion Conclusion Conclusion • Generalization of SBox recomputation, proven secure at any order • Reduce the running time of common table by a factor of 2 • Reduce the running time by a factor of 8 (from Coron’14) • Remaining task: build a proof to generalize common shares in outputs ( x ( ℓ ) 0 , x ( ℓ ) 1 , . . . , x ( ℓ ) 2 ) �→ S ( x ( ℓ ) ) = ( y ( ℓ ) 0 , y ( ℓ ) 1 , . . . , y ( ℓ ) 2 ) 2 , m 0 , . . . , m t − 1 2 , m 0 , . . . , m t − 1 t t 12th September 2018 • Correct solution for generic small SBox (e.g. DES) 18

Recommend


More recommend