• Tidak ada hasil yang ditemukan

BAB I PENDAHULUAN 1.1 - Analisis Algoritma Baby-Step Giant-Step dan Pohlig-Hellman untuk Menyelesaikan Masalah Logaritma Diskrit

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB I PENDAHULUAN 1.1 - Analisis Algoritma Baby-Step Giant-Step dan Pohlig-Hellman untuk Menyelesaikan Masalah Logaritma Diskrit"

Copied!
10
0
0

Teks penuh

(1)

PENDAHULUAN

1.1 Latar Belakang

Problema logaritma diskrit adalah sebuah fundamental penting untuk proses pembentukan kunci pada berbagai algoritma kriptografi yang digunakan sebagai sekuritas dari algoritma. Problema logaritma diskrit ini dikatakan susah untuk dicari solusinya. Hal ini dikarenakan problema logaritma diskrit ini susah dihitung dan dicari solusinya secara manual. Cara termudah untuk mencari solusi dari problema ini adalah dengan cara brute force. Namun, hal ini akan memakan waktu yang lama.

Dalam literatur matematika, dapat ditemukan berbagai algoritma yang dipublikasikan oleh beberapa ahli yang dapat digunakan untuk menyelesaikan problema logaritma diskrit, diantaranya Baby-step giant-stepdanPohlig-Hellman. Kedua algoritma tersebut dirancang untuk digunakan pada grup bilangan yang berbeda-beda, yaitu Baby-step giant-steppada grup yang berubah-ubah (arbitrary group) dan Pohlig-Hellman untuk grup dengan faktor prima kecil. Pada teori grup, algoritma baby-step giant-step adalah sebuah rangkaian dari langkah yang terdefinisi dengan baik untuk menghitung logaritma diskrit. Algoritma ini merupakan modifikasi dari pengujian perkalian (trial multiplication). Sementara itu, algoritma Pohlig-Hellman adalah sebuah algoritma untuk komputasi dari logaritma diskrit pada grup perkalian dimana order adalah sebuah integer.

(2)

membandingkan proses eksekusi dari beberapa algoritma tersebut dalam mencari solusi dari problema logaritma diskrit. Oleh karena itu, penulis mengambil skripsi yang berjudul “Analisis Algoritma Baby-Step Giant-Step dan Pohlig-Hellman

untuk Menyelesaikan Masalah Logaritma Diskrit”.

1.2 Perumusan Masalah

Berdasarkan latar belakang penelitian, yang menjadi permasalahan dalam skripsi ini adalah:

1. Menentukan algoritma yang lebih baik dari Algoritma Baby-Step Giant-Step dengan menentukan Algoritma Pohlig-Hellman di dalam menyelesaikan logaritma diskrit.

2. Sulitnya memahami proses kerja penyelesaian logaritma secara manual. 3. Sulitnya memecahkan problema logaritma diskrit secara manual.

1.3 Pembatasan Masalah

Masalah yang akan dibahas dalam skripsi ini mencakup:

1. Bilangan yang digunakan merupakan himpunan bilangan bulat positif dengan batasan nilai antara 10 sampai 9999

2. Bilangan prima yang digunakan akan dibangkitkan dan diuji dengan menggunakan metode Rabin Miller.

3. Perangkat lunak akan menampilkan proses perhitungan dari kedua algoritma secara bertahap.

1.4 Kajian Pustaka

(3)

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  Zn sedemikian sehingga y = gx. (Boris S. Verkhovsky, 2009, 674).

Sedangkan, problema logaritma diskrit dapat dideskripsikan sebagai berikut:

1. Discrete Logarithm Problem(DLP): diberikan sebuah bilangan prima besar p,

sebuah generator g dari Zp* dan sebuah elemen y Zp*. Problema logaritma

diskrit adalah untuk menemukan integer  Zp* sedemikian sehingga gx = y mod p.

2. Group Discrete Logarithm Problem (GDLP): diberikan sebuah grup cyclic terbatas G dengan ordern, sebuah generator g G dan sebuah elemen y G, GDLP adalah untuk menemukan integer x sedemikian sehingga gx= y.

