What you must know:
Plaintext block: \(m\), 64 bits
Key: \(K\), 56 bits + 8 parity bits.
\(m_0 \leftarrow \sigma(m)\), where \(\sigma\) is a fixed initial permutation. Let \(m_0=L_0R_0\), the left and right 32 bits
For \(i\) in \(1\ldots 16\), \(L_i \leftarrow R_i\), and \(R_i \leftarrow L_{i-1}\oplus f(R_{i-1}, K_i)\), where \(K_1,\ldots,K_{16}\) are 48-bit subkeys generated by a key schedule. (The function \(f\) is described below.)
Ciphertext \(\leftarrow \sigma^{-1}(R_{16}L_{16})\)
Decryption uses the exact same procedure, but with the order of the \(K_i\)’s reversed. (Feistel network.)
Inputs: \(R_{i-1}\) (32-bit) and \(K_i\) (48-bit)
Expand \(R\) to \(E(R)\) (48-bit), via a fixed expansion function.
\(B \leftarrow E(R) \oplus K_i\), where \(B=B_1B_2\cdot B_8\) is broken into 8 6-bit substrings.
Using a different (fixed) lookup table, i.e. “S-Box”, for each \(B_i\), compute \(C_1, \ldots C_8\) (4-bit each).
\(f(R_{i-1}, K_i) \leftarrow \alpha(C_1C_2\ldots C_8)\), where \(\alpha\) is a fixed permutation.
DES is vulnerable to brute-force attacks (try every key).
\(2^{56} \approx 7.2 \times 10^{16}\).
Encrypting twice with DES is not the same as encrypting once with a different key (unlike most/all of the ciphers we have seen so far). “DES is not a group.”
Let \(K\), \(L\) be two DES keys, let \(m\) be a plaintext block, and denote the encryption function by \(D\). \[ \begin{aligned} c &\leftarrow D(m, K) \\ d &\leftarrow D(c, L) \end{aligned} \]
There is no key \(M\) such that \(d = D(m, M)\).
Known or chosen plaintext \(m\).
Time (in number of \(D\) calls)? vs. brute-force attack?
A MITM attack still works (in theory), but it takes longer.
Known or chosen plaintext \(m\).
Some of this material is covered on pp. 93–97 of the book, but their notation is nonstandard. Be able to answer the following: