obfuscation and weak multilinear maps
play

Obfuscation and Weak Multilinear Maps Mark Zhandry Princeton - PowerPoint PPT Presentation

Obfuscation and Weak Multilinear Maps Mark Zhandry Princeton University Joint work with Saikrishna Badrinarayanan , Sanjam Garg, Eric Miles, Pratyay Mukherjee, Amit Sahai,


  1. Obfuscation ¡and ¡Weak ¡ Multilinear ¡Maps Mark ¡Zhandry – Princeton ¡University Joint ¡work ¡with ¡Saikrishna Badrinarayanan , ¡Sanjam Garg, ¡Eric ¡ Miles, ¡Pratyay Mukherjee, ¡Amit ¡Sahai, ¡Akshayaram Srinivasan

  2. Obfuscation ¡ [BGIRSVY’01,GGHRSW’13] Compiler: ¡“scrambles” ¡program, ¡hiding ¡implementation “Industry ¡accepted” ¡security ¡notion: ¡ indist. ¡Obfuscation P 1 (x) = P 2 (x) ∀ (x) ⇒ iO(P 1 ) ≈ c iO(P 2 ) “Crypto ¡complete”: “Most” ¡ iO Crypto [GGHRSW’13,SW’13, ¡BZ’13, ¡BST’13, ¡GGHR’13, ¡BP’14, ¡HJKSWZ’14, ¡CLTV’14, ¡…]

  3. Multilinear ¡Maps ¡ (a.k.a. ¡graded ¡encodings) ¡ [BS’03,GGH’13,CLT’13,GGH’15] Main ¡tool ¡for ¡all ¡constructions ¡of ¡obfuscation Levels ¡ 1,…,k , ¡ ¡ ¡ ¡Field/Ring ¡ F Enc [a] i a ∈ F , i ∈ [k] secret + [a] i [b] i [a+b] i × [a] i [b] j [ab] i+j public IsZero [a] k Yes/No

  4. Multilinear ¡Maps ¡ (a.k.a. ¡graded ¡encodings) ¡ [BS’03,GGH’13,CLT’13,GGH’15] k levels: ¡compute ¡arbitrary ¡degree ¡ k polynomials Asymmetric ¡mmaps: ¡additional ¡restrictions • E.g. ¡multilinear ¡polynomials

  5. Obfuscation ¡From ¡Multilinear ¡Maps Obfuscate(P): Enc x Eval(x): [p x ] k IsZero P(x) = 1 ⇔ p x = 0

  6. Applications ¡of ¡Multilinear ¡Maps iO NIKE PKFE ABE BE WE SKFE

  7. “Zeroizing” ¡Attacks ¡on ¡MMaps iO NIKE PKFE ABE BE WE SKFE

  8. “Zeroizing” ¡Attacks ¡on ¡MMaps (Note: ¡apps ¡still ¡possible ¡using ¡obfuscation)

  9. Central ¡Questions Q1: ¡Is ¡obfuscation ¡secure? Q2: ¡If ¡so, ¡how ¡to ¡show ¡it?

  10. This ¡Work: ¡Focus ¡on ¡ GGH’13 ¡Mmaps

  11. Background…

  12. High-­‑level ¡description ¡GGH13 “short” x + g s Level ¡ i encoding ¡of ¡ x : (mod q) z i

  13. High-­‑level ¡description ¡GGH13 “short” x + g s Level ¡ i encoding ¡of ¡ x : (mod q) z i • Add ¡within ¡levels x 1 +gs 1 x 2 +gs 2 = (x 1 +x 2 )+g(s 1 +s 2 ) + z i z i z i

  14. High-­‑level ¡description ¡GGH13 “short” x + g s Level ¡ i encoding ¡of ¡ x : (mod q) z i • Add ¡within ¡levels • Multiplication ¡makes ¡levels ¡add x 1 +gs 1 x 2 +gs 2 = (x 1 x 2 )+g(s 1 x 2 +s 2 x 1 +gs 1 s 2 ) . z i+j z i z j

  15. High-­‑level ¡description ¡GGH13 “short” x + g s Level ¡ i encoding ¡of ¡ x : (mod q) z i • Add ¡within ¡levels • Multiplication ¡makes ¡levels ¡add • Test ¡for ¡zero ¡at ¡“top ¡level” ¡ k p zt = h z k “not ¡too ¡big” Public ¡parameter ¡ g “big” = hx gs x+gs p zt p zt g + hs = hs “not ¡too ¡big” z k z k

  16. High-­‑level ¡description ¡GGH13 “short” x + g s Level ¡ i encoding ¡of ¡ x : (mod q) z i • Add ¡within ¡levels • Multiplication ¡makes ¡levels ¡add • Test ¡for ¡zero ¡at ¡“top ¡level” ¡ k Notes: • z must ¡be ¡secret ¡(else ¡can ¡go ¡down ¡levels) • g must ¡be ¡secret ¡([GGH’13] ¡show ¡attack ¡otherwise)

  17. Encodings ¡of ¡Zero ¡– A ¡Necessary ¡Evil Required ¡for ¡(Most) ¡Applications “Re-­‑randomization” Needed ¡for ¡most ¡(direct) ¡applications • Needed ¡to ¡use ¡any ¡“simple” ¡assumption ¡on ¡mmaps • Add ¡random ¡subset ¡of ¡low-­‑level ¡zeros Successful ¡zero ¡test ¡ ⇒ top ¡level ¡zero

  18. Encodings ¡of ¡Zero ¡– A ¡Necessary ¡Evil Required ¡for ¡(Most) ¡Applications Two ¡low-­‑level ¡zeros: e 1 = g s 1 /z i , e 2 = g s 2 /z k-i Multiple ¡of ¡ g ⇓ p zt e 1 e 2 mod q = hgs 1 s 2 (over ¡ ℤ ) Dangerous ¡For ¡Security

  19. Encodings ¡of ¡Zero ¡– A ¡Necessary ¡Evil Required ¡for ¡(Most) ¡Applications Zeroizing attacks: • GGH’13: ¡“Source ¡group” ¡assumptions ¡(e.g. ¡DLin, ¡ Subgroup ¡decision) ¡are ¡false • CGHLMMRST’15: ¡Immunizations ¡don’t ¡work • HJ’16: ¡MDDH ¡is ¡false, ¡multiparty ¡NIKE ¡broken • Probably ¡other ¡assumptions ¡broken ¡too ¡(MDHE, ¡etc) Dangerous ¡For ¡Security

  20. Encodings ¡of ¡Zero ¡– A ¡Necessary ¡Evil Required ¡for ¡(Most) ¡Applications Dangerous ¡For ¡Security

  21. What ¡about ¡Obf/WE/SKFE? Good ¡News: No ¡re-­‑randomization ¡needed ¡in ¡application no ¡low-­‑level ¡zeros ¡(explicit ¡or ¡implicit) Bad ¡News: Top ¡level ¡zeros ¡may ¡still ¡be ¡generated ¡during ¡use Re-­‑rand ¡still ¡needed ¡for ¡“simple” ¡assumptions

  22. Central ¡Questions ¡(Restated) Q1: ¡Can ¡top-­‑level ¡zeros ¡be ¡ used ¡to ¡attack ¡iO? Q2: ¡How ¡to ¡argue ¡security ¡ against ¡zeroizing attacks?

  23. Q1: ¡Affirmative! Thm* ¡[MSZ’16]: ¡ The ¡branching ¡program ¡ obfuscators ¡in ¡[BGKPS’14, ¡PST’14, ¡AGIS’14, ¡ BMSZ’16] ¡over ¡GGH’13 ¡do ¡not ¡satisfy ¡iO *Small ¡heuristic ¡component

  24. (Single ¡input) ¡Branching ¡Programs A 2,0 A 3,0 A 4,0 A 5,0 A 6,0 A 7,0 A 1,0 A 8,0 A 2,1 A 3,1 A 4,1 A 5,1 A 6,1 A 7,1 A 1,1 A 8,1 2 4 2 1 3 4 2 5 x = 11001: IMP x ( {A i,b } ) = A 2,0 A 3,1 A 4,1 A 5,0 A 6,0 A 7,1 A 1,1 A 8,1 If ¡ IMP x = 0 , ¡output ¡ 1 , ¡otherwise ¡output ¡ 0

  25. [BMSZ’16] ¡Obfuscator Building ¡on ¡[GGHRSW’13,BR’14,BGKPS’14,AGIS’14,…] … R 2-1 R 3 R t-1 R 2 A 2,0 R 3-1 A 3,0 R 4 A 1,0 A t,0 α 1,0 α 3,0 α t,0 α 2,0 … R 2 R 2-1 A 2,1 R 3 R 3-1 A 3,1 R 4 R t-1 A 1,1 A t,1 α 3,1 α t,1 α 1,1 α 2,1 “asymmetric” ¡ mmap

  26. [BMSZ’16] ¡Over ¡GGH’13 Randomized ¡Branching ¡Program Encoding ¡randomness B i,b = R i-1 R i+1 S i,b A i,b α i,b Obfuscation ¡encodings + g B i,b S i,b C i,b = mod q z i,b Evaluation: × IMP x ( ) T x = test ¡if ¡“not ¡too ¡big” p zt C i,b mod q

  27. Attack: ¡Annihilating ¡Polynomials × IMP x ( ) T x = C i,b p zt mod q + g h × IMP x ( ) = B i,b S i,b mod q g h × IMP x ( ) + D x ( , , ) = B i,b S i,b R i α i,b g g × + E x ( , , ) mod q S i,b R i α i,b

  28. Attack: ¡Annihilating ¡Polynomials Suppose ¡ P(x) = 1 IMP x ( ) = 0 B i,b ✘ h × IMP x ( ) + D x ( , , ) = T x B i,b S i,b R i α i,b g ✘ g × + E x ( , , ) mod q S i,b R i α i,b “not ¡too ¡big”, ¡so ¡holds ¡over ¡ ℤ

  29. Attack: ¡Annihilating ¡Polynomials Suppose ¡ P(x) = 1 g × T x = D x ( , , ) + E x ( , , ) S i,b S i,b R i R i α i,b α i,b Efficiency: Exp-­‑many ¡inputs: Pick ¡larger ¡poly ¡set ¡of ¡ D x Poly-­‑many ¡free ¡vars Algebraic ¡dependence: ∃ poly ¡ Q: Q(D x1 , D x2 , … ) = 0

  30. Attack: ¡Annihilating ¡Polynomials Algebraic ¡dependence: ∃ poly ¡ Q: Q(D x1 , D x2 , … ) = 0 Annihilating ¡polynomial Q(T x1 , T x2, … ) = Q(D x1 +gE x1 , D x2 +gE x2 , … ) = Q(D x1 , D x2 , … ) + gQ’ + g 2 Q’’ + … = gQ’ + g 2 Q’’ + … Multiple ¡of ¡ g

  31. Attack: ¡Annihilating ¡Polynomials Goal: ¡find ¡ Q that ¡annihilates ¡ P 1 , ¡but ¡not ¡ P 2 Distinguishing ¡Attack* Extends ¡to ¡any ¡“purely ¡algebraic” ¡obfuscator Problem: ¡in ¡general, ¡annihilation ¡is ¡hard Thm ([Kay’09]): ¡ Unless ¡PH ¡collapses, ¡there ¡are ¡ dependent ¡polys ¡for ¡which ¡an ¡annihilating ¡ polynomial ¡requires ¡super-­‑polynomial ¡sized ¡circuits Question: ¡ Can ¡annihilating ¡polys ¡be ¡found ¡for ¡ particular ¡obfuscators/programs? * ¡Additional ¡work ¡needed ¡to ¡test ¡for ¡multiple ¡of ¡ g

  32. Attack: ¡Annihilating ¡Polynomials Consider ¡“single-­‑input” ¡setting ¡(used ¡to ¡prove ¡iO) Suppose ¡“trivial” ¡branching ¡program: ¡ A i,0 =A i,1 =A i Explicit ¡annihilating ¡polynomial ¡for ¡[BMSZ’16]: q ¡= ¡(D 000 D 111 ) 2 + ¡(D 001 D 110 ) 2 + ¡(D 010 D 101 ) 2 + (D 100 D 011 ) 2 -­‑ 2D 000 D 111 D 001 D 110 – 2D 000 D 111 D 010 D 101 – 2D 000 D 111 D 100 D 011 -­‑ 2D 001 D 110 D 010 D 101 – 2D 001 D 110 D 100 D 011 – 2D 010 D 101 D 100 D 011 + ¡4D 000 D 011 D 101 D 111 + ¡4D 111 D 001 D 010 D 100 Computed ¡by ¡reducing ¡problem ¡to ¡finite ¡size, ¡then ¡ brute-­‑force ¡search

  33. Attack: ¡Annihilating ¡Polynomials For ¡dual ¡input: • First, ¡reduce ¡problem ¡to ¡finite ¡size • Brute-­‑force ¡annihilating ¡poly ¡in ¡constant ¡time • Haven’t ¡found ¡it ¡yet, ¡but ¡still ¡gives ¡poly-­‑time ¡attack Other ¡obfuscators: • [BR’14,BGKPS’14, ¡PST’14, ¡AGIS’14]: ¡similar ¡analysis Also ¡attack ¡ORE ¡(SKFE) ¡[BLRSZZ’15] ¡over ¡GGH’13

Recommend


More recommend