HASIL DAN PEMBAHASAN
3.2 SOLUSI MASALAH LOGARITME DISKRET PADA ∗
3.2.2 Solusi Masalah Logaritma Diskret pada ∗ dengan Algoritme Baby-Step Giant-Step
AlgoritmeBaby-Step Giant-Step pertama kali dipublikasikan oleh Shanks pada tahun 1971. Algoritme ini merupakan time-memory trade-off dari Algoritme Exhaustive Search yakni situasi dimana memori komputer digunakan untuk mengurangi biaya dan waktu eksekusi program (Menezes et al.1997).
Berikut analisis Algoritme Baby-Step Giant-Step untuk ∗ yang dieksplorasi dari Algoritme Baby-Step Giant-Stepuntuk grup siklik umum.
Misalkan adalah sebuah generator grup siklik ∗, dengan order
∗ adalah , ∈ ∗ dan polinomial irredusibel berderajad
atas ℤ . Masalah logaritma diskret adalah menentukan , −,
sedemikian sehingga log mod . Untuk menentukan log mod , dengan Algoritme Baby-Step Giant-Step ada dua fase
yang harus dilewati yaitu fase baby-step dan fase giant-step. Ide dasarnya adalah membagi dengan , = √ , sampai ditemukan dalam himpunan { , , , … , }.
Langkah pertama menentukan nilai = √ dimaksudkan untuk menentukan batas minimal banyaknya representasi polinomial yang akan disimpan dalam memori komputer.
Langkah kedua adalah membentuk tabel dengan pasangan , (mod ), < −, dimaksudkan untuk menentukan representasi polinomial sebanyak yang akan disimpan di memori komputer, yakni { , , , … , }. Untuk membentuk tabel pasangan , (mod ) dapat digunakan Algoritme Exhaustive Search. Selanjutnya representasi polinomial– polinomial disimpan dalam memori komputer. Penyimpanan representasi polinomial–polinomial ini disebut fase baby-step.
Langkah ketiga Algoritme Baby-Step Giant-Stepadalah menentukan nilai dan sedemikian sehingga (mod ), untuk suatu . Caranya adalah dengan membagi dengan representasi polinomial sampai ditemukan yang merupakan salah satu anggota { , , , … , }. Banyak
langkah dalam proses pembagian ini adalah . Dalam proses pembagian ini berlaku aturan penjumlahan dan perkalian polinomial dalam .
∶ = : = ∶ = ∶ = ∶ = = Untuk menentukan nilai dan dengan cara membagi dengan representasi polinomial sama artinya dengan mengalikan dengan polinomial . Kalau cara kedua ini yang digunakan maka langkah pertama adalah menentukan dengan menggunakan Algoritme Euclidean yang Diperluas. Selanjutnya kalikan dengan representasi polinomial sampai diperoleh = . Proses menghitung nilai ini disebut fase giant-step.
Jika sudah ditemukan nilai dan , maka selanjutnya dapat ditentukan nilai logaritma diskret . Berdasarkan Definisi Logaritma Diskret :
log mod ⇔ mod Sehingga dari (1) dan (2) diperoleh :
= = = log = log − = = +
Jadi solusi dari mod adalah = + log mod . Algoritme 3.2.2
Algoritme Baby-Step Giant-Step untuk menentukan masalah logaritma diskret
pada ∗
Input : generator grup siklik ∗ berorder = − , dan ∈ ∗, dan polinomial irredusibel atas ℤ berderajad .
1) Menetapkan nilai = √
2) Bentuk tabel dengan pasangan , mod , dimana −. 3) Hitung , kemudian tetapkan nilai = .
Bentuk tabel dengan pasangan , mod , , sampai diperoleh nilai dari = .
4) Solusi dari mod adalah + mod .
Dalam Menezes et al.(1997) nilai harapan kompleksitas waktu Algoritme Baby-Step Giant-Stepadalah √ . Implementasinya dengan bantuan sofware Maple 11 dapat dilihat pada Lampiran 3.3.
Contoh 3 (Menentukan masalah logaritma diskret pada grup multiplikatif
∗dengan Baby-Step Giant-Step)
Diketahui : adalah generator grup multiplikatif ∗,
= + + + + ∈ ∗, dan
= + + . Tentukan log mod . Penyelesaian :
1. Order dari ∗adalah = − =
Jadi = √ = . Artinya banyaknya representasi polinomial yang akan disimpan di memori komputer minimal adalah 12, , yakni
{ , , , … , }
2. = + + polinomial irredusibel atas ℤ , dengan generator
∗sehingga :
mod + + mod
Tabel 3.2.2 Representasi Polinomial ( mod untuk ∗dengan = + + + + Representasi polinomial mod 0 1 1 2 3 4 5 6 7 + 8 + 9 + 10 + 11 +
Pada Tabel 3.2.2 ini terlihat jika , maka polinomial direduksi ke
mod .
3. Menentukan nilai , = , , , … yang memenuhi kongruensi mod . Agar mudah tentukan terlebih dahulu mod . Untuk menentukan gunakan Algoritme Euclidean
Diperluas : + + + + + + + + + + + + + + mod = + + +
Tabel 3.2.3Hasil Perhitungan , : mod , untuk ∗ dengan = + + + + . Representasi Polinomial : mod 0 + + + + 1 + + + 2 + + + 3 +
Pada saat = , diperoleh nilai = = + , dengan = .
4. Jadi solusi = log mod = + = . + =
Tiga algoritme berikut (Algoritme Baby-Step Giant-Step 2, Algoritme Baby-Step Giant-Step 3, AlgoritmeNaif Square) juga dieksplorasi dari Algoritme Baby-Step Giant-Stepuntuk grup siklik umum.
3.2.3 Solusi Masalah Logaritma Diskret pada ∗ dengan Algoritme Baby-Step Giant-Step 2
Misalkan adalah sebuah generator grup siklik ∗, dengan order
∗ adalah , ∈ ∗ dan polinomial irredusibel berderajad
atas ℤ . Masalah logaritma diskret adalah menentukan , −,
sedemikian sehingga log mod . Untuk menentukan log mod , dengan Algoritme Baby-Step Giant-Step2 juga ada dua
fase yang harus dilewati yaitu fase baby-step dan fase giant-step. Ide dasarnya adalah membagi dengan , sampai ditemukan dalam himpunan { , , , … , }.
Langkah pertama menentukan nilai = √ dimaksudkan untuk menentukan batas minimal banyaknya representasi polinomial yang akan disimpan dalam memori komputer. Sebenarnya tidak harus sama dengan √ ,
boleh kurang atau lebih dari √ tergantung dari kapasitas memori komputer yang digunakan, tetapi pada tulisan ini untuk komputasi diambil nilai = √ .
Langkah kedua adalah membentuk tabel dengan pasangan , (mod ), < −, dimaksudkan untuk menentukan polinomial sebanyak yang akan disimpan di memori komputer, yakni { , , , … , }. Untuk membentuk tabel pasangan , (mod ) dapat digunakan Algoritme Exhaustive Search. Selanjutnya representasi polinomial–polinomial disimpan dalam memori komputer. Penyimpanan polinomial–polinomial ini disebut fase baby-step.
Langkah ketiga Algoritme Baby-Step Giant-Stepadalah menentukan nilai dan sedemikian sehingga (mod ), untuk suatu . Caranya adalah dengan membagi dengan representasi polinomial sampai ditemukan yang merupakan salah satu anggota { , , , … , }. Banyak langkah dalam proses pembagian ini adalah . Dalam proses pembagian ini berlaku aturan penjumlahan dan perkalian polinomial dalam .
∶ = : = ∶ = ∶ = ∶ = = Proses menghitung nilai ini disebut fase giant-step.
Jika sudah ditemukan nilai dan , maka selanjutnya dapat ditentukan nilai logaritma diskret . Berdasarkan Definisi Logaritma Diskret :
log mod ⇔ mod Sehingga dari (1) dan (2) diperoleh :
= = = log = log − = = +
Algoritme 3.2.3
Algoritme Baby-Step Giant-Step 2 untuk menentukan masalah logaritma diskret
pada ∗
Input : generator grup multiplikatif ∗ berorder = − , ∈ ∗, dan polinomial irredusibel atas ℤ berderajad .
Output : logaritma diskret log mod 1) Menetapkan nilai = √
2) Bentuk tabel dengan pasangan , mod , dimana −. 3) Hitung , kemudian tetapkan nilai = .
Bentuk tabel dengan pasangan , mod , , sampai diperoleh nilai dari = .
4) Solusi dari mod adalah + mod .
Dalam Menezes et al.(1997) nilai harapan kompleksitas waktu Algoritme Baby-Step Giant-Stepadalah √ . Implementasinya dengan bantuan sofware Maple 11 dapat dilihat pada Lampiran 3.4.
Contoh 4 (Menentukan masalah logaritma diskret pada grup multiplikatif
∗dengan Baby-Step Giant-Step2)
Diketahui : adalah generator grup multiplikatif ∗,
= + + + + ∈ ∗, dan
= + + . Tentukan log mod . Penyelesaian :
1) Order dari ∗adalah = − =
Jadi = √ = . Artinya banyaknya representasi polinomial yang akan disimpan di memori komputer minimal adalah 12, −, yakni
{ , , , … , }
2) = + + polinomial irredusibel atas ℤ , dengan generator
∗sehingga :
+ mod
Representasi polinomial yang akan disimpan di memori komputer dapat dilihat pada Tabel 3.2.2 hal 30.
3) Menentukan nilai , = , , , … yang memenuhi kongruensi mod . Agar mudah menentukan terlebih dahulu tentukan
mod dengan menggunakan Algoritme Euclidean yang Diperluas :
Jadi + + + + + mod .
Tabel 3.2.4 Hasil Perhitungan , : mod , untuk ∗
dengan = + + + + . Representasi Polinomial : mod 0 + + + + 1 + + + 2 + + 3 + + + 4 + + 5 + 6
Pada saat = , diperoleh nilai = = , dengan = . 4) Jadi solusi = log mod = + = . + =.
+ +
+ + + + + = +
+ + + + + +
3.2.4 Solusi Masalah Logaritma Diskret pada ∗ dengan Algoritme Baby-Step Giant-Step 3
Misalkan adalah sebuah generator grup multiplikatif ∗, dengan order ∗ adalah , ∈ ∗ dan polinomial irredusibel berderajad atas ℤ . Masalah logaritma diskret adalah menentukan , −, sedemikian sehingga log mod . Untuk menentukan log mod seperti halnya pada Algoritme Baby-Step Giant-Step dan Algoritme Baby-Step Giant-Step 2, Algoritme Baby- Step Giant-Step 3 juga harus melewati fase baby-step dan fase giant-step. Ide dasarnya adalah membagi dengan sampai ditemukan ; = ,
< , −, integer positif, < , dengan adalah salah satu anggota himpunan { , , , … , , … , }.
Langkah pertama menentukan nilai = , < , dimaksudkan untuk menentukan batas minimal banyaknya representasi polinomial ,
−. yang akan disimpan di memori komputer.
Langkah kedua adalah membentuk tabel dengan pasangan , mod , ∀ , dimana −, dimaksudkan untuk menentukan representasi polinomial yang akan disimpan di memori komputer, yakni { , , , … , }. Sama seperti pada algoritme Baby-Step Giant-Step, untuk membentuk tabel pasangan , (mod )) juga dapat digunakan Algoritme Exhaustive Search. Fase ini disebut fase baby-step.
Langkah ketiga Algoritme Baby-Step Giant-Step 3 adalah menentukan nilai , dan sedemikian sehingga (mod ), untuk suatu
< , . Caranya adalah membagi dengan representasi polinomial sampai ditemukan , dimana merupakan salah satu anggota { , , , … , }. Dalam proses pembagian ini berlaku aturan penjumlahan dan perkalian polinomial dalam . Banyak langkah dalam proses pembagian ini adalah .
∶ =
∶ =
∶ =
∶ = = Proses menghitung nilai ini disebut fase giant-step.
Jika sudah ditemukan nilai , dan , maka selanjutnya dapat ditentukan nilai logaritma diskret . Berdasarkan Definisi Logaritma Diskret :
log mod ⇔ mod Sehingga dari (1) dan (2) diperoleh :
= = = log = log − = + = + +
Jadi solusi dari mod adalah = + +
log mod .
Algoritme 3.2.4
Algoritme Baby-Step Giant-Step 3 untuk menentukan masalah logaritma diskret
pada ∗
Input : generator grup multiplikatif ∗berorder = − , ∈ ∗, dan polinomial irredusibel atas ℤ berderajad .
Output : logaritma diskret log mod . 1) Tetapkan nilai = , < .
2) Bentuk tabel dengan pasangan , mod , ∀ , dimana −.
3) Mencari nilai , dan , sedemikian sehingga mod , untuk suatu < dan .
Nilai harapan kompleksitas waktu Algoritme Baby-Step Giant-Step 2 adalah √ (Menezes et al. 1997). Implementasinya dengan bantuan sofware Maple 11 dapat dilihat pada Lampiran 3.5.
Contoh 5 (Menentukan masalah logaritma diskret pada grup siklik = ∗ denganBaby-Step Giant-Step3)
Diketahui : adalah generator grup multiplikatif ∗,
= + + + + ∈ ∗, dan
= + + . Tentukan log mod . Penyelesaian :
= + + irredusibel atas ℤ . Ambil = √ = √ − = . Jadi banyaknya representasi polinomial yang akan disimpan di memori komputer sebanyak =12 yaitu { , , … , }, generator, maka
= + + = = +
Representasi polinomial yang akan disimpan di memori komputer dapat dilihat pada Tabel 3.2.2 hal 30.
Selanjutnya menentukan nilai dan , yang memenuhi kongruensi
mod . Agar mudah menentukan dan terlebih dahulu tentukan
mod . Ambil = , Sehingga diperoleh = = . Untuk
menentukan gunakan Algoritme Euclidean yang Diperluas :
Jadi mod = + + + + +
Selanjutnya tentukan terlebih dahulu mod , untuk .
+ +
+ + + + + = +
Tabel 3.2.5 Hasil Perhitungan , : mod , untuk ∗ dengan = + + + + . : mod = + + + + + + + = + + + + + + + + = + + + + = + + = =
Pada saat = , diperoleh kongruensi :
+ mod ; = , = , dan = .
Sehingga : + + mod
× + + mod mod 127)
Pada contoh ini banyaknya proses pembagian hingga ditemukan ada 6 langkah. Langkah ini lebih banyak jika dibandingkan dengan banyaknya langkah pada contoh 4 yang menggunakan Algoritme Baby-Step Giant-Step. Dari contoh ini terlihat bahwa jika representasi polinomial yang disimpan di memori komputer besar, maka proses pembagian sampai diperoleh representasi polinomial , ∈ { , , , , … }, akan lebih cepat (banyaknya langkah lebih sedikit), begitu juga sebaliknya.
3.2.5 Solusi Masalah Logaritma Diskret pada ∗ dengan Algoritme