Solusi Masalah Logaritma Diskret pada

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