TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN ALGORITMA BABY STEP GIANT STEP SKRIPSI GUNALAN ANGGIRASA 101401038
TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN ALGORITMA BABY STEP GIANT STEP SKRIPSI GUNALAN ANGGIRASA 101401038
TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN ALGORITMA BABY STEP GIANT STEP SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer GUNALAN ANGGIRASA
101401038 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN
2015 iii
PERNYATAAN
TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN ALGORITMA BABY STEP GIAT STEP SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan
dan ringkasan yang masing-masing disebutkan sumbernya.Medan,
10 Maret 2015
Gunalan Anggirasa 101401038 ii
PERSETUJUAN
Judul : TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN ALGORITMA BABY STEP GIANT STEP
Kategori : SKRIPSI Nama : GUNALAN ANGGIRASA Nomor Induk Mahasiswa : 101401038 Program Studi : SARJANA(S1) ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (Fasilkom-TI) Komisi Pembimbing: Dosen Pembimbing II Dosen Pembimbing I Dian Rachmawati,S.Si,M.Kom M.Andri Budiman,ST,M.Comp.Sc,MEM NIP. 1983 0723 2009 1220 04 NIP. 1975 1008 2008 0110 11 Diketahui/Disetujui oleh Program Studi S1 IlmuKomputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 1962 0317 1991 0210 01
UCAPAN TERIMA KASIH
Puji dan syukur penulis ucapkan kehadirat Tuhan YME, karena rahmat dan izin-Nya penulis dapat menyelesaikan skripsi ini. Banyak bantuan berupa uluran tangan, budi baik, buah pikiran dan kerjasama yang telah penulis terima selama menempuh studi sampai dengan penyelesaian studi (skripsi) ini. Oleh karena itu, seyogianya penulis menyampaikan ucapan terima kasih kepada pihak-pihak yang telah membantu.
Ucapan terima kasih penulis sampaikan kepada: 1. Bapak Prof. Subhilhar MA, Ph.D selaku Pejabat Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara dan selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc. selaku Sekretaris Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara.
5. Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M. selaku Dosen Pembimbing I dan Dosen Pembimbing Akademik yang telah memberikan bimbingan dan dukungan kepada penulis.
6. Ibu Dian Rachmawati, S.Si., M.Kom. selaku Dosen Pembimbing II yang telah memberikan bimbingan dan dukungan kepada penulis.
7. Bapak Amer Sharif, S.Si., M.Kom selaku Dosen Pembanding
II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
8. Ayahanda Dr. Suba Jaido Naidu dan Ibunda Dr. B. Teinmalar, serta adik-adik saya Rai Wegudani dan Lovelyn Partiba yang selalu memberikan kasih sayang dan dukungannya kepada penulis.
9. Seluruh tenaga pengajar dan pegawai pada Fakultas Ilmu Komputer dan Teknologi Informasi USU, terkhususnya di Program Studi S-1 Ilmu Komputer.
10. Rekan-rekan senior khususnya abangda Angga Ricardo Malau S. Kom, Johannes Hutabarat S. Kom, Octavianus Sianturi, Septian Dwi Cahya Panjaitan, Septian Maihadi, Samuel Tarigan S. Kom, Johnri Sibarani S.Kom dan yang lainya yang selalu memberikan semangat dan dorongan dan motivasi kepada penulis selama menyelesaikan skripsi ini.
11. Rekan-rekan kuliah Timothy, Johanes P. Saragih , Lorent Oliver Barus, Rivai H Purba, Kurniawan Wardani Hutagaol, Hengky Prayson Gulo, Yansen Boston Simatupang, Arifin dan yang lainnya yang selalu memberikan semangat dan dorongan, serta motivasi kepada penulis selama menyelesaikan skripsi ini.
12. Rekan-rekan Duelist Medan, AC3, ILKOM USU COC, IMILKOM, RHF,
IKLC, RTIK SUMUT dan lainya yang tidak bisa disebutkan satu persatu, yang selalu memberikan semangat dan dorongan kepada penulis selama menyelesaikan skripsi ini.
Semoga Tuhan YME melimpahkan berkah dan kasih sayang-Nya kepada semua pihak yang telah memberikan bantuan, semangat, dukungan dan perhatian kepada penulis dalam menyelesaikan skripsi ini. Semoga skripsi ini bermanfaat bagi penulis, pendidikan, masyarakat, organisasi atau negara.
Medan, 10 Maret 2015 Penulis
TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN
ALGORITMA BABY STEP GIANT STEPABSTRAK
Algoritma kriptografi ElGamal merupakan sistem kriptografi asimetrik dimana
a
terdapat dua pasang kunci yaitu kunci publik ( ) dan kunci privat (a). Kunci
p, α, α
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
a
publik 10 digit dengan p = 1570736149 , = 55171560
α = 806863671 , dan α
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 .
ELGAMAL PRIVATE KEY SOLVING TECHNIQUE WITH
BABY STEP GIANT STEP ALGORITHM
ABSTRACTElGamal 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 ,
α a
= 806863671 , dan = 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. viii
DAFTAR ISI
PERSETUJUAN ii
PERNYATAAN iii
UCAPAN TERIMA KASIH iv
ABSTRAK vi
ABSTRACT vii
DAFTAR ISI viii
DAFTAR TABEL x
DAFTAR GAMBAR xi
BAB 1 PENDAHULUAN
1.1 Latar Belakang
1
1.2 Rumusan Masalah
2
1.3 Batasan Masalah
2
1.4 Tujuan Penelitian
3
1.5 Manfaat Penelitian
3
1.6 Metodologi Penelitian
4
1.7 Sistematika Penulisan
5 BAB 2 TINJAUAN PUSTAKA
2.1 Kriptografi
6
2.2 Keamanan Data
9
2.3 Bilangan Prima dan Komposit
9
2.4 Bilangan Prima Aman
9
2.5 Faktor Persekutuan Terbesar (Greatest Common Divisor)
10
2.6 Relatif Prima
10
2.7 Kekongruenan
11
2.8 Fungsi Euler
11
2.9 Ordo Modulo
11
2.10
12 Modulo Invers
2.11
12 Akar Primitif (Primitive Roots)
2.12
13 Metode Pembangkit Bilangan Prima Lehmann
2.13
15 Algoritma ElGamal
2.14
15 Pembentukan Kunci
2.15
16 Proses Pembentukan Kunci
2.16
16 Enkripsi
2.17
19 Dekripsi
2.18
20 Baby-step Giant-step
2.19
22 Penelitian yang Relevan
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
24
3.1.1
24 Analisis Masalah ix
3.1.2 Analisis Kebutuhan
55
59
4.1.5 Form Tentang
57
4.1.4 Form Dekripsi
56
4.1.3 Form Baby-step Giant-step
4.1.2 Form Enkripsi
60
54
4.1.1 Form Utama
54
52 BAB 4
3.4.6 Form Bantuan
52
4.1.6 Form Bantuan
60
25
4.2.5 Pengujian Proses Baby-step Giant-step
75 LAMPIRAN
74 DAFTAR PUSTAKA
5.2 Saran
73
5.1 Kesimpulan
71 BAB 5 KESIMPULAN DAN SARAN
70
4.2.1 Pengujian Sistem Algoritma ElGamal Aplikasi
4.2.4 Pengujian Proses Dekripsi Algoritma ElGamal
68
4.2.3 Pengujian Proses Enkripsi Algoritma ElGamal
67
4.2.2 Pengujian Proses Bangkit Kunci Algoritma ElGamal
61
3.4.5 Form Tentang
51
3.4.4 Form Dekripsi
27
33
3.3 Pseudocode dan Flowchart Program
32
3.2.3 Activity Diagram
31
3.2.2 Sequence Diagram
3.2.1 Use Case Diagram
50
27
3.2 Pemodelan
26
3.1.2.2 Kebutuhan Non-Fungsional
25
3.1.2.1 Kebutuhan Fungsional
3.3.1 Pseudocode dan Flowchart Lehmann Primality Test
33
3.3.2 Pseudocode dan Flowchart Primitive Roots
36
3.4.3 Form Baby-step Giant-step
49
3.4.2 Form Enkripsi
48
3.4.1 Form Utama
48
3.4 Perancangan Antarmuka (Interface)
45
3.3.6 Pseudocode dan Flowchart Baby-step Giant-step
44
3.3.5 Pseudocode dan Flowchart Modulo Inverse
41
3.3.4 Pseudocode dan Flowchart Dekripsi ElGamal
37
3.3.3 Pseudocode dan Flowchart Enkripsi ElGamal
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem
4.2 Pengujian
x
29 Tabel 3.3 Narrative Use-Case Dekripsi Pesan [1]
69 Tabel 4.3 Pengujian Lama Proses Pemecahan Kunci Privat Terhadap Panjang Kunci ElGamal
67 Tabel 4.2 Pengujian Lama Proses Enkripsi Terhadap Rentang Bilangan Acak b
30 Tabel 4.1 Pengujian Lama Proses Algoritma ElGamal Terhadap Panjang Kunci
Pemecahan Kunci
Narrative Use-Case
30 Tabel 3.4
29 Tabel 3.3 Narrative Use-Case Dekripsi Pesan [2]
28 Tabel 3.2 Narrative Use-Case Enkripsi
DAFTAR TABEL
22 Tabel 3.1 Narrative Use-Case Bangkitkan Kunci
22 Tabel 2.5 Proses Giant-step
21 Tabel 2.4 Proses Baby-step [2]
20 Tabel 2.4 Proses Baby-step [1]
18 Tabel 2.3 Proses Dekripsi
18 Tabel 2.2 Proses Enkripsi
Tabel 2.1 Konversi Blok-blok Karakter Pesan ke Kode ASCII71 xi
DAFTAR GAMBAR
63 Gambar 4.9 Proses Enkripsi Pesan dengan Algoritma ElGamal
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.10 Pesan Enkripsi Berhasil
52 Gambar 3.18 Rancangan Help Form Aplikasi
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
53 Gambar 4.1 Form Utama
51 Gambar 3.17 Rancangan About Form Aplikasi
Gambar 2.1 Proses Enkripsi dan Dekripsi Algoritma Simetris35 Gambar 3.8 Flowchart Primitive Roots
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
37 Gambar 3.9
50 Gambar 3.16 Rancangan Decryption Form Aplikasi
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
72