HASIL DAN PEMBAHASAN
3.3.2 Algoritme Pelacakan Lengkap Negatif
disebut negative exhaustive search algorithm (Algoritme pelacakan lengkap
negatif).
3.3.2 Algoritme Pelacakan Lengkap Negatif
Solusi dengan menggunakan algoritme ini berada pada dua rentang yaitu ? ? ? ? ?? – ? dan ?? ? ? ? ? – ?. Apabila ??? ? ?• ? ? ? ?? ?? berada pada rentang ? ? ? ? ?? – ? maka solusi masalah logaritma diskret ? pada kongruensi (2a) adalah ? ? ?, solusi ini diperoleh dengan menggunakan algoritme pelacakan
lengkap, sedangkan apabila ?? ? ? ?• ? ? ? ?? ?? berada pada rentang ?
? ? ? ? ? – ?, maka berlaku ?? ? ? ? ?• ? ? ? ?? ? sehingga solusi masalah logaritma diskret ? pada kongruensi (2a) diperoleh dengan mengalikan ?? dengan
? sampai ditemukan – ? sedemikian sehingga memenuhi kongruensi ?? ? ? ? ?• ? ? ? ?? ?. Solusi ini dapat diturunkan dari Akibat 3.3.1.6 sebagai
berikut.
?? ? ? ?• ? ? ? ?? ??
? ? ?? ??? ?• ? ? ??? ? (Definisi logaritma diskret) ? ? ?? ??????? ? ??•?? ??? ?? (Akibat 3.3.1.6 bagian 2) ? ? ?? ?? ??? ???• ? ? ? ?? ?? (Akibat 3.3.1.6 bagian 3) ? ? ?? ? ???? ? ?? ? ????• ? ? ? ?? ?? (Teorema 2.4.2) ? ? ?? ? ? ?• ? ? ? ?G
Solusi yang diperoleh adalah ? ? ?? ? ? ?• ? ? ? ? yang merupakan solusi dari masalah logaritma diskret ?? ? ? ?• ? ? ??? ?? pada ? ? ??? ??.
Berikut ini adalah algoritme negative exhaustive search (pelacakan
lengkap negatif) hasil eksplorasi. Algoritme ini menggunakan representasi
elemen ? ? ??? ?? dalam bentuk vektor penta. Algoritme 3.3.2.1 (PelacNeg)
Algoritme Pelacakan lengkap negatif untuk menentukan solusi masalah logaritma diskret pada grup siklik ? ? ??? ??
Output : Integer (? ? Langkah- langkah:
1. ? ? ?? –? . 2. ? ? ? ?? .
3. H = Gunakan algoritme NegP dengan input vektor B A = [0,1], ? ? ? G 4. Untuk ? dari 1 selama A tidak sama dengan H, lakukan:
5.1 A = Gunakan algoritme MultiP dengan input vektor A, [0,1] dan integer ? 5.2 ? ? ? ? ? . 5.3 ? ? ? ? ? mod ? . 5. Jika A = B maka 6. Return (? ?G 7. Break 8. Return ?? ?
Implementasikan algoritme ini menggunakan sofware Maple 11, dapat dilihat pada Lampiran 6. Beban komputasi algoritme pelacakan lengkap negatif adalah ? ?? .
Berikut ini diberikan contoh cara menentukan masalah logaritma diskret pada ? ? ??? ?? menggunakan algoritme pelacakan lengkap negatif dengan representasi elemen ? ? ??? ?? dalam bentuk polinomial.
Contoh 3.3.2.2
Diberikan ? ?? ? ? ???? ? adalah polinomial primitif atas ?? berderajat 2 dan
grup siklik ? ? ?????, ? adalah generator dari ? ? ?????, ? ? ? ? ????? dengan ? ? ? ? ? ? . Tentukan ? ? ?? ??? dengan menggunakan algoritme pelacakan
lengkap negatif.
Solusi :
Pilih polinomial primitif ? ?? ? ? ?? ? ? ? ? ? G Order dari grup siklik ? ? ????? adalah ? ? ?? –? ? ? ? , maka ?? ? ? ? .
33
Selanjutnya menghitung semua kemungkinan nilai ?? ? ? ? ? ? ? ? ? menggunakan perkalian modulo ? ?? ? yaitu mengalikan ?? dengan ? sampai ditemukan ? sedemikian sehingga memenuhi kongruensi ?? ? ? ? ?mod ? ?? ??G Karena ? adalah generator ? ? ?????, maka ? ?? ? ? ? , sehingga
• ?? ? ? ? • ?? ? ? ? • ?? ? ? ? ? ? ? ?? ? ? ?? ? ? ? ? ? ? ? ? ? • ?? ? ??? ? ?? ? ? ?? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? • ?? ? ??? ? ?? ? ? ? ?? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? • ?? ? ??? ? ?? ? ? ? ?? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? • ?? ? ??? ? ?? ? ? ? ?? ? ? ?? ? ? ? ? ?? ? ? ? ? ? ? ? • ?? ? ??? ? ? ? • ?? ? ??? ? ?? ? ?? ? ? ?? ? ? ?? ? ? ? ? ? ? ? ? • ?? ? ??? ? ?? ? ? ? ?? ? ? ?? ? ? ? ? ?? ? ? ? ? ? ? ?? ? ? ? ? ? • ??? ? ??? ? ?? ? ? ? ?? ? ? ?? ? ? ? ? ?? ? ? ? ? ? ? ??? ? ? ? ? ? • ??? ? ???? ? ?? ? ? ? ?? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ? ? ??? ? ? ? ? ?
Hasil perhitungan selengkapnya ditunjukkan pada tabel berikut ini yang ditulis dalam bentuk representasi basis, representasi polinomial dan representasi vektor.
Tabel 5 Representasi solusi masalah logaritma diskret pada ? ? ????? dengan ? ? ? ? ? ? NO ? Representasi NO ? Representasi 1 0 ?? ? ? 13 12 ??? ? ? 2 1 ?? ? ? 14 13 ??? ? ? ? 3 2 ?? ? ? ? ? 15 14 ??? ? ? ? ? ? 4 3 ?? ? ? ? ? ? 16 15 ??? ? ? ? ? 5 4 ?? ? ? ? ? ? 17 16 ??? ? ? ? ? ?
6 5 ?? ? ? ? ? ? 18 17 ??? ? ? ? ? 7 6 ?? ? ? 19 18 ??? ? ? 8 7 ?? ? ? ? 20 19 ??? ? ? ? 9 8 ?? ? ? ? ? ? 21 20 ??? ? ? ? ? ? 10 9 ?? ? ? ? ? ? 22 21 ??? ? ? ? ? ? 11 10 ??? ? ? ? ? ? 23 22 ??? ? ? ? ? 12 11 ??? ? ? ? ? ? 24 23 ??? ? ? ? ? ?
Dari tabel 5 dapat dilihat bahwa ?? ? ? ?mod ? ?? ?? berada pada rentang ?
? ? ? ? ? ? ? . Oleh karena itu berlaku ?? ? ? ? ?mod ? ?? ??. Proses perhitungan berhenti pada langkah ke 12 yaitu setelah diperoleh ?? ? ? ? ?mod ? ?? ?? yaitu ??? ? ? ?? ? ? ? ??mod ? ?? ?? ? ??? ? ? ? ? ? ?mod ? ?? ??G Diperoleh ? ? ? ?, sehingga solusi masalah logaritma diskret ? pada kongruensi (2a) untuk grup siklik ? ? ????? dengan ? ?? ? ? ?? ? ? ? ? ? adalah
? ? ?? ? ? ? ? ? • ? ? ?? ? ? ? G ? 3.3.3 Algoritme Baby-Step Giant-Step 1
Algoritme Baby-step Giant-step 1 dikembangkan oleh Daniel Shanks. Ide dasar dari Algoritme Baby-step Giant-step 1 adalah memori komputer digunakan untuk mengurangi biaya dan waktu eksekusi program (time-memory trade-off) dari algoritme pelacakan lengkap. Algoritme ini memerlukan peyimpanan data dalam memori komputer sebanyak ? ? ????G
Masalah logaritma diskret pada ? ? ??? ?? adalah bagaimana menentukan nilai ? sedemikian sehingga ?? ? ? ?• ? ? ??? ?? dengan ? ? ? ? ??? ??,? merupakan generator dari ? ? ??? ?? dan ? ?? ? ? ???? ? adalah polinomial irreducible atas ?? berderajat ? dan order dari ? ? ??? ?? adalah ? ? ?? ? ? G Nilai ? tersebut berada pada rentang
? ? ? ? ? ? ? (2b) Berikut ini akan ditentukan batas atas terkecil dari y pada pertidaksamaan (2b) yang disimpan dalam memori komputer. Misalkan ? adalah solusi dari masalah logaritma diskret (2a) maka nilai ? berada pada rentang ? ? ? ? ? ? ?G Berdasarkan algoritme pembagian (Teorema 2.1.2) nilai ? dapat dinyatakan sebagai
35
untuk ?? ? ? ? ? ? ? ? dan ?? ? ? ? ? ? ? ? . Dengan demikian nilai ? mungkin berada pada rentang
? ? ? ? ?? ? ?
? ? ? ? ?? – ? ?? ? ?? –? ? ? ? ? ? ??? ? ? ?? ? ? ?
? ? ? ? ?? –? (2d) Dari pertidaksamaan (2a) dan (2d) diperoleh
?? ? ? ? ? ? ? ? ?? ? ? ?
?? ? ? ?
?? merupakan batas atas dari ? . Akibatnya ?? merupakan batas atas dari ? G Agar ?? merupakan batas atas terkecil dari ? maka
?? ? ? ? ? ? ??
Karena ? merupakan integer positif, maka diambil integer positif yang lebih kecil atau sama dengan ??? dinyatakan sebagai ? ? ????G Selanjutnya dari kongruensi (2a) dapat ditunjukkan bahwa
?? ? ? ?•?? ????? ? ? ? ???•?? ????? ? ? ? ??? ? ??•?? ?????
? ? ? ??????•?? ????
? ? ?? ?? ? ???•?? ? ???
Dengan demikian, untuk setiap ?? ? ? ? ? ? pasti terdapat ?? ? ? ? ? ? sedemikian sehingga
? ?? ?? ? ???• ? ? ? ?? ?? (2e) Akibatnya eksplorasi solusi masalah logaritma diskret ?? ? ? pada ? ? ??? ?? dengan menggunakan algoritme Baby-step Giant-step 1 adalah mencari nilai ? ??• ? sedemikian sehingga memenuhi kongruensi (2e).
Proses perhitungan algoritme Baby-step Giant-step 1 melalui dua tahap. Tahap 1 disebut Baby-step menghitung representasi polinomial ?? ?• ? ? ? ?? ??, dimana ?? ? ? ? ? ? . Idenya adalah mengalikan ? dengan ??. Hasil perhitungan ?? ?• ? ? ? ?? ?? disimpan dalam memori komputer. ?? • ? ? ? ?? ?, ? ? ? ? ? . adalah elemen-elemen grup siklik ? ? ??? ??. Hasil perhitungan pada Baby-step
disimpan dalam memori komputer sebanyak ? ? ????. Tahap 2 disebut
Giant-step 1 yaitu menghitung ? ?? ?? • ? ? ?? ?? ?? di mana ?, ? ? ? ? ? ? ? . Idenya adalah membagi ? dengan ?? sebanyak ? kali, sampai ditemukan ?? yang tersimpan dalam memori komputer sedemikian sehingga memenuhi kongruensi ? ?? ?? ? ?? • ? ? ? ?? ?. Setelah ditemukan ? dan ?, maka solusi masalah logaritma diskret ? pada kongruensi (2a) menggunakan algoritme Baby-step
Giant-step 1 diperoleh dengan cara sebagai berikut:
?? ? ? ?• ? ? ? ?? ?? (kongruensi 2a) ? ?? ?? ? ???• ? ? ? ?? ?? (kongruensi 2e)
? ???? ?? ? ???• ? ? ? ?? ?? (subtitusi kongruensi 2a) ? ?? ? ?? ? ???• ? ? ? ?? ?? (Teorema 2.4.1.4 bagian 1) ? ? ? ?? ? ??• ? ? ??? ?? (Sifat eksponensial)
? ? ? ?? ? ?
Sehingga solusi yang diperoleh adalah
? ? ?? ? ? ?• ? ? ? ?
Berikut ini adalah algoritme Baby-step untuk menyimpan dan Giant-step 1 untuk menentukan solusi masalah logaritma diskret pada ? ? ??? ?? dengan menggunakan representasi elemen ? ? ??? ?? dalam bentuk vektor.
Algoritme 3.3.3.1
Algoritme Baby-step untuk menyimpan ? dalam memori komputer. Input : Integer ? ?? dan ?
Output : Array DatPG 1. DatPG = array (1..?? ? ? )
2. ? ? Gunakan algoritme ExpP dengan input [0,1] , ? ? ? dan integer ? 2. Untuk ? dari 1 sampai (? ? ? ? ? lakukan
2.1 ? ? Gunakan algoritme MultiP dengan input [0,1], integer ? dan integer ? ? ? ubah ? ke desimal.
4. DatPG [h] = ?? ? ? ? ? ?.
5. Save PG, “d:\\programMaple \\DatPG.? ”;
37
Algoritme 3.3.3.2 (BabyGiant1P)
Algoritme Baby-step Giant-step 1 untuk menentukan solusi masalah logaritma diskret pada grup siklik ? ? ??? ??
Input : Vektor ? ? ??????????g ????, integer ? , integer ? dan array S Output : Integer ?
Langkah- langkah: 1. ? ? ?? –? .
2. K = Gunakan algoritme ExpP dengan input [0,1], – ? dan ? 3. H = T
4. s = Gunakan algoritme UbahPenKeDes dengan input vektor H 5. ? ? S[s]
6. ? ? ?. 7. ? ? ?
8. Untuk ? dari 1 selama belum ditemukan ?, lakukan:
8.2 H = Gunakan algoritme MultiP dengan input vektor H, vektor K dan ?
8.3 s = Gunakan algoritme UbahPenKeDes dengan input vektor H 8.4 ? ? S[s]
8.5 ? ? ? ? ? .
8.6 ? ? ?? ? ??+ t mod ? . 9. Return (? ?
Implementasi algoritme ini menggunakan software Maple 11, dapat dilihat pada Lampiran 6. Beban komputasinya adalah ? ?? ? ? .
Berikut ini adalah contoh menentukan masalah logaritme diskret pada grup siklik ? ? ??? ?? menggunakan algoritme Baby-step Giant-step 1 dengan representasi elemen ? ? ??? ?? dalam bentuk polinomial.
Contoh 3.3.3.3
Diberikan grup siklik ? ? ?????, ? ?? ? ? ???? ? adalah polinomial primitif atas ?? berderajat ? G ? adalah generator dari ? ? ?????, dan suatu ? ? ? ? ????? dengan ? ? ? ?? ? ? ?? ? ? ? ? . Tentukan nilai logaritma diskret ? pada
? ? ????? sedemikian sehingga ?? ? ? ?• ? ? ? ?? ? dengan menggunakan algoritme Baby-step Giant-step 1.
Solusi :
Pilih polinomial ? ?? ? ? ?? ? ?? ? ? ? ? ? adalah polinomial primitif atas ?? berderajat ? . Kerena order dari ? ? ????? adalah ? ? ?? –? ? ? ? ? maka
? ? ?? ???? ? ??, kerena ? adalah generator dari ? ? ????? maka ? ?? ?=0. Selanjutnya menghitung ?? • ? ? ? ?? ? untuk setiap ?, ? ? ? ? ? , dengan menggunakan perkalian modulo ? ?? ? sebagai berikut.
• ?? ? ? ? ?? ? ? ? ?? ? ??? ?? ? ?? • ?? ? ?? ? ? ? ? ? ? ? ? ?? ? ? ??? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? • ?? ? ??? ? ?? ?? ? ? ? ? ? ?? ? ? ?? ? ? ?? ? ? ? • ?? ? ??? ? ?? ?? ? ? ?? ? ? ? ?? ? ? ?? ? ? ?? ? ? ?? ? ????? ? ? ? ? ? ? ? ? ?? ? ? ?? ? ? ?? ? ? ?? ? ? ? ? ? • ?? ? ??? ? ?? ?? ? ? ?? ? ? ? ? ? ?? ? ? ?? ? ? ?? ? ? ?? ? ? ? ? ? ?? ?? ? ? ? ? ? ? ? ? ??? ? ?? ? ? ? ? ? ??? ? ?? ? ? ? ? ? • ??? ? ???? ? ? ?? ? ? ?
Hasil perhitungan selengkapnya dapat dilihat pada tabel berikut ini, direpresentasikan dalam bentuk representasi grup siklik, polinomial dan vektor.
Tabel 6 Hasil perhitungan Baby-step pada ? ? ????? dengan ? ?? ? ? ?? ? ?? ? ? ? ? ? NO ? Representasi Basis Refresentasi Polinomial Representasi Vektor 1 0 1 1 [0,0,0,1] 2 1 ? ? [0,0,1,0] 3 2 ?? ?? [0,1,0,0] 4 3 ?? ?? [1,0,0,0] 5 4 ?? ? ?? ? ? ? ? ? [0,4,3,3] 6 5 ?? ? ?? ? ? ?? ? ? ? ?? ?? ?? ?? ? 7 6 ?? ? ?? ? ? ?? ? ? ? ? ? ?? ?? ?? ?? ? 8 7 ?? ? ?? ? ? ?? ? ? ? ? ?? ?? ?? ?? ? 9 8 ?? ? ?? ? ? ?? ? ? ? ? ?? ?? ?? ?? ? 10 9 ?? ? ?? ? ? ?? ? ? ? ? ? ?? ?? ?? ?? ?
39 11 10 ??? ? ?? ? ? ?? ? ? ? ? ? ?? ?? ?? ?? ? 12 11 ??? ? ?? ? ?? ? ? ? ? ? ?? ?? ?? ?? ? 13 12 ??? ?? ? ? ? ? ? ?? ?? ?? ?? ? 14 13 ??? ?? ? ? ? ? ? ?? ?? ?? ?? ? 15 14 ??? ?? ? ? ?? ? ? ? ?? ?? ?? ?? ? 16 15 ??? ? ?? ? ? ?? ? ? ? ? ? ?? ?? ?? G? ? 17 16 ??? ? ?? ? ? ?? ? ? ?? ?? ?? ?? ? 18 17 ??? ? ?? ? ? ?? ? ? ? ? ? ?? ?? ?? ?? ? 19 18 ??? ? ?? ? ? ?? ? ? ? ? ? ?? ?? ?? ?? ? 20 19 ??? ? ?? ? ? ? ? ?? ?? ?? ?? ? 21 20 ??? ? ?? ? ? ? ? ?? ?? ?? ?? ? 22 21 ??? ? ?? ? ?? ? ? ? ?? ?? ?? ?? ? 23 22 ??? ?? ? ? ? ? ?? ?? ?? ?? ? 24 25 23 24 ??? ??? ? ? ? ? ? ?? ? ? ? ?? ?? ?? ?? ? [0,3,4,0]
Selanjutnya mencari ? ? ? ? ? ? ? ? ? dengan cara mengalikan ? dengan ?? ? sebanyak ? kali sampai ditemukan ??? ? ? ? ? ? yang telah tersimpan dalam memori komputer. Proses perhitungan berhenti setelah diperoleh ? dan ? sedemikian sehingga memenuhi kongruensi ? ?? ?? ? ???mod ? ?? ??. Hasil perhitungan dapat dilihat pada tabel berikut ini.
Tabel 7 Hasil perhitungan Giant-step 1 pada ? ? ????? dengan ? ? ? ?? ? ? ?? ? ? ? ? .
No ? Representsi
Basis (? ?? ??) Representasi Polinomial Representasi Vektor
1 0 ? ?? ? ?? ? ? ?? ? ? ? ? [4,1,2,4] 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 ? ?? ?? ? ?? ? ? ?? ?? ? ?? ?? ? ?? ?? ? ?? ?? ? ?? ?? ? ?? ?? ? ?? ? ? ? ? ?? ? ? ?? ? ? ? ? ?? ? ? ? ? ? ? ?? ? ? ? ? ? ? ?? ? ? ? ? ?? ? ?? ? ? ? ?? ? ?? ? ? ? ?? ? ? ?? ? ? ? ? ? [0,2,3,0] [0,2,3,2] [2,4,2,0] [2,4,3,0] [0,2,3,0] [0,1,1,3] [1,0,1,3] [2,3,4,3]
Proses perhitungan berhenti pada langkah ke 4 yaitu pada ? ? ? . Pada langkah ini diperoleh ? ?? ? ??? ?•?? ? ?? ?? ? ? ?? ? ? ?? ? ? ? ? ?. Tabel 5 menunjukkan pada langkah ke 18 yaitu ? ? ? ? , diperoleh ??? ?• ? ? ??? ?? ? ? ?? ? ? ?? ? ? ? ? ? ? dengan demikian diperoleh kongruensi ? ?? ? ??? ? ??? ?• ? ? ? ?? ??.
Untuk ? ? ? , ? ? ? ? dan ? ? ? ? , diperoleh solusi masalah logaritma diskret (2a) pada ? ? ????? , dengan ? ? ? ?? ? ? ?? ? ? ? ? dan polinomial primitif ? ?? ? ? ?? ? ?? ? ? ? ? ? atas ?? adalah
? ? ?? ? ? ? ?? ?? ? ? ? ? ? • ? ? ? ? ? ? ? ?
Seperti yang telah dijelaskan di atas bahwa memori komputer menyimpan data sebanyak ? ? ?? ??, ? ? ?? ? ? G Jika dipilih ? yang relatif besar maka diperlukan memori yang besar. Hal ini merupakan kelemahan dari algoritme
Baby-step Giant-step 1. Dengan melakukan eksplorasi pada tahap Baby-step maka
kelemahan ini dapat diatasi. Algoritme hasil eksplorasi disebut algoritme
Baby-step Giant-Baby-step 2.