Boaz Barak
Sanjam Garg
Yael Tauman Kalai
Omer Paneth
Amit Sahai
Program Obfuscation
π
πΈπππ π (π)
cipher
Obfuscation
π
Public Key
cipher
Virtual Black-Box (VBB)
[Barak-Goldreich-Impagliazzo-Rudich-Sahai-Vadhan-Yang 01]
Algorithm πͺ is an obfuscator for a class π if:
For every PPT adversary π΄ there exists a PPT simulator π
such that for every πΆ ∈ π:
πΆ
πͺ(πΆ)
π΄
π(πΆ)
≈
π
VBB Impossibility
[Barak-Goldreich-Impagliazzo-Rudich-Sahai-Vadhan-Yang 01]
There exists contrived “unobfuscatable” programs.
Code of a program
equivalent to πΆ
πΆ
Secret
πΆ
πͺ(πΆ)
Execute
πͺ π
on itself
Secret
π
First Candidate Obfuscation
[Garg-Gentry-Halevi-Raykova-Sahai-Waters 13]
What is the security of the candidate?
Assumption:
The [GGHRSW13] obfuscator is an
Indistingushability Obfuscator.
Indistinguishability Obfuscation (ππͺ):
Noevery
known
except
[BGIRSVY01].
For
pairattacks
of equivalent
circuits
πΆ1 ≡ πΆ2 :
ππͺ πΆ1 ≈π ππͺ(πΆ2 )
This Work
A variant of the [GGHRSW13]
obfuscator is VBB for all circuits
in a generic model
(underlying algebra is idealized)
Multilinear Maps
[Boneh-Silverberg 03, Garg-Gentry-Halevi 13]
Encoding πΌ
π
of πΌ ∈ π
under a set π ⊆ π .
1.
πΌ
1,2,5
± π½
1,2,5
2.
πΌ
1,2,5
± π½
3,4
3. ππ πΌ
1,…,π
= πΌ±π½
= πΌ⋅π½
1,2,5
1,2,3,4,5
= 1 iff πΌ = 0
Idealy: any other operation is hard.
The Generic MM Model
π₯
π₯
πΈ1 , πΈ2 , E3 , E4 , E5
πΆ
πͺ(πΆ)
πΈ6 , πΈ7 , E8 , E9 , E10
πΆ(π₯)
πΆ(π₯)
Add
Multiply
ZT
Our Result
Virtual Black-Box obfuscation in
the generic MM model:
1
1. For NC .
2. For P/Poly assuming LWE.
Avoiding VBB Impossibility
In the Generic MM Model
Code of a program
equivalent to πΆ
πΆ
Secret
Add
Mul
ZT
πͺ(πΆ)
Execute
πͺ π
on itself
Secret
Interpretation
Secure obfuscation against “algebraic attacks”.
Warning:
Non-algebraic attacks do exist [BGIRSVY01].
Interpretation II
+
This Work:
VBB with Generic
Multilinear Maps
Multi-Message
Semantically-Secure
Multilinear Maps
[Pass-Seth-Telang 13]
ππͺ for P/Poly
(assuming LWE)
Virtual gray-box
obfuscation for NC1
[Pass-Seth-Telang 13]
[Bitansky-Canetti-Kalai-P 14].
Previous Works
[GGHRSW13]
[Canetti-Vaikuntanathan13]
ππͺ in the Generic
Colored Matrix Model
VBB from Black-Box
Pseudo-Free Groups
[Brakerski-Rothblum13]
ππͺ in the Generic
MM Model
This Work
[Brakerski-Rothblum13]
Assuming BSH
VBB in the Generic
MM Model
The Construction
1. Construction for NC1 via branching programs
2. Bootstrap to P/Poly assuming LWE
(leveled-FHE with decryption in NC1 )
Branching Programs
Program:
π10
π20
π30
π40
π50
π60
π70
π80
π90
0
π10
0
π11
0
π12
π11
π21
π31
π41
π51
π61
π71
π81
π91
1
π10
1
π11
1
π12
Input:
π₯1
π₯2
π₯3
π₯4
BP Evaluation
Program:
π10
π20
π30
π40
π50
π60
π70
π80
π90
0
π10
0
π11
0
π12
π11
π21
π31
π41
π51
π61
π71
π81
π91
1
π10
1
π11
1
π12
or
⊥
Input:
0
1
1
0
Output: β€
Obfuscating BP
1. Randomizing
2. Encoding
[Kilian 88]
Step 1: Randomizing
Program:
π10
π20
π30
π40
π50
π60
π70
π80
π90
0
π10
0
π11
0
π12
π11
π21
π31
π41
π51
π61
π71
π81
π91
1
π10
1
π11
1
π12
or
⊥
Input:
π₯1
π₯2
π₯3
π₯4
Output: β€
Step 1: Randomizing
Program:
π10
π20
π30
π40
π50
π60
π70
π80
π90
0
π10
0
π11
0
π12
π11
π21
π31
π41
π51
π61
π71
π81
π91
1
π10
1
π11
1
π12
or
⊥
Input:
0
1
1
0
Output: β€
Step 2: Encoding
Program:
π10
π20
π30
π40
π50
π60
π70
π80
π90
0
π10
0
π11
0
π12
π11
π21
π31
π41
π51
π61
π71
π81
π91
1
π10
1
π11
1
π12
{1}
{2}
{3}
{4}
{5}
{6}
{7}
{8}
{9}
{10} {11} {12}
Obfuscation includes the encodings:
πππ
π
∀ level π, bit π , β€
12
β€
{1, … , 12}
Proof of Security
π40
π10
π21
π50
π31
π80
π61
π71
1
π10
1
π11
…
+
0
π12
π90
π60
π20
π11
π31
+ πΌ⋅
?
β€
π41
=0
π51
0
π10
π71
π81
π91
1
π11
1
π12
Simulation Outline
Test every monomial separately:
π40
π10
π21
π50
π61
π31
By querying πΆ
π80
0
1
π71
1
0
π12
π90
1
π10
0
1
π11
Problems
1. Inconsistent monomials:
π40
π10
π21
π31
π80
π51
π61
0
π12
π90
π71
2. Too many monomials:
0
1
π10 + π11 ⋅ π20 + π21 ⋅ … ⋅ π12
+ π12
1
π10
1
π11
Changing the Sets
{1}
{2}
{3}
{4}
{5}
{6}
{7}
{8}
{9}
{10} {11} {12}
π10
π20
π30
π40
π50
π60
π70
π80
π90
0
π10
0
π11
0
π12
π11
π21
π31
π41
π51
π61
π71
π81
π91
1
π10
1
π11
1
π12
{1}
{2}
{3}
{4}
{5}
{6}
{7}
{8}
{9}
{10} {11} {12}
β€
{1, … , 12}
Changing the Sets
1
1′
2
2′
3
3′
4
4′
5
5′
6
6′
7
7′
8
8′
9
9′
π10
π20
π30
π40
π50
π60
π70
π80
π90
0
π10
0
π11
0
π12
π11
π21
π31
π41
π51
π61
π71
π81
π91
1
π10
1
π11
1
π12
1
1′
2
2′
3
3′
4
4′
5
5′
6
6′
7
7′
8
8′
9
9′
10
10′
10
10′
11
11′
11
11′
12
12′
12
12′
β€
1, … , 12
1′, … , 12′
Changing the Sets
1
1′
5
5′
9
9′
π10
π50
π90
π11
π51
π91
1
1′
5
5′
9
9′
Straddling Set System
1,5,9
1′, 5′, 9′
1
1′
5
5′
9
9′
π10
π50
π90
π11
π51
π91
1
5′
5
9′
9
1′
=
9
1
5
∪ ′ ∪ ′
9
1′
5
0-matrices
=
1
9
5
∪
∪
5′
1′
9′
1-matrices
Straddling Set System
1
1′
5
5′
9
9′
π10
π50
π90
π11
π51
π91
1
5′
5
9′
9
1′
Straddling Set System
1
1′
2
2′
3
3′
4
4′
5
5′
6
6′
7
7′
8
8′
9
9′
10
10′
11
11′
12
12′
1
5′
2
6′
3
7′
4
8′
5
9′
6
10′
7
11′
8
12′
9
1′
10
2′
11
3′
12
4′
Too Many Monomials
0
1
π10 π50 π90 + π11 π51 π91 ⋅ … ⋅ π40 π80 π12
+ π41 π81 π12
+
⋅ …⋅
+
Pairing Level Together
From Two Levels to One
10
10′
8
8′
0
π90 π10
π90
0
π10
1
π90 π10
π91
1
π10
0
π91 π10
10
2′
8
12′
1
π91 π10
10,8
10′ , 8′
10,8
10′ , 12′
10,8
2′ , 8′
10,8
2′ , 12′
From Two Levels to One
Dual-Input BP
Input:
π₯1
π₯2
π₯3
π₯4
Too Many Monomials
+
Thank You!
ο