Lemma 2.15
Jika a memiliki order h
(
modm , maka)
akmemiliki order
( ) (
, mod)
h m
h k .
[Niven, 1991] III. PEMBAHASAN
Pada bagian pendahuluan telah disebutkan bahwa tujuan dari penulisan ini adalah mempelajari teorema-teorema yang terkait solusi residu kuadratik dan mengkonstruksi algoritma untuk mencari solusinya, merekonstruksi Algoritma RESSOL beserta analisisnya, mengkonstruksi algoritma untuk mencari solusi
(
)
2 mod
x ≡a pq dan x2≡a
(
modpj)
sertamembandingkan waktu eksekusi algoritma yang terkait bilangan besar.
3.1 Teorema – Teorema yang Terkait Solusi Residu Kuadratik.
Definisi 3.1 [Akar kuadrat] Misalkan a Q∈ n. Jika
(
)
* 2 mod n x x a n ∃ ∈ Ζ ∋ ≡,
maka x dinamakan akar kuadrat dari a modulo n.
[Menezes, 1997] Mencari solusi dari x2 ≡a
(
modn)
tidaklah mudah, apalagi jika n adalah bilangan komposit yang tidak diketahui faktor primanya. Jika n adalah bilangan prima, maka ada beberapa teorema yang dapat digunakan untuk mencari solusinya.
Teorema 3.1
Jika p prima, (a,p) = 1 dan
(p1 / ,) (n p1) 1 mod
(
)
a − − ≡ p , maka kongruensi
xn≡a
(
modp)
…(i) mempunyai (n, p–1) solusi.Jika a(p−1 / ,) (n p−1)≡/1 mod
(
p)
maka(
mod)
n
x ≡a p tidak mempunyai solusi. [Niven, 1991] Bukti :
Karena p prima maka berdasarkan Teorema 2.8, *
p mempunyai generator. Misal g adalah generator (mod p) maka berdasarkan Teorema 2.7 ada i dimana 0≤ ≤ − i p 2 sedemikian sehingga i (mod )
g ≡a p …(ii)
Jika ada x yang merupakan solusi dari 0
(
mod)
n
x ≡a p maka
(
x p0,)
= , sehingga 1 ada u dimana 0≤ ≤ − sedemikian u p 2 sehingga 0 u(mod )x ≡g p …(iii) Dari (i) , (ii) dan (iii) diperoleh
(
mod)
( )
n (mod ) n u i x ≡a p ⇔ g ≡g p ⇔gun ≡gi(mod )p ⇔un i≡ (modp− 1) Misalkan k = (n, p -1).Berdasarkan Teorema 2.11, un i≡ (modp− 1) mempunyai k solusi jika k i dan tidak | mempunyai solusi jika k i|/ .
Jika k i| maka i p( 1) 0(modp 1)
k
−
≡ −
(karena i
k adalah bilangan bulat) sehingga
( )
( )
(
)
1 ( 1) 1 1 mod p i p i p k k k a g g p − − − ≡ ≡ ≡Jika k i|/ maka i p( 1) 0(modp 1)
k − ≡/ − dan berakibat ( )
(
)
1 ( 1) 1 mod p i p k k a g p − − ≡ ≡/ .Dari Teorema 3.1 dapat kita ambil kasus khusus untuk n = 2
(
x2 ≡a(
modp)
)
.Akibat 3.2 [Kriteria Euler]
Jika p adalah bilangan prima ganjil,
( )
a p, =1 dan a(p−1 / 2) ≡1 mod(
p)
maka x2 ≡a(
modp)
mempunyai 2 buah solusi.
Jika a(p−1 / 2) ≡ −1 mod
(
p)
maka(
)
2 mod
x ≡a p tidak mempunyai solusi. [Niven, 1991] Bukti :
Berdasarkan Teorema 3.1 x2 ≡a
(
modp)
mempunyai (2,p− = buah solusi jika 1) 2
(p1 / 2) 1 mod
(
)
a − ≡ p
.
Misal (p1) / 2
b a= − , maka 2 (p1)
b =a − .
2 (p1) 1(mod ) b =a − ≡ p sehingga 1(mod ) b≡ ± p . Jika (p1) / 2 1(mod ) b a − p = ≡ −
maka x2 ≡a
(
modp)
tidak mempunyai solusi
berdasarkan Teorema 3.1.
Dalam mencari solusi dari
(
)
2 mod
x ≡a p dengan p prima ganjil ada beberapa hal yang perlu diperhatikan. Jika
0(mod )
a≡ p maka solusinya adalah 0(mod )
x≡ p . Jika a≡/0(mod )p maka
(
)
2 mod
x ≡a p mungkin tidak mempunyai solusi tergantung kriteria Euler.
Jika x2≡a
(
modp)
mempunyai solusimaka solusinya ada 2. Misal x adalah salah 0
satu solusinya maka − adalah solusi x0
lainnya, karena 2 2
(
)
0 0
(−x ) =x ≡a modp . Karena p ganjil maka x0 ≡ −/ x0(mod )p
sehingga x2≡a
(
modp)
akan mempunyai 2solusi yang berbeda.
Dalam hal x2≡a
(
modp)
mempunyaisolusi, dari bukti Teorema 3.1 kita dapat menemukan solusinya apabila generator dari
*
p diketahui.
Dalam bukti tersebut terlihat bahwa solusi dari x2≡a
(
modp)
adalah(mod ) u
x g≡ p dengan g adalah generator dari *
p, dan u adalah solusi dari 2u i≡ (modp−1) 2 1 (mod 1)
2
p
u −
i
−⇔ ≡
dengan i adalah bilangan genap sedemikian sehingga i (mod )
g ≡a p .
Dari uraian di atas dapat dibuat sebuah algoritma untuk mencari solusi dari
(
)
2 mod
x ≡a p .
Algoritma 1 :
Mencari solusi x2≡a
(
modp)
denganterlebih dahulu mencari generator dari * p. INPUT : Bilangan prima ganjil p dan
bilangan bulat a, 1 ≤ a ≤ p-1. OUTPUT : Dua akar kuadrat a modulo p. 1. Hitung a(p−1 2) dengan Kriteria Euleur.
Jika a(p−1 2) ≡ −1 mod
(
p)
maka a tidakmempunyai akar kuadrat modulo p dan proses berhenti .
Jika a(p−1 2) ≡1 mod
(
p)
lanjut ke langkah2.
2. Cari generator dari *
p, misalkan generator tersebut adalah g.
3. Cari i sedemikian sehingga (mod )
i
g ≡a p dengan 4. Cari u sedemikian sehingga
1 1
2 (mod )
2
p
u≡ −i −
5. Solusinya adalah u(mod )
x g≡ p Langkah-langkah dalam algoritma tersebut
dapat dilihat melalui bagan berikut ini.
Bagan 1. Algoritma mencari solusi
Tidak Ya
Hitung
(p1 2) (mod )
a − p
Mulai
Bilangan prima panjil p dan a∈
[
1,p− 1]
Apakah (p1 2) 1 mod(
)
a − ≡ p(
)
2 mod x ≡a ptak punya solusi
Cari g = generator * p
(
)
2 mod x ≡a p punya solusi Hitung (mod ) i g p dengan 0, 2, 4,..., 1 i= p− Apakah (mod ) i g ≡a p Tidak Ya Hitung 1 1 2 (mod ) 2 p u≡ −i − Solusi adalah (mod ) u x g≡ p Selesai(
)
2 mod x ≡a p 0, 2, 4,..., 1 i= p−Contoh 1:
Tentukan solusi dari x2≡15 mod17
(
)
.
Jawab :
(17 1 2) 8
15 − ≡15 (mod 17) ≡1 (mod 17) Karena 15(17 1 2−) ≡ 1 (mod 17) maka
berdasarkan kriteria Euler x2≡15 mod 17
(
)
mempunyai solusi. Generator dari *
17 adalah g = 3.
Mencari nilai i sehingga 3i ≡15(mod17)
i 0 2 4 6
3 (mod17)i 1 9 13 15 Dari tabel diperoleh nilai i adalah 6.
6 17 1
(mod )
2 2
u≡ − ≡3(mod 8)
Solusinya adalah x≡33≡10(mod17). Solusi satunya adalah − ≡ − ≡x 10 7(mod17). Jadi solusi dari x2≡15 mod17
(
)
adalah 7dan 10 .
Algoritma di atas tidak efisien untuk nilai
p yang besar ( p > 1.000.000 ), karena untuk
mencari g yaitu generator dari *
p untuk nilai
p > 1.000.000 tidaklah mudah, kemudian
mencari nilai i sedemikian sehingga (mod )
i
g ≡a p juga memerlukan waktu yang lama untuk nilai p > 1.000.000.
Oleh karena itu, di bagian berikutnya akan dibahas sebuah algoritma yang lebih efisien untuk mencari solusi dari
(
)
2 mod
x ≡a p yaitu Algoritma RESSOL. Mencari solusi dari x2≡a
(
modp)
memang tidak mudah, tetapi ada beberapa kasus untuk nilai p tertentu yang solusinya sudah dengan ditentukan. Misal untuk
3(mod 4)
p≡ maka solusi dari
(
)
2 mod x ≡a p adalah x≡ ±a(p+1 / 4)(
modp)
karena(
±a(p+1) / 4)
2=a(p+1 / 2) =a(p−1 / 2) .a ≡a(
modp)
. Berdasarkan Teorema 2.9,(
)
2 1 modx ≡ − p mempunyai solusi jika dan hanya jika p= atau 2 p≡1(mod 4). Untuk
1(mod 4)
p≡ misalkan (p1) / 4(mod )
x z − p
= ±
dengan z adalah suatu bilangan non residu
kuadratik yang ambil secara acak dalam * p. Berdasarkan Kriteria Euler diperoleh
(
)
2(
)
2 (p1) / 4 (p 1) / 2 1 mod
x ≡ ±z − ≡z − ≡ − p .
Teorema 3.4
Jika a dan b relatif prima terhadap bilangan prima p, dan jika a dan b memiliki order
(
)
2 modj p dengan j> , maka ab memiliki 0
order 2 modj'
(
p untuk beberapa ')
j < . j[Niven, 1991] Bukti :
2
ord( ) 2 (mod )a ≡ j p ⇔a j ≡1(mod )p …(1), berdasarkan Teorema Fermat,
p1 1(mod )
a − ≡ p …(2)
Dari persamaan (1) dan (2) diperoleh 2 | (j 1)
p− dan p > 2.
Ambil x a= 2j−1, karena ord( ) 2 (mod )a ≡ j p maka x a= 2j−1≡/1(mod )p tetapi
2 2j 1(mod )
x =a ≡ p sehingga berdasarkan Lemma 2.9 maka x a= 2j−1 ≡ −1(mod )p .
Dengan cara yang sama diperoleh 1 2 1(mod ) j b − ≡ − p , dan mengakibatkan
( )
2 1 2 1 2 1 ( 1)( 1) 1(mod ) j j j ab − =a −b − ≡ − − ≡ p . Berdasarka Lemma 2.13 maka order dari ab membagi 2j−1sehingga order dari ab adalah
'
2j untuk suatu 'j < . j
Teorema-teorema di atas menjadi landasan Algoritma RESSOL untuk mencari solusi dari x2 ≡a
(
modp)
denganp a Q∈ dan
p prima ganjil.
3.2 Konstruksi Algoritma RESSOL beserta Analisisnya.
Untuk mencari solusi x2 ≡a
(
modp)
dengan p prima ganjil, ada sebuah algoritma yang dapat digunakan untuk mencarinya yaitu Algoritma RESSOL (Residue Solver).
Dalam bagian ini penulis akan mencoba merekonstruksi Algoritma RESSOL dan menganalisisnya. Berikut ini akan dijelaskan langlah-langkah penurunan Algoritma RESSOL.
Langkah pertama menghitung
(p1 2) (mod )
a − p dengan Kriteria Euleur. Jika (p1 2) 1 mod
(
)
a − ≡ − p maka x2≡a
(
modp)
tidak mempunyai solusi.
Jika a(p−1 2) ≡1 mod
(
p)
maka untukmenentukan solusi dari x2≡a
(
modp)
adalah mencari nilai k dan m dengan k > 0 dan
m ganjil sedemikian sehingga p− =1 2km.
Kemudian didefinisikan :
r a≡ (m+1 / 2)
(
modp)
…(1)
Jika kedua ruas persamaan (1) dikuadratkan, maka diperoleh :
r2≡a(m+1)
(
modp)
r2≡a am. mod
(
p)
.
Misalkan n a≡ m
(
modp)
, sehingga dapat ditulis : r2≡na(
modp)
…(2)
Jika n≡1 mod
(
p)
, maka solusinya adalah
x≡ ±r
(
modp)
.
Jika n≡1 mod p , maka untuk menentukan
(
)
solusinya diperlukan langkah penyelesaian sebagai berikut.Ambil secara acak suatu bilangan nonresidu kuadratik di dalam *
p. Misal bilangan tersebut adalah z. Definisikan
c z≡ m
(
modp)
…(3) Jika kedua ruas persamaan (3) dipangkatkan dengan 2k, maka diperoleh :2k 2km
c =z =zp−1≡1 mod
(
p)
…(4)
Berdasarkan Lemma 2.13, order dari c membagi 2k. Sementara itu, karena z adalah
nonresidu kuadratik maka
2k1 2k1m
c − =z − =z(p−1 / 2) ≡ −1 mod
(
p)
…(5)
Jadi order dari c adalah tepat 2k. Hal ini
dapat ditulis ord( ) 2c ≡ k atau
(
)
2k 1 mod
c ≡ p
.
Dengan cara yang sama diperoleh
2k 2km p 1 1 mod
(
)
n =a =a − ≡ p
…(6)
Dengan demikian order dari n membagi 2k
.
Dengan pengulangan kuadrat dapat ditentukan order dari n adalah 2k'.
Sementara itu n2k−1 a2k−1m a( )p−1 / 2
= = , karena
a adalah kuadratik residu mod p maka
n2k−1 =a( )p−1 / 2 ≡1 mod
(
p)
…(7)sehingga k'<k
.
Algoritma ini dimulai dengan proses pengulangan. Didefinisikan b ≡c2k k− −'1
(
modp)
…(8)(
)
' mod r ≡br p …(9) c'≡b2(
modp)
…(10) n' ' mod≡c n(
p)
…(11) Dengan melakukan perkalian pada kedua ruas persamaan (2) oleh b2 diperoleh :(
)
2 2 2 mod
b r ≡b na p
dengan menggunakan persamaan (9), (10) dan (11) diperoleh :
(
)
2
' 'mod
r ≡an p …(12) Dari persamaan (8) dan (10) diperoleh
(
)
2
' mod
c ≡b p ≡ c2k k− −'1 2
(
modp)
≡c2k k−'
(
modp)
…(13)Jika kedua ruas persamaan (13) dipangkatkan dengan 2k', maka diperoleh :
( )
2' 2 '2'(
)
' mod k k k k c ≡ c − p ≡c2k(
modp) (
≡1 modp)
. Sementara itu( )
(
)
'1 ' '1 2 2 2 ' mod k k k k c c p − − − ≡ ≡c2k−1(
modp)
≡ −1 mod(
p)
Dengan demikian c memiliki order tepat '
'
2k.
Karena ord( ) 2n ≡ k' dan ord( 'c) 2≡ k'
,
maka berdasarkan Teorema 3.4, order dari ' '(mod )
n ≡c n p adalah 2k'' dengan 'k' '<k . Jika 'k ' 0= , maka n' 1 mod≡
(
p)
, dan dengan menggunakan persamaan (12), maka solusi dari x2≡a(
modp)
adalah(
)
'mod
x≡ ±r p .
Jika n'≡1 mod p maka '
(
)
k' 1> , dan kondisi ini serupa dengan ketika pengulangan dimulai, sehingga pengulangan dilakukan kembali sampai solusi diperoleh.Langkah penyelesaian untuk menentukan solusi dari kongruensi x2 ≡a
(
modp)
Algoritma 2 (Algoritma RESSOL) : Mencari akar kuadrat modulo p prima ganjil. INPUT : Bilangan prima ganjil p dan
bilangan bulat a, 1 ≤ a ≤ p – 1. OUTPUT : Dua akar kuadrat a modulo p. 1. Hitung a(p−1 2) dengan Kriteria Euleur.
Jika a(p−1 2) ≡ −1 mod
(
p)
maka a tidakmempunyai akar kuadrat modulo p dan proses berhenti .
Jikaa(p−1 2) ≡1 mod
(
p)
lanjut ke langkah2.
2. Cari k dan m, dengan m ganjil sehingga 1 2k
p− = m.
3. Hitung r a≡ (m+1 / 2)
(
modp)
dan
(
mod)
m
n a≡ p
.
4. Definisikan
r2≡an
(
modp)
…( i )
Jika n≡1 mod
(
p)
,
maka solusinya adalah x≡ ±r(
modp)
.
Jika n≡1 mod p , lanjut langkah 5.
(
)
5. Ambil *p
z∈ secara acak yang nonresidu kuadratik, dan tetapkan
(
mod)
m
c z≡ p
. Sehingga ord(c) = 2
k.
6. Dengan pengulangan kuadrat diperoleh ord(n) = 2k'
.
7. Tetapkan b ≡c2k k− −'1(
modp)
,(
)
' mod r ≡br p , c'≡b2(
modp)
dan(
)
' ' mod n ≡c n p dengan k'< k8. Kalikan kedua ruas (i) dengan 'c .
Dengan demikian diperoleh
r'2≡an'mod
(
p)
…(ii)9. Jika n' 1 mod≡
(
p)
, maka solusinya
adalah x≡ ±r'mod(
p)
.
Jika n'≡1 mod p , lakukan
(
)
pengulangan langkah (6) – (8), sampai diperoleh n' 1 mod≡
(
p)
.
10. Solusinya adalah x≡ ±r'mod
(
p)
.
Algoritma RESSOL adalah algoritma acak (randomized algorithm) karena langkah ke-5 mensyaratkan untuk memilih bilangan nonresidu kuadratik secara acak dalam *p.
Dalam *
p, setengah dari anggotanya adalah non residu kuadratik sehingga pengambilan bilangan nonresidu kuadratik mempunyai peluang 1
2 dengan rata-rata pengambilan adalah 2 kali percobaan.
Algoritma RESSOL bukanlah algoritma
deterministic, tetapi prosedur perhitungannya
lebih praktis dan cepat.
Algoritma RESSOL mempunyai waktu eksekusi (running time) O((lg ) )p 4 bit operasi.
[Menezes, 1997] Contoh 2.
Tentukan solusi darix2≡13 mod 23
(
)
.
Jawab:
(23 1 2) 11
13 − ≡13 (mod 23) ≡ 1 (mod 23). Karena 13(23 1 2−) ≡ 1 (mod 23) maka
(
)
2 13 mod 23 x ≡ mempunyai solusi. 23 – 1 = 22 = 1 2 .11 pilih k = 1 dan m = 11 (11 1 / 2) 13 (mod 23) r≡ + ≡13 (mod 23) 6 (mod 23)6 ≡ Karena r2 ≡13 (mod 23)12 11 13 .13 (mod 23) ≡dengan n≡13 (mod 23) 1 (mod 23)11 ≡ maka solusi dari x2≡13 mod 23
(
)
adalah
6 (mod 23)
x≡ dan
6 (mod 23) 17 (mod 23)
x≡ − ≡
Jadi solusi dari x2≡13 mod 23
(
)
adalah 6Langkah-langkah dalam Algoritma RESSOL dapat dilihat melalui bagan berikut ini.
Algoritma RESSOL hanya dapat digunakan untuk mencari solusi dari
(
)
2 mod
x ≡a p dengan p prima ganjil. Tetapi Algoritma RESSOL ini dapat dijadikan landasan untuk mencari solusi dari
(
)
2 mod ,
x ≡a pq dengan p dan q prima ganjil, dan 2 (mod j)
x ≡a p , dengan p prima ganjil dan bilangan bulat j≥2.
Hitung r a≡ (m+1 / 2)
(
modp)
dan n a≡ m(
modp)
Tidak Tetapkan b ≡c2k k− −'1(
modp)
,(
)
' mod r ≡br p , c'≡b2(
modp)
,(
)
' ' mod n ≡c n p dengan k'< k Ya Selesai Tidak Ya Hitung (p1 2) (mod ) a − p MulaiBilangan prima ganjil p dan a∈
[
1,p− 1]
Apakah (p1 2) 1 mod(
)
a − ≡ p(
)
2 mod x ≡a ptak punya solusi
Apakah
(
)
1 mod n≡ p Solusinya adalah(
mod)
x≡ ±r pMisalkan z adalah bilangan nonresidu kuadratik yang diambil secara acak dalam *
p. Hitung c z≡ m
(
modp)
Hitung(
)
2 ' 'mod r ≡an p Apakah(
)
' 1 mod n ≡ p Tidak Ya Solusinya adalah(
)
'mod x≡ ±r p(
)
2 mod x ≡a p punya solusi3.3 Mengkontruksi Algoritma untuk Mencari Solusi x2≡a
(
modpq)
denganp dan q bilangan prima ganjil.
Untuk mencari solusi kongruensi
(
)
2 mod ,
x ≡a pq dengan p dan q prima ganjil, diawali dengan mencari terlebih dahulu solusi dari x2≡a
(
modp)
dan(
)
2 mod
x ≡a q menggunakan Algoritma RESSOL.
Misalkan x2≡a
(
modp)
mempunyai 2solusi, yaitu
x r≡
(
modp)
...(14) x≡ −r(
modp)
...(15) Misalkan x2≡a(
modq)
mempunyai 2 solusi, yaitux s≡
(
modq)
...(16) x≡ −s(
modq)
...(17) Kombinasi dari solusi (14), (15), (16), dan (17) menghasilkan 4 buah sistem kongruensi sebagai berikut :(
)
(
)
( ) mod mod i x r p x s q ≡ ≡(
)
(
)
( ) mod mod ii x r p x s q ≡ ≡ −(
)
(
)
( ) mod mod iii x r p x s q ≡ − ≡( ) (mod ) (mod ) iv x r p x s q ≡ − ≡ −
Dengan menggunakan Teorema Sisa Cina, sistem kongruensi (i), (ii), (iii) dan (iv) menghasilkan 4 solusi kongruensi dari
2 (mod )
x ≡a pq
dan secara berurutan dapat dituliskan sebagai
(
)
1 ( )i x ≡u modpq ,(
)
2 ( )ii x ≡v modpq ,( )
iii x3≡ −u(
modpq)
,(
)
4 ( )iv x ≡ −v modpq .Keempat solusi ini merupakan solusi yang khas dari modulo pq.
Langkah penyelesaian untuk menentukan solusi dari kongruensi x2≡a
(
modpq)
dengan p dan q bilangan prima ganjil tersusun dalam algoritma berikut ini.
Algoritma 3 :
Mencari akar kuadrat modulo pq, dengan p dan q prima ganjil.
INPUT : Bilangan prima ganjil p dan q , dan 1 ≤ a ≤ pq – 1
OUTPUT : Empat akar kuadrat a modulo pq 1. Gunakan Algoritma RESSOL untuk mencari dua akar r dan –r yang merupakan solusi dari x2≡a
(
modp)
.2. Gunakan Algoritma RESSOL untuk mencari dua akar s dan –s yang merupakan solusi dari x2≡a
(
modq)
.3. Gunakan Algoritma Euclidean yang diperluas untuk mencari bilangan bulat c dan d sedemikian sehingga cp + dq = 1. 4. x≡(rdq scp+ )(modpq)
( )(mod )
y≡ rdq scp− pq
5. Solusinya
adalah±x(modpq)dan±y(modpq) Algoritma di atas mempunyai waktu eksekusi (running time) 3
((lg ) )
O p bit operasi. [Menezes, 1997] Contoh 3.
Tentukan solusi dari x2≡71 mod 77
(
)
.
Jawab Karena 77 = 7 . 11 maka
(
)
2(
(
)
)
2 2 71 mod 7 ...( ) 71 mod 77 71 mod 11 ...( ) x i x x ii ≡ ≡ ⇔ ≡ (i) x2≡71 mod 7(
) (
≡1 mod 7)
solusiya adalah x≡ ±1 mod 7
(
)
(ii) x2≡71 mod 11(
)
≡5 mod 11(
)
solusiya adalah x≡ ±4 mod 11
(
)
Bilangan bulat yang memenuhi persamaan 7c+11d = 1 adalah c = -3 dan d = 2.
x = 1.2.11 + 4.(-3).7 = -62 15 (mod 77) y = 1.2.11 - 4.(-3).7 = 106 29 (mod 77) -x = -15(mod 77) 48 (mod 77) -y = -29 (mod 77) 62 (mod 77)
Jadi 4 solusi dari x2≡71 mod 77
(
)
yaituLangkah-langkah dalam Algoritma 3 dapat dilihat melalui bagan berikut ini.
Bagan 3. Algoritma mencari akar kuadrat modulo (pq), p dan q prima ganjil. 3.4 Mengkonstruksi Algoritma untuk
Mencari Solusi 2 (mod j)
x ≡a p dengan
p prima ganjil dan j 2.
Untuk mencari solusi dari 2
(mod j)
x ≡a p , dengan p prima dan j≥ , 2 dapat kita ubah bentuknya menjadi
2
0(mod j)
x − ≡a p . Kita misalkan f fungsi polinom dengan koefisien bilangan
bulat, 2
( )
f x =x − . Untuk mencari solusi a
dari polinom ( ) 0(mod j)
f x ≡ p … (18), kita mulai dari solusi modulo p, kemudian p2, p3, sampai j
p .
Misalkan x c= adalah sebuah solusi untuk ( ) 0(mod j)
f x ≡ p maka kita bisa
mencari solusi dari 1
( ) 0(mod j ) f x p + ≡ . Solusi dari 1 ( ) 0(mod j ) f x ≡ p+ berbentuk j
x c tp= + , dengan t adalah suatu bilangan bulat yang dapat kita cari menggunakan deret Taylor’s 2 2 3 3 ( ) ''( ) ( ) ( ) '( ) 2! '''( ) ( ) . . . 3! ! j j j j n nj n t p f c f c tp f c tp f c t p f c t p f c n + = + + + + + +
dimana n adalah derajat/pangkat dari fungsi polinom f x . Karena ( ) 2
( )
f x =x − a
polinom berderajat 2 dalam modulus j1
p + , maka deret Taylor’s tersebut menjadi
1 ( j) ( ) j '( ) (mod j ) f c tp f c tp f c p+ + = +
.
Karena 1 ( j) 0(mod j ) f c tp p + + ≡ makapersamaan diatas dapat kita ubah menjadi 1 ( ) j '( ) 0 (mod j ) f a +tp f c ≡ p + . Karena ( ) 0(mod j) f x ≡ p mempunyai solusi
x c= maka kita dapatkan ( ) '( ) f cj (mod )
tf c p
p
≡ − … (19) yang merupakan persamaan linear dalam t. Persamaan (19) mungkin tidak mempunyai solusi, mempunyai solusi tunggal atau mempunyai p solusi. Jika 'f c( ) 0(mod )≡/ p
maka persamaan tersebut mempunyai tepat satu solusi.
Solusi dari persamaan (18) dapat ditentukan dengan menggunakan Lemma Hensel’s.
Lemma Hensel’s :
Misalkan ( )f x adalah fungsi polinom dengan
koefisien-koefisiennya bilangan bulat dan p prima. Jika ( ) 0(mod j)
f c ≡ p dan
'( ) 0(mod )
f c ≡/ p maka ada bilangan bulat t (mod )p yang tunggal sedemikian sehingga
1 ( j) 0(mod j )
f c tp+ ≡ p+
.
[Niven, 1991] Mencari bilangan bulat c
dan d sehingga cp + dq = 1 Ya Selesai Ya Tidak Tidak Mulai RESSOL [ , ]a p RESSOL[ , ]a q
Bilangan prima p dan q, dan a∈[1,pq− 1]
Apakah
ada solusi ada solusi Apakah
(
mod)
x r≡ p(
mod)
x≡ −r p(
mod)
x s≡ q(
mod)
x≡ −s q Solusinya adalah (mod ) (mod ) x n y n ± ±(
)
( ) mod x≡ rdq scp+ n(
)
( ) mod y≡ rdq scp− nBukti dari Lemma Hensel’s tidak dicantumkan karena di luar jangkauan pembahasan.
Jika f c'( ) 0(mod )p dan ( ) 0(mod j)
f c ≡ p maka bilangan bulat c disebut akar nonsingular. Jika
'( )
f c 0(mod )p dan f c'( ) 0(mod )≡ p
maka c disebut akar singular.
Dari Lemma Hensel’s kita lihat bahwa sebuah akar nonsingular c(mod )p
menghasilkan sebuah akar 2 2(mod )
c p .
Karena c2≡c(mod )p maka 2
'( ) '( ) 0(mod )
f c ≡ f c ≡/ p . Dari akar 2
2(mod )
c p akan dihasilkan sebuah akar 3
3(mod )
c p dan seterusnya sehingga mendapatkan akar (mod j)
j
c p .
Dari persamaan (19) diperoleh sebuah persamaan rekursif untuk mencari solusi yaitu
(
)
1 1 ( ) '( ) j j j c+ c f c f r − = − ,dengan
(
f r'( ))
−1 adalah sebuah bilangan bulat sedemikian sehingga(
)
1'( ) '( ) 1(mod )
f c f r − ≡ p .
Contoh 4.
Tentukan solusi dari x2≡5(mod11 )3 .
Jawab : 2 3 2 3 5(mod11 ) 5 0(mod11 ) x ≡ ⇔x − ≡ Solusi dari 2 5 0(mod11) x − ≡ adalah x = ±4 (mengunakan Algoritma RESSOL)
2
( ) 5 '( ) 2
f x =x − f x = x
'(4) 8 0(mod11)
f ≡ ≡/
Karena 'f (4) 0(mod11)≡/ maka 4 adalah akar
nonsingular. '(4) 8 7(mod11) f =
≡
2 1 (4) '(4) 4 11.7 c = −c f f = − = − ≡73 48(mod11 )2 3 2 (48) '(4) 48 2299.7 c =c − f f = − = −16045 1258(mod11 )≡ 3Solusi dari x2≡5(mod11 )3 adalah
3 1258(mod11 ) x≡ ± yaitu x=1258 dan 73 x= . Jika ( ) 0(mod j) f c ≡ p dan '( ) 0(mod )
f c ≡ p maka berdasarkan deret Taylor, ( j) ( )(mod j1)
f c tp f a p +
+ ≡ untuk
semua bilangan bulat t.
Kemudian jika ( ) 0(mod j1)
f c p+
≡ maka ( j) 0(mod j1)
f c tp+ ≡ p+ , sehingga
sebuah akar (mod j)
c p akan menghasilkan p
buah akar (mod j1)
p+ . Tetapi jika 1
( ) 0(mod j )
f c ≡/ p+ maka tidak ada solusi untuk (mod j1)
p+ . Contoh 5.
Tentukan solusi dari x2≡9(mod 27). Jawab :
2 9(mod 27) 2 9 0(mod 3 )3
x ≡ ⇔x − ≡
Solusi dari x2− ≡9 0(mod 3) adalah x = 0. 2
( ) 9 '( ) 2
f x =x − f x = x
'(0) 0(mod 3)
f ≡
Karena 'f (0) 0(mod 3)≡ maka 0 adalah akar singular.
2 (0) 9 0(mod 3 )
f = − ≡ , maka solusi mod 9 adalah x = 0, x = 0 + 3 = 3, x = 3 + 3 = 6
3 (0) 9 0(mod 3 )
f = − ≡/ , maka tak ada solusi mod 27
3 (3) 0(mod 3 )
f ≡ , maka solusi mod 27 adalah x = 3, x = 3 + 9 = 12, x = 12 + 9 = 21
3 (6) 27 0(mod 3 )
f = ≡ , maka solusi mod 27 adalah x = 6, x = 6 + 9 = 15, x = 15 + 9 = 24.
Jadi solusi dari x2≡9(mod 27) adalah x = 3,
x = 6, x = 12, x = 15, x = 21 dan x = 24.
Langkah penyelesaian untuk menentukan solusi dari kongruensi x2 ≡a
(
modpj)
dengan p bilangan prima ganjil dan bilangan bulat j≥ tersusun dalam algoritma berikut 2 ini.Algoritma 4 :
Mencari akar kuadrat modulo j
p , dengan p
prima ganjil dan bilangan bulatj≥ . 2 INPUT : Bilangan prima ganjil p , bilangan bulat j≥ dan 12 ≤ ≤a pj− 1 OUTPUT : Dua akar kuadrat a modulo j
p .
1. Gunakan Algoritma RESSOL untuk mencari dua akar r dan –r yang merupakan solusi dari x2≡a
(
modp)
. 2. Tetapkan f x( )=x2− dan '( ) 2a f x = x 3. Jika '( ) 0(mod )f r ≡/ p , tentukandan
(
1 ( 1) '( ) (mod1)
) jj j j
r = r− −f r− f r p
dengan r1= . r Solusinya dari
(
)
2 mod j
x ≡a p adalah (mod j)
j
x= ±r p .
Jika 'f r( ) 0(mod )≡ p lanjut ke langkah 4.
4. Untuk k=2, 3,...,j− berlaku jika 1
)
( ) 0(mod k
f r ≡ p maka x r tp≡ + k dengan t=1, 2, 3,...,p merupakan solusi dari x2≡a(modpk+1).
Jika f r( ) 0(mod≡/ pk) maka tak ada solusi dari x2≡a(modpk+1).
Langkah-langkah dalam Algoritma 4 dapat dilihat melalui bagan berikut ini.
Ya
Tak ada solusi dari x2≡a(modpk+1) Selesai Tidak Apakah '( ) 0(mod ) f r ≡ p Solusinya adalah (mod j) j x≡ ±r p Tetapkan f x( )=x2−a dan 'f x( ) 2= x RESSOL [ , ]a p Mulai
Bilangan prima ganjil p, 2
j≥ dana∈[1,p− 1]
Ya Apakah
ada solusi x rx≡≡ −
(
rmod(
modp)
p)
Hitung ( 'f r( ))−1dan
(
1)
1 ( 1)( '( )) (mod ) j j j j r r f r f r − p − − = − dengan r1= . r Hitung f r( )(modp k) untuk k =2, 3,...,j− 1 Apakah ) ( ) 0(mod k f r ≡ p Tidak Ya xt ≡ +r tpk dengan t=1, 2, 3,...,p adalah Solusi dari x2≡a(modpk+1) TidakBagan 4. Algoritma mencari akar kuadrat modp , dengan p prima ganjil dan j j≥ . 2
(
)
1'( )
3.5 Membandingkan waktu eksekusi Algoritma 1 dengan Algoritma RESSOL yang terkait bilangan besar. Pada bagian ini akan dibandingkan waktu eksekusi Algoritma 1 dengan Algoritma RESSOL. Implementasi dari Algoritma 1 dan Algoritma RESSOL menggunakan perangkat lunak Mathematica 5.2 dapat dilihat di lampiran.
Tabel 1 adalah waktu eksekusi dari Algoritma 1 dan Algoritma RESSOL menggunakan perangkat lunak Mahtematica 5.2. Nilai p adalah bilangan prima yang ditentukan terlebih dahulu, sedangkan a adalah bilangan bulat positif yang diambil secara acak dalam *
p.
Tabel 1. Waktu Eksekusi Algoritma 1 dan Algoritma RESSOL
Waktu Eksekusi (detik)*
p a Algoritma 1 Algoritma RESSOL 25 0,0015 0,0015 97 89 0,0016 0,0016 507 0,0031 0,0031 377 0,0024 0,0024 541 64 0,0021 0,0021 149 0,0047 0,0047 77 0,0024 0,0024 997 694 0,0069 0,0069 3095 0,0098 0,0098 1548 0,0081 0,0081 3571 814 0,0076 0,0076 979 0,0151 0,0015 3962 0,0162 0,0016 1271 0,0153 0,0031 7919 5858 0,0204 0,0024 5274 0,0315 0,0021 7087 0,0316 0,0047 11012 0,0167 0,0024 4355 0,0318 0,0069 12553 8836 0,0319 0,0098 14229 0,2048 0,0081 35517 0.2817 0,0076 76305 0,1566 0,0098 49617 0,2505 0,0081 1630 0,2664 0,0076 104729 44704 0,2813 0,0069 592085 0,6092 0,0015 467495 1,6251 0,0016 231000 0,5782 0,0031 96620 1,3753 0,0024 136341 0,8444 0,0021 399632 1,2815 0,0047 611953 541897 0,6256 0,0024 328426 1,2657 0,0069 671944 2,1888 0,0098 231057 1,4539 0,0081 601890 3,8138 0,0076 825496 1,2037 0,0015 290150 3,8286 0,0016 1299709 291949 2,7545 0,0031 3090665 22,0474 0,0024 5210769 42,5473 0,0021 14621620 26,8592 0,0047 14141212 13,9061 0,0024 12920893 31,9062 0,0069 5871391 37,2353 0,0098 15485863 9473376 15,9844 0,0021 Dari data Tabel 1 dapat diambil kesimpulan bahwa waktu eksekusi Algoritma RESSOL lebih cepat dibandingkan Algoritma 1.
Algoritma 1 tidak efisien untuk nilai p yang besar yaitu p > 1.000.000, sedangkan Algoritma RESSOL lebih efisien untuk nilai p yang besar.
Berdasarkan hasil percobaan (Tabel 2), Algoritma RESSOL masih dapat digunakan untuk mencari solusi x2≡a(mod )p untuk nilai p yang sangat besar, yaitu p =
29.996.224.275.833.
Tabel 2. Waktu Eksekusi Algoritma RESSOL
p a Eksekusi Waktu (detik)* 424613597121 0,0159 10878246026665 0,0178 5887477973699 0,0167 20786675373559 0,0206 1574940209207 0,0185 5641355712333 0,0194 10073237724502 0,0153 27504498309348 0,0212 7273523082800 0,0143 29996224275833 18488184417987 0,0134 *)menggunakan komputer P4 3,0GHz 512MB