Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
mpc-awesome
https://github.com/trestinlsd/mpc-awesome
- 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.
- 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.
- 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)
- UC Security - Video lectures on UC security delivered by Ran Canetti.
- ePrint papers - Frequently updated list of secure computation papers appearing on IACR eprint.
- ABY - 2PC with secret sharing and garbled circuits; secure against semi-honest adversaries. | [NDSS'15](http://encrypto.de/papers/DSZ15.pdf).
- ABY3 - 3PC with secret sharing for privacy preserving machine learning and database joins (PSI, Union, etc.); secure against semi-honest adversaries. | [CCS'18](https://eprint.iacr.org/2018/403.pdf), [2019/518](https://eprint.iacr.org/2019/518.pdf).
- BatchDualEx - 2PC with garbled circuits; secure against malicious adversaries. | eprint: [2016/632](https://eprint.iacr.org/2016/632).
- 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: [link](https://crypten.ai/)
- 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](https://eprint.iacr.org/2017/189), [2016/762](https://eprint.iacr.org/2016/762), [2017/030](https://eprint.iacr.org/2017/030).
- 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: [link](https://github.com/mpc-msri/EzPC).
- Fancy-Garbling - 2PC with arithmetic garbled circuits; secure against semi-honest adversaries. | eprint: [2016/969](https://eprint.iacr.org/2016/969).
- FRESCO - MPC supporting TinyTables or SPDZ protocols; secure against semi-honest or malicious adversaries. | [Practice'15](http://practice-project.eu/downloads/publications/D22.1-State-of-the-art-analysis-PU-V1.1.pdf).
- 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](https://multiparty.org/jiff/).
- libTMCG - C++ framework with various primitives and tools for implementing multiparty games; secure against semi-honest adversaries. | documentation: [link](https://www.nongnu.org/libtmcg/libTMCG.html/index.html)
- 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: [2020/1137](https://eprint.iacr.org/2020/1137).
- MP-SPDZ - MPC with garbled circuits or secret sharing; secure against malicious or semi-honest adversaries with dishonest or honest majority. | [documentation](https://mp-spdz.readthedocs.io/en/latest/) | eprint: [2020/512](https://eprint.iacr.org/2020/521)
- MPyC - BGW honest majority multi-party protocol; secure against semi-honest adversaries. | [TPMPC'18](https://www.win.tue.nl/~berry/mpyc/TPMPC2018.pdf).
- Obliv-C - 2PC with garbled circuits; secure against semi-honest adversaries. | eprint: [2015/1153](http://eprint.iacr.org/2015/1153).
- Obliv-Java - Faithful reimplementation of Java using Obliv-C. | eprint: [2017/878](https://eprint.iacr.org/2017/878)
- 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.
- 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](https://homes.esat.kuleuven.be/~nsmart/SCALE/Documentation.pdf).
- 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. | [USENIX ATC'23](https://www.usenix.org/system/files/atc23-ma.pdf).
- Sharemind - 2PC or 3PC with secret sharing; secure against semi-honest adversaries. | [Cyber'13](https://cyber.ee/research/theses/roman_jagomagis_msc.pdf).
- 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.
- 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: [TNO MPC Lab](https://mpc.tno.nl/).
- aes-prng - Rust pseudo-random number generator based on AES.
- APRICOT - OT Extension secure against malicious adversaries. | [2015/546](http://eprint.iacr.org/2015/546).
- Distributed Vector-OLE - A two-party generator for Vector-OLE correlations. [CCS'19](https://eprint.iacr.org/2019/1084.pdf).
- LibOTe - Library with various OT Extensions.
- OT Extension - OT Extension secure against malicious adversaries. | [2015/061](https://eprint.iacr.org/2015/061).
- SCAPI - Various secure computation API's carefully documented with a clean code design in mind. | [2012/629](http://eprint.iacr.org/2012/629).
- SplitCommit - Additively homomorphic commitment scheme. | [2015/694](http://eprint.iacr.org/2015/694).
- TSS - A pure-Rust implementation of various threshold secret sharing schemes.
- BaRK-OPRF - Private Set Intersection. | [2016/799](https://eprint.iacr.org/2016/799).
- Blockchain-Crypto-MPC - Multiparty ECDSA signing in the cryptocurrency setting, includes an optimized GC library, OT, and more. | [CCS'18](https://eprint.iacr.org/2018/987).
- LibPSI - Various protocols for performing private set intersection.
- Linreg - Privacy preserving linear regression. | [2016/892](https://eprint.iacr.org/2016/892).
- Geppetri - Verifiable 3PC. | [2017/013](https://eprint.iacr.org/2017/013).
- MPECDSA - Threshold multiparty ECDSA from ECDSA assumptions. | [S&P'19](https://eprint.iacr.org/2019/523.pdf).
- ORAM (Obliv-C) - Oblivous RAM. | [S&P'16](http://oblivc.org/docs/sqoram.pdf).
- Prio - Private aggregation with SNIPs (secret-shared non-interactive proofs). | [NSDI'17](https://crypto.stanford.edu/prio/paper.pdf).
- PSI - Private Set Intersection. | [2014/447](https://eprint.iacr.org/2014/447).
- ROOM - Read-Only Oblivious Maps and applications to secure machine learning on sparse data. | [CCS'19](https://eprint.iacr.org/2019/281.pdf).
- CBMC-GC - Creates Boolean circuits from ANSI-C code optimized for secure computation. | [ShallowCC](http://www.seceng.informatik.tu-darmstadt.de/assets/buescher/ShallowCC16.pdf).
- CipherCompute - Create generic MPC programs using [Rust](https://www.rust-lang.org/). Works on top of the [SCALE](https://github.com/KULeuven-COSIC/SCALE-MAMBA) 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. | [EuroSys19](https://arxiv.org/abs/1902.06288).
- HyCC - Optimizes circuits for hybrid MPC from ANSI-C. | [CCS'18](https://thomaschneider.de/papers/BDKKS18.pdf).
- MPC-SoK - Build environments for many MPC frameworks using Docker containers. | [S&P19](https://marsella.github.io/static/mpcsok.pdf).
- Tiny-Garble - Logic Synthesis and Sequential Descriptions for Yao's Garbled Circuits. | [S&P'15](http://aceslab.org/sites/default/files/TinyGarble.pdf).
- UC Compiler - Valiant's Universal Circuit Compiler. | [2016/093](https://eprint.iacr.org/2016/093).
- Duplo - 2PC with garbled circuits; secure against malicious adversaries.
- FairPlayMP - GMW based multi-party protocol secure against semi-honest adversaries | [CCS'08](http://www.cs.huji.ac.il/project/Fairplay/FairplayMP/FairplayMP.pdf).
- Frigate - C-style compiler for optimizing boolean circuits. | [Euro S&P'16](https://www.cise.ufl.edu/~traynor/papers/mood-eurosp16.pdf).
- Myst - Secure Multiparty Key Generation, Signature and Decryption JavaCard applet and host application | [CCS'17](https://acmccs.github.io/papers/p1583-mavroudisA.pdf).
- SDA - Secure distributed aggregation of high-dimensional vectors | [2017/643](https://eprint.iacr.org/2017/643).
- SPDZ - General MPC with secret sharing; secure against malicious adversaries | eprint: [2017/1230](https://eprint.iacr.org/2017/1230).
- 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 | [2016/1066](https://eprint.iacr.org/2016/1066).
- Tasty - 2PC with garbled circuits and homomorphic encryption | [2010/365](https://eprint.iacr.org/2010/365).
- TinyLEGO - 2PC with garbled circuits; secure against malicious adversaries | eprint: [2015/309](http://eprint.iacr.org/2015/309).
- 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 | [S&P'14](http://www.cs.umd.edu/~aseem/wysteria.pdf).
- 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.
Programming Languages
Keywords
secure-computation
8
cryptography
8
multiparty-computation
5
garbled-circuits
5
mpc
5
secret-sharing
5
oblivious-transfer
3
encrypto
3
privacy
3
privacy-enhancing-technologies
3
ot-extension
2
rust
2
machine-learning
2
distributed-computing
2
smpc
2
threshold-cryptography
2
confidential-computing
2
secure-multiparty-computation
2
homomorphic-encryption
2
multi-party-computation
1
secure-multi-party-computation
1
fibers
1
cmake
1
data-science
1
zero-knowledge-proofs
1
openpgp
1
mental-poker
1
card-game
1
hybrid
1
statistics
1
signature
1
schnorr
1
javacard
1
elgamal
1
decryption
1
verilog
1
security-protocol
1
circuit-description
1
smc
1
multiparty
1
cybersecurity
1
unmaintained
1
inactive
1
oprf
1
2psi
1
ot
1
ot-protocols
1
oblivious-transfer-extension
1
delta-ot
1
prng
1