8 + Block Ciphers Implementations Provably Secure Against Second Order Side Channel Analysis Matthieu Rivain 1 , 2 , Emmanuelle Dottax 1 & Emmanuel Prouff 1 Oberthur Card Systems University of Luxembourg February 11, 2008 M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Outline 8 + Introduction to (Second Order) Side Channel Analysis 1 Block Ciphers Implementations Secure Against 2O-SCA 2 S-box Implementations Secure Against 2O-SCA 3 Improvement 4 Comparison & Implementation Results 5 M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Side Channel Analysis 8 + Side Channel Analysis (SCA) is a strong cryptanalytic technique targeting physical implementations The physical leakage of the execution of any algorithm depends on the intermediate variables SCA exploits leakage on sensitive variables that depend on the secret key M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Side Channel Analysis 8 + V depends on a few key bits ⇒ possible key recovery attack exploiting L ( V ) M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Side Channel Analysis 8 + V depends on a few key bits ⇒ possible key recovery attack exploiting L ( V ) Classical statistical distinguishers: ◮ correlation techniques – generic ◮ maximum likelihood – strong adversary model M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Masking & Higher Order SCA 8 + One or several random values – the masks – are added to every sensitive variable M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Masking & Higher Order SCA 8 + One or several random values – the masks – are added to every sensitive variable First order masking: one single mask M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Masking & Higher Order SCA 8 + One or several random values – the masks – are added to every sensitive variable First order masking: one single mask Second Order Side Channel Analysis ◮ M : random mask ◮ V ⊕ M : masked variable M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Masking & Higher Order SCA 8 + One or several random values – the masks – are added to every sensitive variable First order masking: one single mask Second Order Side Channel Analysis ◮ M : random mask ◮ V ⊕ M : masked variable To thwart 2O-SCA: use second order masking M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Masking & Higher Order SCA 8 + One or several random values – the masks – are added to every sensitive variable First order masking: one single mask Second Order Side Channel Analysis ◮ M : random mask ◮ V ⊕ M : masked variable To thwart 2O-SCA: use second order masking d th order masking is broken by ( d + 1) th order SCA M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Why Using Masking ? 8 + [Chari+ CRYPTO’99] SCA complexity increases ◮ exponentially with the masking order ◮ polynomially with hiding-like countermeasures (noise addition, operation order randomization, ...) Incrementing the masking order is of great interest for SCA resistance M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Why Using Masking ? 8 + [Chari+ CRYPTO’99] SCA complexity increases ◮ exponentially with the masking order ◮ polynomially with hiding-like countermeasures (noise addition, operation order randomization, ...) Incrementing the masking order is of great interest for SCA resistance Many papers focus on improving 2O-SCA A few papers deal with resistant implementations M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Why Using Masking ? 8 + [Chari+ CRYPTO’99] SCA complexity increases ◮ exponentially with the masking order ◮ polynomially with hiding-like countermeasures (noise addition, operation order randomization, ...) Incrementing the masking order is of great interest for SCA resistance Many papers focus on improving 2O-SCA A few papers deal with resistant implementations First step: provable security against 2O-SCA M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Security Against 2O-SCA 8 + Definition (2O-SCA Security) A cryptographic algorithm is said to be secure against 2O-SCA if every pair of its intermediate variables is independent of any sensitive variable. An algorithm security can be formally proved ◮ listing all intermediate variables ◮ checking every pair independency M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Block Cipher Description 8 + Iterated block cipher M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Block Cipher Description 8 + Iterated block cipher Round transformation: ρ [ k ]( · ) = λ ◦ γ ◦ σ [ k ]( · ) M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Securing Block Ciphers Implementations 8 + Second order masking: ◮ p = p 0 ⊕ p 1 ⊕ p 2 ◮ k = k 0 ⊕ k 1 ⊕ k 2 ( p 1 , p 2 ) and ( k 1 , k 2 ) randomly generated M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Securing Block Ciphers Implementations 8 + Second order masking: ◮ p = p 0 ⊕ p 1 ⊕ p 2 ◮ k = k 0 ⊕ k 1 ⊕ k 2 ( p 1 , p 2 ) and ( k 1 , k 2 ) randomly generated Goal: perform a round transformation from the 3 shares ◮ The shares must be process separately ◮ The completeness relation must be preserved M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Securing the Round Transformation 8 + Linear layer: simple M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Securing the Round Transformation 8 + Linear layer: λ ( p ) = λ ( p 0 ) ⊕ λ ( p 1 ) ⊕ λ ( p 2 ) M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Securing the Round Transformation 8 + Linear layer: λ ( p ) = λ ( p 0 ) ⊕ λ ( p 1 ) ⊕ λ ( p 2 ) Key addition layer: simple M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Securing the Round Transformation 8 + Linear layer: λ ( p ) = λ ( p 0 ) ⊕ λ ( p 1 ) ⊕ λ ( p 2 ) Key addition layer: σ [ k ]( p ) = σ [ k 0 ]( p 0 ) ⊕ σ [ k 1 ]( p 1 ) ⊕ σ [ k 2 ]( p 2 ) M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Securing the Round Transformation 8 + Linear layer: λ ( p ) = λ ( p 0 ) ⊕ λ ( p 1 ) ⊕ λ ( p 2 ) Key addition layer: σ [ k ]( p ) = σ [ k 0 ]( p 0 ) ⊕ σ [ k 1 ]( p 1 ) ⊕ σ [ k 2 ]( p 2 ) Non-linear layer: issue M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Securing the Round Transformation 8 + Linear layer: λ ( p ) = λ ( p 0 ) ⊕ λ ( p 1 ) ⊕ λ ( p 2 ) Key addition layer: σ [ k ]( p ) = σ [ k 0 ]( p 0 ) ⊕ σ [ k 1 ]( p 1 ) ⊕ σ [ k 2 ]( p 2 ) Non-linear layer: issue ◮ Problem: secure an S-box implementation M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Secure S-box Implementation – Problem 8 + S : n × m S-box M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Secure S-box Implementation – Problem 8 + S : n × m S-box x = x ⊕ r 1 ⊕ r 2 : n -bit masked input, ( r 1 , r 2 ) : n -bit input masks ˜ M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Secure S-box Implementation – Problem 8 + S : n × m S-box x = x ⊕ r 1 ⊕ r 2 : n -bit masked input, ( r 1 , r 2 ) : n -bit input masks ˜ ( s 1 , s 2 ) : m -bit output masks M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Secure S-box Implementation – Problem 8 + S : n × m S-box x = x ⊕ r 1 ⊕ r 2 : n -bit masked input, ( r 1 , r 2 ) : n -bit input masks ˜ ( s 1 , s 2 ) : m -bit output masks Goal : process S ( x ) ⊕ s 1 ⊕ s 2 Requirement : every pair of inter. var. must be indep. of x M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Our Proposition 8 + Input: ˜ x = x ⊕ r 1 ⊕ r 2 , ( r 1 , r 2 ) , ( s 1 , s 2 ) Output: S ( x ) ⊕ s 1 ⊕ s 2 1. r 3 ← rand ( n ) 2. r ′ ← ( r 1 ⊕ r 3 ) ⊕ r 2 3. for a from 0 to 2 n − 1 do a ′ ← a ⊕ r ′ 4. � � 5. T [ a ′ ] ← S (˜ x ⊕ a ) ⊕ s 1 ⊕ s 2 6. return T [ r 3 ] M. Rivain, E. Dottax & E. Prouff Block Ciphers Implementations Provably Secure ag. 2O-SCA
Recommend
More recommend