Syft
Homomorphically Encrypted Deep Learning Library
The goal of this library is to give the user the ability to efficiently train Deep Learning models in a homomorphically encrypted state, without needing to be an expert in either. Furthermore, by understanding the characteristics of both Deep Learning and Homomorphic Encryption, we hope to find a very performant combinations of the two. Also, check the main demonstration from the Sonar project.
Local setup
Prerequisites
- Make sure Python 3.5+ in installed on your machine by checking
python3 --version
- Set up a virtual environment for the Python libraries (optional, recommended)
- Install our OpenMined Unity app by following the guidelines here
Python Requirements
The Python dependencies are listed in requirements.txt
and can be installed through
pip3 install -r requirements.txt
PySyft installation
If you simply want to to use PySyft, it is enough to install the library with:
python3 setup.py install
note: If you have anaconda installed, you can just run bash install_for_anaconda.sh
for linux or install_for_anaconda_on_windows.bat
for windows.
For Contributors
If you are interested in contributing to Syft, first check out our Contributor Quickstart Guide and then sign into our Slack Team channel #team_pysyft to let us know which projects sound interesting to you! (or propose your own!).
Relevant Literature
As both Homomorphic Encryption and Deep Learning are still somewhat sparsely known, below is a curated list of relevant reading materials to bring you up to speed with the major concepts and themes of these exciting fields.
Encrypted Deep Learning - Recommended Reading:
- How to build a fully encrypted AI model (trained on unencrypted data)
- Simple secure protocol for federated machine learning (using a python-paillier library)
- Prototype for using encrypted AI to preserve user privacy (in python)
- Manual for Using Homomorphic Encryption for Bioinformatics (paper)
Homomorphic Encryption - Recommended Reading:
- A Comparison of the Homomorphic Encryption Schemes
- Homomorphic Encryption API Software Library
- Faster Homomorphic Function Evaluation using Non-Integral Base Encoding
Relevant Papers:
- Encrypted accelerated least squares regression
- PSML 2017 - Abstracts
- Encrypted statistical machine learning: new privacy preserving methods
- A review of homomorphic encryption and software tools for encrypted statistical machine learning
- Privacy-Preserving Distributed Linear Regression on High-Dimensional Data
- Secure Computation With Fixed-Point Numbers
- Scalable and secure logistic regression via homomorphic encryption
- ML Confidential: Machine Learning on Encrypted Data
- CryptoNets: Applying Neural Networks to Encrypted Data with High Throughput and Accuracy
- Privacy-Preserving Visual Learning Using Doubly Permuted Homomorphic Encryption
Related Libraries:
- HomomorphicEncryption - An R package for fully homomorphic encryption
- A Secure Multiparty Computation (MPC) protocol for computing linear regression on vertically distributed datasets
- Dask Tutorial
- Charm-crypto
Related Blogs:
- Private Deep Learning with MPC - A Simple Tutorial from Scratch
- Secret Sharing, Part 1 - Distributing Trust and Work
- Secret Sharing, Part 2 - Efficient Sharing with the Fast Fourier Transform
- Distributed machine learning and partially homomorphic encryption (Part 1)
- Distributed machine learning and partially homomorphic encryption (Part 2)
- Tutorial: How to verify crowdsourced training data using a Known Answer Review Policy
License
Apache-2.0 by OpenMined contributors