Material DES tambahan

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) 

+ 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) 

+ 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) 

+ 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) 

+ 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) 

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) 

+ 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  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).

 Bacaan lanjut 


 Pautan luar 
  Ilustrasi algoritme DES

Kategori:Piawaian Penyulitan Data
Kategori:Kotak-S