• No results found

garg.pptx

N/A
N/A
Protected

Academic year: 2020

Share "garg.pptx"

Copied!
41
0
0

Loading.... (view fulltext now)

Full text

(1)

Indistinguishability

Obfuscation

and Applications

Sanjam Garg

IBM T. J. Watson

(2)

Outline

2

Part I : What is Obfuscation? What

is it useful for?

Part II: How do we construct

(3)

Software Obfuscation

O

(P)

P

Obfuscation aims to make computer programs

“unintelligible” while preserving their functionality.

(4)

Protecting intellectual

property via Obfuscation

O

(5)
(6)

Patching Software Securely

via Obfuscation

(7)

Contemporary Obfuscation:

Security-via-Obscurity

#include <stdio.h>

int l;int main(int o,char **O, int I){char c,*D=O[1];if(o>0){ for(l=0;D[l ];D[l ++]-=10){D [l++]-=120;D[l]-= 110;while (!main(0,O,l))D[l] += 20; putchar((D[l]+1032) /20 ) ;}putchar(10);}else{ c=o+ (D[I]+82)%10-(I>l/2)* (D[I-l+I]+72)/10-9;D[I]+=I<0?0 :!(o=main(c/10,O,I-1))*((c+999 )%10-(D[I]+92)%10);}return o;}

Relies on Human ingenuity

Crypto Obfuscator

Make the task of reverse engineering time-consuming,

(8)

• Under complex and new but still very

reasonable computational assumption

• Huge leap: Known obfuscation solutions work for simple families of functions such as point function [C97….]

Even no heuristic!

Our results

Multilinear Maps

[GGH13]

Obfuscation for all circuits [GGHRSW13]

(9)

Functional Encryption

[Sha84,SW06, …,O’Neil10,BSW11,…]

PK MSK

𝑓 1 𝑓 2

𝐸𝑛𝑐(𝑥)

SK’ SK

Key Authority

Prior Work: Limited function such as inner product [KSW08,..] were known to be realizable or were limited to single-key[SS10, AGVW12...]

𝑓 1(𝑥) 𝑓 2( 𝑥)

We [GGHRSW13] can do it for all circuits.

(10)

Witness Encryption

[TW87, Rudich89, … , CS02, CCKV08, GOVW12, … GGSW13]

Application 2

Encrypter

Soundness:

Statement is false Semantic Security

(11)

Multiparty Secure Computation [GMW87]

with Minimal-Communication

$

7

$

5

$

3

$

4

$

1

h

𝐻𝑖𝑔 𝑒𝑠𝑡 𝐵𝑖𝑑𝑑𝑒𝑟 ?

Obfuscation [GGHR14] based protocol has

optimal

round complexity

(12)

Many other applications of

Obfuscation

Multi-input Functional Encryption [GGJS13]

• Functional Encryption for Randomized Functions [GJKS13] • Multiparty Key Exchange [BZ13]

Removing random oracles [HSW13]

Separation results for circular security [KRW13,MO13]Functional Witness Encryption [BCP13]

Impossibility Results [BCPR13a,BP13,GK13,BCPR13b]Deniable Encryption [SW13]

• Broadcast Encryption and Traitor Tracing [BZ13,ABGSZ13] • Extension to Turing Machines [BCP13, ABGSZ13]

(13)

Part II:

(14)

Obfuscation – Formal Notions

[BGIRSVY01]

Produce as output another program computes the same function as

at most polynomially larger than is “unintelligible”

• Multiple notions

• ``virtual black-box’’ notion:

cannot do much more with than running it on various inputs

functions for which VBB obfuscation is impossible

𝐶

𝑂

𝑂

(

𝐶

)

𝐴

(

𝑂

(

𝐶

)

)

𝑃𝑃𝑇

𝑆

𝐶

(

1

|𝐶|

)

(15)

Indistinguishability Obfuscation

[B+01]

Def: If compute the same function (and ) then

• Indistinguishable even if you know

• Note: Inefficient iO is always possible

• = lexicographically 1st circuit computing

the same function as

(canonical form)

(16)
(17)

Witness Encryption from

Indistinguishability

(18)

Witness Encryption: Recall

