We call InvSubBytes the lookup table inverse of SubBytes.
2. Describe the decryption process using the previous transformations.
3. Why can lnvShiftRows and lnvSubBytes be applied on reverse order?
4. Similarly we want to inverse the order of application of AddRoundKey and lnvMixColumns.
a) Why is it not possible to reverse the order of application of AddRoundKey and lnvMixColumns?
b) Calling the initial matrix (ai,j), the MixColumns matrix (mi,j), and the AddRoundKey matrix (ki,j), what is the result of applying first MixColumns and then AddRoundKey?
c) Show that the inverse operation is given by
(ei,j) —* (mi,j)−1(ei,j) ED (mi,j)−1(ki,j).
d) Define a new operations InvAddRoundKey such that "AddRounKey then lnvMixColumns" can be replaced by "lnvMixColumns then lnvAddRoundKey".
5. Conclude on how to process the decryption.
6. What are the advantages of this strategy over simply reversing the order of application of the transformations?
Ex. 3 - DES
1. Research and explain how the DES cryptosystem works.
2. Quickly explain linear and differential cryptanalysis.
3. What is triple DES and why was it used instead of double DES?
4. Explain how passwords are stored on Unix systems ? Is it a problem Hint: check man passwd and then follow the suggested man pages
Ex. 4 - Programming
In the AES, choose two layers to implement in C. The 128 bits should be looked at as an unsigned char pointer. 0perations should be implemented using logical operators (and, or, and xor).
A bonus will be given for each extra layer implemented, and the generation of the S-Box. A big bonus will reward a complete implementation of the AES.