3.1.2 Analisis Kebutuhan
25 3.1.2.1
Kebutuhan Fungsional 25
3.1.2.2 Kebutuhan Non-Fungsional
26 3.2
Pemodelan 27
3.2.1 Use Case Diagram
27 3.2.2
Sequence Diagram 31
3.2.3 Activity Diagram
32 3.3
Pseudocode dan Flowchart Program
33 3.3.1
Pseudocode dan Flowchart Lehmann Primality Test 33
3.3.2 Pseudocode dan Flowchart Primitive Roots
36 3.3.3
Pseudocode dan Flowchart Enkripsi ElGamal 37
3.3.4 Pseudocode dan Flowchart Dekripsi ElGamal
41 3.3.5
Pseudocode dan Flowchart Modulo Inverse 44
3.3.6 Pseudocode dan Flowchart Baby-step Giant-step
45 3.4
Perancangan Antarmuka Interface 48
3.4.1 Form Utama
48 3.4.2
Form Enkripsi 49
3.4.3 Form Baby-step Giant-step
50 3.4.4
Form Dekripsi 51
3.4.5 Form Tentang
52 3.4.6
Form Bantuan 52
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem
54 4.1.1
Form Utama 54
4.1.2 Form Enkripsi
55 4.1.3
Form Baby-step Giant-step 56
4.1.4 Form Dekripsi
57 4.1.5
Form Tentang 59
4.1.6 Form Bantuan
60 4.2
Pengujian 60
4.2.1 Pengujian Sistem Algoritma ElGamal Aplikasi
61 4.2.2
Pengujian Proses Bangkit Kunci Algoritma ElGamal 67
4.2.3 Pengujian Proses Enkripsi Algoritma ElGamal
68 4.2.4
Pengujian Proses Dekripsi Algoritma ElGamal 70
4.2.5 Pengujian Proses Baby-step Giant-step
71
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan
73 5.2
Saran 74
DAFTAR PUSTAKA 75
LAMPIRAN
Universitas Sumatera Utara
DAFTAR TABEL
Tabel 2.1 Konversi Blok-blok Karakter Pesan ke Kode ASCII
18 Tabel 2.2
Proses Enkripsi 18
Tabel 2.3 Proses Dekripsi
20 Tabel 2.4
Proses Baby-step [1] 21
Tabel 2.4 Proses Baby-step [2]
22 Tabel 2.5
Proses Giant-step 22
Tabel 3.1 Narrative Use-Case
Bangkitkan Kunci 28
Tabel 3.2 Narrative Use-Case
Enkripsi 29
Tabel 3.3 Narrative Use-Case
Dekripsi Pesan [1] 29
Tabel 3.3 Narrative Use-Case
Dekripsi Pesan [2] 30
Tabel 3.4 Narrative Use-Case
Pemecahan Kunci 30
Tabel 4.1 Pengujian Lama Proses Algoritma ElGamal
Terhadap Panjang Kunci 67
Tabel 4.2 Pengujian Lama Proses Enkripsi
Terhadap Rentang Bilangan Acak b 69
Tabel 4.3 Pengujian Lama Proses Pemecahan Kunci Privat
Terhadap Panjang Kunci ElGamal 71
Universitas Sumatera Utara
DAFTAR GAMBAR
Gambar 2.1 Proses Enkripsi dan Dekripsi Algoritma Simetris
7 Gambar 2.2
Proses Enkripsi dan Dekripsi Algoritma Asimetris 7
Gambar 3.1 Diagram Ishikawa
25 Gambar 3.2
Diagram Use-Case 27
Gambar 3.3 Diagram Sequence untuk ElGamal User
31 Gambar 3.4
Diagram Sequence untuk Hacker 31
Gambar 3.5 Diagram Activity untuk ElGamal User
32 Gambar 3.6
Diagram Activity untuk Hacker 33
Gambar 3.7 Flowchart Lehmann Primality Test
35 Gambar 3.8
Flowchart Primitive Roots 37
Gambar 3.9 Flowchart
Enkripsi ElGamal 40
Gambar 3.10 Flowchart Dekripsi ElGamal 43
Gambar 3.11 Flowchart Modulo Inverse 44
Gambar 3.12 Flowchart Baby-step Giant-step 47
Gambar 3.13 Rancangan Form Utama Aplikasi 48
Gambar 3.14 Rancangan Encryption Form 49
Gambar 3.15 Rancangan Form BSGS Aplikasi 50
Gambar 3.16 Rancangan Decryption Form Aplikasi 51
Gambar 3.17 Rancangan About Form Aplikasi 52
Gambar 3.18 Rancangan Help Form Aplikasi 53
Gambar 4.1 Form
Utama 55
Gambar 4.2 Form
Enkripsi 56
Gambar 4.3 Form Baby-step Giant-step
57 Gambar 4.4
Form Dekripsi
58 Gambar 4.5
Form Bantuan
59 Gambar 4.6
Form Tentang
60 Gambar 4.7
Isi Pesan Plaintext yang Diuji Algoritma ElGamal 62
Gambar 4.8 Proses Pembangkitan Kunci Publik dan Kunci Privat
63 Gambar 4.9
Proses Enkripsi Pesan dengan Algoritma ElGamal 63
Gambar 4.10 Pesan Enkripsi Berhasil 64
Gambar 4.11 Hasil Enkripsi Plaintext 64
Gambar 4.12 Proses Pemecahan Kunci dengan Algoritma Baby-step Giant-step 65
Gambar 4.13 Proses Dekripsi Pesan dengan Algoritma ElGamal 65
Gambar 4.14 Hasil Dekripsi Pesan dengan Algoritma ElGamal 66
Gambar 4.15 Grafik Panjang Digit Kunci dengan Waktu Proses Bangkit Kunci 67
Gambar 4.16 Grafik Panjang Digit Kunci dengan Waktu Proses Enkripsi 68
Gambar 4.17 Grafik Panjang Digit Kunci dengan Waktu Proses Dekripsi 70
Gambar 4.18 Grafik Panjang Digit Kunci dengan Waktu Proses Pemecahan Kunci Privat
72
Universitas Sumatera Utara
TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN ALGORITMA BABY STEP GIANT STEP
ABSTRAK
Algoritma kriptografi ElGamal merupakan sistem kriptografi asimetrik dimana terdapat dua pasang kunci yaitu kunci publik
p, α, α
a
dan kunci privat a. Kunci untuk enkripsi bersifat umum dan dapat digunakan semua orang sehingga
dinamakan kunci publik. Sedangkan kunci untuk dekripsi bersifat rahasia dan hanya dimiliki oleh penerima pesan, oleh karena itu dinamakan kunci privat.
Keuntungan algoritma ElGamal terletak pada keamanannya yang bergantung pada sulitnya memecahkan perhitungan logaritma diskrit dan kerugiannya adalah pada
ciphertext
-nya yang mempunyai panjang dua kali lipat dari plaintext-nya. Untuk menguji keamanan dari algoritma kriptografi ElGamal penulis akan melakukan
pemecahan kunci yang bertujuan untuk melihat seberapa aman algoritma ElGamal bertahan dari serangan terhadap perhitungan logaritma diskritnya. Pada penelitian
ini, digunakan algoritma Baby-step Giant-step untuk memecahkan kunci privat ElGamal. Dalam pengujiannya, akan digunakan uji coba data untuk melihat
efektivitas dan efisiensi dari algoritma Baby-step Giant-step dalam memecahkan kunci privat ElGamal berdasarkan lama waktu prosesnya. Hasil dari pengujian
menunjukkan bahwa semakin banyak faktor prima sebuah bilangan, maka akan semakin lama proses pembangkitan kuncinya. Pada proses pemecahan kunci
publik 10 digit dengan p = 1570736149 ,
α = 806863671 , dan α
a
= 55171560 lama waktu proses adalah 172817 ms. Sedangkan pada proses pemecahan kunci
publik 11 digit mencapai waktu hingga lebih dari 1 jam dikarenakan pencarian invers modulo yang sangat lama.
Kata kunci: Kriptografi, Kriptanalisis, Logaritma Diskrit, Hacking, ElGamal,
Baby-step Giant-step .
Universitas Sumatera Utara
ELGAMAL PRIVATE KEY SOLVING TECHNIQUE WITH BABY STEP GIANT STEP ALGORITHM
ABSTRACT
ElGamal cryptography algorithm is an asymetric cryptography system where there are two pair of keys which are public key and private key. Encryption key is made
public so everyone can use it; therefore it is named public key. While decryption key is made secret that the only one that can use it is only the receiver; therefore
it is named private key. The advantage of ElGamal algorithm is in its security that depends on the difficulty in solving discrete logarithm calculation and the
disadvantage is in the ciphertext which have twice the original size from the plaintext. To test Elgamal cryptography algorithm security, the writer will do the
key solving process which the purpose is to see how safe the algorithm in withstanding the attack to the discrete logarithm calculation. In this research,
Baby-step Giant-step algorithm used to solve ElGamal private key. In testing, data testing will be used to see the effectivity and eficiency of Baby-step Giant-
step algorithm in solving ElGamal private key base on its process time. The test result shows that the more prime factor a number has, the longer the process
would be in generating key. In 10 digits hacking process with p = 1570736149 ,
α = 806863671 , dan
α
a
= 55171560 the processing time took 172.817 ms. While in 11 digits hacking process, the processing time took more than an hour because of
inverse modulo searching process that took a long time.
Kata kunci: Cryptography, Cryptanalysis, Discrete Logarithm, Hacking,
ElGamal, Baby-step Giant-step.
Universitas Sumatera Utara
BAB I PENDAHULUAN