# 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).

__Subscribe__ to add this list to the top of your Home Page. __Get started__ with the first tutorial below.

# 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.

- What is Cryptography? Why Cryptography?
- Cryptosystems and their Components, Design Objectives and Basis for Security

# 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**.

- Caesar Cipher, Shift Ciphers and Substitution Ciphers (and Frequency Attacks!)
- Vigenère’s Cipher
- Feistel Ciphers (or Feistel Network)
- A Detailed Description of DES and 3DES Algorithms (Data Encryption Standard and Triple DES)
- Enigma: Cryptography, World War and Alan Turing

# 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.

- The RSA Encryption Algorithm: A Comprehensive Introduction (from Scratch) with Examples
- Discrete Logarithms, The ElGamal Cryptosystem and Diffie-Hellman Key Exchange
- Public Key Infrastructure

# 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**.