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.