27
3.2.2 Solusi Masalah Logaritma Diskret pada
∗
dengan Algoritme Baby-Step Giant-Step
Algoritme Baby-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-Step untuk 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-Step adalah menentukan nilai
dan sedemikian sehingga mod
, untuk suatu . Caranya
adalah dengan membagi dengan representasi polinomial
sampai ditemukan
yang merupakan salah satu anggota { , , , … ,
}. Banyak
28
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 . Output : logaritma diskret
log mod
.
29
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-Step adalah
√ . 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 + mod
30
Tabel 3.2.2 Representasi Polinomial
mod untuk
∗
dengan = +
+ +
+ Representasi polinomial
mod 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 : + +
+ +
+ + +
+ +
+ +
+ + +
Jadi mod
= +
+ + .
31
Tabel 3.2.3 Hasil Perhitungan
, : mod
, untuk
∗
dengan = +
+ +
+ . Representasi Polinomial
: mod
+ +
+ + 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, Algoritme Naif Square juga dieksplorasi dari Algoritme
Baby-Step Giant-Step untuk grup siklik umum.
3.2.3 Solusi Masalah Logaritma Diskret pada