This repo contains the prototype code for OCEAN (the paper is coming later), our extension of FIT, which aims to further reduce the (overall) communication cost and to make best use of the wasted slots in each channel-packed ciphertext.
- g++ (version >= 8)
- cmake
- make
- libgmp-dev
- libssl-dev
- SEAL 3.3.2
- Eigen 3.3
The test_conv.cpp
in tests/
folder is the convolution from CrypTFlow2.
The test_relu.cpp
in tests/
folder is the ReLU from CrypTFlow2.
The test_reluconv.cpp
in tests/
folder is relu-convolution, with optimization, proposed in FIT.
The test_oceanpub.cpp
in tests/
folder is relu-convolution of our proposed OCEAN.
The netconfig.sh
in main folder is the traffic control module that one can follow to configure the bandwidth and round trip time for running the protocol in single machine.
To compile the repo:
mkdir build && cd build
cmake ..
make [-j] //optionally use -j for faster compilation
In build/bin/
folder, run the tests as follows:
In one terminal: ./<test> r=1
, and in another terminal: ./<test> r=2
This repo is under construction and any feedback is highly welcomed and appreciated.
This repo is developed based on CrypTFlow2 and the netconfig.sh
, with added instructions, is taken from Cheetah.