This is a small collection of those new to machine learning, reinforcement learning, and the applications to cryptography, compiled for Professor Gasarch at UMD.

Machine Learning

“Machine Learning is an idea to learn from examples and experience, without being explicitly programmed. Instead of writing code, you feed data to the generic algorithm, and it builds logic based on the data given.”

Check out this article for an overview of the motivations and concepts involved with machine learning.

The following videos will provide a strong mathematical foundation for machine learning. Don’t worry, the videos are very accessible.

You can watch the rest of the series here.

Reinforcement Learning

Reinforcement learning (RL) is one type of machine learning. The general idea is to train an agent to act within an environment.

Watch the following introduction to RL.

For a thorough introduction to reinforcement learning, read this introduction by Sutton and Barlo.


There have been many applications of machine learning to cryptography. The focus of this compilation is on cryptanalysis: decrypting and classifying ciphers. Other applications are also collected below.

Decrypting Ciphers

Many studies have tried to use machine learning to recover the message from encrypted text. Be sure to read this introductory paper - it’s the best starting point.

Focardi and Luccio - Neural Cryptanalysis of Classical Ciphers

Other researchers have used a variety of ML techniques to tackle many different types of ciphers.

Greydanus - Recurrent Neural Nets to Crack the Enigma Cipher

Kambhatla et al. - Decipherment of Substitution Ciphers with Neural Language Models

Classifying Ciphers

Other researchers have tried classify encrypted messages.

Sivagurunathan et al. - Classification of Substitution Ciphers using Neural Networks

Maheshwari - Classification of Ciphers


Cool study where Google researchers trained agents to learn how to communicate with keys.

Abadi and Anderson - Learning to Protect Communications with Adversarial Neural Cryptography