• Tidak ada hasil yang ditemukan

Solusi Masalah Logaritma Diskret pada ∗ dengan Algoritme Pollard’s rho

HASIL DAN PEMBAHASAN

3.2 SOLUSI MASALAH LOGARITME DISKRET PADA ∗

3.2.6 Solusi Masalah Logaritma Diskret pada ∗ dengan Algoritme Pollard’s rho

Algoritme Pollard’s rho adalah algoritme untuk memecahkan masalah logaritma diskret dan masalah faktorisasi integer, ditemukan oleh John Pollard pada tahun 1975. Efektif digunakan untuk pemfaktoran bilangan komposit dengan faktor kecil. Algoritme ini didasarkan pada Algoritme Floyd’s Cycle-Finding dan pada pengamatan bahwa (seperti pada Birthday Paradox Problem) dua bilangan dan adalah kongruen modulo dengan peluang , setelah langkah ke √ √ ln .

Agar lebih mudah untuk memahami Algoritme Pollard’s rho, terlebih dahulu akan kita kaji tentang Algoritme Floyd’s Cycle-Finding dan Birthday Paradox.

Floyd’s Cycle-Finding

Algoritme Floyd’s Cycle-Finding ditemukan oleh Robert W. Floyd pada tahun 1967. Algoritme Floyd’s Cycle-Finding digunakan untuk menemukan cycle dalam barisan { , , , … , } dengan membandingkan elemen-elemen sampai sehingga pasangan = ditemukan.

Lemma 2.4.8 menjelaskan hubungan antara Algoritme Floyd’s Cycle- Finding dengan Algoritme Pollard’s rho. Lemma tersebut menunjukkan bahwa dalam barisan bilangan yang dibangkitkan oleh sebuah fungsi yang memetakan sebuah himpunan hingga ke himpunan hingga menjamin adanya satu atau lebih bilangan yang sama. Dalam barisan bilangan yang dibangkitkan tersebut terjadi

Floyd’s Cycle Finding digunakan untuk menemukan dan sedemikian sehingga mod .

Birthday Paradox

Diasumsikan bahwa dalam 1 tahun terdiri dari 365 hari. Berapa banyak orang yang harus ada sehingga peluang 2 orang memiliki hari ulang tahun yang sama adalah ? Pertanyaan tersebut menjadi dasar dari Birthday Paradox.

Kunci untuk memahami permasalahan ini adalah dengan berpikir bahwa peluang tidak ada 2 orang yang memiliki ulang tahun yang sama adalah peluang bahwa orang ke-1 akan memiliki ulang tahun yang berbeda dengan orang ke-2 dan akan berbeda dengan orang ke-3 dan seterusnya. Semakin banyak orang yang dilibatkan, maka peluang tidak adanya 2 orang dengan tanggal ulang tahun yang sama akan semakin kecil.

Untuk menghitung peluang ini, kita abaikan variasi tahun kabisat, terdapat orang kembar, dan asumsi bahwa 365 tanggal akan memiliki kemungkinan yang sama.

Misalkan banyaknya hari dalam satu tahun adalah = hari. Pertama akan dihitung peluang ∗ yaitu peluang orang tidak akan memiliki tanggal ulang tahun yang sama.

=

= . . … − +

= − !!

Orang ke-2 memiliki tanggal ulang tahun yang berbeda dengan orang ke-1 dengan peluang kejadian , orang ke-3 harus memiliki tanggal ulang tahun yang berbeda dengan 2 orang pertama dengan peluang kejadian , dan seterusnya.

Peluang setidaknya 2 orang dari kelompok tersebut memiliki tanggal ulang tahun yang sama adalah komplemen dari peluang tanggal ulang tahun semua orang akan berbeda, yaitu :

Misalkan , adalah peluang bahwa dari banyaknya orang akan menghasilkan sedikitnya 2 tanggal hari ulang tahun yang sama. Dapat dilihat bahwa , = − = , = − . = − , = − . − = − − , = − . − . − = − − . − , = − . − … − + = − ∗= − ! − !

Dengan menggunakan rumus di atas ternyata nilai akan melebihi 50% ketika = , perhitungannya dapat dilihat di tabel berikut :

Tabel 3.2.7 Hasil Perhitungan Birthday Paradox

10 0.1169 20 0.4114 23 0.5073 30 0.7063 40 0.8912 50 0.9704 60 0.9941 70 0.9992 80 0.9999 90 0.9999 100 1.0000 150 1.0000