Sementara itu, asumsi dari logaritma diskrit dapat dideskripsikan sebagai berikut: (Boris S. Verkhovsky, 2009, 674-675)

Diberikan sebuah bilangan prima besar p yang dipilih secara hati-hati,

sedemikian sehingga algoritma diatas tidak bekerja pada DLP. Asumsikan g

adalah sebuah generator dari Zp* dan sebuah elemen y Zp*. Maka secara

komputasi akan sulit untuk menemukan sebuah integer x sedemikian sehingga y =

gxmod p.

Algoritma yang dapat digunakan untuk menghitung logaritma diskrit mencakup:

1. Baby-step giant-step 2. Pohlig-Hellman 3. Efisien kalkulus indeks 4. Function field sieve

(4)

1. Algoritma Baby-Step Giant-Step

Pada teori group, sebuah cabang dari matematika, algoritma baby-step giant-step adalah sebuah rangkaian dari langkah yang terdefinisi dengan baik untuk menghitung logaritma diskrit. Masalah logaritma diskrit adalah merupakan landasan penting pada area kriptografi kunci publik. Kebanyakan dari sistem kriptografi yang paling sering digunakan berdasarkan pada asumsi bahwa logaritma diskrit sangat sulit untuk dihitung, semakin sulit untuk dihitung, maka sekuritasnya dalam transfer data akan semakin tinggi. Salah satu cara untuk meningkatkan kesulitan dari masalah logaritma diskrit adalah dengan mendasarkan kriptosistem pada sebuah groupyang besar. (Andrew V. Sutherland, 2007, 49)

Algoritma baby-step giant-step ini berdasarkan pada sebuah waktu-jarak (space-time tradeoff). Algoritma ini merupakan modifikasi sederhana dari pengujian perkalian (trial multiplication), metode naive untuk menemukan logaritma diskrit.

Diberikan sebuah grup siklis (cyclic group) G dari order n, sebuah generator  dari grup dan sebuah elemen grup , masalahnya adalah untuk menemukan sebuah integer x sedemikian sehingga:

x = 

Algoritma baby-step giant-step berdasarkan pada penulisan ulang x

sebagai x = im + j, dengan m = n dan 0  i < m dan 0  j < m, sehingga diperoleh:

(-m)i= j

(5)

Rincian dari algoritma ini adalah sebagai berikut: (Andrew V. Sutherland, 2007, 50)

Input : sebuah cyclic group G dari order n, memiliki sebuah generator  dan sebuah elemen .

Output : sebuah nilai x yang memenuhi persamaan x= . 1) m← Ceiling(√n) (pembulatan ke atas)

2) Untuk semua nilai jdimana 0 ≤ j< m:

Hitung αjdan simpan pasangan nilai (j, αj) pada sebuah tabel. 3) Hitung nilai α−m.

4) γ←β.

5) Untuk i= 0 sampai (m− 1):

a. Cek apakah γ adalah komponen kedua (αj) dari sembarang pasangan pada tabel.

b. Jika ya, maka kembalikan nilai im+ j. c. Jika tidak, maka γ ← γ• α−m

.

2. Algoritma Pohlig-Hellman

Dalam matematika, algoritma Pohlig-Hellman adalah sebuah algoritma untuk menghitung logaritma diskrit pada sebuah grup perkalian dengan order berupa sebuah integer kecil. Algoritma ini berdasarkan pada Chinese Remainder Theorem.

Algoritma ini ditemukan oleh Roland Silver, tetapi pertama kali dipublikasikan oleh Stephen Pohlig dan Martin Hellman. Algoritma ini akan dijelaskan dalam grup yang dibentuk dengan mengambil semua elemen dari Zp yang relatif prima terhadap nilai p.

Input :integerp, g, e.

Output :integerx, sedemikian sehingga e gx(mod p).

1) Tentukan faktorisasi prima dari order dari grup (hitung nilai totient) :

(6)

