Unit 1: Introduction to Cryptography
1a. Identify characteristics of a computationally secure system
- What is cryptography?
- What is a computationally secure system?
- Why are confidentiality, integrity, and authentication key terms for the field of cryptography?
Cryptography is the science of converting plaintext messages to ciphertext. Once such codes are created, some adversary will inevitably attempt to recover the plaintext from the ciphertext. Therefore, it is imperative to understand the basic principles of security. For example, Kerckhoff's Principle states that cryptographic systems should remain secure even when the attacker knows all the internal details of the system. Computational security is the confidence that adversarial determination of the plaintext from the ciphertext is beyond current computational capabilities.
The concepts of confidentiality, integrity, and authentication are central to the theme of security. Confidentiality is the property that prevents adversaries from reading your private data and allows access only to the intended recipient. Authentication is the process of verifying the identity of a user, process, or device, and allows you to determine who created a given message. Integrity is the property that prevents adversaries from tampering with private data, assuring that the data received is identical to the data sent. Network security principles such as these allow you to precisely define architectures for specific applications.
To review, see:
1b. Explain the difference between a block cipher and a stream cipher
- What is a block cipher?
- What is a stream cipher?
- How can confusion and diffusion be achieved?
Cryptographic systems process data either by breaking it into blocks (via block ciphers) or by processing longer streams of data (via stream ciphers). Block ciphers encrypt blocks of data, while stream ciphers encrypt streams of data.
Confusion is the process of obscuring the relationship between the ciphertext and the key. Both stream ciphers and block ciphers can achieve confusion. One way to achieve confusion is to use a substitution cipher, which substitutes one plaintext symbol for another. On the other hand, diffusion is the process of obscuring any relationship between the plaintext and the ciphertext. Given the stream ciphers introduced in this course, only block ciphers can achieve diffusion. One way to achieve diffusion is to use a transposition cipher.
To review, see:
1c. Solve problems involving substitution ciphers
- What is a substitution cipher?
- How does a Caesar cipher work?
- How does a Vernam cipher work?
Substitution ciphers lie at the core of many cryptosystems. The key is instrumental in defining the substitution. For example, in a Caesar cipher, letters are substituted using a shift of the alphabet. In general, the key could be a permutation of the whole alphabet (the alphabet shift is a special case). This means that, when using the English alphabet, there are 26 factorial possible permutations that could serve as key candidates.
Another important example is the Vernam cipher, which involves applying a bitwise logical exclusive-or between the plaintext bit stream and a key derived from a random number. Substitution can be useful for achieving confusion and is an operation that is fundamental to cryptography. Based on the material in this unit, you should be able to solve basic problems using the Caesar cipher and the Vernam cipher.
To review, see:
1d. Solve problems involving transposition ciphers
- What is a transposition cipher?
- How does a rail fence cipher work?
- How does a columnar transposition cipher work?
In contrast to substitution ciphers, transposition ciphers permute the plaintext symbols, rearranging the characters according to a specific pattern or key without altering the characters themselves. This mixing effect can be powerful if the permutation is applied to a long plaintext stream. Transpositions can be useful for achieving diffusion. The rail fence cipher and columnar transposition cipher are two examples of how to apply permutations methodically. Rail fence ciphers achieve the desired mixing of the symbols by grouping every nth symbol and then concatenating all the groups to form the ciphertext. Columnar transpositions read the plaintext into a matrix column-wise and form the ciphertext by reading out the rows of the matrix. Make sure you understand how the key is used to decrypt the encrypted messages. When substitution is mixed with transposition, powerful cryptosystems can be devised. Based on the material in this unit, you should be able to solve basic problems using the rail fence cipher and the columnar transposition cipher.
To review, see:
1e. Describe the concept of perfect secrecy
- What is perfect secrecy?
- How does perfect secrecy differ from computational security?
- How does a one-time pad achieve perfect secrecy?
Perfect secrecy is the condition where, after observing the ciphertext, an adversary can gain no information about the plaintext. Shannon's Maxim is the principle that systems should be designed under the assumption that the enemy will immediately gain full familiarity with them and, therefore, rely on the security of the key over the algorithm. It can be difficult to prove that a given encryption technique achieves perfect secrecy. This is why computational security is so important. Given assumptions about present computational power, it is generally easier to demonstrate that a given cipher cannot be broken. Therefore, most cryptosystems are characterized in terms of their computational security.
The Vernam cipher is a stream cipher that combines the stream of message bits with a stream of a random bit sequence. It is one famous example of a system demonstrated to achieve perfect secrecy. If the key, which is a random bit stream, is long enough and used only once, this cipher can achieve perfect secrecy. When the key is used only one time, the Vernam cipher is referred to as the one-time pad. The Vernam cipher is a stream cipher and a substitution cipher that, due to the randomness of the key, can destroy any relationship between the ciphertext and the key. This is why perfect secrecy can be achieved.
To review, see:
Unit 1 Vocabulary
This vocabulary list includes terms you will need to know to successfully complete the final exam.
- authentication
- block cipher
- computational security
- confidentiality
- confusion
- diffusion
- integrity
- Kerckhoff's Principle
- one-time pad
- perfect secrecy
- Shannon's Maxim
- stream cipher
- substitution cipher
- transposition cipher
- Vernam cipher