Skip to content

An implementation of the adversarial cryptographic neural network setup described in Abadi and Andersen's paper.

Notifications You must be signed in to change notification settings

AksRustagi/CryptoNN

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

An implementation of the neural network setup described in Abadi and Andersen's paper using Tensorflow and Tensorboard support.
The aim is to generate a cryptographic protocol by considering Alice, Bob and Eve as 3 neural networks 
and training Alice and Bob against Eve adversarially.


Paper: Abadi, Martín, and David G. Andersen. "Learning to protect communications with adversarial neural cryptography." arXiv preprint arXiv:1610.06918 (2016).
Link: https://arxiv.org/abs/1610.06918



Before running make sure you install the required modules:

From a terminal on Linux run:

sudo pip install numpy
sudo pip install tensorflow
sudo pip install matplotlib
sudo pip install seaborn

###########################################################

Once the modules are installed
run from a terminal using:

python3 cryptoNN.py 

###########################################################

You will then be prompted to enter the parameters.
To select the default values, leave blank and just press enter.

If you want all default parameters, press enter 5 times

###########################################################

If you want logging, you have to provide a directory to write onto
when prompted with :

logging file? (default: no logging)

if it doesn't exist it will be created
it's relative path so if you enter logging1, it will create a folder called 'logging1' wherever cryptoNN.py is

If you leave it blank and press enter, there will be no logging

CAUTION: for some reason, logging takes A LOT of RAM memory so make sure you allocate enough

#############################################################

To view logging information make sure to install Tensorboard

From a terminal in Linux run: 

sudo pip install tensorflow


Then, (even while still training), open a new terminal and run:

tensorboard --logdir /path/to/logdir

It should launch a process at port:6006    (this can be changed, this is the default)

then open your webbrowser and type in the address bar:
localhost:6006

TensorBoard will show up with all its glory!
############################################################

About

An implementation of the adversarial cryptographic neural network setup described in Abadi and Andersen's paper.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%