Skip to content

Latest commit

 

History

History
223 lines (131 loc) · 15.8 KB

README_CN.md

File metadata and controls

223 lines (131 loc) · 15.8 KB

Awesome-OpenMPCmain

英文版 中文版

1 介绍

2 理论

2.1 学术论文

2.1.1 General Cryptographic Primitives

2.1.1.1 Oblivious Transfer (OT)

  • More Efficient Oblivious Transfer and Extensions for Faster Secure Computation. Doc: paper, slide.

2.1.1.2 Secure Multiparty Computing

SMPC is roughly divided into the following genres:

  • Yao's GC (garbled circuit), a series of confusing circuits created by Academician Yao Qizhi
  • SPDZ (arithmetic circuit), a series of encryption based on secret sharing and limited homomorphism created by Ivan Damgard
  • GMW (boolean circuit), the pioneering paper of boolean sharings
  • ABY (including share conversion of arithmetic, Boolean and confusion circuits), including ABY and ABY3 5.
  • MHE, based on FHE series

Garbled Circuit

  1. Protocols for Secure Computations (Extended Abstract)
  2. Improved Garbled Circuit: Free XOR Gates and Applications
  3. FairplayMP – A System for Secure Multi-Party Computation
  4. Two Halves Make a Whole Reducing Data Transfer in Garbled Circuits using Half Gates
  5. Fast and Secure Three-party Computation: The Garbled Circuit Approach

Arithmetic Circuit

  1. Multiparty Computation from Somewhat Homomorphic Encryption
  2. Practical Covertly Secure MPC for Dishonest Majority Or: Breaking the SPDZ Limits
  3. SPDZ2k: Efficient MPC mod 2k for Dishonest Majority

Boolean Circuit

  1. How to play any mental game or a completeness theorem for protocols with honest majority (PDF) How to play ANY mental game

Mix

  1. ABY – A Framework for Effificient Mixed-Protocol Secure Two-Party Computation
  2. ABY3 : A Mixed Protocol Framework for Machine Learning
  3. BLAZE: Blazing Fast Privacy-Preserving Machine Learning
  4. [Trident: Efficient 4PC Framework for Privacy Preserving Machine Learning)
  5. MOTION – A Framework for Mixed-Protocol Multi-Party Computation

MFHE

  1. Threshold Cryptosystems From Threshold Fully Homomorphic Encryption
  2. Multiparty Homomorphic Encryption: From Theory to Practice
  3. Efficient Multi-Key Homomorphic Encryption with Packed Ciphertexts with Application to Oblivious Neural Network Inference

2.1.1.3 Homomorphic encryption

Coming Soon...

2.1.1.4 Zero knowledge proof

Coming Soon...

2.1.2 Specialized cryptography protocols

2.1.2.1 PSI

2.1.2.2 PIR

Coming Soon...

2.1.2.3 PIS

Coming Soon...

2.1.2.4 Multiparty ECDSA signing

  • Blockchain-Crypto-MPC - Multiparty ECDSA signing in the cryptocurrency setting, includes an optimized GC library, OT, and more. | CCS'18.
  • MPECDSA - Threshold multiparty ECDSA from ECDSA assumptions. | S&P'19.

2.1.2.5 Oblivous RAM

2.1.3 Federal Learning

Coming Soon...

2.1.4 TEE

Coming Soon...

2.1.5 BlockChain

Coming Soon...

2.1.6 PPML

Coming Soon

2.2 Survey Papers

  • Yehuda Lindell. Secure Multiparty Computation (MPC), Communications of the ACM, January 2021. This is a general and friendly introduction to secure multiparty computation - what it is, how it works, and what it is used for.
  • Yehuda Lindell. How to Simulate It - A Tutorial on the Simulation Proof Technique, 2016. The simulation paradigm is fundamental to secure computation. However, many have difficulties in understanding how to write simulation proofs. This tutorial explains this proof technique in great detail.
  • Manoj Prabhakaran and Amit Sahai (Eds.). Secure Multi-Party Computation, IOS Press, 2013. This is a compilation of surveys on the topic of multiparty computation. It focuses on theoretical aspects and is highly useful for those wishing to study the theory of MPC.

2.3 Books

2.3.1 SMPC

  • A Pragmatic Introduction to Secure Multi-Party Computation -The book emphazises the intuition and ideas behind the protocols rather than rigorous proofs.

  • Applications of Secure Multiparty Computation - Collection of MPC protocols for several real-world tasks such as statistics.

  • Efficient Secure Two-Party Protocols - Comprehensive study of efficient protocols and techniques for secure two-party computation – both general constructions that can be used to securely compute any functionality, and protocols for specific problems of interest.

  • Secure Multiparty Computation and Secret Sharing - Comprehensive treatment of unconditionally secure techniques for multiparty computation (MPC) and secret sharing.

  • Foundations of Cryptography Vol. 2 - Cambridge University Press, 2004. Chapter 7 of the book introduces two-party and multiparty computation, contains a thorough and comprehensive definitional treatment, provides a full and detailed proof of the GMW construction, and surveys advanced topics. The book's formal and rigorous treatment makes it a must-read for the MPC researcher.

  • Engineering Secure Two-Party Computation Protocols - Springer, 2012. This book focuses specifically tools for optimizing secure computation in practice, including circuit optimizations, frameworks for constructing protocols, and more. The book provides a very good overview of different techniques and tools that MPC researchers should be familiar with.

