Assignment 2 Goals:
- Gain experience in cryptanalysis
- Determine how flaws in a block cipher or mode of operation can be used to create an attack.
Assignment Description
In this assignment, you will have to break the security of some kind of symmetric cryptography algorithm. To do this, you have to remember the way that security is defined (using a game between an adversary and a challenger) and create an adversary that wins the game with high probability.
- Consider the block cipher mode of operation $CBC_0$, which is exactly like CBC described in class, except that the, instead of being random, the $IV$ is always a block of only zeroes. Create an advesary that makes a SEM-CPA attack against $CBC_0$.
- Instead of using randomness, some block cipher modes of operation use a state: they remember something of the previous encryption that will be used to encrypt the next message. For example, consider $CBC_{st}$ that uses a block of only zeroes to encrypt the first message, and, for subsequent messages, uses the last ciphertext block of the previous message as the $IV$ of the next message. Create an adversary that makes a SEM-CPA attack against $CBC_{st}$
- Consider a stateful version of $CTR$, let's call it $CTR_{st}$, in which a block of only zeroes is used as the $IV$ of the first message, and for subsequent messages, uses an $IV$ that is one more than the previous $IV$. Create an adversary that makes a SEM-CPA attack against $CTR_{st}$
Submitting
Submit your written solutions to the problems in my office before the due time. You are allowed to submit handwritten solutions, but if you do so, it should be legible. If you want to type your assignment, $\LaTeX$ is probably your best option, but if you have never used it before, any other word processor can probably do the job as well.