Challenge Problem #1

Make DES Weak

First read the details of DES. Then, change the S-boxes in any way you'd like to produce WDES (weak DES). Then demonstrate a method where, given any known plaintext-ciphertext pair, you can recover all 56 bits of key.

Hint: make the cipher linear. Then express each round as an affine transformation on 32 bits (that is, show that each round value can be expressed as a 56 x 32 matrix of bits, times a key vector (which you will later solve for), plus some 56 x 1 vector). Finally, solve for the key vector at the end with Gaussian elimination. If you do things right, you will get a rank 56 matrix, yielding all key bits.

Extra Credit Points: 10