Giter Club home page Giter Club logo

mpyc's Introduction

Binder Travis CI codecov PyPI

MPyC MPyC logo Secure Multiparty Computation in Python

MPyC supports secure m-party computation tolerating a dishonest minority of up to t passively corrupt parties, where m ≥ 1 and 0 ≤ t ≤ (m-1)/2. The underlying protocols are based on threshold secret sharing over finite fields (using Shamir's threshold scheme as well as pseudorandom secret sharing).

The details of the secure computation protocols are mostly transparent due to the use of sophisticated operator overloading combined with asynchronous evaluation of the associated protocols.

See the MPyC homepage for more info and background.

Example installs:

python setup.py install

python setup.py install --user

Click the "launch binder" badge above to view the entire repository and try out its notebooks in the demos directory without any install.

See demos for usage examples and MPyC docs for pydoc-based documentation.

Notes:

  1. Python 3.6+ (Python 3.5 or lower is not sufficient).

  2. Installing package gmpy2 is optional, but will considerably enhance the performance of mpyc. If you use the conda package and environment manager, conda install gmpy2 should do the job. Otherwise, pip install gmpy2 can be used on Linux (first running apt install libmpc-dev may be necessary too), but on Windows, this may fail with compiler errors. Fortunately, ready-to-go Python wheels for gmpy2 can be downloaded from Christoph Gohlke's excellent Unofficial Windows Binaries for Python Extension Packages webpage. Use, for example, pip install gmpy2-2.0.8-cp36-cp36m-win_amd64.whl to finish installation.

  3. Use run-all.sh or run-all.bat in the demos directory to have a quick look at some demos. The more advanced demos bnnmnist.py and cnnmnist.py require Numpy, the demo kmsurvival.py requires pandas, Matplotlib, and lifelines, and the demo ridgeregression.py even requires Scikit-learn. Also note the example Windows batch files in the docs and tests directories.

  4. Directory demos\.config contains configuration info used to run MPyC with multiple parties. Also, Windows batch file 'gen.bat' shows how to generate fresh key material for SSL. OpenSSL is required to generate SSL key material of your own, use pip install pyOpenSSL.

  5. To use the Jupyter notebooks demos\*.ipynb, you need to have Jupyter installed, e.g., using pip install jupyter. The latest version of Jupyter will come with IPython 7.0+, which supports top-level await. Instead of mpc.run(mpc.start()) one can now simply write await mpc.start() anywhere in a notebook cell, even outside a coroutine.

Copyright © 2018-2020 Berry Schoenmakers

mpyc's People

Contributors

lschoe avatar abspoel avatar fblom90 avatar

Watchers

James Cloos 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.