main.py
-- script for MNIST experiment (either Linear or CNN model). Defines dataset and dataloaders for trainerrnn_main.py
-- script for RNN experimenttrainer.py
-- Trainer class that rules training and encryption stuffdistro.py
-- Party and Server classes that knows about model and about encryption and do itdistro_paillier/
-- sources of Threshold Paillier Homomorphic Encryption. this library is used. I've done minor changes todecrypt
function for it to work correctly with float numbers.config.py
-- containes singleton config object used by all modules.
- Install system dependencies for crypto stuff:
sudo apt install libgmp-dev libmpfr-dev libmpc-dev
. - Install python dependencies:
pip install -r requirements.txt
. - Run MNIST experiment
python main.py
. - Run RNN experiment
python rnn_main.py
.