Anda di halaman 1dari 14

Pengujian Bilangan Prima

Yus Gias Vembrina / 13503042


if13042@students.if.itb.ac.id

Program Studi Teknik Informatika


Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung

Abstrak

Sebagian besar bilangan yang digunakan dalam kriptografi kunci publik menggunakan bilangan prima
sebagai salah satu parameternya. Bilangan prima yang disarankan adalah bilangan prima yang
berukuran sangat besar, terdiri lebih dari seratus angka, bahkan ribuan angka. Karena pola kemunculan
bilangan prima dalam barisan bilangan sampai dengan saat ini belum dapat dipahami manusia,
dibutuhkan suatu cara untuk mengetahui sebuah bilangan termasuk bilangan prima atau tidak. Inilah
yang dikenal dengan pengujian bilangan prima.

Pengujian bilangan prima adalah sebuah pengujian untuk dapat menentukan sebuah bilangan termasuk
bilangan prima atau tidak. Pengujian ini terdiri dari dua jenis pengujian, yaitu deterministik dan
probabilistik. Pengujian deterministik dapat menentukan secara pasti sebuah bilangan merupakan
bilangan prima atau tidak. Contoh dari pengujian jenis ini adalah pembuktian keprimaan Pratt (Pratts
primality proving), pengujian Lucas-Lehmer (Lucas-Lehmer test), dan pengujian AKS (AKS primality
test). Pengujian probabilistik, secara umum, lebih cepat daripada pengujian deterministik. Tetapi,
pengujian probabilistik hanya dapat menjamin sebuah bilangan mungkin prima. Bilangan tersebut
dapat disebut sebagai bilangan prima setelah diuji secara deteministik. Contoh dari pengujian
probabilistik adalah pengujian Fermat (Fermat primality test), pengujian Solovay-Strassen (Solovay-
Strassen primality test), dan pengujian Rabin-Miller (Rabin-Miller primality test).

Kata kunci: pengujian bilangan prima

1. Pendahuluan pengimplementasian kriptografi kunci publik


adalah pengujian bilangan prima [8].
Teori bilangan telah menjadi sebuah ilmu yang
dipelajari sejak zaman Yunani kuno. Tulisan ini merupakan ulasan mengenai
Ketertarikan orang terhadap ilmu ini semakin pengujian bilangan prima. Pada bagian 2 akan
besar lagi dalam beberapa dekade belakangan dibahas mengenai bilangan prima. Pada bagian
ini seiring dengan ditemukannya kriptografi 3 akan dibahas mengenai beberapa cara atau
kunci publik. Kriptografi kunci publik metode pengujian bilangan prima. Pada bagian
memiliki beberapa kelebihan dibandingkan 4 akan dibahas mengenai percobaan
dengan kriptografi kunci simetri [1] [15], atau implementasi beberapa algoritma pengujian
kriptografi tradisional yang telah dikenal sejak bilangan prima. Dan, pada bagian 5 disajikan
zaman Romawi. tabel besar yang menggambarkan beragam
algoritma pengujian bilangan prima.
Salah satu kebutuhan dari sebuah sistem
kriptografi adalah pesan harus dengan mudah
dapat didekripsi oleh pihak yang berhak dan 2. Bilangan Prima
sulit didekripsi oleh pihak lain. Keamanan
kriptografi kunci publik berlandaskan pada Bilangan prima adalah bilangan asli yang tepat
kerumitan memecahkan perhitungan hanya memiliki dua faktor, yaitu 1 dan
matematis. Teori bilangan muncul sebagai bilangan itu sendiri.
sebuah sumber untuk memenuhi keperluan
pengamanan tersebut. Sebagai contoh, Sampai dengan abad kesembilan belas Masehi
pemfaktoran bilangan menjadi tulang kebanyakan matematikawan menganggap 1
punggung algoritma RSA [1] [21] dan sebagai bilangan prima. Pada waktu itu,
logaritma diskrit menjadi landasan bagi sebagian besar tulisan yang dihasilkan masih
algoritma ElGamal dan algoritma pertukaran memasukkan 1 sebagai bilangan prima yang
kunci Diffie-Hellman [1] [34] [23]. Masalah sah. Perubahan yang menmbawa 1 tidak lagi
matematis lain yang juga penting dalam dianggap sebagai bilangan prima adalah
adanya kebutuhan untuk dapat menyatakan

