KESIMPULAN DAN SARAN Teknik Pemecahan Kunci Privat Elgamal dengan Algoritma Baby Step Giant Step

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