Cryptography Tutorials - Herong's Tutorial Notes
Dr. Herong Yang, Version 4.00

Cipher - DES Algorithm

Part:   1  2  3  4 

(Continued from previous part...)

S boxes - S1, S2, ..., S8:

                        S1

14  4  13  1   2 15  11  8   3 10   6 12   5  9   0  7
 0 15   7  4  14  2  13  1  10  6  12 11   9  5   3  8
 4  1  14  8  13  6   2 11  15 12   9  7   3 10   5  0
15 12   8  2   4  9   1  7   5 11   3 14  10  0   6 13

                        S2

15  1   8 14   6 11   3  4   9  7   2 13  12  0   5 10
 3 13   4  7  15  2   8 14  12  0   1 10   6  9  11  5
 0 14   7 11  10  4  13  1   5  8  12  6   9  3   2 15
13  8  10  1   3 15   4  2  11  6   7 12   0  5  14  9

                        S3

10  0   9 14   6  3  15  5   1 13  12  7  11  4   2  8
13  7   0  9   3  4   6 10   2  8   5 14  12 11  15  1
13  6   4  9   8 15   3  0  11  1   2 12   5 10  14  7
 1 10  13  0   6  9   8  7   4 15  14  3  11  5   2 12

                        S4

 7 13  14  3   0  6   9 10   1  2   8  5  11 12   4 15
13  8  11  5   6 15   0  3   4  7   2 12   1 10  14  9
10  6   9  0  12 11   7 13  15  1   3 14   5  2   8  4
 3 15   0  6  10  1  13  8   9  4   5 11  12  7   2 14

                        S5

 2 12   4  1   7 10  11  6   8  5   3 15  13  0  14  9
14 11   2 12   4  7  13  1   5  0  15 10   3  9   8  6
 4  2   1 11  10 13   7  8  15  9  12  5   6  3   0 14
11  8  12  7   1 14   2 13   6 15   0  9  10  4   5  3

                        S6

12  1  10 15   9  2   6  8   0 13   3  4  14  7   5 11
10 15   4  2   7 12   9  5   6  1  13 14   0 11   3  8
 9 14  15  5   2  8  12  3   7  0   4 10   1 13  11  6
 4  3   2 12   9  5  15 10  11 14   1  7   6  0   8 13

                        S7

 4 11   2 14  15  0   8 13   3 12   9  7   5 10   6  1
13  0  11  7   4  9   1 10  14  3   5 12   2 15   8  6
 1  4  11 13  12  3   7 14  10 15   6  8   0  5   9  2
 6 11  13  8   1  4  10  7   9  5   0 15  14  2   3 12

                        S8

13  2   8  4   6 15  11  1  10  9   3 14   5  0  12  7
 1 15  13  8  10  3   7  4  12  5   6 11   0 14   9  2
 7 11   4  1   9 12  14  2   0  6  10 13  15  3   5  8
 2  1  14  7   4 10   8 13  15 12   9  0   3  5   6 11

DES Key Schedule (Round Keys Generation) Algorithm

Key schedule algorithm:

Input:
    K: 64-bit key
    PC1: Permuted choice 1
    PC2: Permuted choice 2
    r1, r2, ..., r16: left shifts (rotations)

Output:
    k1, k2, ..., k16: 16 48-bit round keys
    
Algorithm:
    K' = PC1(K), applying permuted choice 1 and returning 56 bits
    (C0, D0) = K', dividing K' into two 28-bit parts
    (C1, D1) = (r1(C0), r1(D0)), shifting to the left
    k1 = PC2(C1,D1), applying permuted choice 2 and returning 48 bits
    (C2, D2) = (r2(C1), r2(D1)), shifting to the left
    k2 = PC2(C2,D2), applying permuted choice 2 and returning 48 bits
    ......
    k16 = PC2(C16,D16)

DES key schedule supporting tables:

Permuted Choice 1 - PC1:

57   49    41   33    25    17    9
 1   58    50   42    34    26   18
10    2    59   51    43    35   27
19   11     3   60    52    44   36
63   55    47   39    31    23   15
 7   62    54   46    38    30   22
14    6    61   53    45    37   29
21   13     5   28    20    12    4

(Continued on next part...)

Part:   1  2  3  4 

Dr. Herong Yang, updated in 2007
Cryptography Tutorials - Herong's Tutorial Notes - Cipher - DES Algorithm