1
setiap angka dapat difaktorkan menjadi Banyaknya bilangan prima
bilangan prima yang unik.
Sejak 2300 tahun yang lalu telah diketahui
Beberapa sifat bilangan prima bahwa tidak ada bilangan prima terbesar yang
diketahui. Hal ini dibuktikan oleh Euclid
1. Semua bilangan prima berakhiran 1, 3, 7, dengan cara kontradiksi. [4] Misalnya
atau 9, kecuali untuk dua bilangan prima , diketahui bahwa hanya ada tiga buah bilangan
yaitu 2 dan 5 (bilangan berakhiran 0, 2, 4, prima, yaitu p , q , dan r . Kalikan ketiga
6, atau 8 merupakan kelipatan 2 dan bilangan tadi dan tambahkan 1, pqr + 1 . p
bilangan berakhiran 5 merupakan
kelipatan 5). tidak habis membagi pqr + 1 dan
menyisakan 1 dari hasil pembagian tadi karena
2. Jika p adalah bilangan prima dan p p habis membagi pqr . Hal yang sama juga
membagi ab yang merupakan hasil kali terjadi pada q dan r . Disimpulkan bahwa
dua bilangan bulat, maka p membagi a pqr + 1 adalah bilangan prima atau memiliki
atau p membagi b . Hal ini dibuktikan faktor prima selain p , q , dan r . Dengan
oleh Euclid dan dikenal sebagai teorema demikian, diperoleh bilangan prima lain yang
Euclid (Euclids lemma). belum termasuk ke dalam daftar bilangan
prima yang dimiliki sebelumnya.
3. p adalah bilangan prima jika dan hanya
jika ( p ) = n 1 . ( ( p ) adalah Faktor unik
Euclids totient) Bilangan prima menjadi penting karena
bilangan prima merupakan faktor-faktor yang
4. Jika p adalah bilangan prima dan a membangun sebuah bilangan asli. Faktor-
adalah sembarang bilangan bulat, maka faktor ini unik untuk tiap bilangan asli. Hal ini
a p a habis dibagi oleh p . (teorema juga dibuktikan oleh Euclid, jika p adalah
Fermat (Fermats little theorem)) bilangan prima dan p membagi ab yang
merupakan hasil kali dua bilangan bulat, maka
5. Jika p adalah bilangan prima selain 2 p membagi a atau p membagi b . [4]
dan 5, maka 1 selalu menghasilkan
p Misalkan p tidak habis membagi b . Ada
bilangan dengan angka desimal berulang
r > 0 sebagai sisa dari hasil pembagian b
yang perulangannya terjadi dalam perioda
oleh p , b = cp + r dengan c sebuah
p 1 atau faktor dari p 1 .
bilangan bulat sebagai faktor pengali p .
6. p adalah bilangan prima jika dan hanya Sekarang, dengan p habis membagi ab ,
jika ( p 1)! + 1 habis dibagi oleh p . berarti p habis membagi
(teorema Wilson) a(cp + r ) = acp + ar . Dengan begitu, p
habis membagi ar dan pk = ar dengan k
7. Jika n adalah bilangan bulat positif lebih
sebuah bilangan bulat sebagai faktor pengali
besar dari 1, maka akan selalu ada
bilangan prima p dengan batasan p . Diperoleh ap = kr . Akan tetapi, diketahui
n < p < 2n . (postulat Bertrand) bahwa r lebih kecil daripada p ( r adalah
sisa pembagian oleh p ). Sebuah bilangan
8. Jika p > 1, polinom lebih besar daripada 1 dapat habis membagi
p dan a , tetapi tidak ada bilangan yang
x p 1 + x p 2 + K + 1 tidak dapat
dapat membagi p kecuali 1 atau p itu
difaktorkan jika dan hanya jika p adalah
sendiri. Oleh karena itu, p habis membagi a .
bilangan prima.

9. Jika p adalah bilangan prima lebih besar Pola


dari 6, maka p mod 6 menghasilkan 1
Berikut ini adalah beberapa buah bilangan
atau 5 dan p mod 30 menghasilkan 1, 7, prima.
11, 13, 17, 19, 23, atau 29.
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41,

2
Apakah barisan bilangan prima di atas
mengikuti suatu pola tertentu ataukah
bilangan-bilangan prima tersebut muncul
secara acak secara tidak menentu dalam
barisan bilangan asli?

Pertanyaan di atas telah dipertanyakan sejak


dulu dan belum terjawab sampai sekarang.
Tetapi, ternyata didapati banyak pola-pola Tiap baris dinomori mulai dari 0. Terdapat
kecil dalam barisan bilangan prima. Salah perbedaan antara baris-baris yang bernomor
satunya adalah pola untuk bilangan prima yang prima dengan baris-baris yang lain. Jika nomor
merupakan hasil penjumlahan dua buah baris, n , adalah bilangan prima, maka row ke-
bilangan kuadrat. n hanya berisi bilangan yang merupakan
kelipatan n , dengan mengabaikan angka 1
2 12 + 12 yang berada di sisi kiri dan kanan. Jika n
3 Tidak bisa dipolakan bukan bilangan prima, maka bilangan-bilangan
5 12 + 2 2 yang terdapat pada baris ke- n tersebut bukan
7 Tidak bisa dipolakan merupakan kelipatan dari n .
11 Tidak bisa dipolakan
Baris ke- n dalam segitiga Pascal, bilangan
13 2 2 + 32
dengan urutan ke- k dari kiri (urutan dimulai
M dari 0) adalah
Aturan yang mengikat pola tersebut adalah
sebuah bilangan prima dapat ditulis sebagai n n! n(n 1)K (n k + 1)
= = .
penjumlahan dari dua buah bilangan kuadrat
jika dan hanya jika bilangan prima tersebut
k k!(n k )! k (k 1)K 2.1
menyisakan 1 atau 2 ketika dibagi oleh 4.
Misalkan n adalah bilangan prima. Pembilang
Contoh pola lain: bilangan genap yang dapat mengandung faktor n dan semua faktor
ditulis sebagai penjumlahan dari dua buah penyebut lebih kecil dari n sehingga tidak ada
bilangan prima. yang membagi faktor n . Oleh karena itu, n
n
2 Tidak bisa dipolakan habis membagi .
4 2+2
k
6 3+3
Misalkan n bukan merupakan bilangan prima.
8 3+5
n dapat ditulis sebagai n = pk dengan p
10 3+ 7, 5+ 5
adalah bilangan prima. Maka
12 5+7
M n n(n 1)K (n p + 1)
=
Asumsi Goldbach (Goldbach conjecture) yang p p ( p 1)K 2.1
terkenal menyatakan setiap bilangan genap pk ( pk 1)K ( pk p + 1)
lebih besar dari 2 dapat ditulis sebagai = .
penjumlahan dari dua buah bilangan prima. p ( p 1)K 2.1
[4] Sejak tahun 1742, tidak seorang pun yang
mampu membuktikannya, meskipun diketahui p dalam penyebut dan pembilang saling
bahwa pernyataan itu benar adanya. Ada juga meniadakan satu sama lain. Faktor terkecil
yang disebut sebagai teorema Vinogradov dalam penyebut adalah pk p , maka p
menyatakan bahwa setiap bilangan ganjil
lebih besar dari 10
43.000
dapat ditulis sebagai n
tidak habis membagi dan begitu pula
penjumlahan dari tiga buah bilangan prima. p
[4]
dengan n .
Pola yang lain adalah segitiga Pascal.
Dengan demikian, jika ada sebuah bilangan
asli n dan ingin diketahui bahwa n adalah
bilangan prima atau bukan, solusinya dapat

