Code Monkey home page Code Monkey logo

bgw-securelinearmultipartycomputation's Introduction

BGW Secure Linear MultiParty Computation

This project is a Golang implementation of BGW Secure Linear MultiParty Computation, which supports int and big.Int of golang.

The paper we mainly refer to when implementing this package is "Asharov, Gilad , and Y. Lindell . "A Full Proof of the BGW Protocol for Perfectly Secure Multiparty Computation." Journal of Cryptology 30(2015):1-94.".

Principles and Functionality

LinearMultiPartyComputation generalizes the linear mpc scheme in "Ben-Or M, Goldwasser S, Wigderson A. Completeness theorems for non-cryptographic fault-tolerant distributed computation. In Proceedings of the twentieth annual ACM symposium on Theory of computing 1988 Jan 1 (pp. 1-10). ACM."

In Linear MPC, a given number of participants p1, p2, ..., pn, each has private data, respectively x1, x2, ..., xn. Participants want to compute the value of a public function on the private data: f(x1, x2, ..., xn) while keeping their own inputs secret, if there are no more than t<n/2 semi-honest adversaries.

A linear function is in the form f(x1, x2, ..., xn) = c1x1 + c2x2 + ... + cnxn, while c1, c2, ..., cn are constants.

  • Note 1: In the scheme, all element should be in some Zp, i.e. should be non-negative integers.
  • Note 2: Each participant has a unique ID, starting from 0 to n-1.

Usage

This package is implemented in Golang (version 1.9+), without any external dependencies.

You can simply import our linear mpc module as a normal Golang package.

git clone https://github.com/zhengjilai/BGW-SecureLinearMultiPartyComputation.git
mkdir -p $GOPATH/src
cp -r BGW-SecureLinearMultiPartyComputation/loccs.sjtu.edu.cn $GOPATH/src

Repository Structure

  • /loccs.sjtu.edu.cn/acrypto/poly implements the calculation of polynomial over Zp with single variable and a system of solving linear equations over Zp.

  • /loccs.sjtu.edu.cn/acrypto/secretshare implements Shamir's secret sharing scheme over Zp.

  • /loccs.sjtu.edu.cn/acrypto/mpc implements BGW Linear MultiParty Computation, where everyone has an secret xi, and they want to know the output of an linear function f(x1, x2, ..., xn) while not exposing their own secret (on condition that there are only t<n/2 semi-honest adversaries).

  • /doc: Basic documents of this project, including the original paper and our project docs(interfaces, principles and communication analysis). We also provide an easy explanation of BGW-mpc Multiplication gate, although we have not implemented it.

Contributors

This mpc package is only written for study, and should never be leveraged for production.

All contributors of this repository come from Lab of Cryptology and Computer Security, SJTU.

bgw-securelinearmultipartycomputation's People

Contributors

zhengjilai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.