Faktorisasi Lengkap Faktorisasi Polinomial

81 Penyelesaian : Menggunakan Algoritme 3.2.12 dengan input dan diperoleh nilai , yakni = + + + + + + + + + . = gcd , = +. Karena deg = ≠ = , maka :  Dengan menggunakan Algoritme 3.2.11 dengan input dan = , diperoleh nilai , yakni : = + . =banyaknya faktor = . = hasil bagi dengan = + + + + + + + + + + + + + + +  = faktor ke- polinomial = + = hasil bagi dengan . = + + + + + + + + + + + + + + ℎ = sisa bagi dengan = . = . = hasil bagi dengan . = + + + + + + + + + + + ℎ = sisa bagi dengan = . = .  Hasil = = + + + + + + + + + + + + + + +

4. Faktorisasi Lengkap

= … . Algoritme faktorisasi lengkap adalah algoritme untuk memfaktorkan polinomial ∈ ℤ[ ]sehingga = … , untuk setiap 82 adalah polinomial irredusibel atas ℤ [ ] dan setiap , . Algoritme ini adalah kombinasi dari Algoritme 3.2.11, 3.2.12, 3.2.13 dan 3.2.14. Algoritme 3.2.15 Algoritme Faktorisasi Lengkap Input : polinomial ∈ ℤ[ ] Output : = … 1. Jika irredusibel, maka hasilnya 2. Jika redusibel, maka lakukan langkah berikut : a Jika polinomial hanya mempunyai 1 suku, maka hasilnya adalah . b Jika polinomial mempunyai lebih dari 1 suku, maka lakukan langkah berikut. Set ←suku terkecil polinomial , i Jika , maka : 1 Set ←hasil bagi polinomial dengan . 2 Untuk dari 1 sampai diperoleh = lakukan : Set ←gunakan Algoritme 3.2.13 dengan input dan . Set ← gcd , . Jika ≠ , maka : Set ←gunakan Algoritme 3.2.14 dengan input dan . Set ← dibagi faktor terakhir polinomial Set ←faktor terakhir polinomial . ii Jika = , maka lakukan langkah berikut : Untuk dari 1 sampai diperoleh = lakukan Set ←gunakan Algoritme 3.2.13 dengan input dan . Set ← gcd , . Jika ≠ , maka : Set ←gunakan Algoritme 3.2.14 dengan input dan . Set ← dibagi faktor terakhir polinomial 83 Set ←faktor terakhir polinomial . Ambil hasil = … . Algoritme 3.2.15 diimplementasikan dengan bantuan software Maple 11, dapat dilihat pada Lampiran 2.8. Contoh 29 Faktorisasi Lengkap Diketahui : = + + + + + + + + + + + + + + + + + + + Tentukan : faktorisasi lengkap dari . Penyelesaian : adalah polinomial irredusibel berderajad 22. Karena suku terkecil polinomial adalah = , , maka langkah pertama memfaktorkan adalah dengan membaginya dengan , diperoleh : = + + + + + + + + + + + + + + + + + + + + Set = + + + + + + + + + + + + + + + + + + + + Untuk dari 1 sampai diperoleh = :  = + . Perhitungan menggunakan Algoritme 3.2.12 dengan input dan 1 = gcd , = +. = + + + + + . = + . = + + + + .  = + . Perhitungan menggunakan Algoritme 3.2.12 dengan input dan 2 = gcd , = + + . = + + + + + + . = + + . = + + + + . 84  = + . Perhitungan menggunakan Algoritme 3.2.12 dengan input dan 3 = gcd , = . Karena = , maka proses selanjutnya kembali lagi mencari , atau dengan kata lain diperoleh : = + + + + . = , dan = = + + + + .  = + . Perhitungan menggunakan Algoritme 3.2.12 dengan input dan 4 = gcd , = + + + + . = + + + + . = + + + + . = . Jadi = . = = + + + + + + + = + + + + + + + 3.2.8.2 Solusi Masalah Logaritma Diskret pada ∗ dengan Algoritme Index Calculus 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 , dengan Algoritme Index Calculus berikut langkah-langkahnya. Pertama pilih sebuah subset = { , , … , } dari ∗ , yang disebut faktor basis , sedemikian sehingga elemen-elemen ∗ secara efisien dapat dinyatakan sebagai produk dari elemen-elemen di . Dengan , , … , adalah merupakan polinomial-polinomial irredusibel atas ℤ . Dalam 85 Menezes et al. 1997, belum ada ketentuan berapa banyak polinomial basis yang harus diambil atau dipilih. Dalam tulisan ini faktor basis diambil atau dipilih dari polinomial irredusibel-polinomial irredusibel atas ℤ yang berderajad kurang dari atau sama dengan setengah . Langkah kedua menghitung logaritma elemen-elemen . Caranya pilih integer acak , −, hingga dapat dinyatakan sebagai produk elemen-elemen ; = , . Peluang keberhasilan memfaktorkan ini tergantung dari pemilihan faktor basis . Jika besar maka peluang acak setiap anggota grup multiplikatif ∗ dapat difaktorkan sebagai elemen-elemen akan lebih besar, sebaliknya jika ukuran lebih kecil maka peluang kegagalan memfaktorkan elemen-elemen grup multiplikatif ∗ akan lebih besar. Disisi lain ukuran lebih besar mengakibatkan sistem persamaan linear yang harus dikumpulkan menjadi lebih banyak dan tahapan untuk menyelesaikan sistem persamaan linearnya pun menjadi lebih rumit dan panjang. Jika sudah dapat difaktorkan, selanjutnya logaritmakan kedua ruas persamaan dengan basis untuk memperoleh persamaan : = = . . … log = log . . … log = log + log + log + + log log mod Prosedur ini diulang hingga diperoleh paling sedikit persamaan, sedemikian sehingga sistem persamaan linear yang diperoleh tersebut konsisten dan memiliki solusi tunggal. Suatu persamaan linear disebut konsisten jika memiliki paling sedikit satu penyelesaian, disebut takkonsisten jika tidak memiliki penyelesaian. 86 Langkah ketiga, sistem persamaan linear yang diperoleh pada langkah 2 di atas diselesaikan untuk mendapatkan log , untuk . Langkah keempat menentukan . Pilih integer acak , − hingga dapat dinyatakan sebagai produk elemen-elemen : , Langkah kelima menghitung log . Logaritmakan kedua ruas persamaan dengan basis , diperoleh : = = . . … log = log . . … log + log = log + log + log + + log + log = log mod = log = − + log mod Berikut Algoritme Index Calculus pada ∗ . Algoritme 3.2.16 Algoritme Index Calculus untuk menentukan masalah logaritma diskret pada ∗ Deskripsi : menentukan solusi logaritma diskret , dimana mod . Input : generator grup multiplikatif ∗ , ∗ berorder = − , ∈ ∗ . Output : logaritma diskret log mod 1 Memilih faktor basis . = { , , … , } subset ∗ , sedemikian sehingga setiap elemen-elemen ∗ secara efisien dapat dinyatakan sebagai produk dari elemen-elemen di . 2 Pilih bilangan acak , −. Coba nyatakan sebagai product dari elemen-elemen seperti berikut : 87 mod = dengan . Jika berhasil maka logaritmakan kedua ruas sehingga diperoleh =∑ log mod . Ulangi langkah ini hingga diperoleh paling sedikit persamaan. 3 Menentukan nilai dari log , . 4 Pilih integer acak , −. Coba tentukan sebagai product dari elemen-elemen di sehingga = ∏ , dengan . 5 Jika berhasil maka logaritmakan kedua ruas sehingga log = ∑ log − mod . Solusi logaritma diskret adalah : = log = − + log mod Dalam Menezes et al. 1997 nilai harapan kompleksitas waktu Algoritme Index Calculus adalah , , dimana = , adalah konstanta. Implementasinya dengan bantuan sofware Maple 11 dapat dilihat pada Lampiran 3.9. Contoh 30 Menentukan masalah logaritma diskret pada grup siklik = ∗ dengan Index Calculus Diketahui : polinomial primitif = + + + + , generator ∗ , dan = + + . Tentukan log mod . Penyelesaian :  Pilih ⊆ ∗ . = { , + , + + , + + , + + }.  = , mod = + + = + + log = log + + = log + log + + = , mod = + + + 88 = + + + + + log = log + + + + + = log + + log + + + log + + = , mod = + = + + + log = log + + + = log + + log + + = , mod = + + + + = + + + + log = log + + + + = log + log + + + log + + = , mod = + + = + + + + . log = log + + + + = log + + + log + +  Dengan = log , = log + , = log + + , = log + + , dan = log + + , maka dari persamaan , , , dan diperoleh : + mod 255 + + mod 255 + mod 255 + + mod 255 + mod 255  Penyelesaian 5 sistem kongruensi di atas adalah : = , = − , = , = , = .  Selanjutnya pilih , −. = , maka : = + + mod = + + . = . Sehingga log mod = − mod = . Berikut Tabel Nilai Harapan Kompleksitas Waktu Algoritme untuk Algoritme Exhaustive Search, Baby-Step Giant-Step, Baby-Step Giant-Step 2, 89 Baby-Step Giant-Step 3, Naif Square, Pollard’s rho, Pohlig Hellman, dan Index Calculus. Tabel 3.2.17 Nilai Harapan Kompleksitas Waktu Algoritme No Algoritme Bentuk Oh-Besar 1 Exhaustive Search O 2 Baby-Step Giant Step O √ 3 Baby-Step Giant Step 2 O √ 4 Baby-Step Giant Step 3 O √ 5 Naif Square O √ 6 Pollard’s rho O √ 7 Pohlig Hellman ∑ log + 8 Index Calculus , , = ,

3.3 KOMPUTASI MASALAH LOGARITMA DISKRET PADA