ANALISIS ALGORITMA BABY-STEP GIANT-STEP DAN POHLIG-HELLMAN UNTUK MENYELESAIKAN MASALAH LOGARITMA DISKRIT SKRIPSI ETTY WINITA ROISKA SIMBOLON
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- DAN UNTUK
STEP POHLIG-HELLMAN
MENYELESAIKAN MASALAH LOGARITMA DISKRIT Kategori : SKRIPSI Nama : ETTY WINITA ROISKA SIMBOLON Nomor Induk Mahasiswa : 090803073 Program Studi : SARJANA (S1) MATEMATIKA Departemen : MATEMATIKA Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Disetujui di Medan, Mei 2015
Komisi Pembimbing : 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
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
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 Universitas Sumatera Utara.
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 Universitas Sumatera Utara 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.
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 log g y adalah integer unik x dan x Z p sedemikian
x
sehingga y = g 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
ANALYSIS OF ALGORITHMS BABY-STEP GIANT-STEP AND POHLIG
HELLMAN TO SOLVE THE DISCRETE LOGARITHM PROBLEM ABSTRACTAssume G is a finite cyclic group with order p, g is a generator of G (G =
G. Discrete logarithm from y in base g, which is represented by
<g>) and y x log g y is unique integer x and x Z p so that y = g 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
DAFTAR ISI
27
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)
2.15 Logaritma Diskrit
17
33
35
2.17.2 Model Waterfall
34
2.17.1 Pengenalan
34
2.17 Model-Model Proses Perangkat Lunak
2.16 Rekayasa Perangkat Lunak
29
32
2.15.3 Algoritma Pohlig-Hellman
30
2.15.2 Algoritma Baby-Step Giant-Step
29
2.15.1 Pengenalan
2.7 Quadratic Residue
Halaman Persetujuan i
Pernyataan ii
1.5 Tujuan Penelitian
Penghargaan iii
Abstrak iv
Abstract v
Daftar Isi vi
Daftar Gambar viii
Bab 1 Pendahuluan
1.1 Latar Belakang
1
1.2 Perumusan Masalah
2
1.3 Pembatasan Masalah
2
1.4 Kajian Pustaka
3
9
16
2.2 Aritmatika Modular
2.5 Fermat’s Little Theorem
15
2.4 Inverse Aritmatika Modular
14
2.3 Greatest Common Divisor
12
11
1.6 Manfaat Penelitian
2.1 Sistem Bilangan
10 Bab 2 Landasan Teori
1.8 Sistematika Penulisan
9
1.7 Metode Penelitian
9
2.6 The Euler Totient Function
2.18
37 Unified Modeling Language (UML)
2.18.1
38 Class Diagram
2.18.2
40 Use Case Diagram
2.18.3
41 Sequence Diagram
2.18.4
42 Activity Diagram
Bab 3 Analisa dan Perancangan
3.1
44 Analisa
3.1.1
44 Analisa Masalah
3.1.2
45 Analisa Persyaratan
3.1.2.1
45 Analisa Persyaratan Fungsional
3.1.2.1.1
45 Fungsional Baby Step Giant Step
3.1.2.1.2
46 Fungsional Pohlig Hellman
3.1.2.2
46 Analisa Persyaratan Non-Fungsional
3.1.2.2.1 Non-Fungsional Baby Step Giant Step 46
3.1.2.2.2
47 Non-Fungsional Pohlig Hellman
3.2
48 Pemodelan Sistem
3.2.1
49 Flowchart Baby-Step Giant-Step
3.2.2
50 Flowchart Pohlig-Hellman
3.3
50 Perancangan Sistem
3.3.1
50 Sequence Diagram
3.3.2
51 Class Diagram
3.3.3
52 Penggunaan Komponen
3.3.4
53 Perancangan Menu
3.3.5
54 Perancangan Tampilan Antarmuka
3.3.5.1
54 Form ‘Main’
3.3.5.2
55 Form ‘Input Data’
3.3.5.3
56 Form ‘Pemahaman’
3.3.5.4
57 Form ‘Teori’
3.3.5.5
58 Form ‘Hasil Perbandingan’
3.3.5.6
58 Form’Mengenai’
Bab 4 Implementasi dan Hasil
4.1
60 Implementasi
4.1.1
60 Kebutuhan Hardware
4.1.2
60 Kebutuhan Software
4.2
61 Hasil
4.2.1
61 Hasil Pemahaman
4.2.2
64 Hasil Pengujian
Bab 5 Kesimpulan dan Saran
5.1
67 Kesimpulan
5.2
67 Saran Daftar Pustaka
DAFTAR GAMBAR
59 Gambar 4.1 Tampilan Form Main Klik Menu ‘Proses Kerja’ >> ‘Input Data’
66 Gambar 4.12 Tampilan Form Tabel Penyelesaian
65 Gambar 4.11 Tampilan Form Input Data untuk Pengujian III
65 Gambar 4.10 Tampilan Form Input Data untuk Pengujian II
64 Gambar 4.9 Tampilan Form Input Data untuk Pengujian I
64 Gambar 4.8 Tampilan Form Main Klik Menu ‘Proses Kerja’ >> ‘Tabel Penyelesaian’
63 Gambar 4.7 Tampilan Form Laporan
63 Gambar 4.6 Tampilan Form Pemahaman ‘Pohlig Hellman’
62 Gambar 4.5 Tampilan Form Main Klik Menu ‘Proses Kerja’ >> ‘Pemahaman’ >> ‘Pohlig Hellman’
Pemahaman ‘Baby Step Giant Step’
Gambar 4.4 Tampilan Form61 Gambar 4.3 Tampilan Form Main Klik Menu ‘Proses Kerja’ >> ‘Pemahaman’ >> ‘Baby Step Giant Step’ 62
61 Gambar 4.2 Tampilan Form Input Data
58 Gambar 3.11 Rancangan Form ’Mengenai’
Gambar 2.1 Sistem Bilangan57 Gambar 3.10 Rancangan Form ’Hasil Perbandingan’
56 Gambar 3.9 Rancangan Form ’Teori’
55 Gambar 3.8 Rancangan Form ‘Pemahaman’
55 Gambar 3.7 Rancangan Form ‘Input Data’
54 Gambar 3.6 Rancangan Form ‘Main’
52 Gambar 3.5 Rancangan Menu Utama
51 Gambar 3.4 Class Diagram
50 Gambar 3.3 Sequence Diagram
49 Gambar 3.2 Activity Diagram dari Pohlig-Hellman
dari Baby-Step Giant-Step
Activity Diagram
37 Gambar 3.1
12 Gambar 2.2 Siklus Hidup Waterfall
66