INDISTINGUISHABILITY OBFUSCATION Mark Zhandry Stanford University - - PowerPoint PPT Presentation

indistinguishability obfuscation
SMART_READER_LITE
LIVE PREVIEW

INDISTINGUISHABILITY OBFUSCATION Mark Zhandry Stanford University - - PowerPoint PPT Presentation

INDISTINGUISHABILITY OBFUSCATION Mark Zhandry Stanford University * Joint work with Dan Boneh Program Obfuscation Intuition: Mangle a program Same functionality as original Hides all implementation details Potential uses: IP


slide-1
SLIDE 1

INDISTINGUISHABILITY OBFUSCATION

Mark Zhandry – Stanford University * Joint work with Dan Boneh

slide-2
SLIDE 2

Program Obfuscation

Intuition: Mangle a program

  • Same functionality as original
  • Hides all implementation details

Potential uses:

  • IP protection
  • Prevent tampering
  • Cryptography
slide-3
SLIDE 3

Virtual Black Box Obfuscation [BGI+’01]

Having source code no better than black box access

P P’ O

b=0,1 b

slide-4
SLIDE 4

Virtual Black Box Obfuscation

Potential Cryptographic Applications:

  • Public key encryption from private key encryption:
  • Homomorphic encryption:
  • Functional Encryption

P( c1 , c2 , ⨀∈{+,×} ) { m1  Dec(c1) m2  Dec(c2) return Enc(m1⨀m2) }

O P’

Enc(⋅)

O P’

slide-5
SLIDE 5

Virtual Black Box Obfuscation

Potential Cryptographic Applications:

  • Public key encryption from private key encryption:
  • Homomorphic encryption:
  • Functional Encryption

P( c1 , c2 , ⨀∈{+,×} ) { m1  Dec(c1) m2  Dec(c2) return Enc(m1⨀m2) }

O P’

Enc(⋅)

O P’

Theorem ([BGI+’01]): VBB for all programs is impossible

slide-6
SLIDE 6

Indistinguishability Obfuscation (iO) [BGI+’01]

If two programs have same functionality, obfuscations are indistinguishable

P1 iO P1 ’ P2 iO P2 ’

P1(x) = P2(x) ∀x

slide-7
SLIDE 7

Indistinguishability Obfuscation (iO)

BGI+ counter example does not apply to iO An exploding field:

  • [BGI+’01] Original definition
  • [GR’07] Further investigation
  • [GGH+’13] First candidate construction
  • Functional encryption
  • [BR’13, BGK+’13, …] Additional constructions
  • [SW’13, HSW’13, GGHR’13, BZ’13, …] Uses
  • Public key encryption, signatures, deniable encryption, multiparty

key exchange, MPC, …

  • [BCPR’13, MR’13, BCP’13, …] Further Investigation
slide-8
SLIDE 8

Our Results

  • Non-interactive multiparty key exchange without trusted

setup

  • All existing protocols required trusted setup
  • Efficient broadcast encryption
  • Distributed
  • Use existing keys
  • Efficient traitor tracing
  • Shortest secret keys and ciphertexts known

All constructions from iO and one-way functions This talk

slide-9
SLIDE 9

(Non-Interactive) Multiparty Key Exchange

Public bulletin board

KABCD KABCD KABCD KABCD

?

slide-10
SLIDE 10

Prior Constructions

First achieved using multilinear maps

  • These constructions all require trusted setup before

protocol is run

  • Trusted authority can also learn group key

params

slide-11
SLIDE 11

Prior Constructions

First achieved using multilinear maps

  • These constructions all require trusted setup before

protocol is run

  • Trusted authority can also learn group key

params

slide-12
SLIDE 12

Our Construction (w/ Trusted Setup)

Building blocks:

  • iO
  • Pseudorandom function F
  • Pseudorandom generator G: SX

Idea: shared key is F applied to published values

  • F itself kept secret
  • Publish program that computes F,
  • but only if user supplies proof that they are allowed to
slide-13
SLIDE 13

Our Construction (w/ Trusted Setup)

s1S s2 s3 s4

How to establish shared group key?

x1 x2 x3 x4

slide-14
SLIDE 14

Our Construction (w/ Trusted Setup)

