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.
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.
You can also run SyMPC using docker by running the following commands.
If we want to start learning how to use SyMPC we can go to the examples folder and execute the introduction.ipynb.
If we decided to use docker, we would need to run the image and publish the jupyter notebook port
Finally, we would need to copy the url shown in the docker to our browser.
SyMPC supports the following protocols.
Protocol | Security Guarantee | Number of Parties |
---|---|---|
ABY3 | Semi-honest, Malicious |
|
Falcon | Semi-honest, Malicious |
|
FSS | Semi-honest |
|
SPDZ | Semi-honest |
|
We can see other interesting information about the supported operations and Neural Network layers in Supported operations and Neural Network layers.
We are open to collaboration! If you want to start contributing you only need to:
- Check the contributing guidelines.
- Search for an issue in which you would like to work. Issues for newcomers are labeled with good first issue.
- Create a PR solving the issue.
This project is licensed under the MIT License.
This library should not be used in a production environment because it is still a prototype.