GithubHelp home page GithubHelp logo

elleryqu / aby3 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hsin-hung/aby3

0.0 0.0 0.0 6.01 MB

This library provides the semi-honest implementation of ABY 3 and Fast Database Joins for Secret Shared Data

License: MIT License

C++ 2.72% Python 0.03% Perl 0.09% C 0.01% TeX 97.09% Makefile 0.01% HTML 0.03% CMake 0.03%

aby3's Introduction

ABY 3 and Applications

Introduction

This library provides the semi-honest implementation of ABY 3 and Fast Database Joins for Secret Shared Data.

The repo includes the following application:

  • Linear Regression (training/inference)
  • Logistic Regression (training/inference)
  • Database Inner, Left and Full Joins
  • Database Union
  • Set Cardinality
  • Threat Log Comparison (see Section 5)
  • ERIC Application (see Section 5)

A tutorial can be found here. It includes a description of how to use the API and a discussion at the end on how the framework is implemented.

Warning

This codebase should NOT be considered fully secure. It has not had a security review and there are still several security related issues that have not been fully implemented. Only use this codebase as a proof-of-concept or to benchmark the perfromance. Future work is required for this implementation to be considered secure.

Moreover, some features have not been fully developed and contains bugs. For example, the task scheduler sometime fails. This is a known issue.

Build

The library is cross platform and has been tested on Windows and Linux. The dependencies are:

In short, this will build the project

git clone https://github.com/ladnir/aby3.git
cd aby3/
python3 build.py --setup
python3 build.py 

To see all the command line options, execute the program

bin/frontend

The library can be linked by linking the binraries in lib/ and thirdparty/win or thirdparty/unix depending on the platform.

Cloud Run (Intersect)

After building the project, update ips.txt so that each line contains the IP of each party(VM). There should only be a total of three parties, where the first line is the first party IP and the last line is the third party IP.

On each party VM, execute

bin/frontend -intersect -nn N -r R.

N will set the table size as 2^N and it should be set the same on all parties.

R is the calling party's rank, which should be betwen 0-2.

Help

Contact Peter Rindal [email protected] for any assistance on building or running the library.

Citing

Spread the word!

@misc{aby3,
    author = {Peter Rindal},
    title = {{The ABY3 Framework for Machine Learning and Database Operations.}},
    howpublished = {\url{https://github.com/ladnir/aby3}},
}

aby3's People

Contributors

ladnir avatar ladnir2 avatar hsin-hung avatar ericchen1248 avatar rosulek avatar warumdk avatar marsella avatar rindalvisa 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.