Socket
Book a DemoInstallSign in
Socket

github.com/zhengjilai/BGW-SecureLinearMultiPartyComputation

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/zhengjilai/BGW-SecureLinearMultiPartyComputation

v0.0.0-20200922025042-f2af15fef59b
Source
Go
Version published
Created
Source

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.

  • Haining Lu
  • Jilai Zheng

FAQs

Package last updated on 22 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.