All Projects → MPC-SoK → Frameworks

MPC-SoK / Frameworks

Licence: other
Sample code and build environments for MPC frameworks

Projects that are alternatives of or similar to Frameworks

WeDPR-Lab-Java-SDK
Java SDK of WeDPR-Lab-Core; WeDPR即时可用场景式隐私保护高效解决方案核心算法组件通用Java SDK
Stars: ✭ 18 (-93.75%)
Mutual labels:  cryptography
Oscrypto
Compiler-free Python crypto library backed by the OS, supporting CPython and PyPy
Stars: ✭ 257 (-10.76%)
Mutual labels:  cryptography
Kcp Go
A Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC
Stars: ✭ 3,177 (+1003.13%)
Mutual labels:  cryptography
interbit
To the end of servers
Stars: ✭ 23 (-92.01%)
Mutual labels:  cryptography
flame
Flame is an ActionScript library that provides a number of useful UI controls, collections, cryptographic services, and utilities to work with the Flex SDK.
Stars: ✭ 18 (-93.75%)
Mutual labels:  cryptography
Mcl
a portable and fast pairing-based cryptography library
Stars: ✭ 252 (-12.5%)
Mutual labels:  cryptography
he-toolkit
The Intel Homomorphic Encryption (HE) toolkit is the primordial vehicle for the continuous distribution of the Intel HE technological innovation to users. The toolkit has been designed with usability in mind and to make it easier for users to evaluate and deploy homomorphic encryption technology on the Intel platforms.
Stars: ✭ 40 (-86.11%)
Mutual labels:  cryptography
Kremlin
KreMLin is a tool for extracting low-level F* programs to readable C code
Stars: ✭ 285 (-1.04%)
Mutual labels:  cryptography
sidh-rs
Supersingular Isogeny Diffie-Hellman in Rust
Stars: ✭ 12 (-95.83%)
Mutual labels:  cryptography
Masterkey
secure interactive password manager with xchacha20poly1305, argon2id, and Go
Stars: ✭ 271 (-5.9%)
Mutual labels:  cryptography
Tangram.Bamboo
Tangram Bamboo CLI Wallet
Stars: ✭ 14 (-95.14%)
Mutual labels:  cryptography
cryptography
Cryptography course slides at Harbin Institute of Technology
Stars: ✭ 86 (-70.14%)
Mutual labels:  cryptography
My Talks
List of my talks and workshops: security engineering, applied cryptography, secure software development
Stars: ✭ 261 (-9.37%)
Mutual labels:  cryptography
pqcrypto
👻 Post-quantum cryptography for Python.
Stars: ✭ 15 (-94.79%)
Mutual labels:  cryptography
Wickr Crypto C
An implementation of the Wickr Secure Messaging Protocol in C
Stars: ✭ 279 (-3.12%)
Mutual labels:  cryptography
tweedle
Generator and supporting evidence for security of the Tweedledum/Tweedledee pair of elliptic curves suitable for Halo
Stars: ✭ 16 (-94.44%)
Mutual labels:  cryptography
Nfreezer
nFreezer is an encrypted-at-rest backup tool.
Stars: ✭ 259 (-10.07%)
Mutual labels:  cryptography
Privatebin
A minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES.
Stars: ✭ 3,622 (+1157.64%)
Mutual labels:  cryptography
Liburkel
Authenticated key-value store (i.e. an urkel tree)
Stars: ✭ 280 (-2.78%)
Mutual labels:  cryptography
Cryptofuzz
Fuzzing cryptographic libraries. Magic bug printer go brrrr.
Stars: ✭ 262 (-9.03%)
Mutual labels:  cryptography

This repository contains a collection of sample programs for a variety of multi-party computation (MPC) frameworks. For ease of examination, we have set up each framework in a Docker container. This minimizes the effort required to test framework functionality.

The goal of this project is to make it easier for researchers (and other users) to experiment with MPC software frameworks. These software tools are suitable for prototyping applications, testing current capabilities, measuring rough benchmark performances, and other similar tasks. Many of these frameworks are not suitable for use in production environments!

There are two main contributions of this repository. One is the code above. The other is extended documentation, including READMEs, comments in the code, and extended notes in the wiki pages. We welcome contributions in any of these areas: if you have used a framework, optimized the compilation scripts, or made observations about its usability or quirks, please consider writing a note about your experiences and submitting it as a pull request (or an email).

This repository accompanies the paper SoK: General-Purpose Compilers for Secure Multi-party Computation, which includes a thorough evaluation of each framework across usability and architectural criteria. For a gentler introduction to secure computation and this project, please read the layperson's guide.

Frameworks

We include a complete build environment and three sample programs for each framework. Additional documentation of some framework can be found in the wiki pages). Each framework directory includes a Dockerfile and one or more install.sh scripts. There is a README that describes some relevant architecture along with instructions to compile, run, and modify examples. The source directory holds the sample programs and any additional code (including patches, vim syntax highlighting, and input generation scripts).

For more information about using Docker, see the Docker documentation.

About Sample Programs

We implemented three sample programs for each framework. These are small unit tests and are not intended to exhaustively test framework functionality. We used them to learn about the architecture and set-up requirements of each framework. They illustrate a variety of common functionality requirements.

mult3: This multiplies three numbers together. It either takes input from three different parties (if supported) or takes three secret shared inputs from two parties. Some frameworks provide built-in tools for secret-sharing input; others required us to manually share inputs to two parties. It tests basic numeric capabilities, integer I/O, and basic computation.

innerprod: This computes an inner product (aka scalar product, aka dot product) on two integer vectors. It takes two vectors as input and computes the pairwise product of their elements. It requires support for input, access, and iteration over secret-valued arrays.

xtabs: This computes a crosstabulation, a database operation that computes averages (or sums) by category. The category table and value table share a primary key but are owned by different parties. This tests output and modification of arrays and requires conditionals on secret data. We used a brute-force algorithm to solve this problem, and return a list of sums by category (rather than averages).

Contributions and Citations

This software is offered as-is. It may not be up-to-date with the latest versions of each framework. We welcome pull requests for compatibility with new software versions, corrections to sample programs, and new frameworks.

If you maintain a software tool that belongs here, please contact us. New frameworks are first added as branches then merged with the main repository.

Questions and commentary should be raised publicly in the Issue Tracker.

If you use this work for an academic project, please cite:

    @inproceedings{mpc-sok,
       author = {Marcella Hastings and Brett Hemenway and Daniel Noble and Steve Zdancewic},
       title = {{SoK:} General-Purpose Compilers for Secure Multi-Party Computation},
       booktitle = {2019 IEEE Symposium on Security and Privacy (SP)},
       year = {2019},
    }
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].