Information Security — DES


Data Encryption Standard (DES)


The data encryption standard also called Data Encryption Algorithm (DEA). DES has been found vulnerable against very powerful attacks.

DES Basic Principal: - DES is a block cipher. It encrypts data in blocks of 64 bits each. That is, 64 bits of plain text goes as the input to DES, which produces 64 bits of cipher text. The same algorithm and key is used for encryption and decryption, with minor differences. The key length is 56 bits.
Before the DES process even starts, every eighth bit of the key is discarded to produce a 56-bit key. That is, bit position 8, 16, 24, 40, 48, 56 and 64 are discarded.
DES is based on the two fundamental attributes of cryptography: substitution (also called confusion) and transposition (also called diffusion). DES consists of 16 steps, each of which is called a round. Each round performs the steps of substitution and transposition. Let us discuss broad-level steps in DES:

1)    In the first step, the 64-bit plain text block is handed over to an initial permutation (IP) function.

2)    The initial permutation is performed on plain text.

3)    Next, the initial permutation (IP) produces two halves of the permuted block; say Left Plain Text (LPT) and Right Plain Text (RPT).

4)    Now, each of LPT and RPT go through 16 rounds of encryption process, each with its own key.

5)    In the end, LPT and RPT are rejoined, and a Final Permutation (FP) is performed on combined block.

  6)he result of this process produces 64-bit cipher text.
Initial Permutation: -
The initial permutation happens only once, and it happens before the first round. It says that IP replace the first bit of the original plain text with the 58th bit of original plain-text block, the second bit with the 50th bit of the original plain text block, and so on. After IP is done, the resulting 64-bit permuted text block is divided into two half blocks. Each half block consists of 32 bits. We call the left block as LPT and right block as RPT. Now, 16 rounds are performed on these blocks.
Rounds: -

1.    Key Transformation: - The initial 64-bit key is transformed into a 56-bit key by discarding every 8th bit of the initial key. Thus for each round, a 56-bit key is available. From this 56-bit key, a different 48-bit subkey is generated during each round using a process called key transformation. For this, the 56-bit key is divided into 2 halves, each of 28 bits. These halves are circularly shifted left by one or two positions, depending upon the rounds.

2.    Expansion Permutation: - After initial permutation, we have two 32-bits plain text areas, called left plain text (LPT) and right plain text (RPT). During expansion permutation, the RPT is expanded from 32-bits to 48-bits. Before increasing the size from 32 to 48, the bits are permuted as well.
3.    S-box Substitution: - It is a process that accepts the 48-bit input from the XOR operation involving the compressed key and expanded RPT, and produces a 32-bit output using the substitution technique. The substitution is performed by eight substitution boxes also called S-boxes. Each of S-box has a 6-bit input and 4-bit output. The S-box transforms the 6-bit input into 4-bit output.

4.    Final Permutation: - At the end of the 16 rounds, the final permutation is performed. This is simple transposition. The output of the final permutation is 64-bit encrypted block.