Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/OpenMined/SyMPC
A SMPC companion library for Syft
https://github.com/OpenMined/SyMPC
cryptography machine-learning mpc privacy python torch
Last synced: about 1 month ago
JSON representation
A SMPC companion library for Syft
- Host: GitHub
- URL: https://github.com/OpenMined/SyMPC
- Owner: OpenMined
- License: mit
- Created: 2020-11-13T12:44:46.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-08-13T02:31:49.000Z (4 months ago)
- Last Synced: 2024-08-13T03:58:18.000Z (4 months ago)
- Topics: cryptography, machine-learning, mpc, privacy, python, torch
- Language: Python
- Homepage:
- Size: 1.24 MB
- Stars: 96
- Watchers: 6
- Forks: 39
- Open Issues: 180
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Codeowners: CODEOWNERS
- Support: SUPPORTED_OPS.rst
- Authors: AUTHORS.rst
Awesome Lists containing this project
- awesome-ai-security - SyMPC - _A Secure Multiparty Computation companion library for Syft_ (Defensive tools and frameworks / Privacy and confidentiality)
- awesome-ai-cybersecurity - SyMPC
- awesome-ai-cybersecurity - SyMPC
README
.. raw:: html
SyMPC
A library that extends PySyft with SMPC support
SyMPC **/ˈsɪmpəθi/** is a library which extends `PySyft `_ ≥0.3 with SMPC support. It allows computing over encrypted data, and to train and evaluate neural networks.
Installation
############SyMPC is a companion library for PySyft. Therefore, we will need to install PySyft among other dependencies. We recommend using a virtual environment like `conda`.
.. code:: bash
$ conda create -n sympc python=3.9
$ conda activate sympc
$ pip install -r requirements.txt
$ pip install .You can also run SyMPC using docker by running the following commands.
.. code:: bash
$ docker build -t sympc -f docker-images/Dockerfile . #builds image named sympc
$ docker run -i -t sympc #runs the containerGetting Started
###############If we want to start learning how to use SyMPC we can go to the *examples* folder and execute the *introduction.ipynb*.
.. code:: bash
$ conda activate sympc
$ pip install jupyter
$ jupyter notebook examples/introduction.ipynbIf we decided to use docker, we would need to run the image and publish the jupyter notebook port
.. code:: bash
$ sudo docker run -i -t -p 8888:8888 sympc
$ jupyter notebook examples/introduction.ipynb --allow-root --ip=0.0.0.0Finally, we would need to copy the url shown in the docker to our browser.
Supported protocols
###################SyMPC supports the following protocols.
.. table::
+--------------+------------------------+-----------------------+
| **Protocol** | **Security Guarantee** | **Number of Parties** |
+==============+========================+=======================+
| ABY3 | Semi-honest, Malicious | 3 |
+--------------+------------------------+-----------------------+
| Falcon | Semi-honest, Malicious | 3 |
+--------------+------------------------+-----------------------+
| FSS | Semi-honest | 2 |
+--------------+------------------------+-----------------------+
| SPDZ | Semi-honest | 2+ |
+--------------+------------------------+-----------------------+We can see other interesting information about the supported operations and Neural
Network layers in `Supported operations and Neural Network layers `_.Contributing
############We are open to collaboration! If you want to start contributing you only need to:
1. Check the `contributing guidelines `_.
2. Search for an issue in which you would like to work. Issues for newcomers are labeled with **good first issue**.
3. Create a PR solving the issue.License
#######This project is licensed under the `MIT License `_.
Disclaimer
##########This library should not be used in a production environment because it is still a prototype.