# Modern Cryptography: From Beginner to Expert

February 14, 2018

This list consists of 17 tutorials to learn modern cryptography. You can think of this list as a “Free Online Nano Book”. You’ll learn modern cryptographic algorithms ranging from Data Encryption Standard, RSA algorithm, Diffie-Hellman Key Exchange, Digital Signature Algorithm, Random Number Generation, Secure Hashing Algorithm (SHA) and more. Everything is 100% free.

This list starts out by describing what cryptography is, its various applications, branches and types of algorithms. Each section in this list focuses on modern cryptography algorithms currently in wide use. Sections 2 covers symmetric key cryptography, section 3 covers public key cryptography, and section 4 discusses other topics in cryptography and cybersecurity.

*Other versions*: Learn Cryptography: From Beginner to Expert is a more comprehensive list (this list is a subset) which also covers traditional cryptography algorithms not currently used and other historic notes.

__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

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**. The last tutorial describes **Enigma**, the symmetric key algorithm used during World War II by Germans, and how it was broken by Poland and Britain.

- Block Ciphers and Modes of Operation
- Feistel Ciphers (or Feistel Network)
- A Detailed Description of DES and 3DES Algorithms (Data Encryption Standard and Triple DES)
- The Advanced Encryption Standard (AES) Algorithm
- Blowfish: The first well-known encryption algorithm in public domain
- Enigma: Cryptography, World War and Alan Turing

# 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 (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 digital signatures.

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

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

- How Random Number Generation works, with Algorithms and Examples
- Hash Functions and their Role in Cryptography (and the SHA1 Algorithm)
- An Overview of SHA-2 and MD5 Algorithms
- Dictionary Attacks, Rainbow Table Attacks and how Password Salting defends against them
- Computer Security is more than Encryption