Material DES tambahan

Daripada Wikipedia, ensiklopedia bebas.

Rencana ini mengandungi penjelasan teknikal dari yang disinggung dalam rencana penguncian blok Piawaian Penyulitan Data (DES).

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)[sunting | sunting sumber]

Alur gerak bit pada 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)[sunting | sunting sumber]

Alur gerak bit pada 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)[sunting | sunting sumber]

Alur gerak bit pada fungsi ekspansi
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)[sunting | sunting sumber]

Alur gerak bit pada 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)[sunting | sunting sumber]

Alur gerak bit pada 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)[sunting | sunting sumber]

Alur gerak bit pada 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)[sunting | sunting sumber]

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[sunting | sunting sumber]

Kunci utama yang diberikan dari pengguna ialah 64 bit. Operasi berikut dilakukan daripadanya.

Permutasi dengan kotak PC-1[sunting | sunting sumber]

Bit-bit pada kunci utama dipermutasikan dengan kotak PC-1 (lihat di atas) yang terdiri dari penghapusan bit paritas dan permutasi.

Pusingan bit[sunting | sunting sumber]

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[sunting | sunting sumber]

Bit-bit hasil putaran dipermutasikan dengan kotak PC-2 (lihat di atas).

Bacaan lanjut[sunting | sunting sumber]

  • Data Encryption Standard (DES) (PDF). National Institute of Standards and Technology (NIST). 25 Oktober 1999. FIPS PUB 46-3.

Pautan luar[sunting | sunting sumber]