Seluruh bit dan bait diurutkan sesuai dengan endian besar dalam rencana ini, iaitu bit pertama selalu bit dengan nilai tempat terbesar.
Setiap jadual dibuat untuk memudahkan pemahaman. Jadual berikut berupa larik, bukan matriks, kecuali telah disebutkan yang lain.
Permutasi awal (IP)
Alur gerak bit pada permutasi awal (IP)
IP
58
50
42
34
26
18
10
2
60
52
44
36
28
20
12
4
62
54
46
38
30
22
14
6
64
56
48
40
32
24
16
8
57
49
41
33
25
17
9
1
59
51
43
35
27
19
11
3
61
53
45
37
29
21
13
5
63
55
47
39
31
23
15
7
Jadual ini menentukan permutasi masukan untuk blok 64 bit. Cara baca jadual ini adalah seperti berikut: Bit keluaran pertama diambil dari bit masukan ke-58; bit keluaran kedua diambil dari bit masukan ke-50; dan seterusnya hingga bit keluaran terakhir diambil dari bit masukan ketujuh.
Permutasi akhir (IP-1)
Alur gerak bit pada permutasi akhir (IP-1)
IP−1
40
8
48
16
56
24
64
32
39
7
47
15
55
23
63
31
38
6
46
14
54
22
62
30
37
5
45
13
53
21
61
29
36
4
44
12
52
20
60
28
35
3
43
11
51
19
59
27
34
2
42
10
50
18
58
26
33
1
41
9
49
17
57
25
Permutasi akhir ialah penyongsangan dari permutasi awal.
Fungsi perluasan (E)
Alur gerak bit pada fungsi ekspansi
E
32
1
2
3
4
5
4
5
6
7
8
9
8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
Fungsi perluasan ditafsirkan sebagai permutasi awal dan akhir. Perhatikan bahawa beberapa bit dari masukan digandakan, misalnya bit masukan ke-5 digandakan ke bit keluaran ke-6 dan ke-8. Jadi, setengah-blok 32 bit diperluas menjadi 48 bit.
Permutasi (P)
Alur gerak bit pada permutasi P
P
16
7
20
21
29
12
28
17
1
15
23
26
5
18
31
10
2
8
24
14
32
27
3
9
19
13
30
6
22
11
4
25
Permutasi P mengocok bit-bit dari setengah-blok 32 bit.
Permutasi pilihan I (PC-1)
Alur gerak bit pada permutasi pilihan I (PC-1)
PC-1
Kiri
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
Kanan
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
Setengah "kanan" dan "kiri" menampilkan bit kunci yang membentuk bahagian kanan dan kiri dari keadaan penjadualan kunci. Perhatikan bahaaa hanya 56 bit dari 64 bit yang dipilih. Bakinya (8, 16, 24, 32, 40, 48, 56, 64) dipakai sebagai bit paritas.
Permutasi pilihan II (PC-2)
Alur gerak bit pada permutasi pilihan II (PC-2)
PC-2
14
17
11
24
1
5
3
28
15
6
21
10
23
19
12
4
26
8
16
7
27
20
13
2
41
52
31
37
47
55
30
40
51
45
33
48
44
49
39
56
34
53
46
42
50
36
29
32
Permutasi ini hanya memilih 48 bit kunci pusingan dari 56 bit keadaan penjadualan kunci. Permutasi ini mengabaikan bit ke-9, 18, 22, 25, 35, 38, 43, dan 54.
Kotak penggantian (Kotak-S)
Kotak-S DES
S1
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x1100x
x1101x
x1110x
x1111x
0yyyy0
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
0yyyy1
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
1yyyy0
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
1yyyy1
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
13
S2
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x1100x
x1101x
x1110x
x1111x
0yyyy0
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
0yyyy1
3
13
4
7
15
2
8
14
12
0
1
10
6
9
11
5
1yyyy0
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
1yyyy1
13
8
10
1
3
15
4
2
11
6
7
12
0
5
14
9
S3
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x1100x
x1101x
x1110x
x1111x
0yyyy0
10
0
9
14
6
3
15
5
1
13
12
7
11
4
2
8
0yyyy1
13
7
0
9
3
4
6
10
2
8
5
14
12
11
15
1
1yyyy0
13
6
4
9
8
15
3
0
11
1
2
12
5
10
14
7
1yyyy1
1
10
13
0
6
9
8
7
4
15
14
3
11
5
2
12
S4
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x1100x
x1101x
x1110x
x1111x
0yyyy0
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
0yyyy1
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
1yyyy0
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
1yyyy1
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14
S5
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x1100x
x1101x
x1110x
x1111x
0yyyy0
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9
0yyyy1
14
11
2
12
4
7
13
1
5
0
15
10
3
9
8
6
1yyyy0
4
2
1
11
10
13
7
8
15
9
12
5
6
3
0
14
1yyyy1
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3
S6
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x1100x
x1101x
x1110x
x1111x
0yyyy0
12
1
10
15
9
2
6
8
0
13
3
4
14
7
5
11
0yyyy1
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
8
1yyyy0
9
14
15
5
2
8
12
3
7
0
4
10
1
13
11
6
1yyyy1
4
3
2
12
9
5
15
10
11
14
1
7
6
0
8
13
S7
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x1100x
x1101x
x1110x
x1111x
0yyyy0
4
11
2
14
15
0
8
13
3
12
9
7
5
10
6
1
0yyyy1
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
1yyyy0
1
4
11
13
12
3
7
14
10
15
6
8
0
5
9
2
1yyyy1
6
11
13
8
1
4
10
7
9
5
0
15
14
2
3
12
S8
x0000x
x0001x
x0010x
x0011x
x0100x
x0101x
x0110x
x0111x
x1000x
x1001x
x1010x
x1011x
x1100x
x1101x
x1110x
x1111x
0yyyy0
13
2
8
4
6
15
11
1
10
9
3
14
5
0
12
7
0yyyy1
1
15
13
8
10
3
7
4
12
5
6
11
0
14
9
2
1yyyy0
7
11
4
1
9
12
14
2
0
6
10
13
15
3
5
8
1yyyy1
2
1
14
7
4
10
8
13
15
12
9
0
3
5
6
11
Jadual ini mendaftar lapan kotak-S yang digunakan dalam DES. Setiap kotak-S mengganti masukan 6 bit ke keluaran 4 bit. Bila diberikan masukan 6 bit, keluarannya ditentukan dengan memilih baris dari bit-bit luar dan memilih kolum dari empat bit tengah. Misalnya, masukan 011011 memiliki bit-bit terluar "01" dan empat bit tengah 1101 sehingga S5(011011) adalah 1001. (Lihat kotak-S).
Pembuatan kunci
Kunci utama yang diberikan dari pengguna ialah 64 bit. Operasi berikut dilakukan daripadanya.
Permutasi dengan kotak PC-1
Bit-bit pada kunci utama dipermutasikan dengan kotak PC-1 (lihat di atas) yang terdiri dari penghapusan bit paritas dan permutasi.
Pusingan bit
Sebelum kunci pusingan dipilih, setiap setengah keadaan penjadualan kunci digeser melingkar ke kiri beberapa kali.
Jadual pusingan bit
Pusingan ke-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Jumlah geseran
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
Pemampatan kunci
Bit-bit hasil putaran dipermutasikan dengan kotak PC-2 (lihat di atas).