BAB IV IMPLEMENTASI DAN PENGUJIAN
Pada tahap ini dilakukan pembuatan sistem sesuai dengan analisis dan perancangan dan kemudian melakukan pengujian sistem.
4.1 Implementasi Sistem
Sistem dibangun dengan bahasa pemrograman C dengan .NET sebagai library untuk menyajikan Graphical User Interface terhadap user. Program ini terdiri 5 tampilan
yaitu tampilan utama, tampilan buat pesan, tampilan dekrip pesan, tampilan bantuan, dan tampilan tentang.
4.1.1. Tampilan Utama
Tampilan utama atau home merupakan tampilan yang pertama kali muncul apabila sistem dibuka. Pada tampilan ini, terdapat lima button yang memiliki fungsi masing-
masing pada sistem. Tampilan utama dapat dilihat pada Gambar 4.1.
Gambar 4.1 Tampilan utama
Universitas Sumatera Utara
4.1.2. Tampilan Buat Pesan
Tampilan pesan baru digunakan untuk membuat pesan dari plaintext ke ciphertext yang kemudian pesan tersebut dikirim melalui jaringan seluler. Pada form ini
pengguna dapat menginputkan nomor handphone tujuan dengan menginputkan secara langsung. Tampilan buat pesan dapat dilihat pada Gambar 4.2.
Gambar 4.2 Tampilan buat pesan 4.1.3. Tampilan Dekripsi Pesan
Tampilan dekripsi pesan digunakan untuk mendekripsikan pesan rahasia yang masuk ke perangkat seluler dengan menggunakan kunci yang sudah disepakati oleh pengirim
dan pengguna dalam mengembalikan ciphertext ke plaintext. Tampilan dekripsi pesan dapat dilihat pada Gambar 4.3.
Universitas Sumatera Utara
Gambar 4.3 Tampilan dekripsi pesan 4.1.4. Tampilan Bantuan
Tampilan bantuan merupakan tampilan yang berisi panduan dalam menggunakan sistem ini. Tampilan bantuan dapat dilihat pada Gambar 4.4.
Gambar 4.4 Tampilan bantuan
Universitas Sumatera Utara
4.1.5. Tampilan Tentang
Tampilan tentang merupakan tampilan yang berisi info singkat dari penulis. Tampilan tentang dapat dilihat pada Gambar 4.5.
Gambar 4.5 Tampilan tentang 4.2
Pengujian Sistem
Pengujian sistem dilakukan untuk melihat keberhasilan dan ketepatan sistem dalam proses enkripsi-dekripsi pesan menggunakan algoritma vigenere dan proses enkripsi-
dekripsi kunci menggunakan algoritma DES, serta untuk mengetahui pengaruh panjang plaintext terhadap lama proses enkripsi dan dekripsi pesan. Pada pengujian ini
dimisalkan plaintext = farid akbar, kunci vigenere = komputer, kunci DES = likaliku.
4.2.1. Skenario Enkripsi Pesan Dengan Algoritma Vigenere
Misalkan plaintext adalah “farid akbar” dan kunci vigenere adalah “komputer”. Proses enkripsi pesan dengan algoritma vigenere ditampilkan pada Tabel 4.1.
Tabel 4.1 Enkripsi vigenere P
t
Key P
ASCII
Key
ASCII
C
ASCII
= P
ASCII
+ Key
ASCII
mod 95+32 C
t
F k
102 107
51 3
A o
97 111
50 2
R m
114 109
65 A
Universitas Sumatera Utara
I p
105 112
59 ;
D u
100 117
59 ;
space t
32 116
85 U
A e
97 101
40 K
r 107
114 63
? B
k 98
107 47
A o
97 111
50 2
R m
114 109
65 A
Dari proses enkripsi didapat ciphertext = “32A;;U?2A”. 4.2.2. Skenario Enkripsi Pesan Dengan Algoritma DES
Pada skenario ini dimisalkan plaintext yang merupakan kunci vigenere yaitu “komputer”, dan kunci DES adalah “likaliku”. Sebelum melakukan proses enkripsi,
ubah plaintext dan kunci DES kedalam bentuk biner. Plaintext :
Key : k = 01101011
l = 01101100
o = 01101111 i
= 01101001 m = 01101101
k = 01101011 p = 01110000
a = 01100001 u = 01110101
l = 01101100
t = 01110100 i
= 01101001 e = 01100101
k = 01101011 r = 01110010
u = 01110101 a.
Initial permutation key Generate kunci yang akan digunakan untuk mengenkripsi plaintext dengan
menggunakan tabel 4.2, pada langkah ini terjadi kompresi dengan membuang 1 bit masing-masing blok kunci dari 64 bit menjadi 56 bit.
k = 0110110001101001011010110110000101101100011010010110101101110101
Universitas Sumatera Utara
Tabel 4.2 Tabel PC-1
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
Sehingga k+ = 00000000111111111111111110000100010010010001011101110000 b.
Splitting key Bagi k+ menjadi dua bagian yaitu C
dan D yang masing-masing berjumlah 28 bit.
k+ = 00000000111111111111111110000100010010010001011101110000 C
= 0000000011111111111111111000 D
= 0100010010010001011101110000 c.
Membuat 16 subkey menggunakan shifting Buat 16 pasang C
n
dan D
n
untuk 1 = n = 16. Setiap C
n
dan D
n
diciptakan dari pasangan sebelumnya C
n-1
dan D
n-1
untuk 1 = n = 16 melalui sejumlah pergeseran ke kiri dari blok bit sebelumnya. Untuk melakukan pergeseran ke kiri dilakukan
dengan bergerak setiap bit dari blok data satu tempat ke kiri dengan bit pertama pergi ke ujung blok. Proses pembuatan C
n
dan D
n
ditampilkan pada Tabel 4.3.
Tabel 4.3 Pembuatan C
n
dan D
n
Literasi ke- Banyaknya pergeseran
Subkey
C : 0000000011111111111111111000
D : 0100010010010001011101110000
1 1
C
1
: 0000000111111111111111110000 D
1
: 1000100100100010111011100000 2
1 C
2
: 0000001111111111111111100000 D
2
: 0001001001000101110111000001 3
2 C
3
: 0000111111111111111110000000 D
3
: 0100100100010111011100000100 4
2 C
4
: 0011111111111111111000000000 D
4
: 0010010001011101110000010001
Universitas Sumatera Utara
5 2
C
5
: 1111111111111111100000000000 D
5
: 1001000101110111000001000100 6
2 C
6
: 1111111111111110000000000011 D
6
: 0100010111011100000100010010 7
2 C
7
: 1111111111111000000000001111 D
7
: 0001011101110000010001001001 8
2 C
8
: 1111111111100000000000111111 D
8
: 0101110111000001000100100100 9
1 C
9
: 1111111111000000000001111111 D
9
: 1011101110000010001001001000 10
2 C
10
: 1111111100000000000111111111 D
10
: 1110111000001000100100100010 11
2 C
11
: 1111110000000000011111111111 D
11
: 1011100000100010010010001011 12
2 C
12
: 1111000000000001111111111111 D
12
: 1110000010001001001000101110 13
2 C
13
: 1100000000000111111111111111 D
13
: 1000001000100100100010111011 14
2 C
14
: 0000000000011111111111111111 D
14
: 0000100010010010001011101110 15
2 C
15
: 0000000001111111111111111100 D
15
: 0010001001001000101110111000 16
1 C
16
: 0000000011111111111111111000 D
16
: 0100010010010001011101110000 d.
Final permutation key Sebelum melakukan permutasi akhir, gabungkan terlebih dahulu masing-masing
pasangan data. Setelah itu generate setiap blok bit C
n
D
n
untuk 1 = n = 16 dengan Tabel 4.4. sehingga terbentuk 16 kunci dengan 48 bit didalam masing-masing kunci.
Universitas Sumatera Utara
Tabel 4.4. Tabel PC-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
Sehingga K
1
= 111100 001011 111001 100110 000010 001110 011000 101110 K
2
= 111000 001011 111001 110110 000000 000101 110100 111001 K
3
= 111001 001111 011001 110110 000010 110011 100000 110100 K
4
= 111001 101101 011101 110010 111000 010100 100110 110000 K
5
= 111011 101101 001101 110011 000000 010000 101000 011111 K
6
= 101011 111101 001101 011011 110101 110001 000010 010100 K
7
= 001011 110101 001111 011011 000000 010000 001111 101101 K
8
= 001111 110101 100111 011001 000100 101011 100010 000101 K
9
= 000111 110101 100111 011001 001110 000010 000001 001111 K
10
= 000111 110110 100111 011101 101001 101111 000010 000010 K
11
= 000111 110110 110110 001101 001001 000010 011101 100011 K
12
= 010110 110010 110110 101101 101111 101000 100001 000010 K
13
= 110110 011010 110010 101101 010001 001100 011101 010010 K
14
= 110100 011010 111010 101110 000111 011010 010001 001000 K
15
= 111100 001011 111010 100110 111010 001101 010001 000000 K
16
= 111100 001011 111000 100110 010110 111001 100010 101000 e.
Initial permutation plaintext Permutasi awal IP dari plaintext M adalah langkah pertama dari enkripsi pesan.
Generate plaintext dengan menggunakan tabel 4.5. M = 0110101101101111011011010111000001110101011101000110010101110010
Universitas Sumatera Utara
Tabel 4.5 Tabel 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
Sehingga, IP = 1111111110111000011101100101011100000000111111110000011110000011
f. Splitting IP
Bagi IP menjadi dua bagian yaitu L dan R
yang masing-masing berjumlah 32 bit. IP = 1111111110111000011101100101011100000000111111110000011110000011
L = 11111111 10111000 01110110 01010111
R = 00000000 11111111 00000111 10000011
g. Iterasi
Lakukan 16 kali iterasi untuk 1 = n = 16 dihitung: L
n
= R
n-1
R
n
= L
n-1
⊕ ? R
n-1
, K
n
Fungsi ? beroperasi pada dua blok data yaitu R
n-1
dan K
n
yang akan menghasilkan 32 bit blok data. Proses perhitungan fungsi ? terdiri dari 4 langkah:
1. E permutasi 2. XOR dengan subkey
3. Transformasi S box 4. P permutasi
1. E permutasi Perluas blok R
n-1
dari 32 bit menjadi 48 bit dengan cara generate R
n-1
dengan menggunakan tabel 4.6.
R = 00000000 11111111 00000111 10000011
Universitas Sumatera Utara
Tabel 4.6. 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
Sehingga, ER
= 100000 000001 011111 111110 100000 001111 110000 000110 2. XOR dengan subkey
XOR ER
n-1
dengan K
n
kunci. Pada iterasi pertama itu adalah K
1
⊕ ER .
K
1
= 111100 001011 111001 100110 000010 001110 011000 101110 ER
= 100000 000001 011111 111110 100000 001111 110000 000110 K
1
⊕ ER = 011100 001010 100110 011000 100010 000001 101000 101000
3. Transformasi S box Pecah 48 bit dari K
1
⊕ ER menjadi 8 kelompok yang berisi 6 bit. Setelah itu
lakukan transformasi dengan menggunakan S box sehingga 8 kelompok yang berisi 6 bit akan digantikan dengan 8 kelompok 4 bit.
Cara melakukan transformasi : bit pertama dan bit terakhir dari kelompok 6 bit akan membentuk bilangan biner dalam range desimal 0 sampai 3 yang mewakili dari
nomor baris dari tabel S1 box. 4 bit ditengah dari kelompok 6 bit akan membentuk bilangan biner dalam range desimal 0 sampai 15 yang mewaliki dari nomor kolom
dari tabel S1 box. Kedua kordinat baris dan kolom tersebut akan menunjuk kepada angka desimal dalam bentuk biner 4 bit. Lakukan berulang kepada 8 kelompok 6 bit
terhadap 8 S box sehingga mengeluarkan output 8 kelompok 4 bit. Tabel S box dapat dilihat pada Tabel 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, dan 4.14.
Universitas Sumatera Utara
Tabel 4.7. S box 1
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 0 14
4 13 1
2 15 11 8
3 10
6 12
5 9
7 1
15 7 4
14 2 13 1
10 6 12 11
9 5
3 8
2 4
1 14 8
13 6 2
11 15 12 9
7 3
10 5
3 15 12 8 2
4 9
1 7
5 11
3 14 10
6 13
Tabel 4.8. S box 2
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 0 15
1 8
14 6
11 3
4 9
7 2
13 12 5 10
1 3
13 4 7
15 2 8
14 12 1
10 6
9 11 5
2 14 7
11 10 4 13 1
5 8 12
6 9
3 2 15
3 13 8
10 1 3
15 4
2 11
6 7
12 5
14 9
Tabel 4.9. S box 3
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 0 10
9 14
6 3
15 5 1
13 12 7 11
4 2
8 1 13
7 9
3 4
6 10
2 8
5 14 12 11 15 1
2 13 6
4 9
8 15
3 11
1 2
12 5
10 14 7 3
1 10 13 0
6 9
8 7
4 15 14
3 11 5
2 12
Tabel 4.10. S box 4
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 7
13 14 3 6
9 10
1 2
8 5 11 12
4 15 1 13
8 11 5
6 15
3 4
7 2
12 1
10 14 9 2 10
6 9
12 11 7
13 15 1
3 14
5 2
8 4
3 3
15 0 6
10 1 13 18
9 4
5 11 12
7 2 14
Universitas Sumatera Utara
Tabel 4.11. S box 5
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 2
12 4 1
7 10 11 6
8 5
3 15 13
14 9 1 14 11 2
12 4
7 13 1
5 0 15 10
3 9
8 15 2
4 2
1 11 10 13
7 8
15 9 12
5 6
3 0 14
3 11 8
12 7 1
14 2
13 6
15 9 10
4 5
3
Tabel 4.12. S box 6
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 0 12
1 10 15
9 2
6 8
13 3
4 14 7
5 11 1 10 15 4
2 7
12 9
5 6
1 13 14 11
3 8
2 9
14 15 5 2
8 12 3
7 4
10 1
13 11 6 3
4 3
2 12
9 5
15 10 11 14 1
7 6
8 13
Tabel 4.13. S box 7
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 4
11 2 14 15 0
8 13
3 12
9 7
5 10
6 1
1 13 11 7
4 9
1 10 14
3 5
12 2
15 8
6 2
1 4
11 13 12 3 7
14 10 15 6
8 5
9 2
3 6
11 13 8 1
4 10 7
9 5
15 14 2
3 12
Tabel 4.14. S box 8
1 2
3 4
5 6
7 8
9 10 11 12 13 14 15 0 13
2 8
4 6
15 11 1 10
9 3
14 5
12 7 1
1 15 13 8
10 3 7
4 12
5 6
11 14
9 2
2 7
11 4 1
9 12 14 2
6 10 13 15 3
5 8
3 2
1 14 7
4 10
8 13 15 12
9 3
5 6 11
Universitas Sumatera Utara
Sehingga, K
1
⊕ ER = B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
= 011100 001010 100110 011000 100010 000001 101000 101000
SB
1
SB
2
SB
3
SB
4
SB
5
SB
6
SB
7
SB
8
= 0000 1011 1001 1011 0010 1010 1100 1001
4. P permutasi Langkah terakhir dari perulangan adalah generate dengan menggunakan tabel 4.15.
SB
1
SB
2
SB
3
SB
4
SB
5
SB
6
SB
7
SB
8
= 0000 1011 1001 1011 0010 1010 1100 1001
Tabel 4.15. 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
Sehingga, ?
= P[SB
1
SB
2
SB
3
SB
4
SB
5
SB
6
SB
7
SB
8
] = 1101 1100 0111 1000 0100 1001 1100 0001
jadi pada perulangan pertama didapat : L
= 1111 1111 1011 1000 0111 0110 0101 0111 ? R
,K
1
= 1101 1100 0111 1000 0100 1001 1100 0001 R
1
= L ⊕ ? R
,K
1
= 0010 0011 1100 0000 0011 1111 1001 0110 dan
L
1
= R = 0000 0000 1111 1111 0000 0111 1000 0011
setelah 16 kali perulangan akan didapat L
16
dan R
16
: L
16
= 0001 1000 0001 0000 0110 1101 1111 1101 R
16
= 1101 0010 1110 1110 0001 1100 1011 1111
Universitas Sumatera Utara
h. Reverse
Balikkan urutan kedua blok kemudian gabungkan. L
16
= 0001 1000 0001 0000 0110 1101 1111 1101 R
16
= 1101 0010 1110 1110 0001 1100 1011 1111 R
16
L
16
= 11010010 11101110 00011100 10111111 00011000 00010000 01101101 11111101
i. IP
-1
permutation Generate dengan menggunakan tabel 4.16 untuk mendapatkan hasil akhir ciphertext.
R
16
L
16
= 11010010 11101110 00011100 10111111 00011000 00010000 01101101 11111101
Tabel 4.16. 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
Sehingga, IP
-1
= 1001011110111111100111101100001110111011100010110101110011110001
dan menghasilkan ciphertext dalam heksadesimal = “97BF9EC3BB8B5CF1”. 4.2.3. Skenario Dekripsi Pesan Dengan Algoritma DES
DES menggunakan algoritma yang sama untuk proses enkripsi dan dekripsi. Jika pada proses enkripsi urutan kunci internal yang digunakan adalah K
1
, K
2
, ..., K
16
, maka pada proses dekripsi urutan kunci yang digunakan adalah K
16
, K
15
, ..., K
1
untuk setiap putaran. Dari proses enkripsi didapat ciphertext dalam bentuk heksa yaitu
“97BF9EC3BB8B5CF1” dan kunci DES adalah “likaliku. Sebelum melakukan proses dekripsi, ubah ciphertext dan kunci DES kedalam bentuk biner.
M = 1001011110111111100111101100001110111011100010110101110011110001 k = 0110110001101001011010110110000101101100011010010110101101110101
Universitas Sumatera Utara
a. 16 rounds keys
Urutan kunci pada proses dekripsi merupakan kebalikan dari urutan kunci pada proses enkripsi. 16 kunci untuk proses dekripsi ditampikan pada Tabel 4.17.
Tabel 4.17. 16 kunci dekripsi K
i
Enkripsi K
i
Dekripsi
K
1
111100 001011 111001 100110 000010 001110 011000 101110
111100 001011 111000 100110 010110 111001 100010 101000
K
2
111000 001011 111001 110110 000000 000101 110100 111001
111100 001011 111010 100110 111010 001101 010001 000000
K
3
111001 001111 011001 110110 000010 110011 100000 110100
110100 011010 111010 101110 000111 011010 010001 001000
K
4
111001 101101 011101 110010 111000 010100 100110 110000
110110 011010 110010 101101 010001 001100 011101 010010
K
5
111011 101101 001101 110011 000000 010000 101000 011111
010110 110010 110110 101101 101111 101000 100001 000010
K
6
101011 111101 001101 011011 110101 110001 000010 010100
000111 110110 110110 001101 001001 000010 011101 100011
K
7
001011 110101 001111 011011 000000 010000 001111 101101
000111 110110 100111 011101 101001 101111 000010 000010
K
8
001111 110101 100111 011001 000100 101011 100010 000101
000111 110101 100111 011001 001110 000010 000001 001111
K
9
000111 110101 100111 011001 001110 000010 000001 001111
001111 110101 100111 011001 000100 101011 100010 000101
K
10
000111 110110 100111 011101 101001 101111 000010 000010
001011 110101 001111 011011 000000 010000 001111 101101
K
11
000111 110110 110110 001101 001001 000010 011101 100011
101011 111101 001101 011011 110101 110001 000010 010100
K
12
010110 110010 110110 101101 101111 101000 100001 000010
111011 101101 001101 110011 000000 010000 101000 011111
K
13
110110 011010 110010 101101 010001 001100 011101 010010
111001 101101 011101 110010 111000 010100 100110 110000
Universitas Sumatera Utara
K
14
110100 011010 111010 101110 000111 011010 010001 001000
111001 001111 011001 110110 000010 110011 100000 110100
K
15
111100 001011 111010 100110 111010 001101 010001 000000
111000 001011 111001 110110 000000 000101 110100 111001
K
16
111100 001011 111000 100110 010110 111001 100010 101000
111100 001011 111001 100110 000010 001110 011000 101110
b. Initial permutation ciphertext
Generate plaintext dengan menggunakan tabel 4.5. M = 0000101101010001000111111001111111100111000110110101101001010011
Sehingga, IP = 1101001011101110000111001011111100011000000100000110110111111101
c. Splitting IP
Bagi IP menjadi dua bagian yaitu L dan R
yang masing-masing berjumlah 32 bit. IP = 1101001011101110000111001011111100011000000100000110110111111101
L = 11010010 11101110 00011100 10111111
R = 00011000 00010000 01101101 11111101
d. Iterasi
Lakukan 16 kali iterasi untuk 1 = n = 16 dihitung: L
n
= R
n-1
R
n
= L
n-1
⊕ ? R
n-1
, K
n
Sama seperti enkripsi, proses perhitungan fungsi ? terdiri dari 4 langkah: 1. E permutasi
2. XOR dengan subkey 3. Transformasi S box
4. P permutasi setelah 16 kali perulangan akan didapat L
16
dan R
16
: L
16
= 00000000 11111111 00000111 10000011 R
16
= 11111111 10111000 01110110 01010111
Universitas Sumatera Utara
e. Reverse
Balikkan urutan kedua blok kemudian gabungkan. L
16
= 00000000 11111111 00000111 10000011 R
16
= 11111111 10111000 01110110 01010111 R
16
L
16
= 1111111110111000011101100101011100000000111111110000011110000011
f. IP
-1
permutation Generate dengan menggunakan tabel 4.16 untuk mendapatkan hasil akhir plaintext.
R
16
L
16
= 1111111110111000011101100101011100000000111111110000011110000011
Sehingga, IP
-1
= 0110101101101111011011010111000001110101011101000110010101110010
dan menghasilkan plaintext dalam bentuk heksadesimal = “6b6f6d7075746572” yang bila dikonversi menjadi bentuk ASCII = “komputer”.
4.2.4. Skenario Dekripsi Pesan Dengan Algoritma Vigenere