• Tidak ada hasil yang ditemukan

TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN ALGORITMA BABY STEP GIANT STEP SKRIPSI GUNALAN ANGGIRASA 101401038

N/A
N/A
Protected

Academic year: 2019

Membagikan "TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN ALGORITMA BABY STEP GIANT STEP SKRIPSI GUNALAN ANGGIRASA 101401038"

Copied!
12
0
0

Teks penuh

(1)

TEKNIK PEMECAHAN KUNCI PRIVAT ELGAMAL DENGAN

ALGORITMA BABY STEP GIANT STEP

SKRIPSI

GUNALAN ANGGIRASA

101401038

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2015

(2)

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

(3)

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

(4)

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

(5)

iv

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.

(6)

v

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

(7)

vi

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.

(8)

vii

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.

(9)

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 Modulo Invers 12

2.11 Akar Primitif (Primitive Roots) 12

2.12 Metode Pembangkit Bilangan Prima Lehmann 13

2.13 Algoritma ElGamal 15

2.14 Pembentukan Kunci 15

2.15 Proses Pembentukan Kunci 16

2.16 Enkripsi 16

2.17 Dekripsi 19

2.18 Baby-step Giant-step 20

2.19 Penelitian yang Relevan 22

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem 24

3.1.1 Analisis Masalah 24

(10)

ix

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 FlowchartLehmann Primality Test 33

3.3.2 Pseudocode dan FlowchartPrimitive 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 FlowchartModulo Inverse 44

3.3.6 Pseudocode dan FlowchartBaby-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

(11)

x

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

(12)

xi

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

Referensi

Dokumen terkait

Pengujian dilanjutkan pada proses dekripsi RSA dengan meng- input kunci publik n dan kunci privat d , serta ciphertext pada form ‟Dekripsi RSA‟ aplikasi Sistem

Berisi tentang penerapan dari analisis dan perancangan sistem menjadi kode pemrograman, serta pengujian aplikasi pemecahan kunci algoritma RSA untuk memperoleh output dari

Berdasarkan latar belakang di atas, maka diangkat judul penelitian, Implementasi Super Enkripsi Algoritma ElGamal dengan Teknik Transposisi Segitiga sebagai salah

Penerapan Algoritma Kriptografi ElGamal untuk Pengaman File Citra.. Jurnal

Algoritma kriptografi ElGamal terdiri dari dua buah kunci yaitu kunci publik dan kunci privat. Keuntungan menggunakan algoritma kriptografi kunci publik adalah tidak

Berdasarkan latar belakang di atas, maka dapat dirumuskan masalah yang akan diselesaikan dalam penelitian ini adalah apakah kunci privat algoritma RSA dapat

# Membuat grup yang berisi content page, parent nya page pageGenkey.. groupPrivKey = Pmw.Group(pageHack,

Pada penelitian untuk tugas akhir ini dibangun sistem kriptografi kunci publik berdasarkan algoritma ElGamal yang berguna mengamankan pesan user tanpa perlu