[TW87, Rudich89, … , CS02, CCKV08, GOVW12, … GGSW13]

Application 2

Encrypter

Soundness:

Statement is false Semantic Security

(19)

Witness Encryption from

Indistinguishability

Obfuscation?

Encrypter

𝑐

=

𝑖𝑂

(

𝐶

𝑚

)

Statement :

𝑚

(20)

Roadmap for the

Construction

1. iO for “shallow circuits” (NC1)

Using multilinear maps

Security under a new complex assumption

2. Bootstrap to get iO for all circuits

Using homomorphic encryption with NC1

decryption

Very simple and provable transformation

(21)

F Homomorphic

Encryption F

x

+ F(x)

Encrypted-result + eval transcript

NC1 Circuit If describes homomorphic

evaluation that takes x,F to , then use sk to decrypt

F(x)

CondDec

NC

1

Obfuscation

P

(22)

x

+ F(x)

Encrypted-result + eval transcript

@P=split//,".URRUU\

c8R";@d=split//,"\nrekcah xinU / lreP rehtona

tsuJ";sub p{ @p{"r$p“…

F(x)

Obfuscate only this part

NC1 Circuit

Output of P obfuscator

F Homomorphic

Encryption F

CondDec

We have iO, not “perfect” obfuscation

NC

1

Obfuscation

P

Obfuscation

(23)

x

+ F(x)

Encrypted-result + eval transcript

@P=split//,".URRUU\

c8R";@d=split//,"\nrekcah xinU / lreP rehtona

tsuJ";sub p{ @p{"r$p“…

F(x)

Obfuscate only this part

NC1 Circuit

Output of P obfuscator

F Homomorphic

Encryption F

CondDec

F F(x)

CondDecF, F, SK(· ,· ) Indist. Obfuscation

Indist. Obfuscation

NC

1

Obfuscation

P

(24)

How to realize iO for

1.

View circuit as a

matrix branching program

◦ Barrington’s Theorem [B86]

2.

Randomize

it via Kilian’s approach [K88]

3.

Use

multilinear maps

to make computation

hidden

4.

Attacks and fixes

(25)

Barrington’s theorem:

An circuit  polynomial length MBP • With constant-dimension matrices

Example: length-9 MBP with 4-bit input

A

2,0

A

1,0

A

3,0

A

4,0

A

5,0

A

6,0

A

7,0

A

8,0

A

9,0

A

2,1

A

1,1

A

3,1

A

4,1

A

5,1

A

6,1

A

7,1

A

8,1

A

9,1

0

(26)

This length-9 BP has 4-bit inputs

A

2,0

A

1,0

A

3,0

A

4,0

A

5,0

A

6,0

A

7,0

A

8,0

A

9,0

A

2,1

A

1,1

A

3,1

A

4,1

A

5,1

A

6,1

A

7,1

A

8,1

A

9,1

0 1

Matrix Branching Program

(27)

• This length-9 BP has 4-bit inputs

• Multiply the chosen 9 matrices together

• If product is output 1. Otherwise output 0.

A

2,0

A

1,0

A

3,0

A

4,0

A

5,0

A

6,0

A

7,0

A

8,0

A

9,0

A

2,1

A

1,1

A

3,1

A

4,1

A

5,1

A

6,1

A

7,1

A

8,1

A

9,1

0 1 1 0

(28)

Kilian’s Randomization

Randomization can hide everything elseSample to . Set

A

2,0

A

1,0

A

3,0

A

4,0

A

5,0

A

6,0

A

7,0

A

8,0

A

9,0

A

2,1

A

1,1

A

3,1

A

4,1

A

5,1

A

6,1

A

7,1

A

8,1

A

9,1

0 1 1 0

B

3,0

B

5,0

B

6,0

B

9,0

B

2,1
(29)

What if we give both?

Perfect privacy is lost once we give both ’s

B

2,0

B

1,0

B

3,0

B

4,0

B

5,0

B

6,0

B

7,0

B

8,0

B

9,0

B

2,1
(30)

First line of defense:

Multilinear Maps

[BS03,

G

GH13]

Multilinear Maps

``encrypt’’ these matrices

