crypto-rnn: Learning the Enigma with Recurrent Neural Networks
This repo contains a deep LSTM-based model for learning polyalphabetic ciphers. It also contains code for training the model on three ciphers: the Vigenere, Autokey, and Enigma ciphers. The first two are light proof-of-concept tasks whereas the Enigma is much more complex. For this reason, the Enigma model is enormous (3000 hidden units) and takes a lot longer to train.
Vigenere and Autokey ciphers
The Enigma cipher works like this.
- All code is written in Python 3.6 and TensorFlow 1.1. You will need: