Data Encryption Standard
Data Encryption Standard (DES)
Part A:
4.1 Briefly define a nonsingular transformation.
4.2 What is the difference between a block cipher and a stream cipher?
4.3 Why is it not practical to use an arbitrary reversible substitution cipher of the kind
shown in Table 4.1?
4.4 Briefly define the terms substitution and permutation.
4.5 What is the difference between diffusion and confusion?
4.6 Which parameters and design choices determine the actual algorithm of a Feistel
cipher?
4.7 What are the critical aspects of Feistel cipher design?
Part B:
Refer to the above figure. Each group has a different input for “Left”, “Right” and “Round Key” as shown in the following table:
| Group Number | Left | Right | Round Key |
| 1 | 18CA18AD | B8089591 | 194CD072DE8C |
| 2 | 5A78E394 | 236779C2 | 4568581ABCCE |
| 3 | 4A1210F6 | A9FC20A3 | 06EDA4ACF5B5 |
| 4 | B8089591 | 2E8F9C65 | DA2D032B6EE3 |
| 5 | 236779C2 | CF26B472 | 69A629FEC913 |
| 6 | A15A4B87 | 387CCDAA | C1948E87475E |
| 7 | 2E8F9C65 | 22A5963B | 708AD2DDB3C0 |
| 8 | A9FC20A3 | A15A4B87 | 3330C5D9A36D |
| 9 | 308BEE97 | 5A78E394 | 181C5D75C66D |
| 10 | 10AF9D37 | 4A1210F6 | 99C31397C91F |
Each group need to find the value of L1 and R1?
Advanced Encryption Standard (AES)
6.1 What was the original set of criteria used by NIST to evaluate candidate AES ciphers?
6.2 What was the final set of criteria used by NIST to evaluate candidate AES ciphers?
6.3 What is the difference between Rijndael and AES?
6.4 What is the purpose of the State array?
6.5 How is the S-box constructed?
6.6 Briefly describe SubBytes.
6.7 Briefly describe ShiftRows.
6.8 How many bytes in State are affected by ShiftRows?
6.9 Briefly describe MixColumns.
6.10 Briefly describe AddRoundKey.
6.11 Briefly describe the key expansion algorithm.
6.12 What is the difference between SubBytes and SubWord?
6.13 What is the difference between ShiftRows and RotWord?
6.14 What is the difference between the AES decryption algorithm and the equivalent inverse cipher?
6.4 Given the plaintext {0F0E0D0C0B0A09080706050403020100} and the key
{02020202020202020202020202020202}:
a. Show the original contents of State, displayed as a 4 * 4 matrix.
b. Show the value of State after initial AddRoundKey.
c. Show the value of State after SubBytes.
d. Show the value of State after ShiftRows.
e. Show the value of State after MixColumns.

