computation in cryptography
play

Computation in Cryptography Examples: Multiparty Computation (MPC) - PowerPoint PPT Presentation

Crypto for PRAM from iO ( via Succinct Garbled PRAM) Kai-Min Chung Academia Sinica, Taiwan Joint work with: Yu-Chi Chen, Sherman S.M. Chow, Russell W.F. Lai, Wei-Kai Lin, Hong-Sheng Zhou Computation in Cryptography Examples: Multiparty


  1. Crypto for PRAM from iO ( via Succinct Garbled PRAM) Kai-Min Chung Academia Sinica, Taiwan Joint work with: Yu-Chi Chen, Sherman S.M. Chow, Russell W.F. Lai, Wei-Kai Lin, Hong-Sheng Zhou

  2. Computation in Cryptography • Examples: – Multiparty Computation (MPC) – Non-interactive Zero Knowledge Proof (NIZK) – Fully Homomorphic Enc. (FHE) – Functional Encryption (FE) – Delegation with Persistent Database – Indistinguishability Obfuscation (iO) • Traditionally, modeled as circuits • Feasibility in more powerful computation model?

  3. Models of Computation • Circuits AND, OR, NOT gates Large description size Parallelizable • Turing Machines Small description size • RAM Machines Random data access • Parallel RAM … Random data access Parallelizable

  4. Efficiency Gap Problem Comp. Model Total Time Parallel Time Ω (n) Circuit Binary search (input size n) 𝑃 (log n) RAM 𝑃 (log n) Circuit Sorting Ω (nlog n) RAM Ω (n) 𝑃 (log n) Circuit Keyword search/ 𝑃 (mlog n) Ω (mlog n) RAM Range query (output size m) 𝑃 (mlog n) PRAM 𝑃 (log n)

  5. Parallel Model in Practice • Emerging frameworks to handle big data – MapReduce, GraphLab, Spark, etc. • Leverage massive parallelism & random data access – Circuit & RAM are not expressive enough • PRAM: clean & expressive model to capture efficiency (total & parallel time & space) of these frameworks

  6. Feasibility via Succinct Garbling Succinct Garbling for Model X [GHRW14,CHJV15, BGLPT15,KLW15] Functional Enc. iO NIZK Delegation MPC for X for X for X for X w/ for X Persistent DB

  7. Succinct Garbling for Model X Garb ( Π ) Π =(P,x) • Succinctness: Time( Garb( Π ) ) = poly(| Π |) • Eval Efficiency: Complexity in Model X of Eval( Garb( Π ) ) ≈ Eval( Π ) (up to polylog overhead) • Security: Π , Π ’ same complexity & output ⟹ ≈ Garb ( Π ) Garb ( Π ’ )

  8. Feasibility via Succinct Garbling iO for circuit + OWF [KLW15] Succinct Garbling for X = TM [GHRW14,CHJV15, BGLPT15,KLW15] Functional Enc. iO NIZK Delegation MPC for X for X for X for X w/ for X Persistent DB

  9. Our Contribution iO for circuit + OWF Succinct Garbling for X = PRAM [GHRW14,CHJV15, BGLPT15,KLW15] Functional Enc. iO NIZK Delegation MPC for X for X for X for X w/ for X Persistent DB

  10. Concurrent Work [CH16] iO for circuit + OWF Modular Proof Succinct Garbling for X = RAM [GHRW14,CHJV15, BGLPT15,KLW15] Functional Enc. iO NIZK Delegation MPC for X for X for X for X w/ for X Persistent DB

  11. Succinct Garbling for TM [KLW15]

  12. Abstraction of [KLW15] iO for circuit + OWF Authentication Step ST -Garbling Same-Trace Garbling for TM Hiding Step Succinct Garbling for TM

  13. Same-Trace Garbling for TM/RAM Computation Trace = Memory (initial-value), (st 1 , addr 1 , val 1 ), (st 2 , addr 2 , val 2 ), (st 3 , addr 3 , val 3 ), TM/CPU … Program P (st T-1 , addr T-1 , val T-1 ), (st T , addr T , val T ) • Security: Π , Π ’ same trace (so same inp/out, complexity) ⟹ ≈ Garb ( Π ) Garb ( Π ’ )

  14. Indistinguishability Obfuscation (iO) [BGI+12,GGH+13] • Scramble program to make it “unintelligible” 𝒫 (P) P • Maintain functionality: 𝒫 (P)(x) = P(x) ∀ x • Security: If P(x) = P’(x) ∀ x & same size ⟹ ≈ ≈ 𝒫 (P) 𝒫 (P’)

  15. Abstraction of [KLW15] iO for circuit + OWF Authentication ST-Garb(P, x) = (iO(P auth ), x auth ) Step Only generate comp. trace of P(x) ST -Garbling for TM Hiding Step Garb(P, x) = (ST-Garb(P hide , x hide )) Succinct Garbling Hide memory/CPU state content & for TM memory access pattern

  16. Authentication & Hiding in [KLW15] • Authentication step: ST-Garb(P, x) = (iO(P auth ), x auth ) – iO-friendly authentication primitives – Enable program switching step by step in hybrids P P P P P P … state 0 state 1 state 2 state T-2 state T-1 state T P’ P’ P’ P’ P’ P’

  17. Authentication & Hiding in [KLW15] • Authentication step: ST-Garb(P, x) = (iO(P auth ), x auth ) – iO-friendly authentication primitives – Enable program switching step by step in hybrids • Hiding step: Garb(P, x) = (ST-Garb(P hide , x hide )) – Hide content by encryption – Hide access pattern by Oblivious TM [PF79] – Allow erasing computation step by step in hybrids … ct dummy ct 0 ct dummy ct 1 ct dummy ct 2 ct dummy ct T-2 ct dummy ct T-1 ct dummy ct T

  18. Succinct Garbling for RAM

  19. Challenge: Hiding Access Pattern Garb(P, x) = (ST-Garb(P hide , x hide )) • Replace Oblivious TM by Oblivious RAM [GO96] • Issue: Cannot use ORAM security – ORAM is inherently randomized, security hold only when ORAM randomness is hidden • Idea: “Puncturing” ORAM

  20. Puncturing ORAM • Use tree-based ORAM [SLSC11] , which is “puncturable” – t-th step access pattern is determined by single randomness r t – if r t is punctured/erased from program, t-th step access pattern can be simulated by random • Puncturing r t – r t may appear multiple times (encrypted) in history – Carefully erase r t backward in time step by step • Modify program: “erase r t after step s ” for s = t, t- 1,…,0 … ct 0 ct 1 ct 2 ct T-2 ct T-1 ct T ct rT r T ct rT ct rT

  21. Puncturing ORAM • Use tree-based ORAM [SLSC11] , which is “puncturable” – t-th step access pattern is determined by single randomness r t – if r t is punctured/erased from program, t-th step access pattern can be simulated by random • Puncturing r t – r t may appear multiple times (encrypted) in history – Carefully erase r t backward in time step by step • Modify program: “erase r t after step s ” [CH16] : “2 tracks trick” w/ modular & simpler proof

  22. Succinct Garbling for PRAM

  23. Challenge: Authenticate Memory ST-Garb(P, x) = (iO(P auth ), x auth ) • Memory authenticated by “ Merkle tree” – root stored in CPU state – Locally updatable by given augment path • Issue: Parallel CPU ⟹ Parallel Update – Require CPU-to-CPU communication Memory … CPU 1 CPU 2 CPU m

  24. Challenge: Authenticate Memory ST-Garb(P, x) = (iO(P auth ), x auth ) • Memory authenticated by “ Merkle tree” – root stored in CPU state – Locally updatable by given augment path • Issue: Parallel CPU ⟹ Parallel Update – Require CPU-to-CPU communication • Issue: Cannot afford Ω (m) overhead in parallel time – Otherwise, void the gain of parallelism

  25. Parallel Update Problem addr 2 addr 3 addr 1 addr m addr 4 … aug-path 4 aug-path 3 aug-path 2

  26. Challenge: Authenticate Memory ST-Garb(P, x) = (iO(P auth ), x auth ) • Memory authenticated by “ Merkle tree” – root stored in CPU state – Locally updatable by given augment path • Issue: Parallel CPU ⟹ Parallel Update – Require CPU-to-CPU communication • Issue: cannot afford Ω (m) overhead in parallel time – Otherwise, void the gain of parallelism • O(log 2 m) -round parallel algorithm – Parallel update level-by-level from leaves to root

  27. Security Issue: High Pebble Complexity Put “ pebble ” on node to switch program P P P P P P … state 0 state 1 state 2 state T-2 state T-1 state T P’ P’ P’ P’ P’ P’ Put pebble on node require to hardwire input/output

  28. Security Issue: High Pebble Complexity Can use 2m pebbles to traverse graph, but not better ⇒ Need to hardwire Ω (m) information in P auth ⇒ poly(m) overhead … state 1 , 0 state 1,1 state 1,2 state 1,T-2 state 1,T-1 state 1,T … state 2 , 0 state 2,1 state 2,2 state 2,T-2 state 2,T-1 state 2,T … state 3 , 0 state 3,1 state 3,2 state 3,T-2 state 3,T-1 state 3,T … state 4 , 0 state 4,1 state 4,2 state 4,T-2 state 4,T-1 state 4,T

  29. Branch & Combine Emulation Change topology to reduce pebble complexity • Combine m CPU states to 1 combined state • Branch one step computation from it state 1,t state 1,t+1 int 1,t int 1,t+1 state 2,t state 2,t+1 … comb t comb t+1 comb t-1 state 3,t state 3,t+1 int 2,t int 2,t+1 state 4,t state 4,t+1

  30. Branch & Combine Emulation Change topology to reduce pebble complexity • Combine m CPU states to 1 combined state • Branch one step computation from it Claim: pebble complexity = O(log m) state 1,t state 1,t+1 int 1,t int 1,t+1 state 2,t state 2,t+1 … comb t comb t+1 comb t-1 state 3,t state 3,t+1 int 2,t int 2,t+1 state 4,t state 4,t+1

  31. Branch & Combine Emulation Change topology to reduce pebble complexity • Combine m CPU states to 1 combined state • Branch one step computation from it Claim: pebble complexity = O(log m) • Combine step – Build “ Merkle tree” on CPU states – Combined state = root • Branch step – Authentication & one step computation

  32. Hiding Step for PRAM Garb(P, x) = (ST-Garb(P hide , x hide )) • Replace ORAM by Oblivious PRAM [BCP16] – also puncturable

  33. Summary and Open Problems • Feasibility of crypto for PRAM based on iO via succinct garbled PRAM • Adaptive succinct garbled (Paralle) RAM with persistent memory (next talk) [ACC+15,CCHR15] • Open: FHE for RAM/PRAM? • Open: Crypto for PRAM without iO – ABE for RAM/PRAM based on LWE? • Other parallel model?

  34. Thank you! Questions? 34

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