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: about 1 year 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 | over 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 | over 3 years ago | 2PC with secret sharing and garbled circuits; secure against semi-honest adversaries. | |
| ABY3 | 205 | almost 2 years ago | 3PC with secret sharing for privacy preserving machine learning and database joins (PSI, Union, etc.); secure against semi-honest adversaries. | , |
| BatchDualEx | 14 | over 8 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 | 12 months 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 | over 1 year 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 6 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 | about 4 years ago | Robust MPC-based confidentiality layer for blockchains with guaranteed output delivery; secure against up to t < n/3 malicious parties |
| JIFF | 262 | 11 months 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 4 years ago | C++ framework with various primitives and tools for implementing multiparty games; secure against semi-honest adversaries. | documentation: |
| Moose | 59 | over 1 year ago | 3PC with secret sharing; secure against semi-honest adversaries; focused on data processing and machine learning |
| MOTION | 86 | over 2 years ago | Mixed-Protocol MPC framework supporting full-threshold boolean and arithmetic GMW and BMR; secure against semi-honest adversaries. | eprint: |
| MP-SPDZ | 958 | 11 months 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 | about 4 years ago | Faithful reimplementation of Java using Obliv-C. | eprint: |
| Rosetta | 566 | over 3 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 | 11 months 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 | 11 months ago | A suite of rust libraries for secure multi-party computation (currently includes oblivious transfer, garbled circuits, and private set intersection) |
| Tandem | 182 | 11 months ago | 2PC with garbled circuits written in Rust; secure against malicious adversaries |
| TF Encrypted | 3 | over 3 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 | about 1 year ago | Rust pseudo-random number generator based on AES |
| APRICOT | 16 | almost 9 years ago | OT Extension secure against malicious adversaries. | |
| Distributed Vector-OLE | 28 | almost 5 years ago | A two-party generator for Vector-OLE correlations. |
| LibOTe | 444 | 11 months ago | Library with various OT Extensions |
| OT Extension | 126 | almost 5 years ago | OT Extension secure against malicious adversaries. | |
| SCAPI | 182 | over 2 years ago | Various secure computation API's carefully documented with a clean code design in mind. | |
| SplitCommit | 10 | over 8 years ago | Additively homomorphic commitment scheme. | |
| TSS | 159 | about 7 years ago | A pure-Rust implementation of various threshold secret sharing schemes |
awesome-mpc / Software / Protocols | |||
| BaRK-OPRF | 79 | about 3 years ago | Private Set Intersection. | |
| Blockchain-Crypto-MPC | 459 | over 3 years ago | Multiparty ECDSA signing in the cryptocurrency setting, includes an optimized GC library, OT, and more. | |
| LibPSI | 177 | almost 3 years ago | Various protocols for performing private set intersection |
| Linreg | 32 | over 6 years ago | Privacy preserving linear regression. | |
| Geppetri | 16 | almost 8 years ago | Verifiable 3PC. | |
| MPECDSA | Threshold multiparty ECDSA from ECDSA assumptions. | | ||
| ORAM (Obliv-C) | Oblivous RAM. | | ||
| Prio | 79 | almost 5 years ago | Private aggregation with SNIPs (secret-shared non-interactive proofs). | |
| PSI | 177 | over 3 years ago | Private Set Intersection. | |
| ROOM | 5 | over 5 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 4 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 | about 5 years ago | Big Data query compiler that combines cleartext processing with Spark and MPC protocols. | |
| Garble-Lang | 38 | 11 months 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 | 11 months ago | Build environments for many MPC frameworks using Docker containers. | |
| Private Benchmarking | 7 | about 1 year 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 | almost 2 years ago | Logic Synthesis and Sequential Descriptions for Yao's Garbled Circuits. | |
| UC Compiler | 39 | almost 5 years ago | Valiant's Universal Circuit Compiler. | |
awesome-mpc / Software / Retired software | |||
| Duplo | 22 | over 8 years ago | 2PC with garbled circuits; secure against malicious adversaries |
| FairPlayMP | 45 | over 10 years ago | GMW based multi-party protocol secure against semi-honest adversaries | |
| Frigate | C-style compiler for optimizing boolean circuits. | | ||
| Myst | 35 | about 5 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 8 years ago | Secure distributed aggregation of high-dimensional vectors | |
| SPDZ | General MPC with secret sharing; secure against malicious adversaries | eprint: | ||
| SPDZ-Yao | 10 | about 7 years ago | 2PC with garbled circuits; high-level language similar to SPDZ; secure against semi-honest adversaries |
| Semi-honest BMR | 5 | almost 8 years ago | BMR protocol secure against semi-honest adversaries | |
| Tasty | 10 | about 9 years ago | 2PC with garbled circuits and homomorphic encryption | |
| TinyLEGO | 16 | over 8 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 | ||