kamathhrishi / SyMPC

A SMPC companion library for Syft

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


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

You can also run SyMPC using docker by running the following commands.

Getting Started

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.

Supported protocols

SyMPC supports the following protocols.

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.

About

A SMPC companion library for Syft

License:MIT License


Languages

Language:Python 99.5%Language:Jupyter Notebook 0.3%Language:Dockerfile 0.2%