## Cryptography : Data Encryption Standard (DES)

Hello everyone. In this blog, I will be discussing about first Symmetric Key

Cryptography – Data Encryption Standard (DES) – in details.

Cryptography – Data Encryption Standard (DES) – in details.

DES was developed by IBM in 1970s and later standardized in public by NSA

in 1977. It is a block cipher. It encrypts data in blocks of size 64 bits

each. DES uses heavily bit operations. It uses a key of 56 bit length. The

same algorithm and the key is used for decryption process.

in 1977. It is a block cipher. It encrypts data in blocks of size 64 bits

each. DES uses heavily bit operations. It uses a key of 56 bit length. The

same algorithm and the key is used for decryption process.

Actually, the original key is of 64 bit length. But for parity checking

purpose, every 8th bit is discarded from the original key, making it a

key of 56 bit length. Now what I have done here is that I took ASCII value

of each character from the plain text and the key and converted to binary

digits of 8 bit length. Now this happens that the total length of the plain

text and the key may not be an exact multiple of 64. So I appended zeroes

at the end of the plain text and the key in such a way that they become a

multiple of 64. One important thing to note is that the key size cannot be

greater than 8 characters. As each character represents 8 bits and the

size of key cannot be greater than 64 bits, hence key size cannot be

more than 8 characters.

purpose, every 8th bit is discarded from the original key, making it a

key of 56 bit length. Now what I have done here is that I took ASCII value

of each character from the plain text and the key and converted to binary

digits of 8 bit length. Now this happens that the total length of the plain

text and the key may not be an exact multiple of 64. So I appended zeroes

at the end of the plain text and the key in such a way that they become a

multiple of 64. One important thing to note is that the key size cannot be

greater than 8 characters. As each character represents 8 bits and the

size of key cannot be greater than 64 bits, hence key size cannot be

more than 8 characters.

Now divide the plain text in blocks of 64 bits. Take each block one by one.

And start encrypting them with DES. The DES involves the following steps :

And start encrypting them with DES. The DES involves the following steps :

1. Initial Permutation:

As the name suggests, it rearranges the first Plain Text block bits

according to the IP table. That is, the first bit of the permuted text

block will be the 58th bit of the first plain text block, the second

bit will be the 50th bit of the first plain text block and so on. Now

divide the permuted text into two halves – 32 bit Left Plain Text (LPT)

and 32 bit Right Plain Text (RPT).

As the name suggests, it rearranges the first Plain Text block bits

according to the IP table. That is, the first bit of the permuted text

block will be the 58th bit of the first plain text block, the second

bit will be the 50th bit of the first plain text block and so on. Now

divide the permuted text into two halves – 32 bit Left Plain Text (LPT)

and 32 bit Right Plain Text (RPT).

2. 16 Rounds:

a) Key Transformation:

Divide the 56 bit Key into two halves – C Key (28 bit) and

D Key (28 bit). Perform Left Circular Shift to C Key and D Key

according to the Circular Left Shift Table.

a) Key Transformation:

Divide the 56 bit Key into two halves – C Key (28 bit) and

D Key (28 bit). Perform Left Circular Shift to C Key and D Key

according to the Circular Left Shift Table.

After the shift, join C Key and D Key again to make Shifted Key of

56 bit.

56 bit.

b) Compression Permutation:

This step involves selection of 48 bits out of 56 bits of Shifted

Key. In other words, Shifted Key is compressed and permuted at the

same time. It is done according to the Compression Permutation table.

For example, the first bit of Compressed Key will be the 14th

bit of the shifted key and so on.

This step involves selection of 48 bits out of 56 bits of Shifted

Key. In other words, Shifted Key is compressed and permuted at the

same time. It is done according to the Compression Permutation table.

For example, the first bit of Compressed Key will be the 14th

bit of the shifted key and so on.

c) Expansion Permutation:

Recall that after Initial Permutation, we had LPT and RPT, each of 32

bit length. During this step, RPT is expanded from 32 bit to 48 bit.

Besides this, it is permuted as well. Hence the Expansion Permutation.

At first, 32 bit RPT is divided into 8 blocks of 4 bits each. Then

each 4 bit block is expanded to 6 bit block by adding two more bits.

One bit at the beginning of the 4 bit block and the other bit at the

end of that 4 bit block.

Recall that after Initial Permutation, we had LPT and RPT, each of 32

bit length. During this step, RPT is expanded from 32 bit to 48 bit.

Besides this, it is permuted as well. Hence the Expansion Permutation.

At first, 32 bit RPT is divided into 8 blocks of 4 bits each. Then

each 4 bit block is expanded to 6 bit block by adding two more bits.

One bit at the beginning of the 4 bit block and the other bit at the