identity matrices can be tested

Recall cryptographic -multilinear map:

Groups of order , generators and target group

with generator .

Computable map

Multi-linearity: for all ’s.

[GGH13] maps are noisy but lets ignore that

(31)

First line of defense:

Multilinear Maps

[BS03,

G

GH13]

Encode the ’s in the exponent,

Can use the map to multiply themThen we can check if

B

2,0

B

1,0

B

3,0

B

4,0

B

5,0

B

6,0

B

7,0

B

8,0

B

9,0

B

2,1
(32)

Attack 1: Are the ’s hidden?

Mixed input attacks: Inconsistent matrix selection:

Product includes and , but these two steps depend on the same input bit (i.e., )

Roughly, you learn what happens when fixing some

internal wire in the circuit of

B

2,0

B

1,0

B

3,0

B

4,0

B

5,0

B

6,0

B

7,0

B

8,0

B

9,0

B

2,1

B

1,1

B

3,1

B

4,1

B

5,1

B

6,1

B

7,1

B

8,1

B

9,1
(33)

Attack 2: Are the ’s hidden?

Partial evaluation attacks: Evaluate the program on two inputs , but only use matrices between steps ,

Check if

Roughly, you learn if in the computations of the

circuits for , you have the same value on some internal wire

B

2,0

B

1,0

B

3,0

B

4,0

B

5,0

B

6,0

B

7,0

B

8,0

B

9,0

B

2,1
(34)

Fixing attack 1:

Multiplicative bundling

34

B

2,0

B

1,0

B

3,0

B

4,0

B

5,0

B

6,0

B

7,0

B

8,0

B

9,0

B

2,1
(35)

Fixing attack 1:

Multiplicative bundling

B

2,0

B

1,0

B

3,0

B

4,0

B

5,0

B

6,0

B

7,0

B

8,0

B

9,0

B

2,1
(36)

Attack 2: Does it still exist?

36

B

2,0

B

1,0

B

3,0

B

4,0

B

5,0

B

6,0

B

7,0

B

8,0

B

9,0

B

2,1
(37)

Fixing attack 2:

Extended Multiplicative

bundling

B

2,0

B

1,0

B

3,0

B

4,0

B

5,0

B

6,0

B

7,0

B

8,0

B

9,0

B

2,1

B

1,1

B

3,1

B

4,1

B

5,1

B

6,1

B

7,1

B

8,1

B

9,1

𝛾

1

𝛾

2

𝛾

3

𝛾

4

𝛾

5

𝛾

6

𝛾

7

𝛾

8

𝛾

9
(38)

Fixing attack 2:

Extended Multiplicative

bundling

38

(39)

Security Proof?

Not on a standard assumption, buta complex new assumption.

Some evidence: We give proof of security in a

certain generic mulitlinear matrix model.

Evidence strengthened by [BR13, BGKPS13] who

(40)

Open Problems

Better assumptions

Stronger notions

Faster constructions

Complexity of our construction is horrendous

More applications

The sky is the limit…

(41)

Thank You

References

Related documents

The notable exceptions are “extractable/functional witness encryption”[BCP14] and “output-only dependent hardcore bits for any one-way function” [BT13] where the auxiliary input

Briefly, the problem is that a witness encryption scheme could fail to provide any security when | x | is equal to, or related in some specific way to, the security parameter,

Attribute-based encryption, Dual scheme conversion, Key-policy, Ciphertext- policy, Dual-policy, Full security, Dual system encryption, Pair Encoding, Functional Encryp- tion..

As per our survey results from Figure 13, XML Encryption and WS Security was the commonly used security standards in their application integration because XML encryption allows

In [35], Katz, Sahai and Waters show how to construct a functional encryption scheme for Boolean formulae given a functional encryption scheme for the inner-product whose security,

In addition, the assurance activities from the Software Full Disk Encryption Protection Profile are used to determine that Windows satisfies the full disk encryption

The outcomes appear that our proposed security algorithm has less complexity as compare to Data Structure Encryption Algorithm based on circular queue to enhance

different IT systems by privilege Network structures (e.g. separation of mission- critical networks from other networks) Encryption of highly sensitive data Physical security