awesome-mpc
by rdragos
A curated list of multi party computation resources and links.
AI summary
MPC resource hub
A curated collection of resources and materials for learning and researching multi-party computation.
- stars
- 1.8K
- forks
- 257
- watching
- 106
- awesome list
- 1
- entries
- 84
What's in the list
84 links in 10 sections, with live GitHub stats.activeno commit in 2y
Theory / Books
- A Pragmatic Introduction to Secure Multi-Party Computation
A broad introduction to the field of secure multi-party computation, covering both the fundamental constructions and many of the recent improvements. 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
Theory / Courses
- Cryptographic Computing Course
Course on MPC, Homomorphic Encryption and related topics given by Claudio Orlandi at Aarhus University
- FHE-MPC Advanced Grad Course
'Informal grad course' in FHE and MPC
- Secure Computation
Secure Computation course offered by Indian Institute of Science covering secret sharing schemes, oblivious transfer to impossiblity results and zero-knowledge proofs
- Secure Multi-Party Computation at Scale
Boston University course that covers mathematical and algorithmic foundations of MPC, with an additional focus on deployment of state-of-the-art MPC technologies
Theory / Tutorials
- Getting Started with MPC
Light compilation of basic resources for getting started in MPC study and research
- How To Simulate It
A Tutorial on the Simulation Proof Technique
- OSU Bibliography
An Annotated Bibliography of Practical Secure Computation
TinySMPC (tutorial)
– A tiny, educational, Pythonic library for SMPC. The tutorial notebook runs in your browser
- UC Security
Video lectures on UC security delivered by Ran Canetti
Misc
- ePrint papers
Frequently updated list of secure computation papers appearing on IACR eprint
Software / Frameworks
ABY
2PC with secret sharing and garbled circuits; secure against semi-honest adversaries. |
ABY3
3PC with secret sharing for privacy preserving machine learning and database joins (PSI, Union, etc.); secure against semi-honest adversaries. | ,
BatchDualEx
2PC with garbled circuits; secure against malicious adversaries. | eprint:
- Carbyne Stack
MPC cloud platform that combines state-of-the-art MPC with cloud-native technology like Kubernetes, Istio, and Knative to enable MPC deployments at scale
CrypTen
MPC with secret sharing; secure against semi-honest adversary; focused on building PyTorch applications. | documentation:
- 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: , ,
EzPC
Offers a suite of tools for secure machine learning using semi-honest MPC protocols. It includes a language for secure machine learning, compilers for TensorFlow/Onnx to various MPC protocols, and frameworks for training and inference on deep neural networks. It provides an end-to-end solution for secure machine learning. | documentation: . End-to-End Platform:
Fancy-Garbling
2PC with arithmetic garbled circuits; secure against semi-honest adversaries. | eprint:
- FRESCO
MPC supporting TinyTables or SPDZ protocols; secure against semi-honest or malicious adversaries. |
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:
libTMCG
C++ framework with various primitives and tools for implementing multiparty games; secure against semi-honest adversaries. | documentation:
Moose
3PC with secret sharing; secure against semi-honest adversaries; focused on data processing and machine learning
MOTION
Mixed-Protocol MPC framework supporting full-threshold boolean and arithmetic GMW and BMR; secure against semi-honest adversaries. | eprint:
MP-SPDZ
MPC with garbled circuits or secret sharing; secure against malicious or semi-honest adversaries with dishonest or honest majority. | | eprint:
- MPyC
BGW honest majority multi-party protocol; secure against semi-honest adversaries. |
- Obliv-C
2PC with garbled circuits; secure against semi-honest adversaries. | eprint:
Obliv-Java
Faithful reimplementation of Java using Obliv-C. | eprint:
Rosetta
3PC with secret sharing; secure against semi-honest adversaries; focused on reusing the APIs of TensorFlow and allowing to transfer traditional TensorFlow codes into a privacy-preserving manner with minimal changes
SecretFlow-SPU
A domain-specific compiler and runtime suite, that aims to provide a secure computation service with provable security. SPU compiler uses XLA as its front-end Intermediate Representation (IR) and SPU runtime implements various MPC protocols. |
- Sharemind
2PC or 3PC with secret sharing; secure against semi-honest adversaries. |
swanky
A suite of rust libraries for secure multi-party computation (currently includes oblivious transfer, garbled circuits, and private set intersection)
Tandem
2PC with garbled circuits written in Rust; secure against malicious adversaries
TF Encrypted
3PC with secret sharing; secure against semi-honest adversaries; focused on TensorFlow-based applications
- TNO-MPC
Collection of MPC generic software components, procedures, functionalities, and solutions based on secret sharing and (partially) homomorphic encryption developed in Python and Go. | Blogs and principles:
Software / Primitives
aes-prng
Rust pseudo-random number generator based on AES
APRICOT
OT Extension secure against malicious adversaries. |
Distributed Vector-OLE
A two-party generator for Vector-OLE correlations.
LibOTe
Library with various OT Extensions
OT Extension
OT Extension secure against malicious adversaries. |
SCAPI
Various secure computation API's carefully documented with a clean code design in mind. |
SplitCommit
Additively homomorphic commitment scheme. |
TSS
A pure-Rust implementation of various threshold secret sharing schemes
Software / Protocols
BaRK-OPRF
Private Set Intersection. |
Blockchain-Crypto-MPC
Multiparty ECDSA signing in the cryptocurrency setting, includes an optimized GC library, OT, and more. |
LibPSI
Various protocols for performing private set intersection
Linreg
Privacy preserving linear regression. |
Geppetri
Verifiable 3PC. |
- MPECDSA
Threshold multiparty ECDSA from ECDSA assumptions. |
- ORAM (Obliv-C)
Oblivous RAM. |
Prio
Private aggregation with SNIPs (secret-shared non-interactive proofs). |
PSI
Private Set Intersection. |
ROOM
Read-Only Oblivious Maps and applications to secure machine learning on sparse data. |
Software / Tools
- CBMC-GC
Creates Boolean circuits from ANSI-C code optimized for secure computation. |
CipherCompute
Create generic MPC programs using . Works on top of the engine. Enterprise software that provides UIs for participants handshaking, computations approval, datasources connections, auditing etc
Conclave
Big Data query compiler that combines cleartext processing with Spark and MPC protocols. |
Garble-Lang
Programming language for MPC with Garbled Circuits. Garble is statically typed, low-level, purely functional and uses a syntax heavily inspired by Rust
- HyCC
Optimizes circuits for hybrid MPC from ANSI-C. |
MPC-SoK
Build environments for many MPC frameworks using Docker containers. |
Private Benchmarking
Provides an End to End platform to perform Private Benchmarking using MPC and GPU-based Confidential Computing on LLMs/CNNs/Vision Models using framework. |
Tiny-Garble
Logic Synthesis and Sequential Descriptions for Yao's Garbled Circuits. |
UC Compiler
Valiant's Universal Circuit Compiler. |
Software / Retired software
Duplo
2PC with garbled circuits; secure against malicious adversaries
FairPlayMP
GMW based multi-party protocol secure against semi-honest adversaries |
- Frigate
C-style compiler for optimizing boolean circuits. |
Myst
Secure Multiparty Key Generation, Signature and Decryption JavaCard applet and host application |
- SCALE-MAMBA
General MPC with secret sharing; secure against various adversaries including malicious with a dishonest majority. Software closer to a production system. | documentation:
SDA
Secure distributed aggregation of high-dimensional vectors |
- SPDZ
General MPC with secret sharing; secure against malicious adversaries | eprint:
SPDZ-Yao
2PC with garbled circuits; high-level language similar to SPDZ; secure against semi-honest adversaries
Semi-honest BMR
BMR protocol secure against semi-honest adversaries |
Tasty
2PC with garbled circuits and homomorphic encryption |
TinyLEGO
2PC with garbled circuits; secure against malicious adversaries | eprint:
- VIFF
3+PC with secret sharing; secure against semi-honest adveraries
- Wysteria
Multparty computation with GMW, written in a functional PL; secure against semi-honest adversaries |
Workshops
- IIT Bombay MPC school
Covers basic and advanced topics related to the theory of MPC aimed at CS students and researchers interested in cryptography
- Securing Computation
Conducted at Simons institute for Theory of Computing
- The 1st BIU Winter School
Introductory lectures for basic secure computation constructions
- The 5th BIU Winter School
Tutorials and recent advances in secure computation delivered in video format
- TPMPC
Yearly workshop that started in Aarhus 2012. It has now become one of the biggest workshops for MPC people
Nothing in this list matches your filter.
Featured in 1 awesome list
Each link jumps to the spot where the list mentions awesome-mpc.