ANALISIS ALGORITMA BABY-STEP GIANT-STEP DAN POHLIG-HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT SKRIPSI ETTY WINITA ROISKA SIMBOLON 090803073 DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2015
ANALISIS ALGORITMA BABY-STEP GIANT-STEP DAN POHLIG-HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains ETTY WINITA ROISKA SIMBOLON 090803073 DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2015
PERSETUJUAN Judul : ANALISIS ALGORITMA BABY-STEP GIANT- STEP DAN POHLIG-HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT Kategori : SKRIPSI Nama : ETTY WINITA ROISKA SIMBOLON Nomor Induk Mahasiswa : 090803073 Program Studi : SARJANA (S1) MATEMATIKA Departemen Fakultas : MATEMATIKA : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Komisi Pembimbing : Disetujui di Medan, Mei 2015 Pembimbing II Pembimbing I Drs. Marihat Situmorang, M.Kom Drs. Partano Siagian, M.Sc NIP. 19631214 198903 1 001 NIP. 19511227 198903 1 001 Diketahui/Disetujui oleh Departemen Matematika FMIPA USU Prof. Drs. Tulus, Vordipl.Math., M.Si., Ph.D NIP. 196209011988031002 i
PERNYATAAN ANALISIS ALGORITMA BABY-STEP GIANT-STEP DAN POHLIG-HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, Mei 2015 ETTY WINITA ROISKA SIMBOLON 090803073 ii
PENGHARGAAN Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pengasih, dengan anugerah dan kasih setia-nya sehingga skripsi ini dapat diselesaikan. Ucapan terima kasih saya sampaikan kepada: 1. Bapak Dr. Sutarman, M.Sc selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam. 2. Bapak Prof. Dr. Tulus, M.Si dan Ibu Dra. Mardiningsih, M.Si selaku ketua dan sekretaris Departemen Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam yang telah memberikan kesempatan kepada penulis untuk menyelesaikan studi di Departemen Matematika. 3. Bapak Drs. Partano Siagian, M.Sc dan Drs. Marihat Situmorang, M.Kom selaku pembimbing dalam penyelesaian skripsi ini yang telah memberikan bimbingan dan kepercayaan kepada saya untuk menyempurnakan skripsi ini. 4. Kedua orangtua saya tercinta yang telah memberikan dukungan, doa dan dana, juga untuk saudara-saudaraku yang terkasih atas perhatian dan doanya sehingga penulis dapat menyelesaikan pendidikan S-1. 5. Sahabat dan teman-teman stambuk 2009 yang telah memberikan masukan serta dorongan kepada penulis untuk tetap semangat mengerjakan skripsi ini. Penulis menyadari bahwa tulisan ini jauh dari sempurna, untuk itu penulis sangat mengharapkan saran dan kriktik untuk kesempurnaan tulisan ini. iii
ANALISIS ALGORITMA BABY-STEP GIANT-STEP DAN POHLIG HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT ABSTRAK Asumsikan G adalah sebuah grup cyclic terbatas dengan order p, g adalah sebuah generator dari G (G = <g>) dan y G. Logaritma diskrit dari y pada dasar g, yang disimbolkan dengan loggy adalah integer unik x dan x Zp sedemikian sehingga y = g x mod p. Algoritma yang dapat digunakan untuk menghitung logaritma diskrit antara lain algoritma Baby-step giant-step dan algoritma Pohlig- Hellman. Proses penyelesaian problema logaritma diskrit ini secara manual memerlukan waktu yang lama dan perhitungan yang kompleks. Algoritma baby-step giant-step adalah sebuah rangkaian dari langkah yang terdefinisi dengan baik untuk menghitung logaritma diskrit. Algoritma ini merupakan modifikasi sederhana dari pengujian perkalian (trial multiplication / metode naïve) untuk menemukan logaritma diskrit. Dalam matematika, algoritma Pohlig-Hellman adalah sebuah algoritma untuk menghitung logaritma diskrit pada sebuah grup perkalian dengan order berupa sebuah integer kecil. Proses kerja dari perangkat lunak dimulai dari proses pengisian data nilai g, y dan p. Setelah itu, maka perangkat lunak akan menampilkan proses kerja dari algoritma secara tahapan demi tahapan. Perangkat lunak mampu mendukung proses pemahaman untuk setiap prosedur kerja dari algoritma Baby-Step Giant-Step dan Pohlig-Hellman untuk menghitung solusi dari problema logaritma diskrit. Selain itu, perangkat lunak juga menyediakan laporan hasil proses perhitungan sehingga pemakai dapat melihat kembali hasil proses perhitungan yang telah dilakukan sebelumnya. Perangkat lunak juga menyediakan tampilan penyelesaian waktu eksekusi antara kedua algoritma pencarian solusi logaritma diskrit. Kata kunci: logaritma diskrit, algoritma Baby-Step Giant-Step, algoritma Pohlig- Hellman iv
ANALYSIS OF ALGORITHMS BABY-STEP GIANT-STEP AND POHLIG HELLMAN TO SOLVE THE DISCRETE LOGARITHM PROBLEM ABSTRACT Assume G is a finite cyclic group with order p, g is a generator of G (G = <g>) and y G. Discrete logarithm from y in base g, which is represented by loggy is unique integer x and x Zp so that y = g x mod p. Algorithm that could be used to solve discrete logarithm is Baby-step giant-step and Pohlig-Hellman algorithm. The process for finding solution of discrete logarithm problem manually needs a lot of time and the computation process is very complex. Baby-step giant-step algorithm is a series of steps that are defined well to compute discrete logarithm. This algorithm is a simple modification of trial multiplication or naïve method for finding discrete logarithm. In mathematics, Pohlig-Hellman algorithm is an algorithm for computing discrete logarithm in multiplication group with order a small integer. The process of software is started from determining g, y and p value. After that, the software will show the computation process of the algorithm step by step. The software could show the process of every procedure from Baby-Step Giant-Step and Pohlig-Hellman algorithm for finding solution of discrete logarithm problem. Besides that, the software also provides detail computation report so that the user could review the computation process that had been done before. The software also provides execution process of the algorithm. Keywords: discrete logarithm, Baby-Step Giant-Step algorithm, Pohlig-Hellman algorithm v
DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Gambar i ii iii iv v vi viii Bab 1 Bab 2 Pendahuluan 1.1 Latar Belakang 1 1.2 Perumusan Masalah 2 1.3 Pembatasan Masalah 2 1.4 Kajian Pustaka 3 1.5 Tujuan Penelitian 9 1.6 Manfaat Penelitian 9 1.7 Metode Penelitian 9 1.8 Sistematika Penulisan 10 Landasan Teori 2.1 Sistem Bilangan 11 2.2 Aritmatika Modular 12 2.3 Greatest Common Divisor 14 2.4 Inverse Aritmatika Modular 15 2.5 Fermat s Little Theorem 16 2.6 The Euler Totient Function 17 2.7 Quadratic Residue 17 2.8 Legendre Symbol 19 2.9 Jacobi Symbol 19 2.10 Metoda Tes Prima 20 2.11 Function (Fungsi) 23 2.12 Field 24 2.13 Group 27 2.14 Chinese Remainder Theorem (CRT) 27 2.15 Logaritma Diskrit 29 2.15.1 Pengenalan 29 2.15.2 Algoritma Baby-Step Giant-Step 30 2.15.3 Algoritma Pohlig-Hellman 32 2.16 Rekayasa Perangkat Lunak 33 2.17 Model-Model Proses Perangkat Lunak 34 2.17.1 Pengenalan 34 2.17.2 Model Waterfall 35 vi
2.18 Unified Modeling Language (UML) 37 2.18.1 Class Diagram 38 2.18.2 Use Case Diagram 40 2.18.3 Sequence Diagram 41 2.18.4 Activity Diagram 42 Bab 3 Bab 4 Bab 5 Analisa dan Perancangan 3.1 Analisa 44 3.1.1 Analisa Masalah 44 3.1.2 Analisa Persyaratan 45 3.1.2.1 Analisa Persyaratan Fungsional 45 3.1.2.1.1 Fungsional Baby Step Giant Step 45 3.1.2.1.2 Fungsional Pohlig Hellman 46 3.1.2.2 Analisa Persyaratan Non-Fungsional 46 3.1.2.2.1 Non-Fungsional Baby Step Giant Step 46 3.1.2.2.2 Non-Fungsional Pohlig Hellman 47 3.2 Pemodelan Sistem 48 3.2.1 Flowchart Baby-Step Giant-Step 49 3.2.2 Flowchart Pohlig-Hellman 50 3.3 Perancangan Sistem 50 3.3.1 Sequence Diagram 50 3.3.2 Class Diagram 51 3.3.3 Penggunaan Komponen 52 3.3.4 Perancangan Menu 53 3.3.5 Perancangan Tampilan Antarmuka 54 3.3.5.1 Form Main 54 3.3.5.2 Form Input Data 55 3.3.5.3 Form Pemahaman 56 3.3.5.4 Form Teori 57 3.3.5.5 Form Hasil Perbandingan 58 3.3.5.6 Form Mengenai 58 Implementasi dan Hasil 4.1 Implementasi 60 4.1.1 Kebutuhan Hardware 60 4.1.2 Kebutuhan Software 60 4.2 Hasil 61 4.2.1 Hasil Pemahaman 61 4.2.2 Hasil Pengujian 64 Kesimpulan dan Saran 5.1 Kesimpulan 67 5.2 Saran 67 Daftar Pustaka vii
DAFTAR GAMBAR Gambar 2.1 Sistem Bilangan 12 Gambar 2.2 Siklus Hidup Waterfall 37 Gambar 3.1 Activity Diagram dari Baby-Step Giant-Step 49 Gambar 3.2 Activity Diagram dari Pohlig-Hellman 50 Gambar 3.3 Sequence Diagram 51 Gambar 3.4 Class Diagram 52 Gambar 3.5 Rancangan Menu Utama 54 Gambar 3.6 Rancangan Form Main 55 Gambar 3.7 Rancangan Form Input Data 55 Gambar 3.8 Rancangan Form Pemahaman 56 Gambar 3.9 Rancangan Form Teori 57 Gambar 3.10 Rancangan Form Hasil Perbandingan 58 Gambar 3.11 Rancangan Form Mengenai 59 Gambar 4.1 Tampilan Form Main Klik Menu Proses Kerja >> Input Data 61 Gambar 4.2 Tampilan Form Input Data 61 Gambar 4.3 Tampilan Form Main Klik Menu Proses Kerja >> Pemahaman >> Baby Step Giant Step 62 Gambar 4.4 Tampilan Form Pemahaman Baby Step Giant Step 62 Gambar 4.5 Tampilan Form Main Klik Menu Proses Kerja >> Pemahaman >> Pohlig Hellman 63 Gambar 4.6 Tampilan Form Pemahaman Pohlig Hellman 63 Gambar 4.7 Tampilan Form Laporan 64 Gambar 4.8 Tampilan Form Main Klik Menu Proses Kerja >> Tabel Penyelesaian 64 Gambar 4.9 Tampilan Form Input Data untuk Pengujian I 65 Gambar 4.10 Tampilan Form Input Data untuk Pengujian II 65 Gambar 4.11 Tampilan Form Input Data untuk Pengujian III 66 Gambar 4.12 Tampilan Form Tabel Penyelesaian 66 viii