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