Implementasi Implementasi Algoritma Massey-Omura dan Algoritma Elias Gamma pada Simulasi Three-Pass Protocol

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