Obfuscation for Evasive Functions

advertisement
Boaz Barak, Nir Bitansky, Ran Canetti,
Yael Tauman Kalai, Omer Paneth, Amit Sahai
Program Obfuscation
Approved
Document
Verify and sign
Signature
Obfuscation
Obfuscated Program
Virtual Black-Box (VBB)
[Barak-Goldreich-Impagliazzo-Rudich-Sahai-Vadhan-Yang 01]
Algorithm π’ͺ is an obfuscator for a family of functions π‘“π‘˜ if:
For every adversary 𝐴 there exists a simulator 𝑆
such that for every key π‘˜ and predicate 𝑃:
π‘“π‘˜
π’ͺ(π‘“π‘˜ )
𝐴
𝑃(π‘˜)
𝑆
Impossibilities for VBB
[Barak-Goldreich-Impagliazzo-Rudich-Sahai-Vadhan-Yang 01]
There exist families of “unobfuscatable” functions
• Can be embedded in applications
(e.g. encryption, signatures)
• Implemented in TC0
Pseudo-entropic functions are unobfuscatable w.r.t
auxiliary input \universal simulation
[Bitansky-Canetti-Cohn-Goldwasser-Kalai-P-Rosen 14]
Positive results
• Constructions for simple functions
[Can97, CMR98, LPS04, DS05,Wee05, CD08, CV09, CRV10,BR13]
• General constructions in idealized models
[CV13,BR13,BGKPS13]
Which functions are
VBB obfuscatable?
Find rich classes of functions
that can be VBB obfuscated
Evasive Functions
A family π‘“π‘˜ of boolean functions is evasive
if for or every π‘₯ ∈ 0,1 ∗ :
Pr
π‘˜← 0,1
𝑛
π‘“π‘˜ (π‘₯) = 1 < negl 𝑛 .
Alternatively:
For every efficient (non-uniform) adversary 𝐴:
Pr
π‘˜← 0,1 𝑛
𝐴 π‘“π‘˜ → π‘₯ s.t. π‘“π‘˜ π‘₯ = 1 < negl(𝑛).
Applications
Evasive Functions
Disjunctions
Hyperplanes
Fuzzy point
functions
Point
functions
Digital
Lockers
Example
Output
Crash
Buggy
software
Good input
Bad input
Input
Patch
Bad input
Error
message
No impossibility for
VBB obfuscation*
of evasive functions
*for the right notion of VBB
VBB for Evasive Functions
Turing
machine
Circuit
Worst-case
Impossible
Impossible
Average-case
Impossible
No known
impossibility
Contributions
• New definitions for evasive function obfuscation
and the relations between them.
• Constructions for the zero-set of low degree
polynomial based on multilinear maps
• Virtual-gray box obfuscation for evasive functions
⇓
Virtual-gray box obfuscation for all functions
• New definitions for evasive function obfuscation
and the relations between them.
• Constructions for the zero-set of low degree
polynomial based on multilinear maps
• Virtual-gray box obfuscation for evasive functions
⇓
Virtual-gray box obfuscation for all functions
Average-case VBB
For every adversary 𝐴 there exists a simulator 𝑆
such that for every predicate 𝑃 and for a random key π‘˜:
π‘“π‘˜
π’ͺ(π‘“π‘˜ )
𝐴
𝑃(π‘˜)
𝑆
Input-Hiding Obfuscation
For every adversary 𝐴:
Pr
π‘˜← 0,1
𝑛
𝐴 π’ͺ π‘“π‘˜
→ π‘₯ s.t. π‘“π‘˜ π‘₯ = 1 < negl 𝑛 .
• Only achievable for evasive functions
• Incomparable to average-case VBB
• New definitions for evasive function obfuscation
and the relations between them.
• Constructions for the zero-set of low degree
polynomial based on multilinear maps
• Virtual-gray box obfuscation for evasive functions
⇓
Virtual-gray box obfuscation for all functions
Constructions
Average-case VBB and Input-hiding obfuscation for a
subclass of evasive function:
Roots of low degree multivariate polynomials
π‘“π‘˜ is defined by a multivariate polynomial 𝑄 over 𝕫𝑝 .
𝑛
For key π‘˜ ∈ π•«π‘š
𝑝 and input π‘₯ ∈ 𝕫𝑝 :
1
π‘“π‘˜ (π‘₯) =
0
if 𝑄 π‘˜1 , … , π‘˜π‘š , π‘₯1 , … , π‘₯𝑛 = 0
.
otherwise
Is the Root Set Evasive?
For every input π‘₯ ∈ 𝕫𝑛𝑝 :
𝑄 ⋅ , π‘₯ β‰’ 0 ⇒ Pr π‘“π‘˜ (π‘₯) = 1 = negl(𝑛)
π‘˜
𝑄 ⋅ , π‘₯ ≡ 0 ⇒ Pr π‘“π‘˜ π‘₯ = 1 = 1
π‘˜
1
π‘“π‘˜ (π‘₯) =
0
if 𝑄 π‘˜1 , … , π‘˜π‘š , π‘₯1 , … , π‘₯𝑛 = 0
.
otherwise
Two Constructions
Security
notion
Input-hiding
Average-case VBB
Function
families
𝑄 given by an
arithmetic circuit
of size poly 𝑛
and degree poly(𝑛)
𝑄 given by an
arithmetic circuit
of size poly 𝑛
and depth O(log 𝑛)
Assumption
One-way graded
encoding
Perfectly-hiding
graded encoding
Graded Encodings
[Garg-Gentry-Halevi 13]
Gen 1𝑛 , 𝑑 → 𝑃𝑃 including a description of a ring 𝑅.
For every 𝛼 ∈ 𝑅 and every 0 ≤ 𝑙 ≤d, 𝛼 𝑙 is an encoding
• Add𝑃𝑃 𝛼 𝑙 , 𝛽
• Mul𝑃𝑃 𝛼
𝑙1 ,
• Zero𝑃𝑃 𝛼
𝑑
𝛽
→ 𝛼 + 𝛽 𝑙 , Neg 𝑃𝑃 𝛼
𝑙
𝑙2
→ 𝛼×𝛽
𝑙
→ −𝛼
𝑙
𝑙1 +𝑙2
→ 1 if 𝛼 = 0 , and 0 otherwise
• Enc𝑃𝑃 𝛼 → 𝛼
1
(candidate scheme with public encoding from [CLT13])
Input-Hiding
0/1
Zero
Gen 1𝑛 , 𝑑 → 𝑃𝑃
𝑑 = degree(𝑄)
𝑄(π‘˜, π‘₯)
𝑑
Evaluate 𝑄 using
Add, Neg, Mul
π’ͺ π‘“π‘˜ → π‘˜1 1 , … , π‘˜π‘š
1
π‘₯1 1 , … , π‘₯𝑛
1
← Enc(π‘₯)
Proof Idea
Assume there exists 𝐴 such that:
𝐴 π’ͺ π‘“π‘˜ = π‘˜1 1 , … , π‘˜π‘š
1
→ π‘₯ s.t. 𝑄 π‘˜, π‘₯ = 0
If 𝑄 π‘˜, π‘₯ = 0 then π‘˜ is a root of 𝑄 ⋅ , π‘₯ .
Can use 𝐴 to invert Enc π‘˜π‘– .
• New definitions for evasive function obfuscation
and the relations between them.
• Constructions for the zero-set of low degree
polynomial based on multilinear maps
• Virtual-gray box obfuscation for evasive functions
⇓
Virtual-gray box obfuscation for all functions
Virtual Grey-Box (VGB)
[Bitansky-Canetti 10]
For every adversary 𝐴 there exists an unbounded simulator 𝑆
making polynomial number of oracle queries
such that for every predicate 𝑃 and for a random key π‘˜:
π‘“π‘˜
π’ͺ(π‘“π‘˜ )
𝐴
𝑃(π‘˜)
𝑆
Polynomial #
of queries
Computationally
unbounded
Why VGB?
Virtual black-box obfuscation
⇓
Virtual grey-box obfuscation
⇓
Indistinguishability obfuscation
Applications of VGB
[Bitansky-Canetti 10]
Composable VGB obfuscation for point functions
from a strong variant of DDH.
⇓
Digital lockers [CD08], strong KDM encryption [CKVW10], CCA
encryption [MH14], computational fuzzy extractors [CFPR14].
Virtual Grey-Box
Virtual grey-box is not always meaningful.
Example: pseudorandom functions
For what functions is
virtual grey-box meaningful?
VGB for Evasive Functions
For evasive functions ,
Average-case VBB ⇔ average-case VGB
π‘“π‘˜
π’ͺ(π‘“π‘˜ )
𝐴
𝑃(π‘˜)
𝑆
Polynomial #
of queries
Computationally
unbounded
Theorem
Average-case VGB for evasive functions
+ indistinguishability obfuscation for all functions
⇓
Average-case VGB* for all functions
* 1. Simulator make (slightly) super-polynomial #queries
2. Obfuscator is inefficient
Proof Idea
Any function family π‘“π‘˜ can be decomposed to:
π‘“π‘˜ = π‘”π‘˜ + β„Žπ‘˜
Can be learned by
the VGB simulator
Evasive
π’ͺ π‘“π‘˜ = π‘”π‘˜ + π’ͺ(β„Žπ‘˜ )
Decomposition via Learning
π‘“π‘˜
Decomposition via Learning
π‘“π‘˜
Decomposition via Learning
π‘“π‘˜
Decomposition via Learning
π‘“π‘˜
Decomposition via Learning
π‘“π‘˜
Decomposition via Learning
π‘”π‘˜
π‘“π‘˜
β„Žπ‘˜ = π‘“π‘˜ − π‘”π‘˜ is evasive.
Thank You!
ο‚–
π‘”π‘˜
π‘“π‘˜
Download