# 7.4 DES

A block of plaintext consists of 64 bits. The key has 56 bits, but is expressed as a 64-bit string. The 8th, 16th, 24th, ..., bits are parity bits, arranged so that each block of eight bits has an odd number of 1s. This is for error detection purposes. The output of the encryption is a 64-bit ciphertext.

The DES algorithm, depicted in Figure 7.4, starts with a plaintext $m$ of 64 bits, and consists of three stages:

The bits of $m$ are permuted by a fixed initial permutation to obtain ${m}_{0}=IP(m)$. Write ${m}_{0}={L}_{0}{R}_{0}$, where ${L}_{0}$ is the first 32 bits of ${m}_{0}$ and ${R}_{0}$ is the last 32 bits.

For $1\le i\le 16$, perform the following:

$$\begin{array}{rcl}{L}_{i}& =& {R}_{i-1}\\ {R}_{i}& =& {L}_{i-1}\oplus f({R}_{i-1}\text{,}\text{}{K}_{i})\text{,}\text{}\end{array}$$where ${K}_{i}$ is a string of 48 bits obtained from the key $K$ and $f$ is a function to be described later.

Switch ...

Get *Introduction to Cryptography with Coding Theory, 3rd Edition* now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.