Pembatasan Masalah Kajian Pustaka

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

Logaritma Diskrit merupakan invers dari eksponensial diskrit dalam grup cyclic. Jika diasumsikan G adalah sebuah grup cyclic terbatas dengan order n, g adalah Universitas Sumatera Utara 3 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 n sedemikian sehingga y = g x . 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 Z p dan sebuah elemen y  Z p . Problema logaritma diskrit adalah untuk menemukan integer  Zp sedemikian sehingga g x = y mod p. 2. Group Discrete Logarithm Problem GDLP: diberikan sebuah grup cyclic terbatas G dengan order n, sebuah generator g  G dan sebuah elemen y  G, GDLP adalah untuk menemukan integer x sedemikian sehingga g x = 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 Z p dan sebuah elemen y  Z p . Maka secara komputasi akan sulit untuk menemukan sebuah integer x sedemikian sehingga y = g x mod 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 5. Pollard’s rho dan Pollard’s lambda Universitas Sumatera Utara 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 group yang 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 Algoritma ini akan menghitung nilai  j untuk beberapa nilai j terlebih dahulu. Kemudian, memilih sebuah nilai m dan mencoba nilai i pada bagian kiri dari kongruen diatas, sesuai dengan proses dari pengujian perkalian. Pengujian ini dilakukan untuk melihat apakah kongruen dipenuhi oleh salah satu nilai dari j, dengan menggunakan nilai  j yang telah dihitung sebelumnya. Universitas Sumatera Utara 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 j dimana 0 ≤ j m: Hitung α j dan 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 Z p yang relatif prima terhadap nilai p. Input : integer p, g, e. Output : integer x, sedemikian sehingga e  g x mod p. 1 Tentukan faktorisasi prima dari order dari grup hitung nilai totient : ? ? = ? ? . ? ? . …. ? ? Universitas Sumatera Utara 6 2 Dari Chinese Remainder Theorem, diketahui bahwa x = a 1 p 1 + b 1 . Sekarang, cari nilai b 1 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 b 1 = 0. Operasi yang sama juga dilakukan untuk p 2 hingga p n . Sebuah modifikasi minor diperlukan ketika sebuah bilangan prima diulang. Misalkan ditemukan nilai p i sebanyak k+1 buah. Maka dapat diketahui bahwa c i pada persamaan x = a i p i k+1 + b i p i k +c i , dan dapat ditemukan nilai b i dengan 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 Teorema Chinese Remainder berikut akan digunakan untuk menemukan solusi sistem kongruen linier seperti di atas : Universitas Sumatera Utara 7 Misalkan m 1 , m 2 , …, m n adalah bilangan bulat positif sedemikian sehingga GCDm i , m j = 1 untuk i  j. Maka sistem kongruen linier x  a k mod m k mempunyai sebuah solusi unik dalam modulo m = m 1 . m 2 . … . m n . Proses penyelesaian sebuah sistem kongruen linier dengan menggunakan Chinese Remainder Theorem dapat 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  b 1 mod m 1 ke dalam hubungan x = b 1 + m 1 .k 1 . 2 Substitusikan bentuk hubungan kongruen linier pertama tersebut ke dalam kongruen linier kedua, yang dapat dijabarkan seperti berikut : x  b 2 mod m 2 b 1 + m 1. k 1  b 2 mod m 2 m 1. k 1  b 2 – b 1 mod m 2 Jika bentuk b 2 – b 1 mod m 2 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 b 2 – b 1 harus lebih kecil daripada nilai m 2 . Jika tidak valid, maka nilai b 2 – b 1 harus di-modulo nilai m 2 . Hasil modulo menggantikan nilai b 2 – b 1 tersebut. Sehingga, proses dapat dilanjutkan seperti berikut : Jika b 2 – b 1 m 2 maka Universitas Sumatera Utara 8 h = b 2 – b 1 Jika tidak, h = b 2 – b 1 mod m 2 m 1. k 1  h mod m 2 k 1 ≡ h mod m 2 . m 1 -1 mod m 2 Bagian bercetak tebal tersebut dapat dicari dengan menggunakan algoritma Extended Euclidean. Misalkan m 1 -1 mod m 2 = z, maka : k 1  h . z mod m 2 Sama seperti proses di atas, jika bentuk h . z mod m 2 yang dihasilkan tidak valid, maka ubahlah ke bentuk valid. Sehingga, proses dapat dilanjutkan seperti berikut : Jika h . z m 2 maka g = h . z Jika tidak, g = h . z mod m 2 k 1  g mod m 2 ; atau : k 1 = g + m 2 .k 2 3 Substitusikan hasil yang didapat ke dalam bentuk hubungan kongruen linier pertama, seperti dijabarkan berikut ini : x = b 1 + m 1 .k 1 x = b 1 + m 1 .g + m 2 .k 2 x = b 1 + m 1 .g + m 1 .m 2 .k 2 x = b 1 + m 1 .g + m 1 .m 2 .k 2 4 Ulangi langkah 2 dan 3 di atas untuk semua kongruen linier lainnya hingga kongruen linier terakhir misalkan = n, didapatkan : x = b n – 1 + m n – 1 .g + m n – 1 .m n .k n Hasil yang memenuhi sistem kongruen linier adalah sebesar b n – 1 + m n – 1 .g. Universitas Sumatera Utara 9

1.5 Tujuan Penelitian