Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

awesome-mpc


https://github.com/Eleven-Z/awesome-mpc

  • 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.
  • 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).
  • 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).
  • 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/).
  • 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).
  • 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).
  • 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.
  • 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).
  • 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).
  • 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.
  • ![CC0