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

# 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

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.

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

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