# Cryptography

Cryptography (sometimes known as cryptology) is the mathematical and computational study of information security; in particular the study of methods used to transmit information securely between two or more parties, unreadable by unauthorized eavesdroppers. Cryptography finds many applications in the modern world, e.g. protecting online logins, smart card protocols, email privacy, confidential documents, and so on.

## Fundamentals

Usually, to protect information from being revealed, a person will attempt to render the information unreadable by anyone without some secret information. This process is called encryption. The original data is usually called the plaintext, while the resulting scrambled data is usually called the ciphertext. The secret information can take the form of a password, a number, a file, etc. and is usually called the key (as it can "unlock" the ciphertext).
Any authorized party should be able to, given a ciphertext and its secret key, reconstruct the original information, in a process known as decryption. This allows several parties to transmit information securely using a shared secret key. There are many different methods to perform encryption, varying widely in simplicity and security. These methods are usually called ciphers.
Much of cryptography is also devoted to the opposing field of cryptanalysis, the act of trying to "break" a cipher so that encrypted information can be retrieved, using only part or none of the secret key, by an adversary. The continuous feedback between cryptographers, who develop ciphers, and cryptoanalysts, who break them, has led to the development of many advanced and secure ciphers used today.
There is also some confusion between codes and ciphers. A code is a symbol, whether it be a letter or a symbol, which stands for a word, not a letter. A cipher is a symbol which stands for a letter.

## Classifications

Cryptography can be classified into three areas:
* Classical - before the 20th century, simple substitution and transposition ciphers played major roles
* Modern - mechanized and digitized cryptography came into existence in the 20th century
* Key exchanges - Public Key and Quantum cryptography
** Diffie-Hellman key exchange and RSA in the last few decades has enabled mass secure transmissions and internet transactions
** Quantum Cryptography - As quantum computers come into existence, algorithms and protocols are fast being developed for this new platform.

## Readings and learning media

* Wikipedia: Cryptography
* Wikipedia: History of cryptography
* Wikibooks: Cryptography

### Videos

* Public key cryptography - Diffie-Hellman Key Exchange

## Lessons

* Substitution Algorithms
* Caesar Cipher
* Data Encryption Standard
* Introduction to Simple Substitution Cypher
* More Simple Substitution Cyphers
* Other Substitution Cyphers
* Rearrangement Cyphers
* Cryptoeconomics
* Blockchain
* Cryptocurrency
* Hardware Encryption

## Additional Study

* Wikipedia: Advanced Encryption Standard
* Wikipedia: Ciphertext-only attack
* Wikipedia: Cramer-Shoup cryptosystem
* Wikipedia: Cryptographic engineering
* Wikipedia: Cryptographic hash functions
* Wikipedia: Cryptographic primitive
* Wikipedia: Cryptographic protocol
* Wikipedia: Cryptosystems
* Wikipedia: Data Encryption Standard
* Wikipedia: Digital Rights Management
* Wikipedia: Digital signature
* Wikipedia: E-mail privacy
* Wikipedia: ElGamal encryption
* Wikipedia: Elliptic curve cryptography
* Wikipedia: Export of cryptography
* Wikipedia: Information theory
* Wikipedia: Message authentication code
* Wikipedia: Pretty Good Privacy
* Wikipedia: Public key infrastructure
* Wikipedia: Quantum cryptography
* Wikipedia: Security engineering
* Wikipedia: SSH
* Wikipedia: Symmetric key algorithm
* Wikipedia: Transport Layer Security
* Wikipedia: Transport layer security
* Wikipedia:Caesar cipher
* Wikipedia:Cryptanalysis
* Wikipedia:Frequency analysis (cryptanalysis)
* Wikipedia:Public-key cryptography
* Wikipedia:Transposition cipher

## Offsite courses
### With video lectures

* Cryptography I, Dan Boneh, Stanford University, 2014
* Cryptography II, Dan Boneh, Stanford University, 2014
* Applied Cryptography, Dave Evans, University of Virginia (self paced course on Udacity)

### Without video lectures

* Modern Cryptology, William Cherowitzo, University of Colorado, Spring 2012.
* Introduction to Cryptography, Yehuda Lindell, Bar-Ilan University, 2013.
* Foundations of Cryptography, Yehuda Lindell, Bar-Ilan University, 2014.
* Intuitive Advanced Cryptography, Nguyen Thoi Minh Quan.