3
dicari dengan melihat baris ke- n dalam ditetapkan, masalah pengujian bilangan prima
segitiga Pascal. Akan tetapi, cara ini tidaklah diselidiki secara seksama. Disimpulkan bahwa
efisien. Pencarian seluruh faktor n masih pengujian bilangan prima termasuk ke dalam
merupakan cara yang lebih baik dibandingkan kelas co-NP. Pada tahun 1975, Pratt meneliti
cara ini. masalah pengujian bilangan prima dan
menyimpulkan bahwa masalah ini juga
termasuk ke dalam kelas NP. [15] Dengan
3. Pengujian Bilangan Prima demikian, kompleksitas masalah pengujian
bilangan prima termasuk ke dalam kelas
Definisi bilangan prima itu sendiri sudah co - NP NP .
memberikan arahan mengenai cara
menentukan bilangan prima, yaitu mencari Pada tahun 1976, Miller menghasilkan
faktor bilangan yang ingin ditentukan algoritma yang diturunkan dari Fermats little
keprimaannya dengan cara membagi bilangan theorem untuk melakukan pengujian bilangan
tersebut dengan semua bilangan-bilangan yang prima dalam waktu polinomial dengan
lebih kecil daripada bilangan yang diuji. Cara mengandalkan asumsi Extended Riemann
ini telah dikenal sejak zaman Yunani kuno dan Hypothesis (ERH). [34] ERH dipercaya benar,
merupakan spesialisasi dari sieve of namun belum dapat dibuktikan kebenarannya
Eratosthenes (tahun 240 sebelum masehi) secara formal. Tidak lama kemudian,
yang digunakan untuk mencari bilangan prima pengujian tersebut dimodifikasi oleh Rabin
yang lebih kecil dari sebuah bilangan tertentu, untuk menghasilkan algoritma tanpa
misalkan n . Pengujian dengan cara ini menggunakan asumsi ERH tetapi memerlukan
tidaklah efisien. Dibutuhkan langkah sebanyak waktu pengujian acak namun tetap polinomial.
n untuk dapat menentukan sebuah bilangan [28] Di lain pihak, Solovay dan Strassen
mendapatkan algoritma yang berbeda namun
n merupakan bilangan prima atau bukan. tetap memerlukan waktu polinomial yang acak
dengan memanfaatkan sifat bilangan prima
Pengujian bilangan prima yang efisien untuk sebuah bilangan prima p,
seharusnya hanya membutuhkan langkah
( )= a ()
p 1
dalam jumlah yang polinomial, yaitu dalam a 2
(mod p ) untuk setiap a ( a

ukuran log n . Pengujian bilangan prima


p p
adalah simbol Jacobi). [34] Algoritma ini
yang baik seharusnya memenuhi hal-hal juga dapat diterapkan menggunakan ERH.
berikut. [8] Sejak saat itu, sejumlah pengujian bilangan
1. Tepat, algoritma harus selalu memberikan prima yang memerlukan waktu polinomial
jawaban yang tepat. acak yang telah dicoba dibuat dengan
2. Umum, algoritma harus dapat memproses berdasarkan pada sifat bilangan prima yang
semua bilangan, tidak hanya bilangan berbeda-beda.
dengan bentuk tertentu.
3. Cepat, algoritma harus menghabiskan Di saat algoritma-algoritma pengujian bilangan
waktu dalam pola polinomial. prima yang lain memerlukan waktu yang
eksponensial, pada tahun 1983, Adlemann,
Sebuah pengujian bilangan prima yang hampir Pomerance, dan Rumely berhasil membuat
memberikan pengujian yang efisien adalah algoritma pengujian bilangan prima yang
pengujian Fermats little theorem. Teorema memerlukan waktu polinomial, yaitu
tersebut menyatakan jika p adalah bilangan
(log n )(log log log n ) .
[26] Algoritma yang
prima dan a adalah sembarang bilangan bulat,
mereka kembangkan merupakan generalisasi
maka a a habis dibagi oleh p . Cara ini
p
dari algoritma Miller dan menggunakan sifat
secara efisien akan memeriksa keprimaan yang lebih tegas lagi.
sebuah bilangan. Akan tetapi, pengujian ini
tidak selalu mengeluarkan hasil yang benar, Pada tahun 1986, Goldwasser dan Kilian
ada bilangan tidak prima yang memenuhi mengajukan sebuah algoritma pengujian
teorema tadi, yang disebut dengan bilangan bilangan prima dengan menggunakan kurva
Carmichael. [40] Meskipun demikian, eliptik (elliptic curve) yang diharapkan
Fermats little theorem adalah basis dari memerlukan waktu polinomial untuk hampir
pengujian bilangan prima lainnya. semua masukan yang diberikan (semua
masukan yang berada dalam hipotesis yang
Sejak awal teori kompleksitas di awal tahun dipercaya). [21] Berdasarkan pada algoritma
1960-an, ketika notasi kompleksitas mereka, algoritma serupa dikembangkan oleh
diformalkan dan berbagai kelas kompleksitas Atkin. [22] Adleman dan Huang memodifikasi

