Understanding Cryptography by Christof Paar and Jan Pelzl - Chapter 3 Solutions - Ex3.3
- 1 min- Return to index
- Exercise 3.1
- Exercise 3.2
- Exercise 3.3
- Exercise 3.4
- Exercise 3.5
- Exercise 3.6
- Exercise 3.7
- Exercise 3.8
- Exercise 3.9
- Exercise 3.10
- Exercise 3.11
- Exercise 3.12
- Exercise 3.13
Exercise 3.3
What is the output of the first round of the DES algorithm when the plaintext and the key are both all zeros?
Solution
This solution is verified as correct by the official Solutions for Odd-Numbered Questions manual.
Because all inputs are 0 and \(IP\), \(PC-1\), \(PC-2\) and the subkey rotations are all simple permutations, we can discount them knowing that they will output 0s.
Because the subkeys consist of all 0s, we can discount them from the \(f\) function calculation (since \(a \oplus 0 = a\)). We can also discount the \(E\) expansion since it’s guaranteed to produce all 0s.
\[L_0 = 0\] \[L_1 = R_0 = 0\]\(R_1\) is calculated as follows:
\[R_1 = L_0 \oplus f(R_0)\] \[= 0 \oplus f(0)\] \[= f(0)\]Calculating the \(f\) function is as follows:
\[f(0) = P(S_1(0), S_2(0), S_3(0), S_4(0), S_5(0), S_6(0), S_7(0), S_8(0))\]We will call the intermediate value before \(P\) is applied \(R_1^\prime\) and after applying all the S-boxes, it is as follows:
\[11101111101001110010110001001101_2\]To finish calculating \(R_1\) we need to apply \(P(R_1^\prime)\):
\[P(R_1^\prime) = 11011000110110001101101110111100_2\]Therefore:
\[L_1 = 00000000_{16}\] \[R_1 = D8D8DBBC_{16}\]