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