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.
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.
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
- Substitution Algorithms
- Caesar Cipher
- Permutation Algorithms
- Block Ciphers
- Data Encryption Standard
- Introduction to Simple Substitution Cypher
- More Simple Substitution Cyphers
- Other Substitution Cyphers
- Rearrangement Cyphers
- Spoken Cyphers
- 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:Frequency analysis (cryptanalysis)
- Wikipedia:Public-key cryptography
- Wikipedia:Transposition cipher
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.
- Crypto Systems by Micah Lee, Freedom of the Press Foundation
- Slides of a two-semester course Introduction to Cryptography by Prof. Christof Paar, University of Bochum (slides are in English, site contains also videos in German)
- The GNU Privacy Guard - GNU Cryptography Tools
- The International PGP Homepage
- Cryptool - Interesting illustrative program for Windows