HASIL DAN PEMBAHASAN
3.3.9 Algoritme Index-Calculus
Algoritme Index-Caculus diperkenalkan oleh Western dan Miller pada tahun 1968. Algoritme ini mengandalkan kekuatannya pada faktorisasi polinomial. Faktorisasi polinomial didefinisikan sebagai berikut
diberikan polinomial ? ?? ? ? ???? ?? ? ? ?? , faktorisasi ? ?? ? adalah
? ?? ? ? ???? ??????? ??? g ???? ??? (5a) untuk setiap ???? ? adalah polinomial primitif atas ? pada ?T[? ] dan setiap ??= 1. Faktorisasi untuk solusi masalah logaritma diskret pada ? ? ??? ??, dari
finite field ? ? ??? ? menggunakan bantuan perangkat lunak Maple 11. Faktorisasi polinomial dibatasi hanya pada ? ? ??? ??? ?G
Masalah logaritma diskret pada grup siklik ? ? ??? ??, adalah bagaimana menentukan ? sedemikian sehingga
?? ? ? ?• ? ? ? ?? ??
dengan ? adalah generator dari ? ? ??? ??, ß ? ? ? ??? ??, dan ? ?? ? ? ? [? ] adalah polinomial primitif berderajat ? atas ? . Grup siklik ? ? ??? ?? berorder ? ? ?? –? G
Menentukan solusi masalah logaritma diskret pada ? ? ??? ?? menggunakan algoritme Index-Calculus mengikuti langkah- langkah sebagai berikut:
1. Memilih himpunan faktor basis ? ? ??? ????g ???? ? ? ? ??? ??G Hal ini menjadi ide dasar dari algoritme Index-Calculus. Elemen-elemen himpunan ? adalah polinomial primitif atas ? berderajat kecil. Pemilihan dilakukan dengan memperhatikan nilai ? , yaitu cukup dipilih polinomial berderajat kurang dari atau sama dengan setengah ? G
2. Membangkitkan persamaan linear. Caranya adalah memilih secara acak integer ? , di mana ? ? ? ? ? ? ? ? lalu menghitung
?? ? ? ?• ? ? ? ?? ??
Selanjutnya dilakukan pengecekan apakah ? dapat diyatakan sebagai ? ? ? ? ????
?? ? , ? ? ? ? ? ??? ??GJika ? belum diperoleh maka pemilihan interger ? secara acak dilakukan kembali sampai diperoleh ? sedemikian sehingga berlaku
?? ? ? ?• ? ? ? ?? ? dengan ? ? ? ? ????
?? ? , untuk ?? ? ? G (5b) 3. Jika berhasil logaritmakan kedua ruas persamaan (5b), yaitu
?? ???? ? ?? ?? ? ? ?????? ? ? ? ?? ??
?? ? G
Berdasarkan Teorema 2.6.2 diperoleh
? ? s? ???? ????
?? ? ?• ? ? ? ? (5c) Pemilihan ? dilakukan berulang-ulang sehingga diperoleh sistem persamaan
linear sebanyak ? ? ? matriks yang koefisiennya ??.
4. Menentukan solusi sistem persamaan yang diperoleh pada langkah 3. Banyaknya polinomial yang dipilih pada faktor basis akan mepengaruhi sistem persamaan linear. Makin banyak faktor basis yang dipilih, makin besar peluang untuk mendapatkan persamaan linear (5b). Akan tetapi diperoleh ukuran matriks yang besar. Hal ini akan memerlukan waktu yang lama untuk meperoleh solusi. Sebaliknya makin sedikit faktor basis yang dipilih, makin kecil peluang untuk mendapatkan persamaan linear. Tetapi solusi tunggal akan mudah diperoleh.
5. Setelah solusi tunggal diperoleh, selanjutnya memilih bilangan acak ? yang lain, di mana ? ? ? ? ? – ? ? kemudian menghitung ? ?? ? ? (mod ? ?? ??. Selanjutnya lakukan pengecekan apakah ? dapat dinyatakan sebagai
? ? ? ? ???
?? ? ? ? ? ? ? ??? ?? (5d) ? ? ? ? ? ??? ?? harus berada dalam himpunan ? . Jika persamaan (5d) belum diperoleh maka dilakukan pemilihan kembali integer ? secara acak sampai diperoleh nilai ? sedemikian sehingga
? ?? ? ? ?• ? ? ? ?? ?? dengan ? ? ? ? ????? ?? ? , untuk ??? ? G Selanjutnya menghitung ?? ??? ?? ? ?? ?? ? ? ????? ?? ? ?• ? ? ? ?? ?? ?? ??? ? ?? ???? ? ?? ?? ? ? ????? ?? ? ?• ? ? ? ?? ?? ?? ??? ? ? ? s? ???? ?????• ? ? ? ? ?? ? ?? ??? ? ?s? ???? ????? ? ??• ? ? ? ? ?? ? Dari uraian di atas diperoleh algoritme Index-Calculus berikut ini.
79
Algoritme 3.3.9.1 (IndCalP)
Algoritme Index-calculus untuk menentukan solusi masalah logaritme diskret pada grup siklik ? ? ??? ??.
With ( LinearAgebra)
Input : Vektor B = [??????g ????? integer positif ? dan array L Output : Integer ?
Langkah- langkah: 1. ? ? ?? ? ?
2. Q = Operan (Kompersi vektor L ke list)
3. Untuk ? dari 1 selama RS tidak sama dengan banyaknya elemen Q lakukan:
3.1 H = [] 3.2 T = []
4. Untuk ? dari 1 selama banyaknya elemen H tidak sama dengan banyaknya elemen Q lakukan:
4.1 M = Gunakan algoritme EkstrakP dengan input ? dan [1] (Algoritme 4.2 lampiran 3)
4.2 A = Gunakan algoritme EkstrakMP dengan input M dan L (Algoritme 4.3 lampiran 3)
4.3 Jika A tidak sama dengan [[] , []] dan SB = salah maka 4.3.1 H = [elemen vektor H , elemen ke-1 dari vektor A]
4.3.2 T = [elemen vektor T , elemen(elemen ke-2 dari vektor A)] 4.3.3 rS = Rank(SH).
4.4 SB = {elemen ke-1 dari vektor A} subset {elemen vektor H} 5. V = H
6. N = Petakan x ke x mod ? pada vektor T 7. S = matrix(V)
8. RS = Rank(S). 9. t = vektor (N).
10. P = LinearSolve(S, t, method = ‘modular’). 11. C = Konversi P menjadi vektor
13. BB = B
14. Untuk ? dari 1 selama Cek tidak sama dengan BB lakukan:
14.1 MM = Gunakan algoritme EkstrakP dengan input ? dan B 14.2 CC = Gunakan algoritme EksrakMP dengan input MM dan L 14.3 Jika CC tidak sama dengan [[] ,[]] maka
14.3.1 a = operan ke-1 dari CC
14.3.2 SS = Barisan ((operan ke-? dari a dikali operan ke-? dari PP mod ? , ? = 1 sampai banyaknya elemen a)).
14.3.3 ? = Jumlahkan ? dengan ? ? SS dikurangi dengan operan dari operan ke-2 dari CC mod ?
14.3.4 Cek = Gunakan algoritme ExpP dengan input [0,1] dan ? 15. Return (?)
Algoritme penunjang algoritme Index-Calculus untuk menentukan solusi masalah logaritma diskret pada ? ? ??? ?? dapat dilihat pada lampiran 4. Implementasi algoritme menggunakan sofware Maple 11 dapat dilihat pada Lampiran 6. Beban komputasinya adalah banyaknya faktor basis yang dipilih dan banyaknya pengecekan nilai ? pada ??.
Berikut ini adalah contoh solusi masalah logaritma diskret pada ? ? ??? ?? menggunakan algoritme Index-Calculus dengan representasi elemen ? ? ??? ?? dalam bentuk polinomial.
Contoh 3.3.9.2
Diberikan grup siklik ? ? ????? dengan ? adalah generator dari ? ? ?????, ? ? ? ? ????? dengan ? ? ? ? ? ? G ? ?? ? ? ???? ? adalah polinomial primitif atas ?? dengan ? ?? ? ? ?? ? ? ? ? ? . Tentukan ? ? ?? ??? .
Solusi :
Order dari grup siklik ? ? ????? adalah ? ? ?? ? ? ? ? ? G Langkah- langkah:
1. Pilih faktor basis ? ? ?? ?? ? ? ?? ? ? ?? ? ? ?? ? ? ? , sehingga ?? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? dan ?? ? ? ? ?
81
2. Acak integer ? ? ? ? ? ? ? ? ? .
Pilih ? ? ? ?? ?? ?? ? dan ? ? sehingga diperoleh
?? • ? ? ? ?? ? ? ? , ?? • ? ? ? ??? ? ? ? ? , ?? • ? ? ??? ? ? ? ??? • ? ? ??? ? ? ? ? ? , dan ??? • ? ? ? ?? ? ? ? ? ?
Relasi 5 persamaan yang memuat logaritma elemen faktor basis ?? ? ?? ??? , ?? ? ?? ???? ? ? ?, ?? ? ?? ??? ,
?? ? ?? ???? ? ? ?, dan ?? ? ?? ???? ? ? ? adalah:
? ? ???• ? ? ? ? ?, ? ? ???• ? ? ? ? ?, ? ? ???• ? ? ? ? ?, ? ? ? ???• ? ? ? ? ? dan ? ? ? ???• ? ? ? ? ?
Penyelesaian SPL adalah: ?? ? ? , ?? ? ?, ?? ? ? , ?? ? ? ? , dan ?? ? ? ? . 3. Acak ? , ? ? ? ? ? ? ? Pilih ? ? ? ? ?? ? ?? ? ? ? ??? ??• ? ? ? ???? ? ? ? ? ?• ? ? ? ?? ?, sehingga ?? ????? ? ?? ? ??? ? ? ? • ? ? ? ? ? ?? ? ? •?? ? ? ? ? ? Contoh 3.2.9.3
Diberikan grup siklik ? ? ????? , dengan ? adalah generator dari ? ? ?????, ? ? ? ? ????? dengan ? ? ? ? ? ? G ? ?? ? ? ???? ? adalah polinomial primitif atas ?? dengan ? ?? ? ? ?? ? ? ? ? ? . Tentukan ? ? ?? ??? .
Solusi :
Order dari grup siklik ? ? ?????, adalah ? ? ?? ? ? ? ? ? ?.
1. Pilih faktor basis ? ? ?? ?? ? ? ?? ? ? ?? ? ? ?? ? ? ? , sehingga ?? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? dan ?? ? ? ? ?
2. Acak integer ? ? ? ? ? ? ? ? ? .
Pilih ? ? ? ? ?? ? ?? ? ?? ? dan ? ? ? sehingga diperoleh ??? • ? ? ? ?? ? ? ? ? ? ,
??? • ? ? ? ?? ? ? ? ?? ? ? ? , ??? • ? ? ??? ? ? ?? ? ? ??? ? ? ?
??? • ? ? ??? ? ? ? ? ? , dan ???? • ? ? ? ?? ? ? ? ? ?
?? ? ?? ??? , ?? ? ?? ??? ?? ? ? ?, ?? ? ?? ???? ? ?? ?? ? ?? ???? ? ? ?, dan ?? ? ?? ???? ? ? ? adalah: ? ? ? ???• ? ? ? ? ? ?, ? ? ? ?? ? ???• ? ? ? ? ? ?, ? ? ? ?? ? ???• ? ? ????, ? ? ? ???• ? ? ? ? ? ? dan ? ? ? ? ???• ? ? ? ? ??
3. Penyelesaian SPL adalah: ?? ? ? , ?? ? ? ?, ?? ? ? ?, ?? ? ? ? ? dan ?? ? ? ? ? 4. Acak integer ? , ? ? ? ? ? ? ? Pilih ? ? ? ? ? ?? ? ?? ? ? ? ??? ?? ? ? ? ? ? ??• ? ? ? ?? ?? ? ?? ? ? ??? ? ? ???• ? ? ? ?? ?, sehingga ?? ????? ? ? ? ? ?? ? ? ???• ? ? ???? ? ?? ? ? ? ? ?? ? ? ? ? ? ? • ? ? ??? ? ? ?
Solusi masalah logaritma diekret pada ? ? ??? ?? menggunakan algoritme
Index-Calculus sangat tergantung pada pemilihan faktor basis. Faktor basis dipilih
dari representasi polinomial elemen ? ? ??? ?? yang merupakan polinomial-polinomial irreducible monik berderajat kurang dari atau sama dengan setengah ? (Menezes et al. (1997). Semakin banyak polinomial irreducible yang dipilih, semakin besar ukuran matriks dan semakin sulit untuk memperoleh solusi tunggal dari sistem persamaan linear. Pengecekan nilai? pada ?? juga dipengaruhi oleh banyaknya faktor basis yang dipilih. semakin banyak faktor basis, semakin sedikit pengecekan nilai ? G Berlaku untuk keadaan sebaliknya.
Belum ditemukan ketentuan berapa banyak faktor basis yang harus dipilih. Hal ini menyebabkan algoritme ini kurang efisien digunakan untuk menentukan solusi masalah logaritma diskret pada ? ? ??? ??.
3.4 Komputasi Masalah Logaritma Diskret pada ? ? ??? ??.
Setiap algoritme pada subbab 3.3 diimplementasikan dengan bantuan software Maple 11. Komputasi dilakukan dengan menggunakan komputer Intel
83
Pentium Dual-Core 1.60 GHz 512 MB. Program dapat dilihat pada Lampiran 6. Waktu komputasi dalam satuan detik. Berikut ini adalah waktu komputasi dari masing- masing algoritme.
Tabel 19 Waktu komputasi solusi masalah logaritma diskret menggunakan agoritme pelacakan lengkap
? Order(? ) ? Pelacakan Lengkap
5 3124 3123 0.33 6 15624 15429 0.89 7 78124 68427 4.16 8 390624 287546 17.25 9 1953124 1537815 92.34 11 48828124 38943284 2315.85
Tabel 20 Waktu komputasi solusi masalah logaritma diskret menggunakan algoritme pelacakan lengkap negatif
? Order(? ) ? Pelacakan Lengkap Negatif 5 3124 3123 0.00 6 15624 15429 0.56 7 78124 68427 1.94 8 390624 287546 5.87 9 1953124 1537815 53.5 11 48828124 38943284 904.67
Komputasi menggunakan algoritme pelacakan lengkap untuk ? ? ? ? memerlukan waktu lebih dari 1 jam. Waktu komputasi algoritme pelacakan
lengkap negatif lebih cepat karena pelacakan dilakukan hanya sampai setengah
order grup. Sehingga waktu komputasi algoritme ini sangat bergantung pada pemilihan ? dengan ? ? ? ?? G Misalkan untuk ? ? ?, jika dipilih ? ? ? ? ? ? ? maka nilai ? ini sebanding dengan ? ? ? ? ? ? ? –? ?? ? ? ? ? ? ? pada algoritme
pelacakan lengkap.
Tabel 21 Waktu komputasi solusi masalah logaritma diskret menggunakan algoritme Baby-step Giant-step 1
? Order(? ) ? ? Baby-step Giant-step Total
Komputasi
9 1953124 1537817 1398 0 1.84 1.84
12 244140624 216759308 15625 1.81 13.50 15.31 14 6103515624 6073524723 78125 10.37 93.30 103.67 15 30517578124 29516769816 174693 25.80 284.09 309.89 17 762939453124 696396325546 873465 197.49 2434.29 2631.72
Representasi polinomial ???• ? ? ? ?? ?? untuk setiap ?, ? ? ? ? ? yang disimpan dalam memori komputer pada tahap Baby-step adalah sebanyak ? . Tahap Baby-step yang telah tersimpan dalam memori komputer dapat dipergunakan untuk komputasi dengan ? yang berbeda untuk ? yang sama. Tabel 22 Waktu komputasi solusi masalah algaritma diskret menggunakan
algoritme Baby-step Giant-step 2
? Order(? ? ? Baby step Giant-step
6 15629 3123 1.04 7 8 68427 390624 15429 287546 4.24 17.18 9 1953124 1537817 95.50 11 48828124 38943284 2837.09
Representasi polinomial ???• ? ? ? ?? ?? untuk setiap ?, ? ? ? ? ? yang disimpan dalam memori komputer pada tahap Baby-step adalah sebanyak ? . Algoritme ini memerlukan memori yang tidak terlalu besar. Akan tetapi komputasi pada tahap Giant step 2 memerlukan waktu yang lama. Tahap
Baby-step yang telah tersimpan dalam memori komputer dapat dipergunakan untuk
komputasi dengan ? yang berbeda untuk ? yang sama.
Tabel 23 Waktu komputasi solusi masalah logaritma diskret menggunakan algoritme Baby-Giant-step 3 ? Order(? ) ? ? waktu 6 15629 3123 3 0.37 7 68427 15429 5 0.82 8 390624 287546 7 13.22 9 1953124 1537817 6 13.90 11 48828124 38943284 6 2951.02
Representasi polinomial ???• ? ? ? ?? ?? untuk setiap ?, ? ? ? ? ? , yang telah disimpan dalam memori komputer pada algoritme Baby-step Giant-step 2
85
digunakan pada komputasi Giant-step 3 pada algoritme Baby-step Giant-step 3. Algoritme ini dipengaruhi oleh pemilihan ?, ? ? ? . Komputasi Giant-step 3 pada algoritme Baby-step Giant-step 3 lebih cepat dari komputasi Giant-step 2 pada algoritme Baby-step Giant-step 2. Akan tetapi tidak mudah untuk memilih nilai ?.
Tabel 24 Waktu komputasi solusi masalah logaritma diskret menggunakan algoritme Baby-step Giant-step 4
? Order(? ) ? ? Baby-step Giant-step Komputasi Total
9 1953124 1537817 2500 0 0 0 11 48828124 38943284 800000 84.47 0 84.47 12 244140624 216759308 858000 95.38 0 95.38 14 6103515624 6073524727 860000 154.14 16.53 170.67 15 30517578124 29516769816 950000 253.96 80.99 334.95 16 152587890624 142588917572 980000 331.00 569.81 900.81 18 3814697265624 2013438726562 1280000 442.07 5774.02 6216.09
Representasi polinomial ?? ?• ? ? ??? ?? untuk setiap ?, ? ? ? ? ? , disimpan dalam memori komputer. Dalam Tabel 24 disimpan sebanyak ?G Representasi polinomial ?? ?• ? ? ??? ?? yang telah tersimpan dapat digunakan untuk sebarang ? untuk ? yang sama. Tahap Giant-step 4 pada algoritme Baby
step 4 lebih cepat dari tahap Giant-step 1 pada algoritme Baby-step Giant step 1.
Kelemahan tahap Baby-step adalah diperlukan memori yang besar untuk order grup yang relatif besar dan komputasi pada tahap ini makin lama. Akan tetapi semakin banyak representasi polinomial ?? ?• ? ? ? ?? ?? yang disimpan dalam memori komputer maka komputasi tahap Giant-step semakin cepat.
Tabel 25 Waktu komputasi solusi masalah logaritma diskret menggunakan algoritme Pollard-rho m Order(? ? x p Waktu 6 15624 15429 4787 0.44 7 78124 68427 8835 0.25 8 390624 287546 386225 1.41 9 1953124 1537817 470603 2.09 11 48828124 38943284 26461533 16.87 14 6103515624 4584697796 1214072539 383.31 15 30517578124 29516769816 25007897845 194.27
Komputasi menggunakan algoritme Pollard-rho cukup cepat, akan tetapi untuk memperoleh nilai ? yaitu bilangan prima acak dengan gcd?? ?? ? ? ? yang menghasilkan solusi benar tidaklah mudah. Nilai ? diperoleh dengan melakukan percobaan berulang-ulang sampai menghasilkan solusi yang benar.
Tabel 26 Waktu komputasi solusi masalah logaritma diskret menggunakan algoritme Pohlig-Hellman ? Order(? ) ? Waktu 6 15624 15429 0.56 7 78124 68427 1.78 8 390624 287546 1.15 9 1953124 1537812 0.27 11 48828124 38943284 393.22 12 244140624 216759308 1.89 14 6103525624 6103524723 9.60 15 30517578124 29516769816 1.28 16 152587890624 142588917572 163.65 19 19073486328224 12568986317238 1011.97 21 476837158203124 2739227158203121 19.99 25 298023223876953124 101837223358976345 12503.88
Komputasi menggunakan algoritme Pohlig-Hellman sangat bergantung pada faktorisasi prima order grup. Jika faktorisasi prima order grup menghasilkan faktor prima-faktor prima yang kecil maka komputasi akan lebih cepat. Jadi, sebelum kita menggunakan algoritme Pohlig-Hellman untuk ? tertentu, dapat diidentifikasi efisiensi komputasi dengan melihat hasil faktorisasi prima dari order grup. Faktorisasi order dapat dilihat pada Lampiran 4.
Tabel 27 Waktu komputasi solusi masalah logaritma diskret menggunakan algoritme Index-Calculus
m Order(? ? x Polinomial Waktu
4 624 623 deg(pi) = 1 0 5 3124 3122 deg(pi) = 1 5.40 6 15624 15429 deg(pi) = 1 2.45 7 78124 68427 deg(pi) = 1 29.61 8 390624 297546 deg(pi) = 1 741.55 9 1953124 1437817 deg(pi) = 1 244.48
87
Komputasi algoritme Index-Calculus bergantung pada pemilihan faktor basis dan pengecekan nilai ? pada ??G Makin banyak faktor basis yang dipilih makin besar ukuran matriks, sehingga semakin sulit mendapatkan solusi tunggal. Sebaliknya, jika dipilih sedikit faktor basis maka pengecekan nilai ? membutuhkan waktu yang lama.