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

Recommend


More recommend