indistinguishability obfuscation
play

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


  1. INDISTINGUISHABILITY OBFUSCATION Mark Zhandry – Stanford University * Joint work with Dan Boneh

  2. Program Obfuscation Intuition: Mangle a program • Same functionality as original • Hides all implementation details Potential uses: • IP protection • Prevent tampering • Cryptography

  3. Virtual Black Box Obfuscation [BGI + ’ 01] Having source code no better than black box access P ’ P O b b=0,1

  4. Virtual Black Box Obfuscation Potential Cryptographic Applications: • Public key encryption from private key encryption: P ’ Enc( ⋅ ) O • Homomorphic encryption: P( c 1 , c 2 , ⨀∈ {+, × } ) { m 1  Dec(c 1 ) P ’ O m 2  Dec(c 2 ) return Enc(m 1 ⨀ m 2 ) } • Functional Encryption

  5. Virtual Black Box Obfuscation Potential Cryptographic Applications: • Public key encryption from private key encryption: P ’ Enc( ⋅ ) O • Homomorphic encryption: Theorem ([BGI + ’ 01]): VBB for all programs is impossible P( c 1 , c 2 , ⨀∈ {+, × } ) { m 1  Dec(c 1 ) P ’ O m 2  Dec(c 2 ) return Enc(m 1 ⨀ m 2 ) } • Functional Encryption

  6. Indistinguishability Obfuscation (iO) [BGI + ’ 01] If two programs have same functionality, obfuscations are indistinguishable P 1 (x) = P 2 (x) ∀ x P 1 P 2 iO iO ≈ ’ ’ P 1 P 2

  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

  8. Our Results • Non-interactive multiparty key exchange without trusted setup • All existing protocols required trusted setup • Efficient broadcast encryption This talk • Distributed • Use existing keys • Efficient traitor tracing • Shortest secret keys and ciphertexts known All constructions from iO and one-way functions

  9. (Non-Interactive) Multiparty Key Exchange ? Public bulletin board K ABCD K ABCD K ABCD K ABCD

  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

  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

  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

  13. Our Construction (w/ Trusted Setup) x 3 x 1 x 2 x 4 s 1  S s 4 s 2 s 3 How to establish shared group key?

  14. Our Construction (w/ Trusted Setup) F P( y 1 , ..., y n , s, i ) { If G(s) ≠ y i , output ⊥ Otherwise, output F(y 1 , ..., y n ) } iO P ’

  15. Our Construction (w/ Trusted Setup) P ’ x 3 x 1 x 2 x 4 s 4 s 1 s 2 s 3 K ABCD = P ’ (x 1 , x 2 , x 3 , x 4 , s 1 , 1)

  16. Security of Our Construction Adversary sees P ’ and the X i , wants to learn F(x 1 ,...,x n ) F P( y 1 , ..., y n , s, i ) { P ’ If G(s) ≠ y i , output ⊥ iO Otherwise, output F(y 1 , ..., y n ) } G s 1 x 1 … … S G s n x n

  17. Step 1: Replace x i Draw x i uniformly at random • Security of G : adversary cannot tell difference F P( y 1 , ..., y n , s, i ) { P ’ If G(s) ≠ y i , output ⊥ iO Otherwise, output F(y 1 , ..., y n ) } x 1 Observation: if X is much larger than S , … all x i are outside range of G , w.h.p. X x n

  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 F F(x) if x ≠ z x F z ⊥ if x = z Security: given F z , t=F(z) indistinguishable from random F z F z ≈ t  T t = F(z)

  19. Step 2: Puncture F Let z = (x 1 , ..., x n ) Puncture F at z , and abort if input is z F z P 2 ( y 1 , ..., y n , s, i ) { If G(s) ≠ y i , output ⊥ P ’ iO If (y 1 , ..., y n ) = z, output ⊥ Otherwise, output F z (y 1 , ..., y n ) } x 1 Inputs where P 2 differs from P ? … • Only (x 1 ,...,x n ,s,i) where G(s) = x i X • W.h.p. no such input exists x n • iO: P 2 indistinguishable from P

  20. Step 3: Simulate Simulate view of adversary, given F z F z P 2 ( y 1 , ..., y n , s, i ) { If G(s) ≠ y i , output ⊥ P ’ iO If (y 1 , ..., y n ) = z, output ⊥ Otherwise, output F z (y 1 , ..., y n ) } x 1 ✓ Security of F : k = F(z) indist. … from a random key X x n

  21. Removing Trusted Setup As described, our scheme needs trusted setup Observation: Obfuscated program can be generated independently of publishing step F P( y 1 , ..., y n , s, i ) { If G(s) ≠ y i , output ⊥ P ’ iO Otherwise, output F(y 1 , ..., y n ) } Untrusted setup: user 1 generates P ’ , sends with x 1

  22. Multiparty Key Exchange Without Trusted Setup P ’ x 3 x 2 x 4 x 1 s 4 s 1 s 2 s 3

  23. Broadcast Encryption ✗ ✗

  24. Broadcast Encryption P ’ x D x 3 x 2 x 4 x 1 dummy user s 4 s 1 s 2 s 3

  25. Broadcast Encryption • Replace unintended recipients with dummy • Compute shared key for protocol • Ex: k = F(x 1 ,x D ,x D ,x 4 ) • Use shared key to encrypt message ✗ ✗

  26. Broadcast Encryption Private key scheme: empty ciphertext header Public broadcast key scheme: a single x i value Additional Properties: • Distributed – users and broadcaster each generate their own parameters • Can be used with existing RSA keys (under plausible assumptions)

  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), λ)

  28. Open Questions Reduce public key sizes • Using differing-inputs obfuscation [ABGSZ ’ 13] • From iO? Other primitives from iO • FHE? Thanks!

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend