Tugas Keamanan Jaringan
Gambar di bawah adalah sebuah disain algoritma kriptografi simetris yang dimodifikasi dari Data
Encryption Standard (DES) dengan spesifikasi: Plaintext panjangnya 16 bit, Ciphertext 16 bit, Cipher
key 14 bit, dan jumlah Round adalah 2, dimana panjang key Ki setiap Round adalah 12 bit.
PERTANYAAN: Susunlah tabel Initial Permutation, Final Permutation, blok diagram yang
membentuk Round-key Generator beserta isi tabel dari blok di dalamnya seperti Expansion P-Box,
Compression P-Box, S-Box, Straight P-Box, dan Fungsi Fiestel. Setelah itu tes disain Anda dengan input
berupa Plaintext 0xA08B, apa Ciphertext yang dihasilkan ?
DIKETAHUI:
Panjang plaintext = 16 bit Jumlah Round = 2, Panjang key Ki setiap
Panjang ciphertext = 16 bit Round = 12 bit
Panjang cipherkey = 14 bit
PERTANYAAN:
1. Susunlah tabel Initial Permutation, Final Permutation, blok diagram yang membentuk Round-
key Generator beserta isi tabel dari blok di dalamnya seperti Expansion P-Box, Compression P-
Box, S-Box, Straight P-Box, dan Fungsi Fiestel.
2. Tes disain tersebut dengan input berupa Plaintext 0xA08B, apa Ciphertext yang dihasilkan ?
JAWABAN:
Desain Data Encryption Standard (DES)
Tabel 1. Initial dan Final Permutation
Initial Permutation Final Permutation
5 10 12 14 6 15 16 10
15 1 6 8 1 7 14 8
11 4 13 9 12 2 9 3
16 7 2 3 11 4 5 13
Cat. Untuk posisi bit ke-1 adalah bit ke-5,
Untuk posisi bit ke-5 adalah bit ke-15
Expansion P-box
Tabel 2. Expansion P-Box
8 1 2 3 4 5 Cat. Untuk posisi bit ke-1 adalah bit ke-8,
4 5 6 7 8 1 Untuk posisi bit ke-7 adalah bit ke-4
S-box
Tabel 3. S-box
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 04 13 01 02 15 11 08 01 10 06 12 05 09 00 07
1 00 15 07 04 14 02 13 10 03 06 12 11 09 05 03 08
2 04 01 14 08 13 06 02 11 15 12 09 07 03 10 05 00
3 15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13
Tabel 4. Straight Pemutation Box
1 2 3 4 5 6 7 8 Cat. Untuk posisi bit ke-1
2 3 7 5 6 8 4 1 adalah bit ke-2
Key Generation
Tabel 5. Parity Bit Table 64 => 14
64 29 33 39 01 09 17
05 23 28 54 58 07 19
Tabel 6. Compression P-Box 14 => 12
10 14 13 8 7 6 2
3 1 11 9 4
Plaintext = 0xA08B
Ciphertext ??
Langkah 1. Convert hexa to binary Tabel 7. Tabel Initial Permutation
0xA08B = 0x1010000010001011 (16 bit)
Langkah 2. Initial Permutation
1010000010001011 =>
0000 1100 0011 1001
Langkah 3. Bedah Round 1
0000 1100 0011 1001
Li+1 = Ri ; i=0
L1 = R0
L2 = R1
R1 = L0 + f (R0, K1 )
R2 = L1 + f (R1, K2 )
Cat. : Untuk melanjutkan perhitungan round diperlukan nilai K,
sehingga lebih dahulu dilakukan perhitungan K di Round Key
Generation
Langkah 4. Round-Key Generator
Key = 00A0B0C0D0E3456F (64 bits)
Key = 0000 0000 1010 0000 1011 0000 1100
000032
1101 0000 1110 0011 0100 0101 0110
111164
Tabel 8. Tabel Parity Bit
Cipher Key = 10 1101 1000 1101(14 bits)
Kanan(7 bits) = 0001101 => Shift left(1) = 0011010
Kiri(7 bits) = 1011011 => Shift left(1) = 0110111
Compression P-box
Hasil Shift = 0110 1110 0110 10
Hasil Compression = 1010 1111 0100 (Round Key 1)
Kanan(7 bits) = 0011010 => Shift left(1) = 0110100
Kiri(7 bits) = 0110111 => Shift left(1) = 1101110
Hasil Shift = Kiri + Kanan = 1101 1100 1101 00
Hasil Compression = 1000 0110 1011 (Round Key 2)
Langkah 5. Feistel Cipher f (R0, K1 )
Expansion P-box
R0 = 0011 1001
Tabel 9. Tabel Expansion P-box
8 1 2 3 4 5
4 5 6 7 8 1
Rexp = 1001 1111 0010
K1 = 1010 1111 0100 +
Input S-Boxes = 0011 0000 0110
S-Boxes
Input = 001100 000110
Tabel 10. Tabel S-box
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 04 13 01 02 15 11 08 01 10 06 12 05 09 00 07
1 00 15 07 04 14 02 13 10 03 06 12 11 09 05 03 08
2 04 01 14 08 13 06 02 11 15 12 09 07 03 10 05 00
3 15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13
001100 => Pada baris 00 (biner) atau 0 (desimal) dan pada kolom 0110 (biner) atau 5
(desimal) Sehingga output berdasarkan tabel adalah 15 (desimal) atau 1111 (biner).
000110 => Pada baris 00 (biner) atau 0 (desimal) dan pada kolom 0011 (biner) atau 3
(desimal) Sehingga output berdasarkan tabel adalah 01 (desimal) atau 0001 (biner).
Output S-Boxes = 1111 0001
Straight P-box
Input Straight P-Box = 1111 0001
Tabel 11. Tabel Straight P-box
1 2 3 4 5 6 7 8 Cat. Untuk posisi bit ke-1
2 3 7 5 6 8 4 1 adalah bit ke-2
Output Straight P-Box = 1100 0111
Sehingga f (R0, K1 ) = 1100 0111
Langkah 6. Kembali ke Round 1
0000 1100 0011 1001
Li+1 = Ri ; i=0
L1 = R0
L2 = R1
R1 = L0 + f (R0, K1 )
R2 = L1 + f (R1, K2 )
L1 = R0 = 0011 1001
R1 = L0 + f (R0, K1 )
= 0000 1100 + 1100 0111
= 1100 1011
Output Round 1 = L1 + R1 = 0011 1001 1100 1011
Langkah 7. Bedah Round 2
0011 1001 1100 1011
Li+1 = Ri ; i=1
L2 = R1
R2 = L1 + f (R1, K2 )
Feistel Cipher f (R1, K2 )
Expansion P-box
R1 = 1100 1011
8 1 2 3 4 5
4 5 6 7 8 1
Rexp2 = 1110 0101 0111
K2 = 1000 0110 1011 +
Input S-Boxes = 0110 0011 1100
S-Boxes
Input = 011000 111100
Tabel 12. Tabel S-box
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 04 13 01 02 15 11 08 01 10 06 12 05 09 00 07
1 00 15 07 04 14 02 13 10 03 06 12 11 09 05 03 08
2 04 01 14 08 13 06 02 11 15 12 09 07 03 10 05 00
3 15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13
011000 => Pada baris 00 (biner) atau 0 (desimal) dan pada kolom 1100 (biner) atau 12
(desimal) Sehingga output berdasarkan tabel adalah 05 (desimal) atau 0101 (biner).
111100 => Pada baris 10 (biner) atau 2 (desimal) dan pada kolom 1110 (biner) atau 14
(desimal) Sehingga output berdasarkan tabel adalah 05 (desimal) atau 0101 (biner).
Output S-Boxes = 0101 0101
Straight P-box
Input Straight P-Box = 0101 0101
Tabel 13. Tabel Straight P-box
1 2 3 4 5 6 7 8 Cat. Untuk posisi bit ke-1
2 3 7 5 6 8 4 1 adalah bit ke-2
Output Straight P-Box =
Sehingga f (R0, K1 ) = 1100 0111
L2 = R1 = 1100 1011
R2 = L1 + f (R1, K2 )
= 0011 1001 + 1100 0111
= 1111 1110
Output Round 2 = L2 + R2 = 1100 1011 1111 1110
Langkah 8. Final Permutation
Input Final Permutation = 1100 1011 1111 1110
Tabel 14. Tabel Final Permutation
Output Final Permutation = 0101 1111 1110 1011
Langkah 9. Convert Final Permutation (biner) ke hexadecimal
0111 1111 0110 0010 => 5FEB
Plaintext = 0xA08B, Ciphertext yang dihasilkan adalah 0x5FEB