# Learn Cryptography: From Beginner to Expert

February 14, 2018

This course consists of ~25 tutorials to learn cryptography. You can think of this course as a “Free Online Nano Book”. You’ll learn cryptographic algorithms, including those currently in use such as the RSA algorithm (used for secure digital communication) and Digital Signatures Algorithm (used for digital signatures). Everything is 100% free.

This course starts out by describing what cryptography is, its various applications, branches and types of algorithms. Then, we’ll see some simple encryption techniques (doesn’t require any background in number theory) such as Caesar Cipher and Playfair Cipher. In sections 3 and 4, we will take a detailed look at modern cryptography algorithms for secure communication (including the required mathematics and number theory background). In section 5, we will look at other applications of cryptography such as random number generation, hash functions and password salting. In the last (bonus) section, we’ll discuss human behavioral aspects of computer security and famous unsolved cryptography puzzles (including hidden treasures and unsolved murders!)

Other versions: Learn Cryptography in 2 weeks is a less comprehensive version with ~15 tutorials instead of ~25 (this course is a superset). Modern Cryptography: From Beginner to Expert is another version which focuses on modern cryptography only (again, ~15 tutorials instead of ~25, this course is a superset).

# Cryptography and Cryptosystems

What is cryptography and what is it used for? What does a cryptosystem look like? What are its components, and who are the parties involved? What are its design objectives? What is the difference between symmetric key cryptography and public key cryptography? All of these questions will be answered in this section.

# Symmetric Key Cryptography

It’s time to take a look at some simple cryptography algorithms. These algorithms are not used anymore since they are not secure, but each of them was used centuries ago for communicating sensitive information including military strategy during wars. Moreover, these algorithms are a great way to get started with cryptography because its possible to work out examples by hand, a luxury which modern algorithms do not provide.

# Modern Symmetric Key Cryptography

In this section, we’ll take a look at modern symmetric key algorithms. The first two tutorials, block ciphers and feistel network, discuss the overall structure of these algorithms. The next three tutorials discuss specific algorithms in detail, each introducing us to a new algorithm which is currently in use - Triple DES, Advanced Encryption Standard, and Blowfish.

# Public Key Cryptography (and Digital Signatures)

In this section, we’ll take a look at public key cryptography. These algorithms form the backbone of online digital communication. These algorithms make extensive use of number theory, and the required background in number theory is included in the tutorials.

The RSA algorithm allows communication between two people without the requirement that the two people establish a shared secret key. Diffie-Hellman Key Exchange is used to establishing a shared secret key so that symmetric key algorithms we discussed in the previous section can be used thereafter. Digital Signature Algorithm is used for, well, digital signatures.

# Random Number Generation, Hash Functions, Password Salting

How are random numbers generated? How can we efficiently check whether or not a large document was tampered with? What kinds of attacks can be done to guess passwords? How does password salting protect against them? What makes current computer systems and digital information vulnerable given the mathematical and computational guarantees of their unbreakability?

# Famous Cryptography Examples: World War, Hidden Treasures, and Unsolved Murders

The first tutorial describes how Britain was able to break Enigma, the encryption machine being used by Germans and allies for communication during World War II, thereby learning their military strategies and plans in advance. The last tutorial discusses some famous unsolved ciphers.