Jadi dalam teori probabilitas, birthday paradox menyatakan bahwa dari suatu kelompok dengan anggota 23 orang yang dipilih secara acak, maka peluang setidaknya ada 2 orang yang memiliki tanggal ulang tahun yang sama adalah lebih dari 50%. Semakin besar semakin meningkat tajam peluang yang diperolehnya. Pada percobaan orang yang ke-100 saja peluangnya sudah mencapai 1. Padahal secara umum peluang percobaan untuk menghasilkan sedikitnya 2 tanggal hari ulang tahun yang sama dijamin akan bernilai satu ketika banyaknya percobaan tersebut sama atau lebih besar dari input yang ada. Dalam kasus ini besarnya input adalah 365. Karena peluang ini lebih besar dari yang diperkirakan oleh sebagian besar orang maka disebut sebagai paradox. Hal inilah yang menjadi motivasi dari Birthday Paradox.

Dari uraian di atas dapat disimpulkan bahwa Birthday Paradox digunakan untuk menjamin bahwa mulai adanya satu atau lebih bilangan yang sama dalam barisan bilangan sedikitnya setelah langkah ke-√ √ ln dengan peluang lebih dari setengah.

Berikut analisis Algoritme Pollard’s rho untuk ∗yang dieksplorasi dari Algoritme Pollard’s rhountuk grup siklik umum.

Misalkan ∗ adalah grup multiplikatif dibawah operasi perkalian berorder = − , generator ∗, ∈ ∗, dan polinomial irredusibel berderajad atas ℤ . Ide dari Algoritme Pollard’s rho untuk menentukan masalah logaritma diskret log mod adalah menemukan = pada barisan { }untuk .

Langkah pertama adalah mempartisi grup multiplikatif ∗ menjadi 3 partisi (subset) yang kira-kira berukuran sama, ∗= ∪ ∪ . Berikut contoh pendefinisian keanggotaan himpunan , = , ,. Misal adalah himpunan semua polinomial derajadnya kelipatan 3 sisa 1, adalah himpunan semua polinomial derajadnya kelipatan 3 sisa 2, adalah himpunan semua polinomial derajadnya kelipatan 3 sisa 0. Pendefinisian keanggotaan yang tepat penting untuk menghindari ketidakmerataan pendistribusian anggota

ke dalam subset-subsetnya. Karena jika pendistribusiannya tidak merata

akan mengakibat hasil komputasi logaritma diskret yang diperoleh salah, atau bahkan yang lebih parah tidak akan ditemukan = pada barisan { }. Selain

contoh tersebut masih ada 5 kemungkinan kombinasi pendefinisian yang bisa digunakan. Lebih jelas bisa dilihat di tabel berikut :

Tabel 3.2.8 Beberapa Kemungkinan Pendefinisian Keanggotaan Himpunan ⊆ ∗, = , , untuk Algoritme Pollard’s rho

No

Sisa dari derajad polinomial kelipatan tiga untuk

1 1 2 0 2 1 0 2 3 2 1 0 4 2 0 1 5 0 1 2 6 0 2 1

Selanjutnya berdasarkan Algoritme Floyd’s Cycle-Finding, kita bangkitkan barisan , , … secara acak dengan iterasi menggunakan fungsi (dengan : ∗→ ∗ sampai ditemukan = . Karena ∗ berhingga, maka barisan { }akhirnya menjadi periodik membentuk siklus, yakni ada index terkecil sehingga = untuk beberapa , kemudian =

untuk semua +(seperti pada gambar berikut) (Hankerson 2004).

disebut tail length dan disebut cycle length dari barisan.

Kita definisikan fungsi : ∗× ℤ × ℤ → ∗× ℤ × ℤ sebagai berikut :

, , = ,, , + jika ∈, jika ∈ , + , jika ∈ dengan integer.

Selanjutnya, setiap tripel , , harus memenuhi bentuk = . Dimulai dengan mendefinisikan tripel awal, yakni untuk = ,(0, 0, 0), maka

, , = , , jika =, , jika

Bandingkan tripel , , dan , , sampai ditemukan suatu nilai sedemikian sehingga = . Jika sudah ditemukan = , maka :

= ∗ Diketahui = log , artinya = , maka persamaan ∗ menjadi

=

= ∗∗ Karena berorder , maka dari ∗∗

+ = + mod

− = − mod

Jika gcd − , = , maka − mempunyai invers, sehingga diperoleh solusi sebagai berikut :

= − − mod

Algoritme 3.2.6

Algoritme Pollard’s rho untuk menentukan masalah logaritma diskret pada

Input : generator grup multiplikatif ∗, , ∗ berorder = − , ∈ = ∗, polinomial irredusibel atas ℤ berderajad .

Output : logaritma diskret log mod

1) Bagi grup multiplikatif ∗ menjadi 3 partisi himpunan yaitu , dan .

