Title: DES Algorithm
1DES Algorithm
2DES Features
- Block cipher, 64 bits per block
- 64-bit key, with only 56 bits effective
- ECB mode and CBC mode
3DES Key Scheduling
- Specify a 64-bit key
- There are eight parity bits
- The key structure is in the next page
4(No Transcript)
5DES Key Scheduling
- Key permutation according to Permuted Choice
1(PC-1) - After permutation, the key length will be only 56
bits - 64 bits ? 56 bits? Why?
- The explanation is in the next page
6Note The 8n-th bit is disappeared!!
7DES Key Scheduling
- We separate the 56-bit key to two 28-bit keys Lk
and Rk - Left rotate the Lk and Rk according to SRT
(Subkey Rotation Table) - After rotation, merge Lk and Rk
- Permutation according to Permuted Choice 2 (PC-2)
- We get a 48-bit subkey now
8DES Key Scheduling
- Repeat the operation 16 times to get 16 subkeys
- Use rotated Lk and Rk
- Why each subkey has length of only 48 bits
instead of 56 bits? - The answer is similar to PC-1
9Subkey Rotation Table
Permuted Choice 2
10DES Key Scheduling Flow Chart
- ltltlt is the operation of SRT
- We will call the subkeys K1, K2, , K16
later
11Plaintext Preparation
- Cut the plaintext into 64-bit blocks
- Each 64-bit block should be permuted according to
Initial Permutation Table (IP Table) - Besides, we make an Inverse Initial Permutation
Table (IP-1), which has effect opposite to IP
12IP Initial Permutation
IP-1 Inverse Initial Permutation
13DES Core Function
- L0 to L15, R0 to R15
- Feistel (F) function
- Inverse Initial Permutation
14Feistel Function
- Expansion using E-bit Selection Table
- Key Mixing XOR with subkeys
- Substitution S-box
- Permutation P-box
15Feistel Function - Expansion
E-Bit Selection Table
- Copy R0 to a buffer Rb
- Rb 32 bits ? 48 bits
16Feistel Function Key Mixing
- After the expansion operation, just XOR with
subkey K1
17Feistel Function - Substitution
- 48-bit buffer becomes eight 6-bit blocks
- 8 S-boxes have output from 0 to 15 which can be
represented with 4 bits - How do S-boxes work? Wait and see
- 8 4-bit outputs can be merged, and store it in a
32-bit buffer
18How do S-boxes Work?
Column
Row
Use the Row and Column number to find the
corresponding output number from the
S-box. Besides, the n-th block must use the n-th
S-box.
19S-Box 1 Substitution Box 1
S-Box 2 Substitution Box 2
20S-Box 3 Substitution Box 3
S-Box 4 Substitution Box 4
21S-Box 5 Substitution Box 5
S-Box 6 Substitution Box 6
22S-Box 7 Substitution Box 7
S-Box 8 Substitution Box 8
23Feistel Function - Permutation
- After the substitution, do permutation according
to the P-box
P Permutation
24DES Core Function
- After one round of Feistel Function is completed,
the buffer is XORed with L, becoming the next R - Previous R becomes the next L
- Repeat the operations mentioned above 16 times
25DES Core Function
- When 16 rounds are finished, L and R are swapped
and merged, then becomes a 64-bit pre-output - Use IP-1 to become the final cipher output
26DES - Decryption
- Almost all operations are the same as those of
encryption - Only one is different use the subkeys in
descending order
27DES Other Form
- Triple-DES quite literally. A Triple-DES key has
length of 192 bits. It can be considered three
64-bit DES key. - DES40 a key is pre-processed to make it a 40-bit
effective key
28DES - Modes
- ECB (Electronic Code Book)
- CBC (Cipher Block Chaining)
29DES Cryptanalysis