Pengujian Kompleksitas Algoritma Simulasi Pencarian Kunci Privat dengan Algoritma Silver-Pohlig-Hellaman pada Algoritma Kriptografi Elgamal

4.3. Pengujian Kompleksitas Algoritma

Pengujian kompleksitas algoritma dilakukan untuk mengetahui tingkat nilai masukan n terhadap efisiensi sebuah algoritma. Kompleksitas algoritma pada penelitian ini diukur menggunakan notasi asimtotik Big- . 4.3.1. Kompleksitas Algoritma Enkripsi ElGamal Kode program yang digunakan untuk mengenkripsi pesan dengan algoritma kriptografi ElGamal beserta jumlah langkah yang dieksekusi disajikan pada Tabel 4.3. Tabel 4.3 Kompleksitas Algoritma Enkripsi ElGamal Kode Program C C × n r  RANDOMpublicKey[p] – 1 � 1 � C2  “” � 1 � C1  MOD_EXPpublickey[a], r, publicKey[p] � 1 � foreach character in plaintext � n � charcode  getAsciiCodecharacter � n � charcode  charcode moduleExppublickey[b], r, publicKey[p] � n � C2  C2 + NUMTOCHARcharcode � n � cipherText  {C1, C2} � 1 � return cipherText � 1 � = ∑ � = � + � + � + � + � + � + � + � + � = � + � + � + � + � + � + � + � + � = Tabel 4.3 menujukkan kompleksitas algoritma enkripsi ElGamal. Pada Tabel 4.3 terdapat kolom C sebagai variabel penghitung proses dan kolom untuk menghitung berapa kali proses dieksekusi. Kolom C × menunjukkan hasil perkalian C dengan . Dari hasil akumulasi perhitungan menunjukkan bahwa kompleksitas algoritma enkripsi ElGamal adalah . 4.3.2. Kompleksitas Algoritma Dekripsi ElGamal Kode program yang digunakan untuk mengenkripsi pesan dengan algoritma kriptografi ElGamal beserta jumlah langkah yang dieksekusi disajikan pada Tabel 4.4. Universitas Sumatera Utara Tabel 4.4 Kompleksitas Algoritma Dekripsi ElGamal Kode Program C C× n plaintext  “” � 1 � foreach character in ciphertext[C2] � n � charCode  ASCIIcharacter � n � invMod  INVERS_MODciphertext[C1], d, publicKey[p] � n � charCode  charCode invMod mod publicKey[p] � n � plainTextChar  NUMTOCHARcharcode � n � plainText  plainText + plainTextChar � n � return plainText � 1 � = ∑ � = � + � + � + � + � + � + � + � + � = � + � + � + � + � + � + � + � + � = Tabel 4.4 menujukkan kompleksitas algoritma dekripsi ElGamal. Dari hasil akumulasi perhitungan menunjukkan bahwa kompleksitas algoritma dekripsi ElGamal adalah . 4.4 Perbandingan Panjang Digit Kunci dengan Lama Waktu Hack Pengumpulan data perbandingan panjang digit kunci yang dibangkitkan dengan lama waktu hacking atau pemecahan kunci privat bertujuan untuk melihat efisiensi algoritma Silver-Pohlig-Hellman dalam memecahkan kunci privat ElGamal. Pengumpulan data akan dilakukan dengan percobaan trial and error untuk kunci publik dengan panjang yang berbeda. Data yang disajikan akan dimulai dari panjang kunci empat digit dan seterusnya dengan penambahan dua digit angka. a. Kunci publik dengan panjang 4 digit Tabel 4.5 Pengujian Pemecahan Kunci Privat dengan Panjang Kunci 4 digit Percobaan ke - Kunci Publik Kunci Privat Waktu pembangkitan kunci s Waktu pemecahan kunci s p α β d 1 7283 2 3075 285 0.0001 0.0156 Universitas Sumatera Utara 2 6911 7 5989 1241 0.0156 0.0156 3 3623 5 2222 3293 0.0001 0.0156 4 1823 5 1047 1148 0.0001 0.0156 Pada Tabel 4.5., dilakukan empat kali percobaan pada nilai bilangan prima p yang berbeda dengan panjang kunci empat digit. Dari keempat percobaan tersebut, didapati waktu rata-rata pembangkitan kunci adalah 0.0039 detik, dan waktu rata-rata pemecahan kunci privat adalah 0.0156 detik. b. Kunci publik dengan panjang 6 digit Tabel 4.6 Pengujian Pemecahan Kunci Pivat dengan Panjang Kunci 6 digit Percobaan ke - Kunci Publik Kunci Privat Waktu pembangkitan kunci s Waktu pemecahan kunci s p α β d 1 737131 10 569278 287609 0.0001 0.5469 2 979379 2 367175 788016 0.0937 9.4376 3 970111 3 291161 631182 0.0001 0.5156 4 804511 11 88466 99638 0.0624 0.2500 Pada Tabel 4.6, dilakukan empat kali percobaan pada nilai bilangan prima p yang berbeda dengan panjang kunci 6 digit. Dari keempat percobaan tersebut, didapati waktu rata-rata pembangkitan kunci adalah 0.039 detik, dan waktu rata-rata pemecahan kunci privat adalah 2.6875 detik. c. Kunci publik dengan panjang 8 digit Tabel 4.7 Pengujian Pemecahan Kunci Privat dengan Panjang Kunci 8 digit Percobaan ke - Kunci Publik Kunci Privat Waktu pembangkitan kunci s Waktu pemecahan kunci s p α Β D 1 65553179 2 41452294 30970547 0.0937 0.1406 2 35700319 13 32380612 489372 0.1718 33.5942 3 32806771 2 1496547 4636584 0.1562 0.2031 4 28324547 2 15094399 8594727 0.1874 23.9847 Universitas Sumatera Utara Pada Tabel 4.7, dilakukan empat kali percobaan pada nilai bilangan prima p yang berbeda dengan panjang kunci 8 digit. Dari keempat percobaan tersebut, didapati waktu rata-rata pembangkitan kunci adalah 0.1523 detik, dan waktu rata-rata pemecahan kunci privat adalah 14.4807 detik. d. Kunci publik dengan panjang 10 digit Tabel 4.8 Pengujian Pemecahan Kunci Privat dengan Panjang Kunci 10 digit Percobaan ke - Kunci Publik Kunci Privat Waktu pembangkitan kunci s Waktu pemecahan kunci s p α b D 1 37950 18163 2 37623 08847 390443734 0.5468 63.5789 2 34232 03323 2 10346 15988 2027810146 1.4375 264.8917 3 59784 00011 6 22359 06876 2121801989 0.2170 20.5811 4 51743 20691 2 18072 64040 1941781764 1.4667 355.5559 Pada Tabel 4.8, dilakukan empat kali percobaan pada nilai bilangan prima p yang berbeda dengan panjang kunci 10 digit. Dari keempat percobaan tersebut, didapati waktu rata-rata pembangkitan kunci adalah 0.9170 detik, dan waktu rata-rata pemecahan kunci privat adalah 176.1519 detik. e. Kunci publik dengan panjang 12 digit Tabel 4.9 Pengujian Pemecahan Kunci Privat dengan Panjang Kunci 12 digit Percobaan ke - Kunci Publik Kunci Privat Waktu Pembangkitan Kunci s Waktu Pemecahan Kunci p a b D 1 8148005 62067 2 926449 14927 7731475 77215 0.7187 114.8640 2 5941775 74091 2 161297 777163 5153688 54241 8.9850 965.8740 3 5315783 31563 2 230885 1106 4221959 44569 3.0469 571.6580 4 8975886 21563 2 436413 732672 3658081 0432 3.3750 1165.4547 Universitas Sumatera Utara Pada Tabel 4.9, dilakukan empat kali percobaan pada nilai bilangan prima p yang berbeda dengan panjang kunci 12 digit. Dari keempat percobaan tersebut, didapati waktu rata-rata pembangkitan kunci adalah 4.0314 detik, dan waktu rata-rata pemecahan kunci privat adalah 704.4627 detik.

4.5 Grafik Rata-rata Waktu Pemecahan Kunci terhadap Panjang Kunci p