A curated list of multi party computation resources and links.
Switch branches/tags
Nothing to show
Clone or download
Latest commit dfd4339 Nov 7, 2018
Permalink
Failed to load latest commit information.
.gitattributes first commit Apr 12, 2017
code-of-conduct.md first commit Apr 12, 2017
contributing.md changed guidelines Oct 19, 2018
readme.md reorganized bits Nov 7, 2018

readme.md

awesome-mpc Awesome

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.

Contents

Theory

Books

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.

Tutorials

Misc

  • ePrint papers - Frequently updated list of secure computation papers appearing on IACR eprint.

Software

Here I tried to reference the most recent article found on specific software since enumerating all changes including the original paper is too cumbersome.

Frameworks

  • 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.
  • 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, 2016/762, 2017/030.
  • FRESCO - MPC supporting TinyTables or SPDZ protocols; secure against semi-honest or malicious adversaries | Practice'15.
  • MP-SPDZ - MPC with garbled circuits or secret sharing; secure against malicious or semi-honest adversaries.
  • MPyC - BGW honest majority multi-party protocol; secure against semi-honest adversaries | TPMPC'18.
  • Obliv-C - 2PC with garbled circuits; secure against semi-honest adversaries | eprint: 2015/1153.
  • 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.
  • 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: 2017/1230.
  • SPDZ-Yao - 2PC with garbled circuits; high-level language similar to SPDZ; secure against semi-honest adversaries.
  • Tf-encrypted - 3PC with secret sharing; secure against semi-honest adversaries; focused on TensorFlow-based applications.
  • TinyLEGO - 2PC with garbled circuits; secure against malicious adversaries | eprint: 2015/309.

Primitives

  • 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.

Protocols

Tools

  • CBMC-GC - Creates Boolean circuits from ANSI-C code optimized for secure computation | ShallowCC.
  • MPC-SoK - Build environments for many MPC frameworks using Docker containers.
  • Tiny-Garble - Logic Synthesis and Sequential Descriptions for Yao's Garbled Circuits | S&P'15.
  • UC Compiler - Valiant's Universal Circuit Compiler | 2016/093.

Retired software

  • FairPlayMP - GMW based multi-party protocol secure against semi-honest adversaries | CCS'08.
  • Myst - Secure Multiparty Key Generation, Signature and Decryption JavaCard applet and host application | CCS'17.
  • SDA - Secure distributed aggregation of high-dimensional vectors | 2017/643.
  • Semi-honest BMR - BMR protocol secure against semi-honest adversaries | 2016/1066.
  • Tasty - 2PC with garbled circuits and homomorphic encryption | 2010/365.
  • VIFF - 3+PC with secret sharing; secure against semi-honest adveraries.

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.

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC0

To the extent possible under law, Dragoș Rotaru has waived all copyright and related or neighboring rights to this work.