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:

  1. The bits of m are permuted by a fixed initial permutation to obtain m0=IP(m). Write m0=L0R0, where L0 is the first 32 bits of m0 and R0 is the last 32 bits.

  2. For 1i16, perform the following:

    Li=Ri1Ri=Li1f(Ri1, Ki), 

    where Ki is a string of 48 bits obtained from the key K and f is a function to be described later.

  3. 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.