How to Learn Cryptography Roadmap

Prerequisites

To fully appreciate this training, you will need to have a little experience with using a command line and programming. We do not assume you know anything too fancy; as long as you have the basics, you can pick up the rest as you go. While most of the concepts you will deal with are technology agnostic, most of the hands-on examples will deal with Linux and python.

If you want to learn more about command lines and programming before you proceed, go back to the roadmap and check out the relevant sections.

The Shoulders of Giants

There are already outstanding cryptography training resources freely available to you online! As a result, Roppers won’t be making any material related to this.

CryptoHack is an awesome hands-on introduction to cryptography. They provide a smooth learning curve and many educational resources to get you breaking cryptosystems in no time. They assume very little prior knowledge and cover many key concepts in a very welcoming way. If you get hung up while trying to register, search for and read up on the “Caesar Cipher”.

Cryptography I on Coursera is the theoretical complement to the practical CryptoHack that will help you understand why cryptography is the way that it is. Taught by Stanford cryptologist Dan Boneh, the course covers all the essential foundations of modern cryptography. Even if you already tackle crypto CTF challenges all the time, this course is great for filling knowledge gaps and will prepare you to efficiently understand and break cryptosystems like you never have before. No prior crypto experience is needed, no command line or programming operations are required, and the math is explained as it is used. That said, the level of detail may be slightly less inviting than CryptoHack.

The cryptopals challenges are also a fantastic resource. They are programming-heavy exercises that have you build and break a variety of cryptosystems. There is a fair amount of overlap with CryptoHack, but you will be programming more from the ground up. The site claims that cryptopals is a great way to pick up a new programming language. If you did CryptoHack with python, cryptopals might be a good vehicle to understand crypto at the systems level with a language like Rust. They claim no prior experience required, but I disagree. I think cryptopals should be done after CryptoHack.

More to Come

Over time, we will be introducing additional training content to supplement the resources mentioned above and delve into more advanced concepts. Stay tuned!