Skip to main content

A framework for secure multiparty computation.

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 prime 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.

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. A few simple Windows batch files are provided in the demos directory.

  4. Directory demos\.config contains configuration info and key material needed to run MPyC with multiple parties. Windows batch file 'gen.bat' shows how to generate fresh key material for pseudorandom secret sharing and 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.

  6. Latest versions of Jupyter use Tornado 5.0, which will not work with MPyC, see Jupyter notebook issue #3397. Downgrade Tornado by running pip install tornado==4.5.3.

Copyright © 2018, 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.4.tar.gz (21.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.4-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mpyc-0.4.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for mpyc-0.4.tar.gz
Algorithm Hash digest
SHA256 97288b0e04c925c91899f3e9662e97f770f6bfc2b0f59796802c7b4c04e3e1f4
MD5 11c7b2996e2977bbd4a7fd05a2dcbc27
BLAKE2b-256 387fc6b9c1fbfad7a0ffc72d6cbf7ed9822374d865b1ac5cbe5ed20553f8ee24

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mpyc-0.4-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for mpyc-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a043c3e016da9781b181582838da623e3128bc1252ab20675817782b02b87d74
MD5 dcd82475b42d6d376fff379a87d69291
BLAKE2b-256 4138b5afbdc94fc7ecdcb9fd4ff70db2b0b1d96067310d414d09d5bc1d1a6de1

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