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:
-
Python 3.6+ (Python 3.5 or lower is not sufficient).
-
Installing package
gmpy2is optional, but will considerably enhance the performance ofmpyc. On Linux,pip install gmpy2should do the job, but on Windows, this may fail with compiler errors. Fortunately, ready-to-go Python wheels forgmpy2can 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.whlto finish installation. -
Use
run-all.shorrun-all.batin thedemosdirectory to have a quick look at some demos. Also note the example Windows batch files in thedocsandtestsdirectories. -
Directory
demos\.configcontains 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, usepip install pyOpenSSL. -
To use the Jupyter notebooks
demos\*.ipynb, you need to have Jupyter installed, e.g., usingpip install jupyter. The latest version of Jupyter will come with IPython 7.0+, which supports top-levelawait. Instead ofmpc.run(mpc.start())one can now simply writeawait 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
860546c82a5f92c4de405f6cfd776372bc79ed8279294f04eb57bec3c309f013
|
|
| MD5 |
6e8175a452c66826844b17b37d8e4970
|
|
| BLAKE2b-256 |
5e24bb265dc0fb026e9b80d0ca01ac84786185aa7a1a2ff9891b4617be419cfc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
189f585986c6db7d28f2ab21805bf65df25030ac859f20dacab3d4f1b7dd1f7e
|
|
| MD5 |
76894581f15e7319a5f4ac0f6418ca9e
|
|
| BLAKE2b-256 |
99c20e95cfceba6cc6ef3fa84a9b52ecb1b599fe620444bec8f17e662d246946
|