brent waters

50
Brent Waters Amit Sahai How to Use Indistinguishability Obfuscation

Upload: aolani

Post on 02-Feb-2016

46 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Brent Waters

Brent WatersAmit Sahai

How to Use Indistinguishability Obfuscation

Page 2: Brent Waters

2

Code Obfuscation

Goal: Make program (maximally) unintelligible

Obfuscator

Page 3: Brent Waters

3

Applications!

Demo or “need to know” software

Software Patching

Crypto galore: Traitor Tracing, Functional Encryption, Deniable Encryption, …

Page 4: Brent Waters

4

Difficulty of Achieving Obfuscation

Recent: General candidate [GGHRSW13] using multilinear maps [GGH13]

Initial Functionalities:

•Point Functions [LPS04, …] and hyperplanes [CRV10]

•Explanation of existing functionality[OS05, HRSV07]

What does this mean?

Page 5: Brent Waters

• Some (contrived) counter-examples [BGIRSVY 01]

vs.

5

Idealized Obfuscation

• Natural for applications, building crypto

Idea: Learn nothing more than with black box access

No broad candidate class of obfuscatable functionalities

Generic group proofs [BR13,BGKPS13]

Page 6: Brent Waters

• What is it good for?

Indistinguishability Obfuscation

• Avoids negative results of [BGIRSVY01]

Idea: Cannot distinguish between obfuscations of two input/output equivalent circuits • a (b+c) vs. ab + ac

Page 7: Brent Waters

7

Vision: IO as hub for cryptography

Indistinguishabilty Obfuscation

Standard Assumption (e.g. LWE)

“Most” of cryptography

This talk

+ OWFs

Page 8: Brent Waters

How do we build public key encryption from Indistinguishability Obfuscation?

Page 9: Brent Waters

9

Punctured Programs Technique

Punctured PRF key: K{x*} eval PRF on all points, but x*

Remove key element of program:

•Attacker cannot win without it

•Does not change functionality

Special case of constrained PRFs [BW13,BGI13,KPTZ13]

Build from [GGM84]

Security: Cannot distinguish F(K,x*) and random given K{x*}

Page 10: Brent Waters

10

Initial Attempt

Problems:

(1) Program knows PRF at t*

(2) If puncture out, will not be equivalent!

Setup: Choose Punctured PRF key K, PK= obfuscation of

Page 11: Brent Waters

11

Simple PKE from iO

Setup: Choose Punctured PRF key K, PK= obfuscation of

Encrypt(m): Choose random r; input m,r into programDecrypt(K,CT=(c1,c2)):

Decryption is fast = symmetric key

Page 12: Brent Waters

12

Proof of Encryption Scheme

Hyb 0: IND-CPA

Page 13: Brent Waters

13

Proof of Encryption Scheme

Hyb 0: IND-CPA

Hyb 1: t* is random

PRG security

Page 14: Brent Waters

14

Proof of Encryption Scheme

Hyb 0: IND-CPA

Hyb 1: t* is random

PRG security

Hyb 2: Use K{t*}

iO security

Page 15: Brent Waters

15

Proof of Encryption Scheme

Hyb 0: IND-CPA

Hyb 1: t* is random

PRG security

Hyb 2: Use K{t*}

iO security

Hyb 3: Replace F(K,t*) w/ z*

Punctured PRF security

Page 16: Brent Waters

16

A Very Simple CCA-KEM

Setup: Choose Punctured PRF key K, PK= obfuscation of

Encrypt: Choose random r, give as input

Decrypt(K,c):

Page 17: Brent Waters

How about signatures?

Page 18: Brent Waters

18

Natural Candidate

Setup: Choose Punctured PRF key K, VK= obfuscation of

Works with heuristic, but how to prove??

Page 19: Brent Waters

19

A Signature Scheme

Setup: Choose Punctured PRF key K, VK= obfuscation of

Verify(VK,m,s): Input m,s into verify program

Sign(K,m):

Signing is fast = symmetric key

f is a OWF

Page 20: Brent Waters

20

Proof of Signature Scheme

Hyb 0: (Selective) Signature Security [GMR84]

Page 21: Brent Waters

21

