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