4
algoritma Goldwasser-Kilian sehingga dapat Pembuktian keprimaan Pratt [39]
menerima semua masukan. [15]
Teorema
Pada bulan Agustus 2002, Manindra Agrawal,
Neeraj Kayal, dan Nitin Saxena mengajukan Sebuah bilangan asli m > 2 merupakan
sebuah pengujian bilangan prima yang cepat, bilangan prima jika dan hanya jika terdapat
15
hanya memerlukan waktu log 2 n , dan bilangan bulat a sedemikian sehingga
bekerja tanpa menggunakan asumsi. [7] Tidak
hanya pengujian ini tidak pernah gagal, a m 1 = 1 (mod m )
pengujian ini juga lebih sederhana
dibandingkan pengujian-pengujian bilangan dan
prima lain yang mendekati waktu polinomial.
Pengujian ini didasari sifat bilangan prima a x 1 (mod m ) x = 1,2, K , m 2 .
( X + a )n mod n = (X n + a )mod n . Bilangan a dikenal dengan akar primitif dari
bilangan prima m .
Tetapi, di sisi lain, pengujian ini juga termasuk
lambat. [4] Jumlah langkah yang dilakukan Pembuktian formal
dalam pengujian bilangan prima menggunakan
algoritma ini bertambah sejumlah angka Secara umum setelah memverifikasi
bilangan yang diuji dipangkatkan 12. Beberapa persamaan di atas, tidak perlu dilakukan
bulan kemudian, Lenstra memperbaiki hal ini perhitungan sebanyak m 2 kali untuk
menjadi langkah yang dilakukan tumbuh
sebanyak angka bilangan yang diuji a x mod m demi memverifikasi
dipangkatkan 6. [5] pertidaksaman di atas. Hanya perlu dilakukan
verifikasi a ( m 1) / p 1 (mod m ) untuk
semua hasil pembagian m 1 oleh semua
Lebih dalam dengan beberapa metode
pengujian bilangan prima
faktor prima dari p .
Pengujian bilangan prima dapat
dikelompokkan ke dalam dua jenis. Untuk melakukan pembuktian formal,
digunakan notasi
1. Deterministik, jika dapat menentukan m
secara pasti sebuah bilangan merupakan yang dibaca sebagai m adalah bilangan
bilangan prima atau tidak. Kepastian ini prima dan
diperoleh dari pembuktian matematis (m, a, x )
secara formal sehingga dapat dijamin yang dibaca sebagai setiap faktor prima p
kondisinya terpenuhi jika dan hanya jika
bilangan tersebut merupakan bilangan dari x memenuhi a ( m 1) / p 1 (mod m ) .
prima.
Pembuktian ini memiliki satu axioma
2. Probabilistik, jika hanya dapat menjamin
sebuah bilangan mungkin prima.
(m, a,1)
Pengujian ini hanya menjamin bahwa untuk semua bilangan bulat positif m dan
bilangan mungkin prima karena tidak a.
mencoba seluruh angka yang dapat dan dua aturan inferensi
dicobakan ke dalam persamaan, hanya (m, a, x ), p (m, a, xp )
mencoba beberapa angka yang dipilih
secara acak. selama a
( m 1) / p
1 (mod m ) terpenuhi
dan
Pengujian bilangan prima deterministik (m, a, m 1) m
Beberapa pengujian yang termasuk ke dalam selama a
m 1
= 1 (mod m ) terpenuhi.
jenis ini di antaranya adalah pembuktian
keprimaan Pratt, pengujian Lucas-Lehmer, dan Contoh
pengujian AKS.
Misalkan bilangan yang ingin diuji
keprimaannya adalah 1783.

5
(S1) (2,1,1) axioma Pengujian AKS
(S2) 2 (S1)
(S3) (3,2,1) axioma
(S4) (3,2,2) (S3) dan (S2) Pengujian AKS ini terdiri dari langkah-
(S5) 3 (S4) langkah sebagai berikut.
(S6) (5,2,1) axioma
(S7) (5,2,2) (S6) dan (S2)
(S8) (5,2,4) (S7) dan (S2) masukannya adalah bilangan bulat n >1
1. jika ( n = a untuk a dan b > 1 ),
(S9) 5 (S8) b
(S10) (11,2,1) axioma
(S11) (11,2,2) (S10) dan (S2) n bukan bilangan prima
(S12) (11,2,110) (S11) dan (S9)
(S13) 11 (S12) 2. cari r terkecil sedemikian sehingga
(S14)
(S15)
(1783,10,1)
(1783,10,2)
axioma
(S14) dan (S2)
(ak = 1 (mod r ) ) > log 2 n dengan k
(S16) (1783,10,6) (S15) dan (S5) adalah bilangan bulat yang kecil
(S17)
(S18)
(1783,10,18)
(1783,10,54)
(S16) dan (S5)
(S17) dan (S5) 3. jika
1 < (a, n ) < n untuk beberapa
(S19)
(S20)
(1783,10,162)
(1783,10,1782)
(S18) dan (S5)
(S19) dan (S13)
a r , n bukan bilangan prima
(S21) 1783 (S20) 4. jika n r , n adalah bilangan prima
5. untuk a = 1 sampai
(r ) log n
Pengujian Lucas-Lehmer lakukan
jika
Teorema (

Jika ada a yang lebih kecil dari n dan lebih ( X _ a )n X n + a (mod X r 1, n)


besar dari 1 sehingga ), n bukan bilangan prima
6. n adalah bilangan prima
a n 1 = 1 (mod n )
Dasar dari metode pengujian AKS ini adalah
perhitungan pada segitiga Pascal yang telah
dan diuraikan sebelumnya. Dari perhitungan
tersebut dapat diturunkan bahwa untuk setiap
a ( n 1) / q 1 (mod n ) a yang relatif prima terhadap n ,

untuk semua faktor prima q dari n 1 , maka ( X + a )n mod n = (X n + a )mod n


