PPT

advertisement
How to Use
Indistinguishability Obfuscation
Amit Sahai
Brent Waters
Code Obfuscation
Goal: Make program (maximally) unintelligible
Obfuscator
2
Applications!
Demo or “need to know” software
Software Patching
Crypto galore: Traitor Tracing, Functional
Encryption, Deniable Encryption, …
3
Difficulty of Achieving Obfuscation
Initial Functionalities:
•Point Functions
[LPS04, …] and
hyperplanes [CRV10]
•Explanation of existing functionality[OS05, HRSV07]
Recent: General candidate [GGHRSW13] using
multilinear maps [GGH13]
What does this mean?
4
Idealized Obfuscation
Idea: Learn nothing more than with black box access
vs.
• Natural for applications, building crypto
• Some (contrived) counter-examples [BGIRSVY 01]
No broad candidate class of obfuscatable
functionalities
Generic group proofs [BR13,BGKPS13]
5
Indistinguishability Obfuscation
Idea: Cannot distinguish between obfuscations of two
input/output equivalent circuits
• a (b+c) vs. ab + ac
• Avoids negative results of
• What is it good for?
[BGIRSVY01]
Vision: IO as hub for cryptography
Standard Assumption (e.g. LWE)
Indistinguishabilty
Obfuscation
+ OWFs
This talk
“Most” of cryptography
7
How do we build public key encryption from
Indistinguishability Obfuscation?
Punctured Programs Technique
Remove key element of program:
• Attacker cannot win without it
• Does not change functionality
Punctured PRF key: K{x*} eval PRF on all points, but x*
Security: Cannot distinguish F(K,x*) and random given K{x*}
Special case of constrained PRFs [BW13,BGI13,KPTZ13]
Build from [GGM84]
9
Initial Attempt
Setup: Choose Punctured PRF key K, PK= obfuscation of
Problems:
(1) Program knows PRF at t*
(2) If puncture out, will not be equivalent!
10
Simple PKE from iO
Setup: Choose Punctured PRF key K, PK= obfuscation of
Encrypt(m): Choose random r; input m,r into program
Decrypt(K,CT=(c1,c2)):
Decryption is fast = symmetric key
11
Proof of Encryption Scheme
Hyb 0: IND-CPA
12
Proof of Encryption Scheme
Hyb 0: IND-CPA
Hyb 1: t* is random
PRG security
13
Proof of Encryption Scheme
Hyb 0: IND-CPA
Hyb 1: t* is random
Hyb 2: Use K{t*}
PRG security
iO security
14
Proof of Encryption Scheme
Hyb 0: IND-CPA
Hyb 1: t* is random
Hyb 2: Use K{t*}
Hyb 3: Replace F(K,t*) w/ z*
PRG security
iO security
Punctured PRF security
15
A Very Simple CCA-KEM
Setup: Choose Punctured PRF key K, PK= obfuscation of
Encrypt: Choose random r, give as input
Decrypt(K,c):
16
How about signatures?
Natural Candidate
Setup: Choose Punctured PRF key K, VK= obfuscation of
Works with heuristic, but how to prove??
18
A Signature Scheme
Setup: Choose Punctured PRF key K, VK= obfuscation of
f is a OWF
Sign(K,m):
Verify(VK,m,s): Input m,s into verify program
Signing is fast = symmetric key
19
Proof of Signature Scheme
Hyb 0: (Selective) Signature Security
[GMR84]
20
Proof of Signature Scheme
Hyb 0: (Selective) Signature Security
Hyb 1: Punctured Program
[GMR84]
iO security
21
Proof of Signature Scheme
Hyb 0: (Selective) Signature Security
Hyb 1: Punctured Program
Hyb 2: z* random
[GMR84]
iO security
Punctured PRF security
22
Other Core Primitives
NIZKs[BDMP91]
• Sign x if x is in L
• Succinct proofs
Semi Honest Oblivious Transfer[R81]
Injective Trapdoor Functions
Simple CCA secure KEM
23
The rest of the talk
(1) Deniable Encryption
(2) Functional Encryption [GGHRSW13]
(3) Open Directions
24
Deniable Encryption
Deniable Encryption
[CDNO97]
Anthony
Enc(PK, m=
Demands message
and randomness!
Fake r’ where
Enc(PK, m=
,r) -> CT
,r’) -> CT
Best solutions attacker adv. 1/n, n~ size of pub key
Problematic for encrypting many messages
26
Publicly Deniable Encryption
Setup(n) -> PK,SK
Encrypt(PK,m;u)-> c
Anyone can explain!
Decrypt(SK,c) -> m
Explain(PK,c,m;r) -> u’
Two security properties (implies standard deniable)
(1) IND-CPA Security
(2) Indistinguishability of Explanation
Single message game
Advantage of separation: Simpler proofs
27
Hidden Sparse Triggers
Idea: Negligible fraction of random space are “trigger values”
that cause bypass normal encryption to specific value
Explain(PK, C): Encoding of C in Hidden Trigger Set
Encrypt(PK,m;u): Checks if randomness in trigger set
If yes, decrypts encoding to CT; else does fresh encrypt
Randomness Space
Hidden triggers
28
An Attempt and Malleability Issues
Explain:
Encrypt:
Malleability Attack!
29
Our Deniable Encryption System
Explain:
Encrypt:
30
Proof Overview
IND-CPA Proof: Simple proof; obfuscation not used
Explainability:
• Encoding: Look like random string & non-malleable
• Intricate multistep hybrid proof
31
Using Deployed Keys
Receiver may:
• Already have established key
• Be disinterested/uninterested in D.E.
Universal Deniable Encryption: D.E. to ordinary keys
• One time (uncorrupted) trusted setup
• Use to deniably encrypt to any PK
• Takes Encryption function as input
32
Functional Encryption
Functional Encryption
[SW05…]
Public
Parameters
MSK
Authority
Functionality: Learn f(x); x is hidden
Collusion Resistance core to concept! (Like IBE)
Collusion Bounded & Applications:
Key: f
SS10, PRV12, AGVW13, GKVPZ13
CT: x
X
SK
34
An Application: Facial Identification
SK
35
Tools
Statistically Simulation Sound NIZKs
• Statistically sound except for simulated statement
• Build from WI proofs
Two Key Technique
[NY90,S99]
36
Functional Encryption System
[GGHRSW13]
Setup: Generate two keys pairs (PK1,SK1), (PK2,SK2)
output CRS from NIZK setup
Encrypt(PP,m): Encrypt m under each of PK1, PK2,
generate proof p of this
KeyGen(SK1,f): Obfuscate program
Decrypt(CT, SKf): Run obfuscated program on CT
37
Proof Overview
Challenge CT:
Keys:
38
Step 1
Challenge CT:
Keys:
NIZK security
39
Step 2
Challenge CT:
Keys:
IND-CPA security
40
Step 3
Challenge CT:
Keys:
IO security
41
Step 4
Challenge CT:
Keys:
IND-CPA security
42
Step 5
Challenge CT:
Keys:
IO security
43
Step 6
Challenge CT:
Keys:
NIZK security
44
Evolution of Functional Encryption
Sahai-Waters 2005: Introduction of Attribute-Based Encryption
GPSW 2006: Access Control (ABE) for any boolean formula
BW 2007, KSW08: “Predicate Encryption”; dot product functionality
Talks 2008: “Rebranded” as Functional Encryption , BSW11
reformalized (BSW11+O10 added simulation def.)
GGHSW13/GVW13: ABE for circuits
FE at 2013: Still Inner Product (& Applications)
Best we can do with bilinear maps
GGHRSW 2013: Functional Encryption for any circuit
45
Evolution of Functional Encryption
Obfuscation
46
Looking Forward
Explosion of Obfuscation
Late July: GGHRSW13, SW13 eprint
4 months later
•
Replacing a Random Oracle: Full Domain Hash From Indistinguishability Obfuscation [HSW]
•
Obfuscating Branching Programs Using Black-Box Pseudo-Free Groups [CV]
•
Virtual Black-Box Obfuscation for All Circuits via Generic Graded Encoding [BR]
•
Two-round secure MPC from Indistinguishability Obfuscation [GGSR]
•
Protecting Obfuscation Against Algebraic Attacks [BGKPS]
•
Indistinguishability Obfuscation vs. Auxiliary-Input Extractable Functions: One Must Fall [BCPR]
•
Multiparty Key Exchange, Efficient Traitor Tracing, and More from Indistinguishability Obfuscation [BZ]
•
There is no Indistinguishability Obfuscation in Pessiland [MR]
•
On Extractability Obfuscation [BCP]
•
A Note on the Impossibility of Obfuscation with Auxiliary Input [GK]
•
Separations in Circular Security for Arbitrary Length Key Cycles [RVW]
•
Obfuscation for Evasive Functions [BBCKPS]
•
Differing-Inputs Obfuscation and Applications [ABGSZ]
•
More on the Impossibility of Virtual-Black-Box Obfuscation with Auxiliary Input [BCPR]
•
Multi-Input Functional Encryption [GGJS]
•
Functional Encryption for Randomized Functionalities[GJKS]
•
Obfuscation-based Non-black-box Simulation and Four Message Concurrent Zero Knowledge for NP [PPS]
•
Multi-Input Functional Encryption [GKLSZ]
•
Obfuscation from Semantically-Secure Multi-linear Encodings [PTS]
48
My Probabilities
I will make it to Weizmann in Dec.
38%
Indistinguishability Obfuscation from LWE-type
assumption in 4 years
63%
Amit eprints an obfusction paper in next 2 months
95%
49
Thank you
50
Download