Implementasi Sistem Simulasi Pencarian Kunci Privat dengan Algoritma Silver-Pohlig-Hellaman pada Algoritma Kriptografi Elgamal

BAB 4 IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem

Sistem dibangun dengan bahasa pemrograman python dengan Tkinter sebagai library untuk menyajikan Graphical User Interface terhadap user. Terdapat empat tab utama yaitu tab Bangkitkan Kunci, Enkripsi, Dekripsi, dan Hack yang bekerja sesuai dengan nama tab masing-masing. 4.1.1 Tab Bangkitkan Kunci Tab ini digunakan untuk membangkitkan kunci ElGamal, tampilan dari tab Bangkitkan Kunci dapat dilihat pada Gambar 4.1. Gambar 4.1 Tab Bangkitkan Kunci Universitas Sumatera Utara Untuk membangkitkan kunci ElGamal, user akan memilih panjang digit bilangan prima yang diinginkan melalui dropdown list panjang kunci yang telah disediakan, kemudian menekan tombol „Generate‟, dan kunci ElGamal akan ditampilkan pada text box dibawahnya. Setelah kunci dibangkitkan, user dapat menyimpan kunci publik dan kunci privat tersebut ke dalam sebuah file dengan mene kan tombol „Export‟. 4.1.2 Tab Enkripsi Tab ini digunakan untuk mengenkripsi pesan dengan menggunakan kunci publik ElGamal yang telah diketahui, tampilan dari tab Enkripsi dapat dilihat pada Gambar 4.2. Gambar 4.2 Tab Enkripsi Untuk mengenkripsi pesan, user akan menginput kunci publik dengan cara import dari file dengan menekan tombol „Import‟ atau mengetikkannya secara manual. Pesan yang akan dienkripsi akan diketikkan di Text Area Plaintext atau dapat juga meng- import dari file dengan menekan tombol import. Untuk mengenkripsi pesan, user tinggal menekan tombol „Enkripsi‟, lalu Ciphertext hasil enkripsi akan ditampilkan di Universitas Sumatera Utara dalam Text Area Ciphertext. User dapat menyimpan Ciphertext ke dalam file dengan menekan tombol „Eksport‟. 4.1.3 Tab Dekripsi Tab ini digunakan untuk mengenkripsi pesan dengan menggunakan kunci privat ElGamal yang telah diketahui, tampilan dari tab Dekripsi dapat dilihat pada Gambar 4.3. Gambar 4.3 Tab Dekripsi Untuk mengenkripsi ciphertext, user akan menginput kunci privat dengan cara import dari file dengan menekan tombol „Import‟ atau mengetikkannya secara manual. Ciphertext yang akan didekripsi akan di-import dari file dengan menekan tombol import. Untuk mendekripsi ciphertext, user tinggal menekan tombol „Dekripsi‟, lalu Plaintext hasil dekripsi akan ditampilkan di dalam Text Area Plaintext. User dapat menyimpan Plaintext ke dalam file dengan menekan tombol „Eksport‟. Universitas Sumatera Utara 4.1.4 Tab Hack Tab ini digunakan untuk memecahkan kunci privat berdasarkan kunci publik yang diketahui. Gambar 4.4 Tab Hack Untuk mencari kunci privat, user akan menginput kunci publik dengan cara import dari file dengan menekan tombol „Import‟ atau mengetikkannya secara manual. Lalu user tinggal menekan tombol „Hack‟, lalu program akan menampilkan hasil pemecahan kunci pada Text area d. 4.2. Pengujian Perangkat Lunak Pengujian perangkat lunak dilakukan untuk melihat keberhasilan dan ketepatan sistem dalam proses pembangkitan kunci, enkripsi, dekripsi, dan menemukan kunci privat algoritma ElGamal, serta untuk mengetahui batas panjang kunci yang mampu dipecahkan oleh algoritma Silver-Pohlig-Hellman. Universitas Sumatera Utara 4.2.1 Pengujian Proses Pembangkitan Kunci Untuk melakukan pembangkitan kunci, user harus mengakses tab Bangkitkan kunci, menentukan panjang digit kunci yang diinginkan lalu menekan tombol „Generate‟. Hasil proses pembangkitan kunci dapat dilihat pada Gambar 4.5. Gambar 4.5 Pengujian Pembangkitan Kunci ElGamal Pembangkitan kunci ElGamal dilakukan dalam empat tahap, yaitu: a. Memilih bilangan prima p. Pada hasil pengujian diatas, p yang didapat dari hasil pengecekan dengan algoritma Miller-Rabin adalah p = 4871. b. Memilih α sebagai akar primitif pada grup perkalian � ∗ . Pada hasil pengujian diatas, didapati bahwa α = 11. c. Memilih d sebagai bilangan acak dengan syarat − . Pada hasil pengujian diatas, d yang dipilih adalah d = 2034. d. Memilih β sebagai hasil perhitungan = . Pada hasil pengujian diatas, didapati bahwa β = 3124. Maka kunci yang didapat dari hasil pembangkitan kunci diatas adalah: Universitas Sumatera Utara - Kunci publik : p = 4871, α = 11, β = 3124. - Kunci privat : d = 2034 Setelah kunci didapat, user dapat menyimpan kunci tersebut ke dalam file dengan menekan tombol „Export‟ pada panel kunci publik dan kunci privat. 4.2.2 Pengujian Proses Enkripsi Pesan Untuk melakukan enkripsi pesan menjadi ciphertext, user akan memasukkan kunci publik yang telah diketahui dan pesan yang akan dienkripsi baik dengan mengimportnya dari file maupun dengan mengetikkannya secara manual. Hasil proses enkripsi dapat dilihat pada Gambar 4.6. Gambar 4.6 Pengujian Enkripsi Pesan ElGamal Universitas Sumatera Utara Enkripsi ElGamal dilakukan dalam dua tahap yaitu: a. Memilih bilangan acak r sebagai ciphertext 1, pada implementasi sistem, r yang dipilih akan disisipkan pada akhir ciphertext dengan pembatas berupa karakter underscore „_‟. Dari hasil pengujian diatas, dipilih r = 958. b. Menentukan kode angka P dari setiap karakter pesan, lalu mengubahnya menjadi angka yang baru dengan menghitung � = P × � mod . Pada pengujian diatas pesan yang akan dienkripsi adalah „utara‟. Hasil enkripsi dapat dilihat pada Tabel 4.1: Tabel 4.1 Hasil Enkripsi P esan ‘utara’ Huruf P = P × mod p u 117 1290 t 116 30 a 97 445 r 114 2381 a 97 445 Hasil enkripsi dari setiap karakter diatas digabung menjadi satu susunan string yang akan dipisahkan dengan huruf „d‟ lalu ditampilkan pada Text area ciphertext, sehingga ciphertext yang didapat adalah: “1290d30d445d2381d445d_958”. Setelah ciphertext didapat, user dapat menyimpannya ke dalam file dengan menekan tombol „Eksport‟. 4.2.3 Pengujian Proses Dekripsi Pesan Proses dekripsi pesan hanya dapat dilakukan oleh orang yang memiliki kunci privat yang cocok dengan ciphertext yang didapat, pada sistem ini kita mengetahui bahwa kunci privat dari ciphertext yang telah didapat diatas adalah d = 2034. Disini akan diuji apakah hasil dari dekripsi ciphertext sama dengan plaintext awal yang ditulis. User yang akan melakukan dekripsi harus memasukkan kunci privat dan ciphertext terlebih dahulu dengan cara mengimportnya dari file atau mengetikkan secara manual. Hasil proses dekripsi dapat dilihat pada Gambar 4.7. Universitas Sumatera Utara Gambar 4.7 Pengujian Dekripsi Pesan ElGamal Proses dekripsi dilakukan dengan cara menghitung kembali kode angka di dalam ciphertext menjadi kode angka plaintext dengan rumus � = � × � − mod . Setelah itu angka yang didapat dikembalikan ke dalam huruf. Hasil dekripsi dapat dilihat pada Tabel 4.2. Tabel 4.2 Hasil Dekripsi Ciphertext Ciphertext = [ × − ] Plaintext 1290 117 u 30 116 t 445 97 a 2381 114 r 445 97 a Hasil dekripsi setiap karakter akan digabungkan kembali ke dalam satu string lalu ditampilkan pada Text Area Plaintext, sehingga plaintext yang didapat adalah „utara‟, sesuai dengan plaintext awal sebelum dienkripsi. Universitas Sumatera Utara 4.2.4 Pengujian Proses Hacking Kunci Privat. Hacking dilakukan untuk mendapatkan kunci privat dari kunci publik yang telah diketahui dengan menggunakan algoritma Silver-Pohlig-Hellman. Untuk melakukan hacking, user terlebih dahulu memilih tab Hack, lalu memasukkan kunci publik dengan cara mengimport dari file, atau mengetikkannya secara manual, lalu menekan tombol „Hack‟. Pengujian ini dilakukan untuk melihat apakah kunci privat yang didapat dari hasil hacking sama dengan kunci privat yang telah diketahui. Hasil proses hack untuk dapat dilihat pada Gambar 4.8. Gambar 4.8 Pengujian Hack Kunci ElGamal Hasil dekripsi dilakukan dengan mencari nilai d yang sesuai dalam persamaan = dengan nilai , α, dan p diketahui. Nilai d akan dicari menggunakan algoritma Silver-Pohlig-Hellman. Pada hasil pengujian diatas, didapati bahwa nilai d = 2034 yang berarti sesuai dengan nilai kunci privat yang dibangkitkan di awal. Proses pemecahan kunci tersebut memerlukan waktu 0.0156 detik. Universitas Sumatera Utara

4.3. Pengujian Kompleksitas Algoritma