white box cryptography
play

White-Box Cryptography Matthieu Rivain Journ ees Nationales 2017 - PowerPoint PPT Presentation

White-Box Cryptography Matthieu Rivain Journ ees Nationales 2017 Pr e-GDR S ecurit e Informatique Paris, 31 mai 2017 Outline Context: white-box crypto: big trend in the industry cryptographic obfuscation: big trend in the


  1. White-Box Cryptography Matthieu Rivain Journ´ ees Nationales 2017 Pr´ e-GDR S´ ecurit´ e Informatique Paris, 31 mai 2017

  2. Outline ∎ Context: ▸ white-box crypto: big trend in the industry ▸ cryptographic obfuscation: big trend in the scientific literature ▸ huge gap between both ∎ This presentation: ▸ what is (cryptographic) obfuscation? ▸ what is white-box cryptography? ▸ white-box cryptography in practice

  3. What is (cryptographic) obfuscation?

  4. What is obfuscation? Obfuscation is the deliberate act of creating obfuscated code that is difficult for humans to understand . Obfuscators make reverse engineering more difficult but do not alter the behavior of the obfuscated application. – wikipedia

  5. What is obfuscation? Obfuscation is the deliberate act of creating obfuscated code that is difficult for humans to understand . Obfuscators make reverse engineering more difficult but do not alter the behavior of the obfuscated application. – wikipedia ⇒ make a program unintelligible while preserving its functionality

  6. Defining obfuscation Program ∎ word in a formal (programming) language P ∈ L ∎ function execute ∶ L × { 0 , 1 } ∗ → { 0 , 1 } ∗ execute ∶ ( P,in ) ↦ out ∎ P implements a function f ∶ A → B if ∀ a ∈ A ∶ execute ( P,a ) = f ( a ) denoted P ≡ f ∎ P 1 and P 2 are functionally equivalent if P 1 ≡ f ≡ P 2 for some f denoted P 1 ≡ P 2

  7. Defining obfuscation Obfuscator ∎ algorithm O mapping a program P to a program O ( P ) st: ∎ functionality: O ( P ) ≡ P ∎ efficiency: O ( P ) is efficiently executable ∎ security: ▸ (informal) O ( P ) is hard to understand ▸ (informal) O ( P ) protects its data How to formally define the security property?

  8. Virtual Black-Box (VBB) Obfuscation ∎ O ( P ) reveals nothing more than the I/O behavior of P ∎ Any adversary on O ( P ) can be simulated with a black-box access to P P x P ( x ) � � 0 0 A S O ( P ) ⊥ ≃ 1 1 Adversary Simulator ∣ Pr [ A ( O ( P ))) = 1 ] − Pr [ S P ( � ) = 1 ]∣ ≤ ε

  9. Impossibility result ∎ VBB-O does not exist on general programs (CRYPTO’01) ∎ Counterexample: uint128_t cannibal (prog P, uint128_t password) { uint128_t secret1 = 0 xe075b4f4eabf4377c1aa7202c8cc1ccb ; uint128_t secret2 = 0 x94ff8ec818de3bd8223a62e4cb7c84a4 ; if (password == secret1) return secret2; if (execute(P, null , secret1) == secret2) return secret1; return 0; } O ( cannibal )( O ( cannibal ) , 0 ) = secret1

  10. Indistinguishability obfuscation (iO) ∎ Restricted to circuits i.e. programs without branches/loops ∎ For any two programs P 1 and P 2 st P 1 ≡ P 2 and ∣ P 1 ∣ = ∣ P 2 ∣ , the obfuscated programs O ( P 1 ) and O ( P 2 ) are indistinguishable � � 0 0 A A O ( P 1 ) O ( P 2 ) ≃ 1 1 ∣ Pr [ A ( O ( P 1 )) = 1 ] − Pr [ A ( O ( P 2 )) = 1 ]∣ ≤ ε ∎ Best possible obfuscation in some sense

  11. What is white-box cryptography?

  12. What is white-box cryptography? “the attacker is assumed to have full access to the encrypting software and control of the execution environment” “Our main goal is to make key extraction difficult.” “While an attacker can clearly make use of the software itself, forcing an attacker to use the installed instance is often of value to DRM systems providers.” – Chow et al. (DRM 2002)

  13. What is white-box cryptography? “the attacker is assumed to have full access to the encrypting software and control of the execution environment” ⇒ obfuscation restricted to encryption (or another crypto primitive) “Our main goal is to make key extraction difficult.” “While an attacker can clearly make use of the software itself, forcing an attacker to use the installed instance is often of value to DRM systems providers.” – Chow et al. (DRM 2002)

  14. What is white-box cryptography? “the attacker is assumed to have full access to the encrypting software and control of the execution environment” ⇒ obfuscation restricted to encryption (or another crypto primitive) “Our main goal is to make key extraction difficult.” ⇒ relaxed security requirements “While an attacker can clearly make use of the software itself, forcing an attacker to use the installed instance is often of value to DRM systems providers.” – Chow et al. (DRM 2002)

  15. What is white-box cryptography? “the attacker is assumed to have full access to the encrypting software and control of the execution environment” ⇒ obfuscation restricted to encryption (or another crypto primitive) “Our main goal is to make key extraction difficult.” ⇒ relaxed security requirements “While an attacker can clearly make use of the software itself, forcing an attacker to use the installed instance is often of value to DRM systems providers.” ⇒ encryption software ≠ secret key – Chow et al. (DRM 2002)

  16. What is white-box cryptography? ∎ Obfuscation restricted to a specific class of crypto primitives ∎ Typically, SPN ciphers: k 1 k 2 k 3 k n S S S S S S S S S S S S S S S S m c LL LL LL LL S S S S S S S S S S S S S S S S ∎ Strong structure, could enable specific obfuscation techniques ∎ Running example: { AES k ( ⋅ ) ∣ k ∈ { 0 , 1 } 128 }

  17. VBB-obfuscated AES ∎ Strongest form of WBC AES k ( · ) m c � � 0 0 A S WB-AES k ⊥ ≃ 1 1 Adversary Simulator ∎ Impossibility result does not apply ∎ The AES-LUT program achieves VBB ▸ but does not fit into 10 9 ⋅ 10 9 ⋅ 10 9 TB ∎ How to build a compact VBB AES implementation? ▸ could be impossible to achieve

  18. iO-obfuscated AES ∎ Is this a good obfuscator? 1. k ← extract-key ( P k ) 2. return reference implem AES k ▸ This is an iO AES obfuscator! ∎ So what does iO-AES means? ▸ not clear!

  19. Defining WBC iO AES simple VBB AES AES ? Obfuscation scale ∎ We need something ▸ relaxed compared to VBB ▸ meaningful compared to iO

  20. Defining WBC iO AES simple VBB further white-box AES AES ? security notions Obfuscation scale ∎ We need something ▸ relaxed compared to VBB ▸ meaningful compared to iO ⇒ further notions ∎ SAC 2013: “White-Box Security Notions for Symmetric Encryption Schemes”

  21. What could we expect? ∎ The least requirement: key extraction must be difficult A WB-AES k k ∎ Code-lifting cannot be avoided ∎ It should be different to have WB - AES k and k ∎ Using the software should constrain the adversary

  22. Incompressibility ∎ Make the implementation huge and incompressible WB-AES k AES k A < 10 KB > 10 GB

  23. Incompressibility ∎ Make the implementation huge and incompressible WB-AES k AES k A < 10 KB > 10 GB ∎ Several new primitives based on this idea ▸ Toy example (SAC’13): RSA with large public exponent ▸ Block-ciphers based on large tables (CCS’15, ASIACRYPT’16) ▸ Big-key cipher (CRYPTO’16)

  24. One-wayness ∎ Make the implementation one-way m A WB-AES k m c ∎ Namely: turning AES into a public-key cryptosystem ∎ PK crypto with light-weight private operations

  25. Traceability ∎ Include a tracing mechanism WB-AES k, id A T Π ≡ AES k ( · ) id ∃ T st ∀ A ∶ WB - AES k, id ↦ Π ≡ AES k ( ⋅ ) ⇒ T ( Π ) = id ∎ Possible use case: pay-TV

  26. Traceability ∎ Include a tracing mechanism WB-AES k, id 1 WB-AES k, id WB-AES k, id 2 A T Π ≡ AES k ( · ) id ∈ { id 1 , id 2 , . . . , id t } WB-AES k, id t ∃ T st ∀ A ∶ WB - AES k, id ↦ Π ≡ AES k ( ⋅ ) ⇒ T ( Π ) = id ∎ Possible use case: pay-TV

  27. White-box cryptography in practice

  28. Original white-box AES ∎ SAC 2002: “White-Box Cryptography and an AES Implementation” (Chow et al. ) ∎ First step: represent AES as a network of look-up tables ▸ Each AES round composed of 4 sub-rounds of the form: S ( x 0 ⊕ k 0 ) 02 03 01 01 ⎛ ⎞ ⎛ ⎞ S ( x 5 ⊕ k 5 ) ⎜ ⎟ ⎜ ⎟ 01 02 03 01 ⎜ ⎟ ⎜ ⎟ ( y 0 ,y 1 ,y 2 ,y 3 ) = ⊗ ⎜ ⎟ ⎜ ⎟ S ( x 10 ⊕ k 10 ) 01 01 02 03 ⎝ ⎠ ⎝ ⎠ S ( x 15 ⊕ k 15 ) 03 01 01 02

  29. Original white-box AES ∎ This rewrites: ( y 0 ,y 1 ,y 2 ,y 3 ) = T 0 [ x 0 ] ⊕ T 5 [ x 5 ] ⊕ T 10 [ x 10 ] ⊕ T 15 [ x 15 ] where T i ∶ 8 bits → 32 bits defined as S ( x ⊕ k 0 ) × ( 02 01 01 03 ) T = T 0 [ x ] = S ( x ⊕ k 5 ) × ( 03 02 01 01 ) T T 5 [ x ] S ( x ⊕ k 10 ) × ( 01 03 02 01 ) T = T 10 [ x ] = S ( x ⊕ k 15 ) × ( 01 01 03 02 ) T T 15 [ x ] ∎ XORs performed with a table T xor ∶ 8 bits → 4 bits T xor [ x 0 ∣∣ x 1 ] = x 0 ⊕ x 1

  30. Original white-box AES Illustration: J. Muir “A Tutorial on White-box AES” (ePrint 2013)

  31. Original white-box AES Illustration: J. Muir “A Tutorial on White-box AES” (ePrint 2013)

  32. Original white-box AES ∎ Second step: randomize the look-up tables ▸ Each table T is replaced by T ′ = g ○ T ○ f − 1 where f,g are random encodings ▸ For two connected tables T , R T ′ = g ○ T ○ f − 1 R ′ ○ T ′ = h ○ ( R ○ T ) ○ f − 1 ⇒ R ′ = h ○ R ○ g − 1 ∎ Intuition: encoded tables bring no information on the key ▸ true for a single table ▸ true for a chain g ○ T n ○ T n − 1 ○ ⋯ ○ T 1 ○ f − 1 ▸ not true for the larger picture

  33. Original white-box AES ∎ Consider the encoded sub-round (32 bits → 32 bits): Illustration: Y. De Mulder (presentation SAC 2013) ∎ The four key bytes can be easily extracted from it

Recommend


More recommend