n adalah bilangan prima. Jika tidak ada a
yang memenuhi kondisi di atas, maka n untuk semua nilai X , jika dan hanya jika n
bukan merupakan bilangan prima. merupakan bilangan prima.

Pembuktian Akan tetapi, seperti pada segitiga Pascal,


perhitungan persamaan di atas akan menjadi
Kebenaran dari pengujian ini mirip seperti tidak efisien dengan membesarnya bilangan
pada pembuktian keprimaan Pratt. Secara n.
sederhana hal ini dapat dinyatakan sebagai
berikut.
Pengujian AKS berhasil mengatasi hal ini
Jika a memenuhi persamaan di atas, maka dengan melakukan perhitungan dalam modulo
dapat disimpulkan bahwa a dan n relatif
polinomial X 1 . Oleh
r
karena itu,
prima. Dan, jika a memenuhi pertidaksamaan diperoleh persamaan baru
di atas, pemangkat a yang berada di dalam
/ n setara dengan n 1 . Hal tersebut
menyatakan bahwa n adalah bilangan prima.
Sebaliknya, jika n adalah bilangan prima,
( X + a )n ( )
= X n + a (mod X r 1, n)
maka akan ada akar primitif dalam modulo n
yang akan memenuhi persamaan dan yang akan selalu terpenuhi jika n merupakan
pertidaksamaan di atas.
bilangan prima. Lebih jauh lagi, dalam
pengujian ini ditunjukkan bahwa jika n
bukan merupakan bilangan prima dan dipilih

6
nilai yang tepat untuk r , maka hanya perlu Pengujian Solovay-Strassen
dicoba untuk beberapa a sampai didapatkan
Teorema
(X _ a) n
X + a (mod X 1, n) .
n r
Euler membuktikan bahwa untuk bilangan
prima p dan sembarang bilangan bulat a ,
Ketika diperoleh nilai a tersebut, maka
dipenuhi kondisi
terbukti bahwa n bukan merupakan bilangan
prima. Nilai a tidak dipilih secara acak.
Pengujian AKS merupakan metode pengujian a
a ( p 1) / 2 = (mod p )
bilangan prima yang deterministik. p
Pembuktian secara formal dari pengujian ini
cukup kompleks. Lebih jelasnya dapat dilihat a
dengan adalah simbol Legendre.
di [7].
p
Pengujian bilangan prima probabilistik
Simbol Jacobi merupakan generalisasi dari
Beberapa pengujian yang termasuk ke dalam a
simbol Legendre dari dengan n adalah
jenis ini di antaranya adalah pengujian Fermat,
n
pengujian Solovay-Strassen, dan pengujian
sembarang bilangan bulat ganjil.
Rabin-Miller.
Cara pengujian
Pengujian Fermat
Pengujian yang dilakukan persis seperti
Teorema
pengujian yang dilakukan dalam pengujian
Fermat, dipilih a secara acak dan kemudian
Jika p adalah bilangan prima dan
nilai tersebut dievaluasi ke dalam persamaan.
1 < a < p , maka Apabila persamaan tersebut berhasil dipenuhi
maka dikatakan p adalah pseudoprima. Jika
a p 1 = 1 (mod p ) . tidak, dikatakan p bukan merupakan bilangan
prima.
Cara pengujian
Kekurangan
Pengujian bilangan prima menggunakan
metode ini dilakukan dengan memilih a Metode ini memiliki kekurangan yang sama
secara acak kemudian menguji persamaan di dengan pengujian Fermat. Akan tetapi, metode
atas. Apabila persamaan tersebut berhasil ini berhasil menekan tingkat kesalahan
dipenuhi maka dikatakan p adalah pengklasifikasian menjadi 1 2 kali kesalahan
pseudoprima. Jika tidak, dikatakan p bukan pada pengujian Fermat.
merupakan bilangan prima.
Ada pun probabilitas pengujian Solovay-
Kekurangan Strassen ini salah mengklasifikasikan bilangan
k
adalah 2 dengan k adalah jumlah putaran
Pengujian ini hanya menghasilkan dilakukannya pengujian bilangan prima
kemungkinan pseudoprima karena tidak semua dengan nilai a yang berbeda-beda. Pengujian
a diuji, hanya dipilih secara acak, dan ada sebanyak 100 kali dirasakan cukup untuk
bilangan yang memenuhi persamaan di atas memperkecil tingkat kesalahan yang mungkin
padahal bilangan tersebut bukanlah merupakan terjadi, meskipun tidak bisa menjadi jaminan
bilangan prima, meskipun semua nilai a telah 100%.
dicoba dievaluasi. Bilangan tersebut dikenal
dengan bilangan Charmichael. [41] Inilah
kekurangan yang dimiliki oleh metode
pengujian ini.

