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 STEP

ABSTRAK

  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

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 ,

  α 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 ASCII

  71 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 Simetris

  35 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