Proof of Signature Scheme

Hyb 0: (Selective) Signature Security [GMR84]

Hyb 1: Punctured Program

iO security

Page 22: Brent Waters

22

Proof of Signature Scheme

Hyb 0: (Selective) Signature Security [GMR84]

Hyb 1: Punctured ProgramHyb 2: z* random

iO security

Punctured PRF security

Page 23: Brent Waters

23

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

Page 24: Brent Waters

24

The rest of the talk

(1)Deniable Encryption

(2) Functional Encryption [GGHRSW13]

(3) Open Directions

Page 25: Brent Waters

Deniable Encryption

Page 26: Brent Waters

26

Deniable Encryption [CDNO97]

Enc(PK, m= ,r) -> CT

Demands message and randomness!

Fake r’ where

Enc(PK, m= ,r’) -> CT

Anthony

Best solutions attacker adv. 1/n, n~ size of pub key

Problematic for encrypting many messages

Page 27: Brent Waters

27

Publicly Deniable Encryption Anyone can explain!

Setup(n) -> PK,SK

Encrypt(PK,m;u)-> c

Decrypt(SK,c) -> mExplain(PK,c,m;r) -> u’

(1) IND-CPA Security

(2) Indistinguishability of Explanation

Two security properties (implies standard deniable)

Advantage of separation: Simpler proofs

Single message game

Page 28: Brent Waters

28

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

Hidden triggers

Randomness Space

Page 29: Brent Waters

29

An Attempt and Malleability Issues

Encrypt:

Explain:

Malleability Attack!

Page 30: Brent Waters

30

Our Deniable Encryption System

Encrypt:

Explain:

Page 31: Brent Waters

31

Proof Overview

IND-CPA Proof: Simple proof; obfuscation not used

Explainability:

•Encoding: Look like random string & non-malleable

•Intricate multistep hybrid proof

Page 32: Brent Waters

32

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

Page 33: Brent Waters

Functional Encryption

Page 34: Brent Waters

34

Functional Encryption [SW05…]

Public Parameters

Authority

MSK

Key: f

SK

CT: x

Functionality: Learn f(x); x is hidden

Collusion Bounded & Applications:SS10, PRV12, AGVW13, GKVPZ13

X

Collusion Resistance core to concept! (Like IBE)

Page 35: Brent Waters

35

An Application: Facial Identification

SK

Page 36: Brent Waters

36

Tools

Statistically Simulation Sound NIZKs

•Statistically sound except for simulated statement

•Build from WI proofs

Two Key Technique [NY90,S99]

Page 37: Brent Waters

37

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

Page 38: Brent Waters

38

Proof Overview

Challenge CT:

Keys:

Page 39: Brent Waters

39

Step 1

Challenge CT:

Keys:

NIZK security

Page 40: Brent Waters

40

Step 2

Challenge CT:

Keys:

IND-CPA security

Page 41: Brent Waters

41

Step 3

Challenge CT:

Keys:

IO security

Page 42: Brent Waters

42

Step 4

Challenge CT:

Keys:

IND-CPA security

Page 43: Brent Waters

43

Step 5

Challenge CT:

Keys:

IO security

Page 44: Brent Waters

44

Step 6

Challenge CT:

Keys:

NIZK security

Page 45: Brent Waters

GGHRSW 2013: Functional Encryption for any circuit45

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 functionalityTalks 2008: “Rebranded” as Functional Encryption , BSW11 reformalized (BSW11+O10 added simulation def.)

FE at 2013: Still Inner Product (& Applications)

Best we can do with bilinear maps

GGHSW13/GVW13: ABE for circuits

Page 46: Brent Waters

46

Evolution of Functional Encryption

Obfuscation

Page 47: Brent Waters

Looking Forward

Page 48: Brent Waters

48

Explosion of Obfuscation

• 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]

Late July: GGHRSW13, SW13 eprint

4 months later

Page 49: Brent Waters

95%

49

My Probabilities

I will make it to Weizmann in Dec. 38%

Indistinguishability Obfuscation from LWE-type assumption in 4 years

Amit eprints an obfusction paper in next 2 months

63%

Page 50: Brent Waters

50

Thank you