7
Pengujian Rabin-Miller Percobaan dilakukan menggunakan kelas
bilangan bulat besar yang dibuat sendiri.
Teorema Karena ketebatasan-keterbatasan yang dimiliki
oleh kelas ini (belum dapat menghitung
Diawali dengan lemma mengenai akar kuadrat logaritma diskrit, belum dapat melakukan
dalam daerah terbatas p , dengan p adalah pemfaktoran suatu bilangan, proses
perhitungan yang mungkin belum optimal),
bilangan prima. Sudah tentu percobaan hanya dilakukan terhadap pengujian
pengakarkuadratan modulo p akan bilangan prima probabilistik yang dibahas
menghasilkan 1 atau 1 . Ini dapat lebih lanjut dalam bagian 3 yang operasi
diilustrasikan sebagai berikut. perhitungan telah dapat dilakukan oleh kelas
tersebut.
x 2 = 1 (mod p )
Percobaan ini dilakukan untuk melihat
kebenaran hasil dari metoda dalam melakukan
(x 1)(x + 1) = 0 (mod p) pengujian bilangan prima. Hasil perolehannya
dibandingkan dengan hasil pengujian bilangan
Misalkan n adalah bilangan prima ganjil, prima dengan menggunakan metode yang naif,
mencoba mencari faktor dari semua
maka n 1 dapat ditulis sebagai 2 .d
s
kemungkinan yang ada.
dengan s adalah bilangan bulat dan d adalah
bilangan ganjil. Maka salah satu dari Hasil percobaan menunjukkan hasil yang sama
persamaan di bawah harus dipenuhi oleh seperti yang terdapat dalam uraian di bagian 3.
(
semua a / n . ) Metode-metode probabilistik yang diuji dapat
saja salah menyatakan keprimaan sebuah
bilangan. Akan tetapi, hal ini jarang terjadi.
a d = 1 (mod n) Dengan memperbanyak jumlah putaran
pengujian dalam masing-masing metode dapat
a 2 .d = 1 (mod n) 0 r s 1
r
menghindarkan dari kesalahan
pengklasifikasian ini.
Cara pengujian
5. Rangkuman
Sama seperti pada dua metode pengujian
sebelumnya, dipilih a secara acak dan Pembahasan mengenai pegujian bilangan
kemudian nilai tersebut dievaluasi ke dalam prima yang terdapat dalam bagian 3 hanya
persamaan. Apabila salah satu persamaan di mencakup sebagian kecil dari banyak
atas berhasil dipenuhi maka dikatakan p algoritma pengujian bilangan prima yang telah
adalah pseudoprima. Jika tidak, dikatakan p diajukan. Bernstein merangkum sejumlah
bukan merupakan bilangan prima. algoritma bilangan prima dengan cukup
lengkap disertai dengan perbandingan
Kekurangan kompleksitas dari algoritma-algoritma yang
ada. [2] Tabel perbandingan dapat dilihat pada
Metode berhasil menekan tingkat kesalahan Tabel 1. Adapun keterangan untuk masing-
pengklasifikasian lebih jauh lagi, yaitu menjadi masing kolom dalam tabel tersebut adalah
1 kali kesalahan pada pengujian Fermat. sebagai berikut.
4
1. Metode, rangkuman dari teorema yang
digunakan oleh metode yang
Sedangkan tingkat kesalahan yang mungkin
k
bersangkutan.
terjadi adalah 4 dengan k adalah jumlah 2. Efek pembuktian, informasi yang
putaran dilakukannya pengujian bilangan diberikan oleh metode mengenai bilangan
prima dengan nilai a yang berbeda-beda. masukan.
Seperti pada pengujian Solovay-Strassen, 3. Pembuktian untuk, bilangan masukan
pengujian yang dilakukan berulang-ulang yang dapat diterima oleh metode.
dapat memperkecil kemungkinan terjadinya 4. Waktu klarifikasi pembuktian,
kesalahan pengklasifikasian bilangan. kompleksitas dalam memerika
pembuktian keprimaan bilangan masukan.
5. Waktu mencari pembuktian, kompleksitas
4. Percobaan dalam mencari parameter untuk
pembuktian keprimaan bilangan masukan.

8
Tabel 1 Metode-metode pengujian bilangan prima
Metode Efek pembuktian Pembuktian Waktu klarifikasi Waktu mencari
untuk pembuktian pembuktian
pembuktian
ketidakprimaan
membuktikan
ketidakprimaan
setiap bilangan
bukan prima (log n )1 + (1) sangat lambat;
tetapi
menggunakan
faktorisasi: (log n ) (1)
jika b membagi n untuk
dan 1 < b < n kebanyakan n
maka n tidak
prima

pembuktian membuktikan hampir setiap


(log n )2 + (1) acak
ketidakprimaan
menggunakan
ketidakprimaan bilangan bukan
prima; (log n )2 + (1)
Fermats little meskipun
theorem: demikian,
jika n tidak terdapat tak
n
membagi b b hingga bilangan
bukan prima
maka n tidak
yang tidak
prima
memenuhi
metode ([17])

jika n tidak membuktikan setiap bilangan


(log n )2 + (1) acak
membagi
kebanyakan faktor
ketidakprimaan bukan prima
(log n )2 + (1)
n ([37], secara
dari b b , maka
mandiri [29],
n tidak prima
secara mandiri
([40]) [27]; varian lain
yang lebih
rendah
kualitasnya [38],
[34]; varian lain
[12], [8], [11],
[9], [6])

asumsi pengujian
keprimaan:
asumsi
pengujian
setiap bilangan
prima (log n )4 + (1) instan

jika n adalah b- keprimaan;


sprp untuk setiap asumsi
bilangan prima b mengikuti GRH
di antara 1 dan ([24]);
2
log n , maka n
mungkin bilangan
prima ([35])

jika n adalah b-
sprp, untuk
asumsi
membuktikan
setiap bilangan
prima (log n )3 + (1) instan

bilangan prima ke ketidak pertian


2 log n , maka
n mungkin prima
([17])

9
Metode Efek pembuktian Pembuktian Waktu klarifikasi Waktu mencari
untuk pembuktian pembuktian
jika n adalah 2-
sprp dan telah
asumsi
pengujian
setiap bilangan
prima (log n )2 + (1) instan

melewati pengujian keprimaan;


quadratic, maka n asumsi tidak
mungkin prima beralasan untuk
([30], [31]; varian n yang sangat
lain yang juga besar ([25])
mencakup cubic namun tidak ada
test: [13]) penyangkal yang
ditemukan

membuktikan membuktikan setiap bilangan paling lama sangat lambat;


