awesome-mpc
MPC resource hub
A curated collection of resources and materials for learning and researching multi-party computation.
A curated list of multi party computation resources and links.
2k stars
106 watching
257 forks
last commit: 3 months ago
Linked from 1 awesome list
cryptomultiparty-computationsecure-computation
awesome-mpc / 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 | ||
awesome-mpc / 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 | ||
awesome-mpc / 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) | 87 | almost 2 years ago | – 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 | ||
awesome-mpc / Misc | |||
ePrint papers | Frequently updated list of secure computation papers appearing on IACR eprint | ||
awesome-mpc / Software / Frameworks | |||
ABY | 465 | almost 3 years ago | 2PC with secret sharing and garbled circuits; secure against semi-honest adversaries. | |
ABY3 | 205 | 11 months ago | 3PC with secret sharing for privacy preserving machine learning and database joins (PSI, Union, etc.); secure against semi-honest adversaries. | , |
BatchDualEx | 14 | over 7 years ago | 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 | 1,554 | 24 days ago | 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 | 406 | 6 months ago | 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 | 34 | almost 5 years ago | 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 | 135 | over 3 years ago | Robust MPC-based confidentiality layer for blockchains with guaranteed output delivery; secure against up to t < n/3 malicious parties |
JIFF | 262 | 15 days ago | JavaScript client and server libraries for building web-based applications that employ general purpose MPC; secure against semi-honest adversaries. | documentation: |
libTMCG | 21 | over 3 years ago | C++ framework with various primitives and tools for implementing multiparty games; secure against semi-honest adversaries. | documentation: |
Moose | 59 | 9 months ago | 3PC with secret sharing; secure against semi-honest adversaries; focused on data processing and machine learning |
MOTION | 86 | over 1 year ago | Mixed-Protocol MPC framework supporting full-threshold boolean and arithmetic GMW and BMR; secure against semi-honest adversaries. | eprint: |
MP-SPDZ | 958 | 7 days ago | 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 | 4 | over 3 years ago | Faithful reimplementation of Java using Obliv-C. | eprint: |
Rosetta | 566 | over 2 years ago | 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 | 246 | 1 day ago | 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 | 283 | 12 days ago | A suite of rust libraries for secure multi-party computation (currently includes oblivious transfer, garbled circuits, and private set intersection) |
Tandem | 180 | 7 days ago | 2PC with garbled circuits written in Rust; secure against malicious adversaries |
TF Encrypted | 3 | over 2 years ago | 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: | ||
awesome-mpc / Software / Primitives | |||
aes-prng | 9 | 3 months ago | Rust pseudo-random number generator based on AES |
APRICOT | 16 | about 8 years ago | OT Extension secure against malicious adversaries. | |
Distributed Vector-OLE | 28 | almost 4 years ago | A two-party generator for Vector-OLE correlations. |
LibOTe | 444 | 1 day ago | Library with various OT Extensions |
OT Extension | 126 | about 4 years ago | OT Extension secure against malicious adversaries. | |
SCAPI | 182 | over 1 year ago | Various secure computation API's carefully documented with a clean code design in mind. | |
SplitCommit | 10 | over 7 years ago | Additively homomorphic commitment scheme. | |
TSS | 159 | about 6 years ago | A pure-Rust implementation of various threshold secret sharing schemes |
awesome-mpc / Software / Protocols | |||
BaRK-OPRF | 79 | about 2 years ago | Private Set Intersection. | |
Blockchain-Crypto-MPC | 459 | over 2 years ago | Multiparty ECDSA signing in the cryptocurrency setting, includes an optimized GC library, OT, and more. | |
LibPSI | 177 | almost 2 years ago | Various protocols for performing private set intersection |
Linreg | 32 | over 5 years ago | Privacy preserving linear regression. | |
Geppetri | 16 | about 7 years ago | Verifiable 3PC. | |
MPECDSA | Threshold multiparty ECDSA from ECDSA assumptions. | | ||
ORAM (Obliv-C) | Oblivous RAM. | | ||
Prio | 79 | about 4 years ago | Private aggregation with SNIPs (secret-shared non-interactive proofs). | |
PSI | 177 | over 2 years ago | Private Set Intersection. | |
ROOM | 5 | over 4 years ago | Read-Only Oblivious Maps and applications to secure machine learning on sparse data. | |
awesome-mpc / Software / Tools | |||
CBMC-GC | Creates Boolean circuits from ANSI-C code optimized for secure computation. | | ||
CipherCompute | 26 | over 3 years ago | 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 | 99 | over 4 years ago | Big Data query compiler that combines cleartext processing with Spark and MPC protocols. | |
Garble-Lang | 38 | 8 days ago | 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 | 491 | 5 days ago | Build environments for many MPC frameworks using Docker containers. | |
Private Benchmarking | 7 | 3 months ago | 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 | 119 | about 1 year ago | Logic Synthesis and Sequential Descriptions for Yao's Garbled Circuits. | |
UC Compiler | 39 | almost 4 years ago | Valiant's Universal Circuit Compiler. | |
awesome-mpc / Software / Retired software | |||
Duplo | 22 | over 7 years ago | 2PC with garbled circuits; secure against malicious adversaries |
FairPlayMP | 45 | almost 10 years ago | GMW based multi-party protocol secure against semi-honest adversaries | |
Frigate | C-style compiler for optimizing boolean circuits. | | ||
Myst | 35 | over 4 years ago | 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 | 56 | over 7 years ago | Secure distributed aggregation of high-dimensional vectors | |
SPDZ | General MPC with secret sharing; secure against malicious adversaries | eprint: | ||
SPDZ-Yao | 10 | about 6 years ago | 2PC with garbled circuits; high-level language similar to SPDZ; secure against semi-honest adversaries |
Semi-honest BMR | 5 | about 7 years ago | BMR protocol secure against semi-honest adversaries | |
Tasty | 10 | about 8 years ago | 2PC with garbled circuits and homomorphic encryption | |
TinyLEGO | 16 | over 7 years ago | 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 | | ||
awesome-mpc / 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 |