2.3.2 Federal Learning

Coming Soon...

2.3.3 TEE

Coming Soon...

2.3.4 BlockChain

Coming Soon...

2.4 Courses

3 Open Source Framework

  • ABY - 2PC with secret sharing and garbled circuits; secure against semi-honest adversaries. | NDSS'15.
  • ABY3 - 3PC with secret sharing for privacy preserving machine learning and database joins (PSI, Union, etc.); secure against semi-honest adversaries. | CCS'18, 2019/518.
  • BatchDualEx - 2PC with garbled circuits; secure against malicious adversaries. | eprint: 2016/632.
  • CrypTen - MPC with secret sharing; secure against semi-honest adversary; focused on building PyTorch applications. | documentation: link
  • EMP-toolkit - 2PC and MPC with garbled circuits; secure against semi-honest adversaries (emp-sh2pc). There are also ones resistant against malicious parties (emp-[ag2pc|m2pc|agmpc]) | eprint: 2017/189, 2016/762, 2017/030.
  • Fancy-Garbling - 2PC with arithmetic garbled circuits; secure against semi-honest adversaries. | eprint: 2016/969.
  • FRESCO - MPC supporting TinyTables or SPDZ protocols; secure against semi-honest or malicious adversaries. | Practice'15.
  • HoneyBadgerMPC - Robust MPC-based confidentiality layer for blockchains with guaranteed output delivery; secure against up to t < n/3 malicious parties.
  • JIFF - JavaScript client and server libraries for building web-based applications that employ general purpose MPC; secure against semi-honest adversaries. | documentation: link.
  • MP-SPDZ - MPC with garbled circuits or secret sharing; secure against malicious or semi-honest adversaries with dishonest or honest majority. | documentation | eprint: 2020/512
  • MPyC - BGW honest majority multi-party protocol; secure against semi-honest adversaries. | TPMPC'18.
  • Obliv-C - 2PC with garbled circuits; secure against semi-honest adversaries. | eprint: 2015/1153.
  • SCALE-MAMBA - General MPC with secret sharing; secure against various adversaries including malicious with a dishonest majority. Software closer to a production system. | documentation: link.
  • Sharemind - 2PC or 3PC with secret sharing; secure against semi-honest adversaries. | Cyber'13.
  • swanky - A suite of rust libraries for secure multi-party computation (currently includes oblivious transfer, garbled circuits, and private set intersection).
  • Tf-encrypted - 3PC with secret sharing; secure against semi-honest adversaries; focused on TensorFlow-based applications.
  • MOTION-MOTION - A Framework for Mixed-Protocol Multi-Party Computation.
  • SecMML - SecMML, a branch of FudanMPL (Multi-Party Computation + Machine Learning) , is a scalable and efficient MPC framework for training machine learning models based on BGW protocol.
  • OpenPEGASUS - Pegasus: Bridging Polynomial and Non-polynomial Evaluations in Homomorphic Encryption.
  • Drynx - Drynx: Decentralized, Secure, Verifiable System for Statistical Queries and Machine Learning on Distributed Datasets.
  • [MK-TFHE](Multi-Key Homomophic Encryption from TFHE) - MK-TFHE is a proof-of-concept implementation of a multi-key version of TFHE. The code is written on top of the TFHE library (https://tfhe.github.io/tfhe/).

4 Framework optimization

4.1 SIMD instructions

Single Instruction Multiple Data (SIMD) not only drastically reduces the memory footprint but also the required communication, since sending 1-bit values has significant overhead. This optimization results in a much better amortized efficiency and throughput, which we detail in §8. SIMD instructions are especially relevant for the outsourcing setting, where the outsourcing servers often simultaneously process data of many users.

SIMD instructions have been used for $𝑁 ∈ {2,3}$ in:

4.2 Interleaved Setup and Online Phase.

Circuit evaluation in MPC happens in one of two modes: sequential or interleaved (‘pipelined’). The sequential mode runs the input-dependent online phase only after the input-independent setup has completed. This allows precise measurements of the setup and online phase communication and computation requirements, or full precomputation ahead of the online phase.

Frameworks like ABY support only this evaluation mode. The interleaved mode, on the other hand, runs both phases in parallel and facilitates possibly more efficient evaluation of the circuit in terms of load balancing, since the gates that otherwise would have been waiting for the setup phase to finish can be evaluated faster, thus improving the protocol latency.

This method is supported in the following frameworks:

4.3 Communication Serialization

MOTION is the first MPC framework, whose communication is completely serialized. The most important benefit of the communication serialization is that our framework neither needs to own a separate TCP connection, nor does it rely on TCP (or similar protocols) as transport protocol, as it was the case for all previous MPC frameworks.

MOTION – A Framework for Mixed-Protocol Multi-Party Computation