end of that 4 bit block.

For simplicity of the computation, this process

has been stored in the Expansion Permutation table. After this step, RPT

has 8 blocks of 6 bits each, making it a 48 bit Expanded RPT.

has been stored in the Expansion Permutation table. After this step, RPT

has 8 blocks of 6 bits each, making it a 48 bit Expanded RPT.

d) XOR:

This step involves the bitwise XOR operation between the Expanded RPT

of 48 bit length and the Compressed Key of 48 bit length. This results

in the XORed RPT of 48 bit length.

This step involves the bitwise XOR operation between the Expanded RPT

of 48 bit length and the Compressed Key of 48 bit length. This results

in the XORed RPT of 48 bit length.

e) S Box Substitution:

The XORed RPT is fed into the S Box Substitution step. Here, the XORed

RPT is again divided into 8 blocks of 6 bit each. For each block, there

is a separate S Box table which gives 4 bit output. Hence, there are 8

S Box tables corresponding to 8 blocks. For example, Block 1 will be

fed to S Box 1, Block 2 to S Box 2 and so on. S Box tables consist of

4 rows and 16 columns. Each row contains 0 to 15 numbers in haphazard

manner. These 0 to 15 numbers can be represented with 4 bits. As we know,

each block contains 6 bits, these 6 bits tell us the row number and the

column number of the S Box table corresponding to that block. The 1st

bit and the 6th bit determines the row number whereas 2nd, 3rd, 4th and

5th bits determine the column number. The value that is obtained at the

intersection of the row number and the column number is the 4 bit output

of the S Box table. So each of the 8 blocks gives 4 bit output, giving

rise to 32 bit S Box RPT.

The XORed RPT is fed into the S Box Substitution step. Here, the XORed

RPT is again divided into 8 blocks of 6 bit each. For each block, there

is a separate S Box table which gives 4 bit output. Hence, there are 8

S Box tables corresponding to 8 blocks. For example, Block 1 will be

fed to S Box 1, Block 2 to S Box 2 and so on. S Box tables consist of

4 rows and 16 columns. Each row contains 0 to 15 numbers in haphazard

manner. These 0 to 15 numbers can be represented with 4 bits. As we know,

each block contains 6 bits, these 6 bits tell us the row number and the

column number of the S Box table corresponding to that block. The 1st

bit and the 6th bit determines the row number whereas 2nd, 3rd, 4th and

5th bits determine the column number. The value that is obtained at the

intersection of the row number and the column number is the 4 bit output

of the S Box table. So each of the 8 blocks gives 4 bit output, giving

rise to 32 bit S Box RPT.

f) P Box Permutation:

In this step, S Box RPT will be permuted according to the P Box table

giving rise to P Box RPT.

In this step, S Box RPT will be permuted according to the P Box table

giving rise to P Box RPT.

g) XOR and Swap:

During all these operations, the LPT was left untouched so far. So in

this step, P Box RPT of 32 bit length and the untouched LPT of 32 bit

length is XORed. The XORed text is stored in the RPT and the original

RPT is stored in the LPT. After this, again the next round starts.

That is why it is called 16 Rounds.

During all these operations, the LPT was left untouched so far. So in

this step, P Box RPT of 32 bit length and the untouched LPT of 32 bit

length is XORed. The XORed text is stored in the RPT and the original

RPT is stored in the LPT. After this, again the next round starts.

That is why it is called 16 Rounds.

3. At the end of the 16 rounds, the Final Permutation is done on the combined

LPT and RPT giving rise to 64 bit first Cipher Text block. It is done

according to the Final Permutation table.

LPT and RPT giving rise to 64 bit first Cipher Text block. It is done

according to the Final Permutation table.

4. All the previous steps i.e. 1,2 and 3 is performed for all the other Plain

Text blocks to get the corresponding Cipher Text blocks. At the very end,

all the Cipher Text blocks are combined to obtain the final cipher text.

Text blocks to get the corresponding Cipher Text blocks. At the very end,

all the Cipher Text blocks are combined to obtain the final cipher text.

In this modern world, people don’t use Single DES as it is vulnerable to

heavy attacks. That’s why they prefer more Double DES and Triple DES.

In Double DES, DES is done twice with 2 different keys.

heavy attacks. That’s why they prefer more Double DES and Triple DES.

In Double DES, DES is done twice with 2 different keys.

In Triple DES, DES is done thrice. Here Triple DES can be performed with

3 keys or even 2 keys.

3 keys or even 2 keys.

Here is the link to my complete blog:

That’s the end of this blog. I hope you find my blogs useful. Till then

stay tuned and keep coding.

stay tuned and keep coding.

## Leave a reply

You must login or register to add a new comment .