2) Dari Chinese Remainder Theorem, diketahui bahwa x = a1p1+ b1. Sekarang,

cari nilai b1 agar persamaan berikut dipenuhi dengan menggunakan sebuah

algoritma cepat seperti algoritma Baby-step giant-step:

?? ( ? ) ?⁄ ? ≡ (??)? ( ? ) ?⁄ ? (mod p)

??? ( ? )??????? ( ? ) ?⁄ ? (mod p)

= ??? ( ? ) ?⁄ ???? (mod p) (menggunakan teorema Euler)

Perlu dicatat bahwa apabila ?? ( ? ) ?⁄ ? ≡ 1 (mod p) maka order dari g adalah

lebih kecil dari ?? ( ? ) ?⁄ ? (mod p) harus sama dengan 1 agar terdapat sebuah

solusi. Pada kasus ini, akan terdapat lebih dari satu buah solusi untuk x yang lebih kecil daripada φ(p), tetapi karena tidak diperlukan keseluruhan set, maka dapat diset nilai b1 = 0. Operasi yang sama juga dilakukan untuk p2hingga pn.

Sebuah modifikasi minor diperlukan ketika sebuah bilangan prima diulang. Misalkan ditemukan nilai pisebanyak k+1buah. Maka dapat diketahui bahwa

cipada persamaan x = aipik+1+ bipik+ci, dan dapat ditemukan nilai bidengan

cara yang sama seperti sebelumnya.

3) Proses diakhiri dengan kongruen simultan yang cukup sehingga x dapat diselesaikan dengan menggunakan Chinese Remainder Theorem.

3. Chinese Remainder Theorem (CRT)

Pada abad pertama, seorang matematikawan Tiongkok yang bernama Sun Tzu mengajukan pertanyaan sebagai berikut :

“Tentukan sebuah bilangan bulat yang bila dibagi dengan 5 menyisakan 3, bila

dibagi 7 menyisakan 5, dan bila dibagi 11 menyisakan 7”.

Pertanyaan Sun Tzu dapat dirumuskan ke dalam sistem kongruen linier :

x 3 (mod 5)

x 5 (mod 7)

x 7 (mod 11)

(7)

Misalkan m1, m2, …, mn adalah bilangan bulat positif sedemikian sehingga

GCD(mi, mj) = 1 untuk i  j. Maka sistem kongruen linier x  ak (mod mk) mempunyai sebuah solusi unik dalam modulo m = m1. m2. … . mn.

Proses penyelesaian sebuah sistem kongruen linier dengan menggunakan Chinese Remainder Theoremdapat dibagi menjadi beberapa 2 tahapan, yaitu: 1) Proses pencarian nilai invers modulo dengan menggunakan algoritma

Extended Euclidean.

2) Proses pencarian hasil dari sistem kongruen linier dengan menggunakan bantuan hasil nilai invers modulo yang diperoleh.

Selain itu, Chinese Remainder Theorem juga menggunakan teknik matematika dasar yang digunakan untuk menyelesaikan sistem persamaan linier, yaitu sistem substitusi persamaan.

Secara garis besar, cara kerja dari Chinese Remainder Theorem ini adalah sebagai berikut :

1) Ubahlah kongruen linier pertama x b1(mod m1) ke dalam hubungan x = b1+ m1.k1.

2) Substitusikan bentuk hubungan kongruen linier pertama tersebut ke dalam kongruen linier kedua, yang dapat dijabarkan seperti berikut :

x  b2(mod m2)

b1+ m1.k1  b2(mod m2)

m1.k1  (b2– b1) (mod m2)

Jika bentuk (b2– b1) (mod m2) yang dihasilkan tidak valid, maka ubahlah ke bentuk valid. Bentuk valid dari kongruen linier harus memenuhi persyaratan bahwa nilai sisa modulo harus lebih kecil daripada nilai bilangan modulo. Dalam hal ini, nilai (b2 – b1) harus lebih kecil daripada nilai m2. Jika tidak valid, maka nilai (b2 – b1) harus di-modulo nilai m2. Hasil modulo menggantikan nilai (b2 – b1) tersebut. Sehingga, proses dapat dilanjutkan seperti berikut :