keprimaan
dengan
keprimaan prima
(log n )3 + (1) ; diasumsikan
sebagai
(log n ) (1)
menggunakan seringkali
faktor unit-group:
(log n )2 + (1) untuk n yang
n 1
jika b =1 tak hingga
dalam Z / n , dan banyaknya
( n 1) / q
b 1 0
dalam Z / n untuk
setiap q , maka n
adalah prima

n 1 membuktikan setiap bilangan paling lama sangat lambat;


=1
(log n )3 + (1) ; (log n ) (1)
jika b keprimaan prima
dalam Z / n , F
adalah faktor dari seringkali untuk masukan
(log n )2 + (1)
n 1 dan n yang tak
( n 1) / q terhingga ([20],
b 1 [19], [14])
adalah unit dalam
Z / n untuk setiap
q yang merupakan
faktor dari F ,
maka setiap faktor
n berada dalam
bentuk
{1, F + 1, K} , jadi
2
jika ( F + 1) > n
maka n adalah
bilangan prima
([33])

pengujian membuktikan setiap bilangan paling lama sangat lambat


Pocklington
menggunakan
keprimaan prima
(log n )3 + (1) ;
ekstensi quadratic seringkali
dari Z / n
(log n )2 + (1)
pengujian membuktikan setiap bilangan instan
Pocklington keprimaan prima (log n )(log log log n) ,
menggunakan menggunakan
derajat yang lebih distribusi dari faktor
tinggi dari Z / n b
n 1

10
Metode Efek pembuktian Pembuktian Waktu klarifikasi Waktu mencari
untuk pembuktian pembuktian
pembuktian
keprimaan
membuktikan
keprimaan,
hampir setiap
bilangan prima; (log n )3 + (1) (log n ) (1)
menggunakan menggunakan diasumsikan dengan
kurva eliptik: kurva eliptik dapat menerima menggunakan
pengujian serupa sebagai ukuran setiap bilangan kurva eliptik
yang menggunakan pembatas prima
kurva eliptik ([21])

pengujian serupa
yang menggunakan
membuktikan
keprimaan,
setiap bilangan
prima (log n )2 + (1) sangat lambat

kurva eliptik menggunakan


dengan orde yang kurva eliptik
dapat dibagi oleh sebagai ukuran
bilangan besar pembatas
yang merupakan
perpangkatan 2

pengujian serupa membuktikan setiap bilangan selambat-lambatnya


acak (log n )
(1) ,
dengan
menggunakan
keprimaan,
menggunakan
prima
(log n )3 + (1) menggunakan
simbol Jacobi simbol Jacobi distribusi
bergenus-2 pada sebagai ukuran bilangan prima
kurva hipereliptik pembatas dengan interval
3/ 4
lebar x di
sekitar x

pengujian serupa membuktikan diasumsikan selambat-lambatnya selambat-


yang menggunakan keprimaan, dapat menerima
(log n )3 + (1) lambatnya
kurva eliptik
dengan
menggunakan
kurva eliptik
setiap bilangan
prima (log n )5 + (1)
diskriminan kecil sebagai ukuran
dan perkalian pembatas
kompleks

pengujian serupa membuktikan diasumsikan selambat-lambatnya selambat-


yang menggunakan keprimaan, dapat menerima
(log n )3 + (1) lambatnya
kurva eliptik
dengan
menggunakan
kurva eliptik
setiap bilangan
prima (log n )4 + (1)
diskriminan kecil, sebagai ukuran
perkalian pembatas
kompleks, dan
penggabungan
perhitungan akar
kuadrat untuk
banyak
diskriminan

11
Metode Efek pembuktian Pembuktian Waktu klarifikasi Waktu mencari
untuk pembuktian pembuktian
membuktikan
keprimaan
membuktikan
keprimaan
setiap bilangan
prima (log n ) (1) , instan

menggunakan menggunakan analisis


kombinatorik: fakta bahwa untuk
jika bisa dituliskan setiap c > 1 ,
banyak elemen dari 2
sebuah subgrup banyak bilangan
ekstensi bilangan prima r yang
prima cyclotomic mempunyai faktor
dalam Z / n , maka pembagi r 1 di atas
n adalah c
r ;
perpangkatan dari
selambat-lambatnya
bilangan prima.
(log n )12 + (1) ,
menggunakan analisis
fakta bahwa banyak
bilangan prima r
yang mempunyai
faktor pembagi r 1
2/3
di atas r ;
diasumsikan
memerlukan waktu
(log n )6 + (1)
varian yang membuktikan setiap bilangan selambat-lambatnya instan
menggunakan
ekstensi arbitrary
keprimaan prima
(log n )12 + (1) ,
cyclotomic menggunakan
pembatasan murni
dalam pendistribusian
bilangan prima;
selambat-lambatnya
(log n )8 + (1) ,
menggunakan analisis
fakta seperti di atas;
diasumsikan
memerlukan waktu
(log n )6 + (1)
varian yang membuktikan setiap bilangan selambat-lambatnya instan
menggunakan
ekstensi arbitrary
keprimaan prima
(log n )10,5 + (1) ,
cyclotomic yang menggunakan
menggunakan pembatasan murni
batas yang lebih dalam pendistribusian
baik dalam bilangan prima;
penstrukturan grup selambat-lambatnya
(log n )7,5 + (1) ,
menggunakan analisis
fakta seperti di atas;
diasumsikan
memerlukan waktu
(log n )6 + (1)
Metode Efek pembuktian Pembuktian Waktu klarifikasi Waktu mencari

12
untuk pembuktian pembuktian
varian yang membuktikan setiap bilangan
(log n )4 + (1) , acak
menggunakan
ekstensi Kummer
keprimaan prima
menggunakan (log n )2 + (1)
secara acak distribusi dari faktor
b
n 1
varian yang
menggunakan
membuktikan
keprimaan
setiap bilangan
prima (log n )6 + (1) , instan

