2.4.2. Permutasi Awal Initial Permutation
Sebelum putaran pertama, terhadap blok plaintext dilakukan permutasi awal initial permutation atau IP. Tujuan permutasi awal adalah mengacak plaintext sehingga
urutan bit-bit didalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi seperti pada Tabel 2.2.
Tabel 2.2. Permutasi awal initial pemutation
29 21
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 55
30 24
16 8
57 49
41 33
25 17
9 32
59 51
43 35
27 19
11 3
61 53
45 37
58 50
13 5
63 1
47 39
31 23
15 7
Cara membaca Tabel 2.2. dua entry ujung kiri atas 29 dan 21 berarti: “pindahkan bit ke-29 ke posisi bit 1”
“pindahkan bit ke-21 ke posisi bit 2”
2.4.3. Pembangkit Kunci Internal
Kunci internal dibutuhkan sebanyak 16 buah karena ada 16 putaran. Kunci tersebut yaitu K
1
, K
2
, ..., K
16
. Kunci-kunci internal ini dapat dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci ekternal panjangnya 64-bit atau 8 karakter.
Misalkan kunci ekternal yang disusun dari 64-bit adalah K. Kunci eksternal ini menjadi masukkan untuk permutasi dengan menggunakan matrik
permutasi kompresi PC-1 seperti pada Tabel 2.3.
Tabel 2.3. Matrik permutasi kompresi
57 49
41 33
25 17
9 1
58 50
42 33
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
Dalam permutasi ini, tiap bit ke delapan parity bit dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56-bit, sehingga dapat dikatakan
panjang kunci DES adalah 56-bit. Selanjutnya, 56-bit ini dibagi menjadi 2 dua bagian, kiri dan kanan, yang masing-masing disimpan di dalam C
dan D :
Universitas Sumatera Utara
C : berisi bit-bit dari K pada posisi
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
D : berisi bit-bit dari K pada posisi
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
Selanjutnya, ke dua bagian digeser ke kiri left shift sepanjang 1 satu atau 2dua bit tergantung pada setiap putaran. Operasi bergeser bersifat wripping atau
round shift. Misalkan C
i
, D
i
menyatakan penggabungan C
i
dan D
i
. C
i+1
, D
i+1
diperoleh dengan menggeser Ci dan Di satu atau dua bit.
Setelah pergeseran bit, C
i
, D
i
mengalami permutasi kompresi dengan menggunakan matriks PC-2, seperti pada Tabel 2.4.
Tabel 2.4. Permutasi kompresi 2
14 7
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
Dengan permutasi ini, kunci internal K
i
diturunkan dari C
i
, D
i
yang dalam hal ini K
i
merupakan penggabungan bit-bit C
i
pada posisi: 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10,
23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2 Dengan bit-bit D
i
pada posisi: 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48,
44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32 Jadi, setiap kunci internal Ki mempunyai panjang 48-bit. Proses pembangkitan Ki
tersebut dapat dilihat pada Gambar 2.7.
Universitas Sumatera Utara
Gambar 2.7. Proses pembangkitan kunci-kunci internal DES 2.4.4.
Proses Enkripsi
Proses enciphering terhadap blok plaintext dilakukan setelah permutasi awal. Setiap blok plaintext mengalami 16 kali putaran enciphering. Setiap putaran enciphering
merupakan jaringan Feistel yang secara matematis dinyatakan seperti rumus 2.3 dan rumus 2.4.
Diagram komputasi fungsi f diperlihatkan pada Gambar 2.8.
Universitas Sumatera Utara
Gambar 2.8. Rincian komputasi fungsi ?
E adalah fungsi ekspansi yang memperluas blok R
i-1
yang panjangnya 32 bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi
ekspansi seperti pada Tabel 2.5.
Tabel 2.5. Fungsi ekspansi
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
Selanjutnya, hasil ekspansi, yaitu ER
i-1
, yang panjangnya 48 bit di-XOR-kan dengan K
i
yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48 bit: ER
i - 1
XOR K
i
= A ............................................................................................ 2.5 Vektor A dikelompokan menjadi 8 kelompok, masing-masing 6 bit dan
menjadi masukkan bagi proses subtitution. Proses subtitution dilakukan dengan menggunakan 8 delapan buah kotak-S S-box, S1 sampai S8. Setiap S-box
menerima masukkan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6 bit pertama
Universitas Sumatera Utara
menggunakan S
1
, kelompok 6 bit ke dua menggunakan S
2
, dan seterusnya. Keluaran proses subtitution adalah vektor B yang panjangnya 48 bit. Vektor B menjadi
masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses subtitution S-box. Permutasi dilakukan dengan menggunakan matriks
permutasi P P-box seperti pada Tabel 2.6.
Tabel 2.6. Matriks permutasi P
16 7
20 21
29 12
28 17
1 15
23 26
5 8
31 10
2 8
24 14
32 27
3 9
19 13
30 6
22 11
4 25
Bit-bit PB merupakan keluaran dari fungsi f. Akhirnya, bit-bit PB di-XOR kan dengan L
i – 1
untuk mendapatkan R
i
. R
i
= L
i – 1
XOR PB ............................................................................................ 2.6 Jadi, keluaran dari putaran ke-i adalah
L
i
, R
i
=R
i – 1
, L
i – 1
XOR PB ........................................................................ 2.7 Skema perolehan Ri dapat dilihat pada Gambar 2.9.
Gambar 2.9. Skema perolehan Ri 2.4.5.
Permutasi Akhir Invers Initial Permutation
Permutasi akhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan. Proses permutasi menggunakan matriks permutasi awal balikan invers
initial permutation atau IP
1
seperti pada Tabel 2.7.
Universitas Sumatera Utara
Tabel 2.7. Matrik Permutasi Akhir
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
2.4.6. Proses Dekripsi