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 ABSTRACT

  Assume 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 Form

  61 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 Bilangan

  57 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