Metode Miller-Rabin
13.3 Metode Miller-Rabin
Kita telah perkenalkan konsep pseudoprime dan Euler pseudoprime. Kita perkenalkan satu konsep lagi yaitu strong pseudoprime yang akan digunakan dalam algoritma Miller-Rabin, yang seperti Solovay-Strassen, merupakan al- goritma Monte Carlo. Jika n adalah suatu bilangan komposit ganjil, maka terdapat s dan t dimana
−1=2 s t
dengan t berupa bilangan ganjil. Definisi 46 (Strong Pseudoprime) n adalah suatu strong pseudoprime un-
tuk base b jika
b t ≡ 1 (mod n) atau
(13.9) untuk suatu r dimana 0 ≤ r < s.
b 2 r t ≡ −1 (mod n)
2 Tentunya sekali jawaban komposit ditemukan, tidak ada gunanya untuk mengulang kem- bali langkah-langkah algoritma Solovay-Strassen.
242 BAB 13. MATEMATIKA VI - TEST BILANGAN PRIMA Ide dibalik strong pseudoprime adalah fakta bahwa dalam Z/p m Z dimana p
adalah bilangan prima ganjil dan m ≥ 1, 1 mempunyai tidak lebih dan tidak ku- rang dari dua akar kuadrat: 1 dan −1. Jika n bukan merupakan pemangkatan bilangan prima ganjil, maka terdapat 2 ω(n) akar kuadrat dari 1 yang berbeda, dimana ω(n) adalah banyaknya bilangan prima yang berbeda yang membagi n. Jadi strong pseudoprime lebih ketat lagi dari pseudoprime: bukan hanya
a n−1 ≡ 1 (mod n) saja yang ditest, akan tetapi akar kuadrat dari 1 juga ditest.
Teorema 94 Jika n merupakan strong pseudoprime untuk base b, maka n me- rupakan Euler pseudoprime untuk base b.
Kita harus buktikan untuk bilangan komposit ganjil n bahwa jika persamaan
13.8 atau 13.9 berlaku untuk base b, maka persamaan 13.7 juga berlaku. Jika persamaan 13.8 berlaku, maka
b (n−1)/2 ≡ 1 (mod n) µ1 ¶
= n µb ¶ t
¶ µb t
Karena t ganjil, maka ¡ b ¢
= 1, jadi
µb ¶
b (n−1)/2 ≡
(mod n),
yang berarti persamaan 13.7 juga berlaku. Jika persamaan 13.9 berlaku dengan r=s − 1, maka
b (n−1)/2 =b 2 (s−1) t ≡ −1 (mod n), ¡ jadi kita ingin tunjukkan bahwa ¢ b
= −1. Jika p adalah bilangan prima ganjil yang membagi n, kita dapat uraikan p ′ s −1=2 t ′ dimana t ′ adalah bilangan
ganjil. Kita ingin tunjukkan bahwa s ′ ≥ s dan
µb ¶
= ½ −1, jika s
′ = s;
1 jika s ′ > s.
Karena b 2 s−1 t ≡ −1 (mod n), kita pangkatkan kedua sisi persamaan dengan t ′ yang merupakan bilangan ganjil dan mendapatkan:
(b ′ 2 s−1 t
) ′ t t ≡ (−1) (mod n); (b 2 s−1 t ′ ) t ≡ −1 (mod n).
13.3. METODE MILLER-RABIN 243 Karena p |n maka
(b 2 s−1 t ′ ) t ≡ −1 (mod p).
Jika s ′ < s, maka
p−1
2 s′ t b ′ =b 6≡ 1 (mod p),
sesuatu yang bertentangan dengan Fermat’s little theorem (teorema 30). Jadi s ′ ≥ s. Jika s ′ = s, maka
(mod p) karena p prima
2 s′ −1 t ≡b ′ (mod p)
2 s′ −1 t ≡ −1 (mod p) (tidak mungkin 1 karena (b ′ ) t ≡ −1). Jika s ′ > s, maka
2 ≡ (−1) s′ −s (mod p); (b 2 s′−1 t ′ ) t ≡ 1 (mod p),
((b 2 s−1 t ′ ) t ) 2 s′ −s
jadi µb ¶
p ≡b (p−1)/2 (mod p) karena p prima
2 s′ −1 t ≡b ′ (mod p)
2 s′−1 t ≡ 1 (mod p) (tidak mungkin − 1 karena (b ′ ) t ≡ 1). Kita tulis n sebagai produk dari bilangan-bilangan prima (tidak harus semua
Jika k merupakan banyaknya p ′ i yang menghasilkan s ′ = s jika kita tulis p i −1 =
2 s t ′ dengan t ′ berupa bilangan ganjil, maka
Karena p ′
i =1+2 s t ′ , maka ½1+2 s t ′
(mod 2 s+1 ) jika s ′ = s;
1+2 s t ′
≡ 1 (mod 2 s+1 )
jika s ′ > s.
244 BAB 13. MATEMATIKA VI - TEST BILANGAN PRIMA Karena n = 1 + 2 s
Q t= j
i=1 p i , maka
s ≡ (1 + 2 k ) (mod 2 s+1 )
≡ 1 + k2 s+1 +... (mod 2 ) dimana . . . merepresentasikan suku-suku yang dapat dibagi oleh 2 s+1 . Jadi k
harus berupa bilangan ganjil, akibatnya
Jadi kita sudah tunjukkan bahwa jika persamaan 13.9 berlaku dengan r = s − 1 maka persamaan 13.7 juga berlaku. Terahir, jika persamaan 13.9 berlaku dengan r = r ′ , dimana r ′ <s − 1, maka
b 2 s−1 t
= (b s−1−r′ 2r t ) 2
2 ≡ (−1) s−1−r′ (mod n) ≡ 1 (mod n),
dan
b (n−1)/2 =b 2 s−1 t ≡ 1 (mod n),
¡ jadi kita ingin tunjukkan bahwa ¢ b
= 1. Jika p adalah bilangan prima ganjil yang membagi n, kita dapat uraikan p ′ s t ′ dimana t ′ −1=2 adalah bilangan
ganjil. Kita ingin tunjukkan bahwa s ′
≥r ′ + 1 dan
µb ¶
= ½ −1, jika s
′ =r ′ + 1;
1 jika s ′ >r ′ + 1.
Karena b 2 r′ t ≡ −1 (mod n), kita pangkatkan kedua sisi persamaan dengan t ′ yang merupakan bilangan ganjil dan mendapatkan:
r′
(b ′ 2 t ) t t ≡ (−1) (mod n); (b 2 r′ t ′ ) t ≡ −1 (mod n).
Karena p |n maka
2 (b r′ t ′ ) t ≡ −1 (mod p).
Jika s ′ <r ′ + 1, maka
b p−1 =b 2 s′ t ′ 6≡ 1 (mod p),
13.3. METODE MILLER-RABIN 245 sesuatu yang bertentangan dengan Fermat’s little theorem (teorema 30). Jadi
s ′ ≥r ′ + 1. Jika s ′ =r ′ + 1, maka µb ¶
≡b (p−1)/2 (mod p) karena p prima p
2 s′ −1 t ≡b ′ (mod p)
2 r′ t ≡b ′ (mod p)
2 r′ t ≡ −1 (mod p) (tidak mungkin 1 karena (b ′ ) t ≡ −1 (mod p)). Jika s ′ >r ′ + 1, maka
((b 2 r′ t ′
) s′−r′−1 t ) 2 ≡ (−1) 2 (mod p); (b 2 s′ −1 t ′ ) t ≡ 1 (mod p),
s′−r′−1
jadi µb ¶
(mod p) karena p prima p
≡b
(p−1)/2
2 s′−1 t ≡b ′ (mod p)
2 s′−1 t ≡ 1 (mod p) (tidak mungkin − 1 karena (b ′ ) t ≡ 1 (mod p)). Kita tulis n sebagai produk dari bilangan-bilangan prima (tidak harus semua
Jika k merupakan banyaknya p ′ i yang menghasilkan s ′ =r ′ + 1 jika kita tulis p i
−1=2 s t ′ dengan t ′ berupa bilangan ganjil, maka
Karena p i =1+2 s ′ t ′ , maka ½
r 1+2 ′ t +2 p i =
r ′ +1 ′
) jika s ′ =r ′ + 1; 1+2 s t ′
jika s ′ >r ′ + 1. Q Karena n = 1 + 2 j s t=
r ′ ≡ 1 (mod 2 +2 )
i=1 p i , maka
1+2 s t =
i=1
246 BAB 13. MATEMATIKA VI - TEST BILANGAN PRIMA
1 ′ r ′ ≡ (1 + 2 +1 ) k (mod 2 r +2 ) r ′ +1 +... (mod 2 r ′ ≡ 1 + k2 +2 )
dimana . . . merepresentasikan suku-suku yang dapat dibagi oleh 2 ′ r +2 . Jadi k harus berupa bilangan genap, akibatnya
Jadi kita sudah tunjukkan bahwa jika persamaan 13.9 berlaku dengan r = r ′ < s − 1 maka persamaan 13.7 juga berlaku. Selesailah pembuktian teorema 94. Sebelum kita bahas teorema mengenai probabilitas strong pseudoprime, akan kita buktikan lebih dahulu dua teorema yang akan digunakan.
Teorema 95 Terdapat d = gcd(k, m) elemen dalam group
2 ,g 3 ,...,g {g, g m =
1 } (g merupakan generator) yang mematuhi persamaan x k = 1. Untuk membuktikan teorema 95, kita mengetahui bahwa elemen g j (dengan
1 ≤ j ≤ m) mematuhi persamaan diatas jika dan hanya jika g jk = 1, dengan kata lain jika dan hanya jika m |jk, jadi
g jk
=1 ⇐⇒ m|jk ⇐⇒
d |j . d
Karena m d koprima dengan k d , maka
g jk
m =1 ⇐⇒
d |j (j merupakan kelipatan d Terdapat d bilangan i m d dimana 1
Selesailah pembuktian teorema 95. Teorema 96 Jika p adalah bilangan prima ganjil, dan kita tuliskan p −1=
2 s ′ t ′ dimana t ′ adalah bilangan ganjil, maka banyaknya elemen x ∈ (Z/pZ) ∗ yang mematuhi persamaan
x 2 r t ≡ −1 (mod p),
dimana t adalah bilangan ganjil, adalah 0 jika r ≥s ′ , atau 2 r gcd(t, t ′ ) jika r<s ′ . Dalam notasi formal:
jika r ′ , ♯
0 ≥s {x ∈ (Z/pZ) ∗ |x
≡ −1 (mod p)} =
2 r gcd(t, t ′ ) jika r < s ′ .
13.3. METODE MILLER-RABIN 247 Untuk membuktikan teorema 96, jika g adalah generator untuk (Z/pZ) ∗ , maka
x=g j untuk suatu j dengan 0 ′ ≤ j < p − 1. Karena g (p−1)/2 ≡ −1 (mod p) dan p
−1=2 s t ′ , maka relasi congruence dalam teorema ekuivalen dengan
(13.10) dimana kita harus mencari j. Persamaan 13.10 mempunyai solusi jika dan
2 r tj
≡2 ′ t ′ (mod 2 s t ′ ),
s ′ −1
hanya jika 2 s ′ t ′ membagi 2 r tj s −2 ′ −1 t ′ , jadi harus ada bilangan bulat m dengan
Jika r ≥s ′ maka tidak ada bilangan bulat j yang dapat membuat m menjadi bilangan bulat (karena 2 r−s ′ adalah bilangan bulat dan t ′ adalah bilangan
ganjil, jadi 2 r−s ′ t t ′ j tidak mungkin menjadi kelipatan dari 1 2 ). Jadi persamaan
13.10 tidak mempunyai solusi jika r ≥s ′ . Jika r < s ′ , kita bagi persamaan
13.10 dengan 2 r d dimana d = gcd(t, t ′ ) mendapatkan:
s −r−1 t
(mod 2 s ′ −r t ), (13.11)
d ≡2
dimana ′
d dan merupakan bilangan bulat. Karena gcd( t d ,2 s d −r−1 t d )=1 maka persamaan 13.11 mempunyai solusi yang unik untuk j. Jadi persamaan
13.10 mempunyai 2 r d solusi untuk j. Selesailah pembuktian teorema 96. Teorema 97 Suatu bilangan komposit ganjil n adalah strong pseudoprime un-
tuk maksimum 25 persen dari base b dengan 0 < b < n. Pembuktian teorema 97 terdiri dari tiga situasi yang berbeda:
1. Situasi dimana n dapat dibagi oleh kuadrat dari suatu bilangan prima ganjil p (p 2 |n).
2. Situasi dimana n merupakan produk dari dua bilangan prima ganjil p dan q yang berbeda (n = pq).
3. Situasi dimana n merupakan produk dari tiga atau lebih bilangan prima
ganjil yang berbeda (n = p 1 p 2 ...p k ,k ≥ 3).
Jika p adalah suatu bilangan prima ganjil dan p 2 |n, kita ingin tunjukkan bahwa n merupakan strong pseudoprime untuk tidak lebih dari (n − 1)/4 base b, de- ngan 0 < b < n. Ini kita lakukan dengan menunjukkan bahwa n merupa- kan pseudoprime untuk tidak lebih dari (n − 1)/4 base b (ingat bahwa suatu strong pseudoprime juga merupakan Euler pseudoprime menurut teorema 94,
248 BAB 13. MATEMATIKA VI - TEST BILANGAN PRIMA jadi menurut teorema 93 juga merupakan pseudoprime). Teorema 38 menga-
takan bahwa (Z/p 2 Z) ∗ merupakan suatu cyclic group, jadi terdapat generator
g dimana
{g, g 2 ,g 3 ,...g p(p−1) }. Menurut teorema 95, banyaknya b dengan 0
(Z/p 2 Z) ∗ =
≤b<p 2 dimana
(13.12) adalah d = gcd(p(p −1), n−1). Karena p|n maka p 6 |n−1, jadi p 6 |d. Akibatnya
b n−1
≡ 1 (mod p 2 )
d ≤ p−1, jadi proporsi b dari 1 sampai dengan n−1 yang mematuhi persamaan
Karena proporsi b dari 1 sampai dengan n − 1 yang mematuhi b n−1 ≡1 (mod n) tidak lebih dari proporsi b yang mematuhi persamaan 13.12, maka n merupakan pseudoprime untuk tidak lebih dari 1/4 base b dengan 0 < b < n.
Selesailah pembuktian untuk situasi p 2 ′ |n.
Jika n = pq, kita tulis p ′′ −1=2 t ′ dan q s −1=2 t ′′ , dengan t ′ ,t ′′ berupa bilangan ganjil dan s ′ ≤s ′′ (kita dapat memilih p dan q sedemikian rupa).
0 < b < n merupakan base yang menjadikan n strong pseudoprime jika
≡ 1 (mod p) dan b t ≡ 1 (mod q)
atau
2 r ≡ −1 (mod p) dan b t ≡ −1 (mod q) untuk suatu r dengan 0
≤ r < s, dimana n − 1 = 2 s t dengan t berupa bilangan ganjil. Banyaknya 0 < b < n untuk kemungkinan pertama adalah banyaknya
0 < b < p yang mengakibatkan b t ≡ 1 (mod p) dikalikan dengan banyaknya
0 < b < q yang mengakibatkan b t ≡ 1 (mod q). Menggunakan teorema 95, banyaknya b untuk kemungkinan pertama adalah