(8)

h = (b2– b1)

Jika tidak,

h = (b2– b1) mod m2

m1.k1  h (mod m2)

k1 ≡ h (mod m2) . m1-1(mod m2)

Bagian bercetak tebal tersebut dapat dicari dengan menggunakan algoritma Extended Euclidean. Misalkan m1-1(mod m2) = z, maka :

k1  h . z (mod m2)

Sama seperti proses di atas, jika bentuk h . z (mod m2) yang dihasilkan tidak valid, maka ubahlah ke bentuk valid. Sehingga, proses dapat dilanjutkan

seperti berikut :

Jika h . z < m2maka

g = h . z

Jika tidak,

g = h . z mod m2

k1  g (mod m2) ; atau : k1 = g + m2.k2

3) Substitusikan hasil yang didapat ke dalam bentuk hubungan kongruen linier pertama, seperti dijabarkan berikut ini :

x = b1+ m1.k1

x = b1+ m1.(g + m2.k2) x = b1+ m1.g + m1.m2.k2 x = (b1+ m1.g) + (m1.m2).k2

4) Ulangi langkah (2) dan (3) di atas untuk semua kongruen linier lainnya hingga kongruen linier terakhir (misalkan = n), didapatkan :

x = (bn – 1+ mn – 1.g) + (mn – 1.mn).kn

(9)

1.5 Tujuan Penelitian

Tujuan penyusunan skripsi ini adalah menentukan algoritma yang lebih baik diantara kedua Algoritma Baby-Step Giant-Step dengan Algoritma Pohlig-Hellman yang diuji dengan cara membuat suatu perangkat lunak yang menerapkan prosedur kerja dari kedua algoritma dalam mencari solusi dalam masalah logaritma diskrit sekaligus membandingkan kecepatan eksekusi dari kedua algoritma tersebut.

1.6 Manfaat Penelitian

Manfaat dari penyusunan skripsi ini, yaitu:

1. Memperoleh hasil analisis mengenai kinerja dari algoritma Baby-step giant-stepdanPohlig-Hellmandalam mencari solusi dari masalah logaritma diskrit. 2. Mengetahui algoritma terbaik dari kedua algoritma yang diuji.

1.7 Metode Penelitian

Tahapan dan langkah-langkah metodologi penelitian dalam tulisan ini adalah sebagai berikut:

1. Studi Kepustakaan

Mengumpulkan dan mempelajari materi yang berhubungan dengan topik dari buku dan internet terutama mengenai proses kerja dari algoritma Baby-step giant-step dan Pohlig-Hellman dalam mencari solusi dari masalah logaritma diskrit.

2. Kajian Teoritis

Menganalisis proses kerja dari setiap algoritma. 3. Analisis

(10)

4. Perancangan (Desain)

Merancang tampilan dari perangkat lunak. 5. Implementasi Program

Menggunakan Microsoft Visual Basic 2008. 6. Pengujian Sistem

Menguji perangkat lunak dan memperbaiki kesalahan yang muncul. 7. Penulisan Laporan

Menyusun laporan tugas akhir.

1.8 Sistematika Penulisan

Agar pembahasan lebih sistematika, maka tulisan ini dibuat dalam lima bab, yaitu:

BAB I PENDAHULUAN

Berisi latar belakang pemilihan judul, rumusan masalah, tujuan dan manfaat, batasan masalah dan sistematika penulisan.

BAB II LANDASAN TEORI

Berisi tentang penjelasan singkat mengenai algoritma, logaritma diskrit dan Microsoft Visual Basic.NET.

BAB III ANALISA DAN PERANCANGAN

Berisi tentang pembahasan mengenai proses kerja dan perancangan tampilan antarmuka.

BAB IV IMPLEMENTASI PERANGKAT LUNAK

Berisi tentang algoritma dan implementasi dari perangkat lunak.

BAB V KESIMPULAN DAN SARAN

Referensi

Dokumen terkait