MPC Programming Frameworks Many slides borrowed from https
MPC Programming Frameworks Many slides borrowed from: https: //marsella. github. io/static/mpcslides. pdf
Where to Look for Frameworks • Very many MPC Frameworks are out there • MPC Framework So. K [HHNZ]: – https: //github. com/MPC-So. K/frameworks – Many frameworks available as Docker containers • Outside of So. K Repository: – Sharemind (https: //sharemind. cyber. ee/sharemind-mpc/) – MPy. C(https: //github. com/lschoe/mpyc) MPC Frameworks - 2 ABY 02/26/20
Outline • Where to Find Dev Tools • Available Protocols Categories • Available Features and Props • Coding Style Choices • Recommendations MPC Frameworks - 3 ABY 02/26/20
Frameworks and Protocol Families MPC Frameworks - 4 ABY 02/26/20
Garbled Circuits MPC Frameworks - 5 ABY 02/26/20
Secret-Sharing Based Protocols MPC Frameworks - 6 ABY 02/26/20
Hybrid Protocols MPC Frameworks - 7 ABY 02/26/20
Frameworks and Protocol Families MPC Frameworks - 8 ABY 02/26/20
Outline • Where to Find Dev Tools • Available Protocols Categories • Available Features and Props • Coding Style Choices • Recommendations MPC Frameworks - 9 ABY 02/26/20
Summary of Framework Properties MPC Frameworks - 10 ABY 02/26/20
Supported Data Types and Operations Supported Data Types: MPC Frameworks - 11 ABY 02/26/20 Supported Operations:
Outline • Where to Find Dev Tools • Available Protocols Categories • Available Features and Props • Coding Style Choices • Recommendations MPC Frameworks - 12 ABY 02/26/20
Private Conditionals MPC Frameworks - 13 ABY 02/26/20
Code Design MPC Frameworks - 14 ABY 02/26/20
Outline • Where to Find Dev Tools • Available Protocols Categories • Available Features and Props • Coding Style Choices • Recommendations MPC Frameworks - 15 ABY 02/26/20
How to Choose a Framework 1. How many parties – 2 or more 2. What threat model – semi-honest or malicious 3. Model of Computation - Boolean, Arithmetic, or Mixed 4. Programming language - C/C++, Java, Python, Special purpose 5. Available operations – Arrays, comparison, fixed point, etc. 6. Level of access – just want to use existing ops, or want to modify ops - this also applies to some degree to level of measurement 7. Usability / Difficulty to build – Marcella’s framework takes away some of this work MPC Frameworks - 16 ABY 02/26/20
Recommendations • High Level – Sharemind – Scale Mamba • Lower Level – MPy. C – EMP-Toolkit (if only need Boolean computation) – ABY MPC Frameworks - 17 ABY 02/26/20
Backup MPC Frameworks - 18 ABY 02/26/20
K-Means Clustering Performance MPC Frameworks - 19 ABY 02/26/20
- Slides: 19