2) Bentuk barisan , , , …, barisan , , , …, dan barisan , , , … dengan iterasi menggunakan fungsi yang didefinisikan :

, , = ,, , + jika ∈, jika ∈ , + , jika ∈ 3) Untuk = , definisikan = , = , = .

, , = , , jika =, , jika

4) Bandingkan nilai dari , , dan , , sedemikian sehingga

diperoleh = atau = .

5) Kemudian dengan aturan perkalian dan aturan logaritma dengan basis , persamaan di atas menjadi = sehingga diperoleh

− log = − mod .

6) Jika = − mod maka persamaan menjadi

r log = − mod sehingga didapatkan

log = − mod dan solusi logaritma diskret adalah :

= log = − mod

Dalam Menezes et al.(1997) nilai harapan kompleksitas waktu Algoritme Pollard’s rho ini adalah √ . Implementasinya dengan bantuan sofware Maple 11 dapat dilihat pada Lampiran 3.7.

Contoh 7 (Menentukan masalah logaritma diskret pada grup multiplikatif

dengan Pollard’s rho)

Diketahui : generator grup multiplikatif ∗,

= + + ∈ ∗, dan

= + +

Tentukan log mod .

Penyelesaian :

dipartisi menjadi 3 himpunan yaitu , , dan ;

=himpunan semua polinomial derajadnya kelipatan tiga sisa 1. =himpunan semua polinomial derajadnya kelipatan tiga sisa 2. =himpunan semua polinomial derajadnya kelipatan tiga sisa 0. Misalkan ambil = , sehingga = .

= ≝ . mod mod , jika ∈, jika ∈

. mod , jika ∈ , untuk = , jika ∈ mod , jika ∈

+ mod , jika ∈

= + mod , mod , jika ∈jika ∈

, jika ∈ yang memenuhi persamaan = , dimana .

Nilai-nilai untuk , , , , , , dengan = , = = dapat dilihat pada tabel berikut.

Tabel 3.2.9 Hasil Perhitungan , , , , , , pada ∗ dengan

= + + dan = . 1 1 0 + + + 1 1 2 + + + 1 1 + + 2 2 3 + + 1 2 + + + 2 4 4 + + 2 2 + 3 5 5 + 2 3 + 4 6 6 + + + 2 4 5 7 7 + + + 3 4 + + 6 8 8 + 3 5 + + 6 10 9 + 4 5 + + + 7 11 10 + 4 6 + + 8 12 11 + 5 6 8 14 12 5 7 + 8 16 13 6 7 + + 9 17 14 + + 6 8 + + 9 19 15 + 6 9 + + 10 20 16 + + 6 10 + + 10 22 17 + + 7 10 + + 10 24 18 + + + 7 11 + + + 11 25

Diperoleh :

= = + + + ,

= − mod 31)= − mod 31 = 17,

= mod 31 = 11,

= − mod 31 = − mod 31 =13.

Jadi = log mod )= . Contoh 8

Diketahui : generator grup multiplikatif ∗, dan

= + + ∈ ∗, = + + .

Tentukan log mod .

Penyelesaian :

Cara penyelesaiannya sama seperti pada Contoh 7, tetapi dengan mengambil = , sehingga = = + .

Tabel 3.2.10Hasil Perhitungan , , , , , , pada ∗dengan = + + dan = = + . 1 + 1 0 + 2 0 2 + 2 0 + + 3 1 3 + + + 2 1 + + + 3 3 = = + + + , = − mod 31= − mod 31= 29, = mod 31 = 15, = − mod 31 = − mod 31 =13.

Jadi = log mod = .

Contoh 9

Diketahui : generator grup multiplikatif ∗,

= + + ∈ ∗, dan

Penyelesaian :

Cara penyelesaiannya sama seperti pada Contoh 7 dan 8, tetapi dengan mengambil = , sehingga = = + + + + .

Tabel 3.2.11Hasil Perhitungan , , , , , , pada ∗dengan = + + dan = = + + + + . 1 + + + + 1 0 + + 1 1 2 + + 1 1 + + + 1 3 3 + 1 2 + 2 4 4 + + + 1 3 + + 3 5 5 + 2 3 + + 3 7 6 + 2 4 + + 5 7 7 3 4 10 15 = = , = − mod 31= − mod 31= 20, = mod 31 = 14, = − mod 31 = − mod 31 =13. Contoh 10

