The list format was inspired from awesome list and after a fruitful lunch discussion at TPMPC. It is designed to have a central place where everyone can find open-source software designed for MPC as well as introductory material to this topic.
Moreover, the list is given alphabetically and divided into categories of libraries which are actively maintained or recently developed.
Please feel free to do a pull request with any MPC software or resource you know and it is not on the list. The current classification might not be most suitable one and I am open to any suggestions.
- Applications of Secure Multiparty Computation - Collection of MPC protocols for several real-world tasks such as statistics.
- Secure Multiparty Computation and Secret Sharing - Comprehensive treatment of unconditionally secure techniques for multiparty computation (MPC) and secret sharing.
- 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.
- How To Simulate It - A Tutorial on the Simulation Proof Technique.
- OSU Bibliography - An Annotated Bibliography of Practical Secure Computation.
- 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.
- ePrint papers - Auto-updated list of secure computation papers.
Here I tried to reference the most recent article found on specific software since enumerating all changes including the original paper is too cumbersome.
- ABY - 2PC with secret sharing and garbled circuits; secure against semi-honest adversaries | NDSS'15.
- batchDualEx - 2PC with garbled circuits; secure against malicious adversaries | eprint: 2016/632.
- Duplo - 2PC with garbled circuits; secure against malicious adversaries.
- Fresco - MPC supporting BGW or SPDZ protocols; secure against semi-honest or malicious adversaries | Practice'15.
- Obliv-C - 2PC with garbled circuits; secure against semi-honest adversaries | eprint: 2015/1153.
- Sharemind - 2PC or 3PC with secret sharing; secure against semi-honest adversaries | Cyber'13.
- SPDZ - General MPC with secret sharing; secure against malicious adversaries | eprint: 2016/505.
- TinyLEGO - 2PC with garbled circuits; secure against malicious adversaries | eprint: 2015/309.
- APRICOT - OT Extension secure against malicious adversaries | 2015/546.
- libOTe - Library with various OT Extensions.
- OT Extension - OT Extension secure against malicious adversaries | 2015/061.
- SCAPI - Various secure computation API's carefully documented with a clean code design in mind | 2012/629.
- SplitCommit - Additively homomorphic commitment scheme | 2015/694.
- TSS - A pure-Rust implementation of various threshold secret sharing schemes.
- BaRK-OPRF - Private Set Intersection | 2016/799.
- Linreg - Privacy preserving linear regression | 2016/892.
- Geppetri - Verifiable 3PC | 2017/013.
- ORAM (Obliv-C) - Oblivous RAM | S&P'16.
- PSI - Private Set Intersection | 2014/447.
- CBMC-GC - Creates Boolean circuits from ANSI-C code optimized for secure computation | ShallowCC.
- UC Compiler - Valiant's Universal Circuit Compiler | 2016/093.
Contributions welcome! Read the contribution guidelines first.
To the extent possible under law, Dragoș Rotaru has waived all copyright and related or neighboring rights to this work.