an introduction to practical multiparty computation this
play

An Introduction to Practical Multiparty Computation This Talk MPC - PowerPoint PPT Presentation

Jack Doerner [Northeastern U] An Introduction to Practical Multiparty Computation This Talk MPC Frameworks - General Computation Circuit Structures - Solving Specific Problems The Memory Problem - A Perpetual Bugbear Custom Protocols


  1. Jack Doerner [Northeastern U] An Introduction to Practical Multiparty Computation

  2. This Talk MPC Frameworks - General Computation Circuit Structures - Solving Specific Problems The Memory Problem - A Perpetual Bugbear Custom Protocols - Beyond Circuits But not: Theory, Protocols, Security Models

  3. 
 
 
 
 MPC History 1982 Yao’s Garbled Circuits 2004 Fairplay 2016 
 FairplayMP, Obliv-C, ObliVM, FastGC, TASTY, SPDZ, EMP, TinyOT, ShareMind, PCF, Sharemonad, TinyOT, Fresco, Wysteria, … Plus, many schemes that have never been implemented!

  4. MPC Frameworks Obliv-C ObliVM SPDZ Sharemind

  5. The n Millionaires Problem

  6. 
 The n Millionaires Problem 1. Millionaires 
 2. Computation 3. Result is revealed 
 additively share authorities engage their inputs in MPC

  7. MPC Frameworks Obliv-C ObliVM SPDZ Sharemind

  8. • Protocol: Yao’s Garbled Circuits (others possible) • Language type: C-compatible DSL • Philosophy: Minimalism and expressiveness 
 Only one additional keyword over C • Raw speed: 3M+ AND gates per second reported • Unique feature: Compiled; C-compatible 
 [ZE15]

  9. Language features not seen • obliv functions • ~obliv • intelligent typecasting

  10. Scalability Example: Secure Stable Matching [DEs16]

  11. Scalability Example: Linear System Solving [GSBRDZE16]

  12. MPC Frameworks Obliv-C ObliVM SPDZ Sharemind

  13. ObliVM • Protocol: Yao’s Garbled Circuits • Language type: Java/C++ style DSL • Philosophy: Common operations are first-class 
 language constructs. Includes everything 
 and the kitchen sink. • Raw speed: 700K AND gates per second reported 
 or 1.8M with preprocessing [LWNHS15]

  14. ObliVM

  15. ObliVM Language features not seen • phantom functions • shared random types • bounded loops • hinted loop-coalescing • automatic ORAM • built-in map + reduce • C-style structs

  16. MPC Frameworks Obliv-C ObliVM SPDZ Sharemind

  17. SPDZ • Protocol: n -party Linear Secret Sharing + SHE • No Language: programmed via python library calls • Raw Speed (2PC Online): 358K multiplications/second 
 (2PC O ffl ine): 4800 multiplications/second • Unique feature: Covert or Malicious security against 
 dishonest majority [DPSZ11] [DKLPSS12] [KOS16]

  18. SPDZ

  19. SPDZ

  20. SPDZ Language features not seen • Native GF(2 n ) types • Many bits of syntax

  21. MPC Frameworks Obliv-C ObliVM SPDZ Sharemind

  22. • A Commercial “Application Server Platform” (free for researchers). Similar to Java or .NET • Originally used a 3-party semi-honest protocol; now includes SPDZ, YGC, three-party malicious • Programming environments: • C/C++ library calls • SecreC, a C-like DSL • Rmind, an R-inspired statistical analysis language • Unique feature: vector optimized [sharemind.cyber.ee] [BLW08] [J10] [BKLS14]

  23. Scalability Example: Tax Fraud Detection [BJSV15]

  24. Scalability Example: Population-scale Statistical Studies [sharemind.cyber.ee] [BKKRST16]

  25. MPC Frameworks Obliv-C ObliVM SPDZ Sharemind Yao’s GC n -party LSS + Protocol Yao’s GC Multiple (others possible) SHE Programming C-compatible “Application Java-like DSL Python Library Paradigm DSL Server Platform” Minimalism, Do the sensible No front-end Commercial, Philosophy Be like C thing Language Ever-growing Is like C, Many language Malicious or Diverse Toolset, Advantages Compiled, fast features Covert Security Vector-optimized Is like C, Complicated Precomputation, Disadvantages Commercial No Floating Point Syntax Leaky Abstraction

  26. Circuit Structures

  27. Circuit Structures Seems simple enough, right? But how do we sort?

  28. “Standard” Sorts O(log n ) O( n ) Heapsort’s data-dependent branches make it ine ffi cient Quicksort is totally unsuitable

  29. Batcher’s Mergesort

  30. Batcher’s Mergesort A sorting algorithm with no data-dependent branches

  31. Recursively 
 Recursively 
 Sort Lower Half Sort Upper Half Merge Even 
 Merge Odd Rows Rows Compare Neighbor Elements

  32. Circuit Structures Batcher Merge O( n log n ) [B68] Batcher Odd-Even O( n log 2 n ) 
 [B68] 
 Mergesort AKS Sorting Network O( n log n ) [AKS83] Waksman Permutation O( n log n ) 
 [W68] 
 Network

  33. Circuit Structures Batcher Merge O( n log n ) [B68] Batcher Odd-Even O( n log 2 n ) 
 [B68] 
 Mergesort AKS Sorting Network O( n log n ) [AKS83] Waksman Permutation O( n log n ) 
 [W68] 
 Network

  34. The Memory Problem

  35. Oblivious Stack

  36. Oblivious Stack

  37. Oblivious Stack

  38. Oblivious Stack 1 2

  39. Oblivious Stack 1 2

  40. Oblivious Stack

  41. Oblivious Stack

  42. Oblivious Stack 5 blocks every access 10 blocks every 2nd access 20 blocks every 4th access 40 blocks every 8th access Amortized cost: 
 5 blocks per layer per access 
 Layers: O(log n )

  43. 
 Sublinear-time Memories Stack, Queue O(log n ) [ZE13] Square-root ORAM O(sqrt( n log 3 n )) [ZWRGDEK15] Tree ORAM 
 O(log 3 n ) 
 [SDSFRYD13] 
 (Circuit, Path) [WCS15] Algorithm-Specific O(?) [BSA13] 
 [DEs16]

  44. 
 Sublinear-time Memories Stack, Queue O(log n ) [ZE13] Square-root ORAM O(sqrt( n log 3 n )) [ZWRGDEK15] Tree ORAM 
 O(log 3 n ) 
 [SDSFRYD13] 
 (Circuit, Path) [WCS15] Algorithm-Specific O(?) [BSA13] 
 [DEs16]

  45. Custom Protocols

  46. MPC Frameworks oblivc.org Obliv-C oblivm.com ObliVM www.cs.bris.ac.uk/Research/ SPDZ 
 CryptographySecurity/SPDZ sharemind.cyber.ee Sharemind

  47. Jack Doerner [Northeastern U] jackdoerner.net An Introduction to Practical Multiparty Computation

Recommend


More recommend