Diketahui : generator grup multiplikatif ∗,

= + ∈ ∗, dan

= + + .

Tentukan log mod .

Penyelesaian :

Sama seperti pada Contoh 7 ∗ dipartisi menjadi 3 himpunan yaitu , , dan ;

=himpunan semua polinomial derajadnya kelipatan tiga sisa 1. =himpunan semua polinomial derajadnya kelipatan tiga sisa 2. =himpunan semua polinomial derajadnya kelipatan tiga sisa 0. Misalkan ambil = , sehingga = = + .

Didefinisikan :

= ≝ . ,, jika ∈jika ∈

. , jika ∈ , untuk = , jika x ∈ S mod n, jika x ∈ S

+ mod n, jika x ∈ S dan

= + mod , mod , jika ∈jika ∈ , jika ∈

yang memenuhi persamaan = , dimana .

Nilai-nilai untuk , , , , , , dengan = , = = dapat dilihat pada tabel berikut.

Tabel 3.2.12Hasil Perhitungan , , , , , , pada ∗dengan = + dan = = + . i 1 + 1 0 + + 1 1 2 + + 1 1 + 4 2 3 2 1 5 3 Diperoleh : = = , = − mod = − mod = 13, = mod = , = − mod = − mod = .

Jadi = log mod = . Contoh 11

Diketahui : generator grup multiplikatif ∗,

= + ∈ ∗, dan

= + + .

Misalkan ambil = , sehingga = = + + .

Tabel 3.2.13 Hasil Perhitungan , , , , , , pada ∗dengan = + dan = = + + . i 1 + + 1 0 + 2 0 2 + 2 0 + + 4 0 3 + 3 0 + + 10 0 4 + + 4 0 + + 10 0 5 + 5 0 + + 10 0 6 + + 10 0 + + 10 0 = = + + , = − mod = − mod = 0,

Karena = , maka tidak mempunyai invers modulo. Sehingga dalam kasus ini tidak bisa ditentukan yang benar.

Contoh 12

Diketahui : generator grup multiplikatif ∗,

= + ∈ ∗, dan = + + .

Tentukan log mod .

Penyelesaian :

Cara penyelesaiannya sama seperti pada Contoh 11 dan 12. Misalkan ambil = , sehingga = .

Tabel 3.2.14Hasil Perhitungan , , , , , , pada ∗dengan = + dan = . i 1 1 0 + + 1 1 2 + + 1 1 + + 4 4 = = + + , = − mod = − mod = 12.

Karena gcd , ≠ , maka tidak mempunyai invers modulo. Sehingga dalam kasus ini tidak bisa ditentukan yang benar.

Dari Contoh 10, 11 dan 12, terlihat bahwa penentuan ( adalah pangkat dari generator ) akan sangat berpengaruh pada keberhasilan untuk menentukan logaritma diskret yang benar. Tetapi jika kita lihat Contoh 7, 8, dan 9, pengambilan yang berbeda tidak mempengaruhi keberhasilan dalam menentukan logaritma diskret . Ini sebenarnya berhubungan dengan order grup siklik ∗ ; = − . Jika ∗ berorder prima, maka walaupun dengan berbeda tetap akan diperoleh hasil yang tepat, dan sebaliknya jika

berorder komposit maka memilih harus berhati-hati agar ditemukan

yang benar. Berikut beberapa kemungkinan yang dapat terjadi akibat dari ketidaktepatan pemilihan generator pada grup ∗berorder komposit.

1) = . Jika = , maka tidak mempunyai invers modulo. Sehingga tidak bisa ditentukan logaritma diskret yang benar.

2) gcd , ≠; adalah order grup ∗. Jika gcd , ≠, maka tidak mempunyai invers modulo. Sehingga tidak bisa ditentukan logaritma diskret yang benar atau logaritma diskret yang diperoleh tidak tepat.

Selain pemilihan pangkat generator ( ), hal penting yang juga harus diperhatikan dalam Algoritme Pollard’s rho ini adalah cara mempartisi grup siklik ∗ menjadi 3 himpunan bagian. Pembagian grup harus seacak mungkin, agar pendistribusian anggota tidak menumpuk pada satu himpunan bagian, karena akan berpengaruh untuk keberhasilan penentuan logaritma diskret yang tepat. Perhatikan bahwa himpunan bagian ini tidak harus subgrup dari grup multiplikatif ∗.

3.2.7 Solusi Masalah Logaritma Diskret pada dengan Algoritme

Dokumen terkait