Giter Site home page Giter Site logo

maissacrement / crypto-rnn Goto Github PK

View Code? Open in Web Editor NEW

This project forked from greydanus/crypto-rnn

0.0 2.0 0.0 9.18 MB

Learning the Enigma with Recurrent Neural Networks

Home Page: https://greydanus.github.io/2017/01/07/enigma-rnn/

Shell 0.06% Python 1.43% Jupyter Notebook 98.50% Dockerfile 0.01%

crypto-rnn's Introduction

crypto-rnn: Learning the Enigma with Recurrent Neural Networks

See paper and blog post

concept-small

About

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 Vigenere cipher works like this (where we're encrypting plaintext "CALCUL" with keyword "MATHS" (repeated)). The Autokey cipher is a slightly more secure variant. Vigenere cipher

Enigma cipher

The Enigma cipher works like this. Enigma cipher

Dependencies

  • All code is written in Python 3.6 and TensorFlow 1.1. You will need:
  • NumPy
  • TensorFlow

Docker

foo@bar:~$ docker build -t crypto-rnn .  # Build context
...
foo@bar:~$ docker run -v $(pwd):/opt/app --entypoint=/bin/bash -it --rm crypto-rnn # Real time dev
docker@shell:~$ exit
exit
foo@bar:~$ docker run -it --rm crypto-rnn # Just RUN
===== COUNTING MODEL PARAMETERS =====
Model overview:
        variable "model/W_fc1:0" has 6912 parameters
        variable "model/model_cell0/lstm_cell/kernel:0" has 289792 parameters
        variable "model/model_cell0/lstm_cell/bias:0" has 1024 parameters
Total of 297728 parameters
=====================================

no saved model to load. starting new session
        resetting log files...
training...
        step:     100 | loss: 46.234 | data time: 0.0073 sec | rnn time: 0.1224 sec | total time: 0.1297 sec
...

crypto-rnn's People

Contributors

greydanus avatar maissacrement avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.