BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Pada sistem yang dibangun untuk mengimplementasikan algoritma Massey-Omura dan algoritma Elias Gamma pada simulasi Three-Pass Protocol ini menggunakan bahasa
pemrograman C.
4.1.1 Enkripsi Pengirim Sender
Misalkan kita aka n melakukan input string “ANDIKA ILKOM” pada sistem, maka
terlebih dahulu kita melakukan pengacakan kunci seperti dibawah ini : p = 87502707270147062874246341068527531821
eA = 73302921936338448962701814819195511821 dA = 60584862746847656342022136360540644381
eB = 16130643589832143709017910649031057389 dB = 11292143878957431149223847834340338669
Pengacakan kunci dilakukan oleh pengirim dan penerima pesan. Nilai p merupakan bilangan prima yang telah disepakati kedua belah pihak. eA merupakan
kunci enkripsi pengirim dengan syarat 2 eA p-1 dan eA relatif prima dengan p-1. Sedangkan dA merupakan kunci dekripsi pengirim dengan syarat bahwa dA invers dari
eA. Begitu juga berlaku untuk eB dan dB. Plaintext : “ANDIKA ILKOM”
Akan dilakukan perubahan string plaintext kedalam bentuk byte seperti terlihat pada tabel dibawah ini :
Tabel 4.1 Perhitungan Byte Plaintext
Plaintext ASCII
Biner A
65 01000001
Universitas Sumatera Utara
Plaintext ASCII
Biner N
78 01001110
D 68
01000100 I
73 01001001
K 75
01001011 A
65 01000001
Sp 32
00100000 I
73 01001001
L 76
01001100 K
75 01001011
O 79
01001111 M
77 01001101
100110101001111010010110100110001001001001000000100000101001011010010 01010001000100111001000001. Sehingga didapatkan byte dari string paintext adalah
23926206480701174177557925441. Selanjutnya melakukan enkripsi pengirim untuk mendapatkan C1 dengan melakukan
perhitungan C1 = M
eA
mod p. M = 23926206480701174177557925441
p = 87502707270147062874246341068527531821 eA = 73302921936338448962701814819195511821
Sehingga didapatkan C1 = 42913776683880481616338513496188417178
4.1.2. Kompresi Ciphertext C1 Setelah didapatkan ciphertxt C1 maka dilakukan kompresi C1 dan kemudian
dikirimkan. Sebelumnya akan diubah C1 kedalam bentuk Array Byte C1 = { 154
116 60
175 1
78 239
215 236
23 112
138 139
228 72
32}
Universitas Sumatera Utara
Tabel 4.2 Perhitungan Kode Elias Gamma untuk C1
n C1
Kode Elias 1
154 1
2 116
010 3
60 011
4 175
00100 5
1 00101
6 78
00110 7
239 00111
8 215
0001000 9
236 0001001
10 23
0001010 11
112 0001011
12 138
0001100 13
139 0001101
14 228
0001110 15
72 0001111
16 32
000010000
Sehingga didapatkan C1 terkompresi dari tabel 4.2 : 101001100100001010011000111000100000010010001010000101100011000001101
00011100001111000010000
4.1.3. Dekompresi Ciphertext C1 Penerima mendapatkan pesan C1 terkompresi :
101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000
Nilai penyusunan tabel Elias Gamma diatas akan dikirimkan kepada penerima pesan dalam bentuk C1 Terkompresi. Dilakukan pembacaan kode Elias Gamma dan
mencocokkan karakter :
Universitas Sumatera Utara
154 116 60 175 1 78 239 215 236 23 112
1 010 011 00100 00101 00110 00111 0001000 0001001 0001010 0001011 138 139 228 72 32
0001100 0001101 0001110 0001111 000010000 Sehingga didapatkan Byte Array C1 kembali :
C1 = {154 116
60 175
1 78
239 215
236 23
112 138
139 228
72 32}
Kemudian byte array C1 diubah kedalam bentuk integer C1 = 42913776683880481616338513496188417178
4.1.4. Enkripsi Penerima Receiver Setelah menerima ciphertext C1 terkompresi dan melakukan dekompresi terhadap
pesan C1 pada tahap sebelumnya. Maka dilakukan enkripsi untuk mendapatkan ciphertext C2. Untuk menghitung C2 dilakukan C2 = C1
eB
mod p. C1 = 42913776683880481616338513496188417178
eB = 16130643589832143709017910649031057389 p = 87502707270147062874246341068527531821
Sehingga didapatkan C2 = 45052139263066886528873110188757581802
4.1.5. Kompresi Ciphertext C2 Setelah didapatkan ciphertxt C2 maka dilakukan kompresi C2 dan kemudian
dikirimkan. Sebelumnya akan diubah C2 kedalam bentuk Array Byte. C2 = {234
127 171
144 79
92 41
123 220
249 127
199 245
185 228
33 }
Tabel 4.3 Perhitungan Kode Elias Gamma untuk C2
n C2
Kode Elias 1
234 1
2 127
010 3
171 011
4 144
00100 5
79 00101
Universitas Sumatera Utara
n C2
Kode Elias 6
92 00110
7 41
00111 8
123 0001000
9 220
0001001 10
249 0001010
11 127
0001011 12
199 0001100
13 245
0001101 14
185 0001110
15 228
0001111 16
33 000010000
Sehingga didapatkan C2 terkompresi dari tabel 4.3 : 101001100100001010011000111000100000010010001010000101100011000001101
00011100001111000010000
4.1.6. Dekompresi Ciphertext C2 Penerima mendapatkan pesan C2 terkompresi :
101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000
Nilai penyusunan tabel Elias Gamma diatas akan dikirimkan kepada penerima pesan dalam bentuk C2 Terkompresi. Dilakukan pembacaan kode Elias Gamma dan
mencocokkan karakter : 234 127 171 144 79 92 41 123 220 249 127
1 010 011 00100 00101 00110 00111 0001000 0001001 0001010 0001011 199 245 185 228 33
0001100 0001101 0001110 0001111 000010000 Sehingga didapatkan Byte Array C2 kembali :
C2 = {234 127
171 144
79 92
41 123
220 249
127 199
245 185
228 33 }
Universitas Sumatera Utara
Kemudian byte array C2 diubah kedalam bentuk integer C2 = 45052139263066886528873110188757581802
4.1.7. Dekripsi Pengirim Sender Setelah menerima ciphertext C2 terkompresi dan melakukan dekompresi terhadap
pesan C2. Maka dilakukan enkripsi untuk mendapatkan ciphertext C3. Untuk menghitung C3 dilakukan C3 = C2
dA
mod p. p = 87502707270147062874246341068527531821
dA = 60584862746847656342022136360540644381 sehingga di dapatkan ciphertext C3 :
C3 = 1166794880944938213782198080100523527
4.1.8.. Kompresi Ciphertext C3 Setelah didapatkan ciphertext C3 maka dilakukan kompresi C3 dan kemudian
dikirimkan. Sebelumnya akan diubah C3 kedalam bentuk Array Byte. C3 = {7
94 214
32 52
181 108
154 95
197 23
219 109
183 224
0}
Tabel 4.4 Perhitungan Kode Elias Gamma untuk C3
n C3
Kode Elias 1
7 1
2 94
010 3
214 011
4 32
00100 5
52 00101
6 181
00110 7
108 00111
8 154
0001000 9
95 0001001
10 197
0001010 11
23 0001011
12 219
0001100
Universitas Sumatera Utara
n C3
Kode Elias 13
109 0001101
14 183
0001110 15
224 0001111
16 000010000
Sehingga didapatkan C3 terkompresi dari tabel 4.4 : 101001100100001010011000111000100000010010001010000101100011000001101
00011100001111000010000
4.1.9. Dekompresi Ciphertext C3 Penerima mendapatkan pesan C2 terkompresi :
101001100100001010011000111000100000010010001010000101100011000001101 00011100001111000010000
Nilai penyusunan tabel Elias Gamma diatas akan dikirimkan kepada penerima pesan dalam bentuk C2 Terkompresi. Dilakukan pembacaan kode Elias Gamma dan
mencocokkan karakter : 7 94 214 32 52
181 108 154 95 197 23 1 010 011 00100 00101 00110 00111 0001000 0001001 0001010 0001011
219 109 183 224 0 0001100 0001101 0001110 0001111 000010000
Sehingga didapatkan Byte Array C2 kembali : C3 = {7
94 214
32 52
181 108
154 95
197 23
219 109
183 224
0 } Kemudian byte array C2 diubah kedalam bentuk integer
C3 = 1166794880944938213782198080100523527
4.1.10. Dekripsi Penerima Receiver Setelah menerima ciphertext C3 terkompresi dan melakukan dekompresi terhadap
pesan C3. Maka dilakukan enkripsi untuk mendapatkan ciphertext Plaintext. Untuk menghitung plaintext dilakukan M = C3
dB
mod p.
Universitas Sumatera Utara
C3 =1166794880944938213782198080100523527 dB = 11292143878957431149223847834340338669
M = 23926206480701174177557925441 Kemudian melakukan conversi byte M kedalam bentuk biner dan selanjutnya
melakukan pencocokan stiring kepada tabel ASCII. Proses akan diperlihatkan pada tabel 4.5 dibawah ini
Tabel 4.5 Conversi Tabel ASCII
Biner ASCII
Plaintext 01000001
65 A
01001110 78
N 01000100
68 D
01001001 73
I 01001011
75 K
01000001 65
A 00100000
32 Sp
01001001 73
I 01001100
76 L
01001011 75
K 01001111
79 O
01001101 77
M Sehingga didapatkan plaintext kembali adalah “ANDIKA ILKOM”
4.2. Pengujian