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