Skip to main content

MPyC -- Secure Multiparty Computation in Python

Project description

MPyC 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 MPyC homepage for more info and background, and quick links to try MPyC without any install.

Example installs:

python setup.py install

python setup.py install --user

See demos for usage examples.

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. On Linux, pip install gmpy2 should do the job, 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. 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-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.

Source Distribution

mpyc-0.5.tar.gz (30.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mpyc-0.5-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file mpyc-0.5.tar.gz.

File metadata

  • Download URL: mpyc-0.5.tar.gz
  • Upload date:
  • Size: 30.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for mpyc-0.5.tar.gz
Algorithm Hash digest
SHA256 860546c82a5f92c4de405f6cfd776372bc79ed8279294f04eb57bec3c309f013
MD5 6e8175a452c66826844b17b37d8e4970
BLAKE2b-256 5e24bb265dc0fb026e9b80d0ca01ac84786185aa7a1a2ff9891b4617be419cfc

See more details on using hashes here.

File details

Details for the file mpyc-0.5-py3-none-any.whl.

File metadata

  • Download URL: mpyc-0.5-py3-none-any.whl
  • Upload date:
  • Size: 38.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for mpyc-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 189f585986c6db7d28f2ab21805bf65df25030ac859f20dacab3d4f1b7dd1f7e
MD5 76894581f15e7319a5f4ac0f6418ca9e
BLAKE2b-256 99c20e95cfceba6cc6ef3fa84a9b52ecb1b599fe620444bec8f17e662d246946

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page