# Learn Cryptography in 2 weeks

February 14, 2018

This list consists of ~15 tutorials to learn cryptography. You can think of this list 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 list starts out by describing what cryptography is, its various applications, branches and types of algorithms. In section 2 and 3, we will take a look at encryption algorithms. We’ll start with some simple algorithms, but quickly pick up pace to discuss modern cryptography algorithms widely used today. In the last section, we will look at other applications of cryptography such as random number generation, digital signatures, dictionary attacks and password salting.

Other versions: Learn Cryptography: From Beginner to Expert is a more comprehensive version with ~25 tutorials instead of ~15 (this list is a subset).

# 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: Traditional Ciphers and Feistel Network Ciphers

It’s time to take a look at some cryptography algorithms. We’ll start with some simple ciphers such as Caesar cipher, substitution ciphers and the Vigenere’s Cipher. These algorithms were used centuries ago for communicating sensitive information including military strategy during wars, and they provide a great way to get started with cryptography.

Next, we’ll move on to modern symmetric key algorithms. The first tutorial, feistel network, discusses the overall structure of the algorithms. The next tutorial describes two specific modern algorithms in detail - Data Encryption Standard and Triple DES.

# Public Key Cryptography: RSA algorithm and Diffie-Hellman Key Exchange

In this section, we’ll take a look at public key cryptography. These algorithms form the backbone of online digital communication. (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.

# Random Number Generation, Digital Signatures and Password Salting

In this section, we’ll look at some other applications of cryptography such as random number generation and digital signatures. We’ll also discuss computer security related aspects of previously discussed algorithms, such as attacks, password salting, and how implementation and cultural issues effect computer security.