Applied cryptography
DES Encryption Round# Left Right Key
L0 R0
0 L1=R0 R1= L0 F(R0,K0) K0
1 L2=R1 R2= L1 F(R1,K1) K1
2 L3=R2 R3= L2 F(R2,K2) K2
… … … …
14 L15=R14 R15= L14 F(R14,K14) K14
15 L16=R15 R16= L15 F(R15,K15) K15
Function F() is explained on the next page.
DES Decryption: Given L16, R16, and K15, can we go reverse (i.e., find L15 and R15)?
Finding R15: R15 = L16
Finding L15: L15 = L15 0
= L15 F(R15,K15) F(R15,K15)
= L15 F(R15,K15) F(R15,K15)
= R16 F(R15,K15)
= R16 F(L16,K15)
Note that, in the decryption
network, R16 is on the left, and L16 is
on the right. This is consistent with
the Decryption formula derived
above.
The F Function
How F(R0,K0) is computed?
Step 1: Expand R0 to 48 bits by copying 16 of its 32 bits twice (Use expansion table). The resultant 48 bit
represents E(R0).
Step 2: Compute E(R0) K0
Step 3: Substitute each 6 bits in E(R0) K0 with a 4 bit value using substitution table.
Step 4: Permute the 32 bits produced in Step 3 using permutation table.
Expansion table (Step 1)
Substitution Table (Step 3) Reduce 6 bit to 4 bit
Permutation Table (Step 4)
1. Assignment 5 (35 Points)
Given a 64 bit plaintext FFFE 397D AC28 8855 and 48 bit Round key 4D77 32C5
29EF, perform one round DES encryption and decrypt the computed cipher
retrieving the original input.
2. Bonus Assignment (15 Points)
Given a 56-bit key 88DF E9DC C277 CA, compute 48 bit Round1, Round2 and
Round3 keys.