periode Gauss menggunakan


beragam analisis fakta
seperti di atas
jika n gagal dalam membuktikan setiap bilangan selambat-lambatnya selambat-
pengujian jenis ketidakprimaan bukan prima
(log n )4 + (1) , lambatnya
Fermat apapun
dalam metode- menggunakan (log n )6 + (1) ,
metode ini, maka beragam analisis fakta menggunakan
n bukanlah seperti di atas beragam analisis
bilangan prima fakta seperti di
atas

6. Kesimpulan [7] Agrawal, Manindra, Neeraj Kayal, dan


Nitin Saxena. PRIMES is in P. 2002.
Dengan ditemukannya algoritma AKS Kanpur: Department of Computer Science
pengujian bilangan prima yang bersifat & Engineering Indian Institute of
deterministik dapat berjalan dalam waktu Technology Kanpur.
polinomial. Hal ini tentu saja makin [8] Grantham, Jon. Frobenius pseudoprimes.
mempercepat pengklarifikasian keprimaan 2001.
sebuah bilangan secara pasti. [9] Mller, Siguna. A probable prime test
with very high confidence for n 1 mod 4.
Meskipun demikian, pengujian bilangan prima, 2001.
umumnya pengetahuan bilangan prima, masih [10] Garefalakis, Theodoulos. Primality
terus dikaji lebih lanjut. Masih ada sifat-sifat Testing, Integer Factorization, and
bilangan prima yang dapat dikembangkan Discrete Logarithms. 2000. Toronto:
untuk dijadikan acuan pengujian bilangan Department of Computer Science,
prima. Tujuan akhir yang ingin dicapai, tentu University of Toronto.
saja, menguak pola kemunculan bilangan [11] Mller, Siguna. On probable prime testing
prima dalam barisan bilangan asli. and the computation of square roots mod
n. 2000.
[12] Grantham, Jon. A probable prime test with
7. Daftar Pustaka high confidence. 1998.
[13] Atkin, AOL. Intelligent primality test
[1] Munir, Rinaldi. Diktat Kuliah IF5054 offer. 1998.
Kriptografi. 2006. Bandung: Institut [14] Konyagin, S. dan C. Pomerance. On
Teknologi Bandung. primes recognizable in deterministic
[2] Bernstein, Daniel J. Distinguishing Prime polynomial time. 1997.
Numbers from Composite Numbers: the [15] Lukes, Richard F., CD. Patterson, Hugh
State of the Art in 2004. 2004. C. Williams. Numerical seiving defice:
[3] Crandall, R. dan J. Papadopoulos. On the their history and some applicatoon. 1995.
implementation of AKS-class primality [16] Odlyzko, AM. Public key cryptography.
tests. 2003. 1994.
[4] Aaronson, Scott. The Prime Facts: From [17] Alford, WR., Andrew Granville, dan Carl
Euclid to AKS. 2003. Pomerance. There are infinitely many
[5] Lenstra, HW. Jr. Primality testing with Carmichael numbers. 1994.
cyclotomic rings. 2002. [18] Adleman, LM. dan MD. Huang. Primality
[6] Damgard, Ivan B. dan Gudmund testing and two dimensional Abelian
Skovbjerg Frandsen. An extended varieties over finite fields. 1992.
quadratic Frobenius primality test with
average and worst case error estimates.
2003.

13
[19] Fellows, MR. dan N. Koblitz. Self- [30] Baillie, Robert dan Samuel S. Wagstaff,
witnessing polynomial-time complexity Jr. Lucas pseudoprimes. 1980.
and prime factorization. 1992. [31] Pomerance, C., John L. Selfridge, dan
[20] Pintz, J, WL. Steiger, dan Endre S. Infinite Samuel S. Wagstaff, Jr. The pseudoprimes
sets of primes with fast primality tests and to 25.109. 1980.
quick generation of large primes. 1989. [32] Rivest, RL., A. Shamir, dan LM.
[21] Goldwasser, S. dan J. Kilian. Almost all Adleman. A method for obtaining digital
prime can be quickly certified. 1986. signatures and public-key cryptosystems.
[22] Atkin, AOL. Lecture notes of a 1978.
conference, boulder (colorado). 1986. [33] Pocklington, Henry C. The determination
[23] ElGamal, T. A public key cryptosystem of the prime or composite nature of large
and a signature scheme based on discrete numbers by Fermats theorem. 1978.
logarithms. 1985. [34] Solovay, R dan V. Strassen. A fast Monte-
[24] Bach, Eric. Analytic methods in the Carlo test for primality. 1977.
analysis and design of number-theoretic [35] Miller, GL. Riemanns hypothesis and
algorithms. 1985. tests for primality. 1976.
[25] Pomerance, C. Are there counter- [36] Diffie, W. dan M. Hellman. New
examples to the Baillie-PSW primality directions in cryptography. 1976.
test?. 1984. [37] Rabin, MO. Probabillistic algorithm.
[26] Adleman, LM., C. Pomerance, dan RS. 1976.
Rumely. On distinguishing prime numbers [38] Lehmer, DH. Strong Carmichael numbers.
from composite numbers. 1983. 1976.
[27] Atkin, AOL. dan Richard G. Larson. On a [39] Pratt, VR. Every prime has a succinct
primality test of Solovay and Strassen. certificate. 1975.
1982. [40] Artjuhov, MM. Certain criteria for
[28] Rabin, MO. Probabilistic algorithm for primality of numbers connected with the
testing primality. 1980. little Fermat theorem. 1966.
[29] Monier, Louis. Evaluation and [41] Carmichael, RD. Note on a number theory
comparison of two efficient probabilistic function. 1910.
primality testing algorithms. 1980.

14

Anda mungkin juga menyukai