Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

MPyC -- Secure Multiparty Computation in Python

Project description

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. Click the "launch binder" badge above to view the entire repository and try out its notebooks in the demos directory without any install.

Example installs:

python install

python install --user

See demos for usage examples.


  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 or run-all.bat in the demos directory to have a quick look at some demos. The more advanced demos and require Numpy, the demo requires pandas, Matplotlib, and lifelines, and the demo 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 one can now simply write await mpc.start() anywhere in a notebook cell, even outside a coroutine.

Copyright © 2018-2019 Berry Schoenmakers

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mpyc, version 0.6
Filename, size File type Python version Upload date Hashes
Filename, size mpyc-0.6-py3-none-any.whl (47.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size mpyc-0.6.tar.gz (43.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page