Makalah 007 PDF
Makalah 007 PDF
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).
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.
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?
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
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 (
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
asumsi pengujian
keprimaan:
asumsi
pengujian
setiap bilangan
prima (log n )4 + (1) instan
jika n adalah b-
sprp, untuk
asumsi
membuktikan
setiap bilangan
prima (log n )3 + (1) instan
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
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
11
Metode Efek pembuktian Pembuktian Waktu klarifikasi Waktu mencari
untuk pembuktian pembuktian
membuktikan
keprimaan
membuktikan
keprimaan
setiap bilangan
prima (log n ) (1) , instan
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
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