F P( y1, ..., yn, s, i ) {

If G(s) ≠ yi, output ⊥ Otherwise, output F(y1, ..., yn) }

iO P’

slide-15
SLIDE 15

Our Construction (w/ Trusted Setup)

s1 s2 s3 s4 x1 x2 x3 x4

P’

KABCD = P’(x1, x2, x3, x4, s1, 1)

slide-16
SLIDE 16

Security of Our Construction

Adversary sees P’ and the Xi, wants to learn F(x1,...,xn)

F P( y1, ..., yn, s, i ) {

If G(s) ≠ yi, output ⊥ Otherwise, output F(y1, ..., yn) }

iO P’

s1

G

x1 sn

G

xn

… …

S

slide-17
SLIDE 17

Step 1: Replace xi

Draw xi uniformly at random

  • Security of G: adversary cannot tell difference

Observation: if X is much larger than S, all xi are outside range of G, w.h.p.

F P( y1, ..., yn, s, i ) {

If G(s) ≠ yi, output ⊥ Otherwise, output F(y1, ..., yn) }

iO P’

x1 xn X

slide-18
SLIDE 18

Punctured PRFs [BW’13, KPTZ’13, BGI’13,SW’13]

Can give out code to evaluate F at all but a single point z Security: given Fz, t=F(z) indistinguishable from random

F Fz

x F(x) if x ≠ z ⊥ if x = z

Fz

t = F(z)

Fz

t  T

slide-19
SLIDE 19

Step 2: Puncture F

Let z = (x1, ..., xn) Puncture F at z, and abort if input is z Inputs where P2 differs from P?

  • Only (x1,...,xn,s,i) where G(s) = xi
  • W.h.p. no such input exists
  • iO: P2 indistinguishable from P

Fz P2( y1, ..., yn, s, i ) {

If G(s) ≠ yi, output ⊥ If (y1, ..., yn) = z, output ⊥ Otherwise, output Fz(y1, ..., yn) }

iO P’

x1 xn X

slide-20
SLIDE 20

Step 3: Simulate

Simulate view of adversary, given Fz Security of F: k = F(z) indist. from a random key

Fz P2( y1, ..., yn, s, i ) {

If G(s) ≠ yi, output ⊥ If (y1, ..., yn) = z, output ⊥ Otherwise, output Fz(y1, ..., yn) }

iO P’

x1 xn X

slide-21
SLIDE 21

Removing Trusted Setup

As described, our scheme needs trusted setup Observation: Obfuscated program can be generated independently of publishing step Untrusted setup: user 1 generates P’, sends with x1

F P( y1, ..., yn, s, i ) {

If G(s) ≠ yi, output ⊥ Otherwise, output F(y1, ..., yn) }

iO P’

slide-22
SLIDE 22

Multiparty Key Exchange Without Trusted Setup

s1 s2 s3 s4 x1

P’

x2 x3 x4

slide-23
SLIDE 23

Broadcast Encryption

✗ ✗

slide-24
SLIDE 24

Broadcast Encryption

s1 s2 s3 s4 x1 x2 x3 x4

P’ xD

dummy user

slide-25
SLIDE 25

Broadcast Encryption

  • Replace unintended recipients with dummy
  • Compute shared key for protocol
  • Ex: k = F(x1,xD,xD,x4)
  • Use shared key to encrypt message

✗ ✗

slide-26
SLIDE 26

Broadcast Encryption

Private key scheme: empty ciphertext header Public broadcast key scheme: a single xi value Additional Properties:

  • Distributed – users and broadcaster each generate their
  • wn parameters
  • Can be used with existing RSA keys (under plausible

assumptions)

slide-27
SLIDE 27

Other Constructions

Recipient private broadcast encryption

  • Ciphertext size: λ+n
  • Secret key size: λ
  • Public key size: poly(n, λ)

Traitor tracing

  • Ciphertext size: λ+log(n)
  • Secret key size: λ
  • Public key size: poly(log(n), λ)
slide-28
SLIDE 28

Open Questions

Reduce public key sizes

  • Using differing-inputs obfuscation [ABGSZ’13]
  • From iO?

Other primitives from iO

  • FHE?

Thanks!