- DES is a symmetric-key block cipher published by National institute of Standards and technology (NIST)
- The encryption process is made up of two permutations (p-boxes) and 16 Feistel rounds.
- Initial permutation: Initially, we shuffle the bits as per as pre-defined table. This is a very basic level of encryption.
- Fiestal Rounds: The Feistel rounds are the real encryption part in DES. A single fiestal round is shown below. Sixteen repetition of such rounds are done to achieve our goal.
- It takes $L_{I-1}$ and $R_{I-1}$ from previous rounds as input. They are then passed through two cipher elements namely ‘mixer’ and ‘swapper’.
- The output from swapper is $L_I$ and $R_I$ (32 buts each) and is passed on to the next round.
DES Function:
- In figure 3, the function $(R_{I-1} , K_I)$ is known as DES function.
It applies a 48-bit key to the rightmost 32-bit $(R_{I-1})$ to produce a 32-bit output.
As seen from figure 4, initially the 32 bits input is passed to an expansion P-Box. As the name suggest, this element expands the RI-1 from 32 bits to 48 bits.
- The P-Box works by grouping the 32-bits into 4 bits each and modifies it to block of 6-bits by using the closest bits of the adjacent blocks as the two extra new-bits. Refer Figure 5.
- XOR (Whitener): After the expansion, the key (48) and RI-1 (now of 48-bits) are XORed together. (because for XOR we need both i/p of same size, we needed a P-box)
- S-Box (Substitution Box): It takes as input 48-bits gives a 32-bit output. It’s over here that the actual mixing (confusion) happens.
- A total of 8 S-boxes are present which get 6-bit chunks each from the 42-bit input and then produces a 4-bit output block.
- S-Box rule: the S-box does the manipulations by following a pre-defined rule.
- Consider fig. 6 below; Each S-box has 6-bit input. Each S-box block (out of total 8) has an S-box table associated with it.(fig 7)
- The bit-1 and bit-6 of the 6-bits in a single S-box block is used to determine the row number (00Row 1, 10Row3)
- The bits 2,3,4,5 are then used to determine the column number in the selected row.
- The matrix value found at this location goes to become the output 4-bit vale for that single S-box block.
- This, is how the data got substituted by cryptographic method.
Final P-box:
It does a shuffling of the data based on a pre-defined table. The input is 32-bits and output is also 32-bits.