J. J. Siang BILANGAN PRIMA : PERKEMBANGAN DAN APLIKASINYA Intisari Dala tulisan ini dipaparkan engenai sejarah peneuan bilangan pria, pengujian bilangan pria besar, serta salah satu aplikasinya dala kriptografi yaitu etode RSA Abstract This paper explain about the history and developents of prie nubers, priality testing and its application in cryptography, RSA ethod Diteria : 6 Maret 2002 Disetujui untuk dipublikasikan : 8 Maret 2002 1. Sejarah dan Perkebangan Bilangan Pria Bilangan pria adalah bilangan bulat >1 yang hanya habis dibagi 1 dan bilangan itu sendiri. Manusia telah engenal bilangan pria sejak 6500 SM. Tulang Ishango yang diteukan pada tahun 1960 (sekarang disipan di Musee d Histoire Naturelle di Brussels) ebuktikan hal tersebut. Tulang Ishango eiliki 3 baris takik. Salah satu kolonya eiliki 11, 13, 17, dan 19 takik, yang erupakan bilanganbilangan pria antara 10 hingga 20. Meskipun sedikit sekali anfaat yang diketahui, naun di awal asehi orang tetap encari dan ebuktikan bahwa suatu bilangan erupakan bilangan pria. Cara yang paling efisien untuk encari bilangan pria kecil (isalkan kurang dari 10 7 ) adalah dengan enggunakan etode Seive of Eratosthenes (240 SM) sebagai berikut : Daftarkanlah seua bilangan bulat antara 2 hingga n. Hapuslah seua bilangan kelipatan bilangan pria yang lebih kecil atau saa dengan n. Maka bilangan yang asih tersisa adalah bilangan pria. Sebagai contoh, untuk encari seua bilangan pria 30, pertaa-taa didaftarkan seua bilangan bulat antara 2 hingga 30. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Bilangan pertaa (= 2) adalah bilangan pria. Hapuskan seua bilangan kelipatan 2. Didapat 2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 INTEGRAL, vol. 7 no. 1, April 2002 7
Bilangan pria setelah 2 dala daftar tersebut adalah 3, yang erupakan bilangan pria kedua. Hapus seua bilangan kelipatan 3 dari daftar. Didapat 2 3 5 7 11 13 17 19 23 25 29 Bilangan setelah 3 yang belu terhapus adalah 5. Hapus seua bilangan dalah daftar yang erupakan kelipatan 5 sehingga didapat 2 3 5 7 11 13 17 19 23 29 Bilangan yang tidak terhapus berikutnya adalah 7 yang kuadratnya = 49 > 30. Maka bilangan yang tersisa dala daftar erupakan hipunan seua bilangan pria 30. Pencarian bilangan pria dengan etode Sieve sangatlah udah, cepat dan sederhana. Bahkan prosesnya tidak enggunakan operasi pebagian saa sekali. Pencarian secara langsung dengan enjalankan progra di koputer bahkan lebih cepat dibandingkan dengan ebaca daftar bilangan pria yang tersipan dala disket. Akan tetapi untuk keperluan enkripsi yang ebutuhkan bilangan pria yang besar, etode Sieve dirasa tidak eadai. Sebelu koputer diteukan, perkebangan peneuan bilangan pria asih labat karena orang belu erasakan anfaatnya. Tabel 1 enunjukkan daftar peneu tabel bilangan pria sebelu era koputer. Meskipun sederhana, tabel tersebut enolong ahli ateatika lain untuk pertaa kali enebak teorea bilangan pria. Tahun Peneu Julah Digit 1588 Cataldi 6 1772 Euler 10 1883 Pervushin 19 1911 Powers 27 1914 Powers 33 Seua bilangan pria > 2 jelas erupakan bilangan gasal sehingga pada jaan dahulu orang percaya bahwa untuk suatu bilangan pria p, aka 2 p -1 juga erupakan bilangan pria. Naun keudian terbukti hal tersebut tidak benar. Pada tahun 1536, Regius ebuktikan bahwa 2 11-1 = 2047 bukanlah bilangan pria karena 2047 = 23 * 89 2. Pengujian Bilangan Pria Mersenne (1588 1648) eneukan bahwa bilangan 2 p -1 erupakan bilangan pria hanya untuk p = 2, 3, 5, 7, 13, 17, 19, 31, 67, 127, dan 257. Meskipun ternyata keudian terbukti bahwa apa yang diteukan Mersenne ini salah, tapi bentuk 2 p -1 (yang keudian dikenal dengan bilangan Mersenne) tetap enarik perhatian Pertanyaan yang terus ingin dijawab adalah : Pada kondisi apakah bilangan Mersenne Mp = 2 p -1 erupakan bilangan pria? Lucas eneukan syarat perlu dan cukupnya pada tahun 1870 dan Leher engujinya pada tahun 1930. Uji Lucas Leher : Untuk bilangan gasal p, bilangan Mersenne 2 p -1 adalah bilangan pria bila dan hanya bila p 2 1 S( p 1) dengan S(n+1) = (S(n)) 2 2 dan S(1) = 4. Tabel 1 : Peneu Tabel Bilangan Pria Sebelu Era Koputer 8 INTEGRAL, vol. 7 no. 1, April 2002
Dengan bantuan koputer, pengujian bilangan pria yang besar dengan uji Lucas- Leher enjadi seakin udah sehingga bilangan-bilangan pria besar diteukan, seperti yang tapak pada tabel 2. Tahun Peneu p Julah Digit dala Mp 1952 Robinson 521 157 1952 Robinson 607 183 1952 Robinson 1279 386 1952 Robinson 2203 664 1952 Robinson 2281 687 1957 Riesel 3217 969 1961 Hurwitz 4253 1281 1961 Hurwitz 4423 1332 1963 Gillies 9689 2917 1963 Gillies 9941 2993 1963 Gillies 11213 3376 1971 Tuckeran 19937 6002 1978 Noll & Nickel 21701 6533 1979 Noll 23209 6987 1979 Nelson & Slowinski 44497 13395 1982 Slowinski 86243 25962 1988 Colquitt & Welsh 110503 33265 1983 Slowinski 132049 39751 1985 Slowinski 216091 65050 1992 Slowinski & Gage 756839 227832 1994 Slowinski & Gage 859433 258716 1996 Slowinski & Gage 1257787 378632 1996 Arengaud, Woltan, et al 1398269 420921 1997 Spence, Woltan, et al 2976221 895932 1998 Clarkson, Woltan, Kurowski, et al 3021377 909526 1999 Hajratwala, Woltan, Kurowski, et al 6972593 2098960 Tabel 2 : Peneu Tabel Bilangan Pria Mersenne 3. Bilangan Pria Seu Sulitnya eneukan bilangan pria besar enjadi asalah utaa bagi praktisi kriptografi karena penggunaan bilangan pria erupakan syarat utlak dala ipleentasinya. Padahal secara praktis, kadang-kadang hanya dibutuhkan bilangan yang endekati pria. Bilangan seaca itu disebut bilangan pria seu (pseudo prie). Bilangan pria seu bisa didapatkan dari teorea Little Ferat sebagai berikut : Jika p adalah bilangan pria dan a adalah sebarang bilangan bulat, aka a p = a (od p). Secara khusus, jika a bukan faktor p, aka a p-1 = 1 (od p). Teorea Little Ferat eberikan uji yang baik untuk ketidakpriaan. Dengan diberikan bilangan bulat n > 1, pilihlah a > 1 dan hitung a n-1 (od n). Jika hasilnya 1, aka n bukan bilangan pria. Sebaliknya, jika hasilnya = 1, aka n ungkin bilangan pria sehingga n disebut bilangan pria seu basis a. Sebagai contoh, untuk a = 2 dan n = 341, aka 2 341-1 (od 341) = (2 10 ) 34 (od 341) = (2 10 od 341) 34 = 1 34 od 341 = 1. INTEGRAL, vol. 7 no. 1, April 2002 9
Akan tetapi 341 bukan bilangan pria karena 341 = 11*31, sehingga 341 adalah bilangan pria seu basis 2. Terdapat lebih dari 10 9 buah bilangan pria yang lebih kecil dari 25*10 9, tapi hanya ada 21.853 buah bilangan pria seu basis 2. Ini berarti bahwa persentase enjadi bilangan pria seu jauh lebih kecil dari bilangan pria. 4. Kriptografi 4.1 Kriptografi Sietris vs Kriptografi Kunci Publik Kriptografi adalah teknik untuk enyaarkan suatu pesan. Kriptografi eliputi enkripsi, yaitu transforasi data ke bentuk yang tidak ungkin dibaca pihak lain tanpa engetahui kuncinya, serta dekripsi, yang erupakan kebalikan dari enkripsi, yaitu engebalikan data yang ditransforasi ke bentuk seula. Baik enkripsi aupun dekripsi selalu ebutuhkan suatu inforasi rahasia yang disebut kunci. Berdasarkan sifat kuncinya, terdapat 2 jenis kriptografi yaitu kriptografi sietris (kunci rahasia) dan kriptografi dengan kunci publik. Dala kriptografi sietris, kunci yang saa dipakai dala enkripsi dan dekripsi sehingga baik pengiri aupun peneria inforasi harus eiliki kunci yang saa untuk engolahnya. Keadaan ini dapat digabarkan dala gabar 1. Kunci = e Pengirian kunci Enkripsi E e () = c Pesan sandi Dekripsi D d (c) = A B Gabar 1 : Skea Enkripsi pada Kriptografi Sietris Misalkan A hendak engiri pesan pada B. Pesan dienkrip dengan enggunakan kunci e enjadi c. Selanjutnya pesan sandi c dikirikan pada B. Ada keungkinan pihak ketiga bisa eperoleh pesan sandi c. Tetapi ia tidak bisa ebacanya karena tidak engetahui kunci pebukanya. B yang eneria pesan sandi c dapat ebukanya dengan kunci pebuka d (yang bisa diturunkan dari e). Dala hal ini, baik A aupun B harus saa-saa eiliki kunci e (dan d), dan kunci ini tidak boleh diketahui pihak ketiga. Keleahan etode ini adalah jika A dan B tinggal di tepat yang berjauhan sehingga kunci e harus dikounikasikan lewat edia (telpon, surat, internet, dls) yang keungkinan tidak aan. Sebaliknya, dala kriptografi dengan kunci publik, peneria eiliki 2 buah 10 INTEGRAL, vol. 7 no. 1, April 2002
kunci yaitu kunci publik dan kunci rahasia. Kunci publik bisa diketahui oleh banyak orang, tetapi kunci rahasia hanya diketahui oleh peneria saja. Bahkan pengiripun tidak engetahui kunci rahasia sehingga tidak bisa endekrip kebali pesan yang telah dienkripnya. Keadaan ini dapat digabarkan dala gabar 2. Misalkan A engiri pesan pada B, aka A engenkrip pesan asli dengan kunci publik (= e) dan engirikannya pada B. Selanjutnya B endekrip pesan yang diterianya dengan kunci rahasia (= d) yang hanya diketahuinya sendiri. e = kunci publik Kunci d = kunci rahasia Enkripsi E e () = c Pesan sandi Dekripsi D d (c) = A B Gabar 2 : Skea Enkripsi pada Kriptografi dengan Kunci Publik Keuntungan utaa etode ini adalah tidak diperlukannya edia kounikasi antara A dan B untuk enentukan kunci rahasia sehingga keaanannya dapat lebih terjain. Jika B hendak ebalas pesan pada A, aka ia akan engenkripnya dengan enggunakan kunci publik e yang ditentukan A. A akan endekripnya dengan kunci rahasia d. Kunci rahasia d tidak saa dengan d. Sebenarnya kunci rahasia d bisa dihitung dari kunci publik e. Tapi tanpa inforasi tabahan yang hanya diketahui oleh B, perhitungan tersebut ebutuhkan waktu yang sangat laa sehingga secara praktis tidak dapat dilakukan. 4.2 Enkripsi Dengan Metode RSA Kriptografi kunci publik yang paling terkenal adalah etode RSA (Rivest, Shair dan Adlean). Kuncinya dibentuk dari sepasang bilangan pria (dala prakteknya sering dipakai bilangan pria seu yang besar). Algoritanya adalah sebagai berikut : 1. Tentukan sebarang 2 bilangan pria p dan q, dan hitung n = pq. 2. Pilih sebarang bilangan bulat positif e yang relatif pria dengan (p-1)(q-1). Ini berarti bahwa e harus dipilih sehingga GCD (e, (p-1)(q-1)) = 1. Pasangan (n, e) erupakan kunci publik Untuk engenkripsi, dilakukan langkahlangkah sebagai berikut : 1. Ubah tiap karakter teks asli enjadi bilangan bulat 01-26 (A = 01, B = INTEGRAL, vol. 7 no. 1, April 2002 11
02,, Z = 26), dan bagi teks enjadi beberapa blok b yang besar tiap bloknya lebih kecil dari n. 2. Untuk tiap blok, hitung c = b e (od n). c enjadi blok teks sandi yang dikirikan. Untuk endekripkan kebali teks sandi, dilakukan langkah-langkah sebagai berikut : 1. Hitung bilangan bulat d sedeikian hingga d.e = 1 (od (p-1)(q-1)). Pasangan (n, d) erupakan kunci rahasia. 2. Untuk setiap blok sandi c yang diteria, hitung b = c d (od n). Bagi pebuat sandi, dengan eilih 2 buah bilangan pria p dan q, tidaklah sulit untuk enghitung kunci publik n = pq, serta endekripkannya kebali. Kevalidan dekripsi dengan etode RSA dapat dibuktikan [4]. Akan tetapi bagi orang lain yang encoba endekripsinya, ia harus encari p dan q dari kunci publik n. Jika berhasil, aka kunci rahasia d dapat dihitung. Akan tetapi sangatlah sulit untuk eperoleh p dan q dari n yang sangat besar (uunya dibuat 100 digit atau lebih). Rivest, Shair dan Adlean telah encoba engenkripsi pesan dengan enggunakan bilangan bulat 129 digit pada tahun 1977. Pesan tersebut baru berhasil dipecahkan orang 17 tahun keudian [2]. Ini berarti bahwa secara praktis hanya peilik kunci rahasia saja yang apu ebukanya. Sebagai contoh, andaikan B eilih p = 13 dan q = 17. Maka n = pq = 221. Berikutnya, isalkan secara acak B eilih e = 5 yang erupakan bilangan yang relatif pria dengan (p- 1)(q-1) = 192. Maka kunci publiknya adalah (n, e) = (221, 5). Jika A hendak engiri teks TAMAN, aka ia harus engubahnya enjadi barisan angkaangka sebagai (A = 01, B = 02, ) : 20 01 13 01 14. Misalkan A engabil blok dengan panjang 3 digit, aka ia eiliki 4 blok untuk disandikan, asing-asing adalah 200, 113, 011, 4 200 disandikan enjadi (200) 5 (od 221) = 200 113 disandikan enjadi (113) 5 (od 221) = 146 011 disandikan enjadi (11) 5 (od 221) = 163 4 disandikan enjadi (4) 5 (od 221) = 140 Maka A engirikan 4 blok pesan rahasia 200 146 163 140 B yang eneria pesan sandi dari A harus encari kunci rahasia yang didapat dari relasi e.d = 5d = 1 (od 192). Didapat d = 77. Maka : blok sandi 200 didekrip enjadi (200) 77 (od 221) = 200 blok sandi 146 didekrip enjadi (146) 77 (od 221) = 113 blok sandi 163 didekrip enjadi (163) 77 (od 221) = 11 = 011 (karena 3 digit) blok sandi 140 didekrip enjadi (140) 77 (od 221) = 4 didapat pesan asli 200 113 011 4 yang jika dikelopokkan dala 2 digit enjadi 20 01 13 01 14 atau teks TAMAN seperti pesan seula. 5. Penutup Seakin pesat perkebangan koputer, seakin terasalah pentingnya peranan bilangan pria. Bilangan pria yang dulunya dianggap sebagai sesuatu yang tidak eiliki anfaat, kini enjadi 12 INTEGRAL, vol. 7 no. 1, April 2002
bagian yang tak terpisahkan dala keaanan data. Kriptografi dewasa ini lebih dari sekedar enkripsi dan dekripsi. Tanda tangan digital (digital signature) ulai banyak dipakai untuk encegah pealsuan dokuen elektronik. Seuanya itu ebutuhkan bilangan pria. Pustaka [1] Caldwell, C.K., The Largest Known Prie by Year : A Brief History, http://www.ut.edu/research/prie s/ notes/by_year.htl, 2001 [2] Caldwell, C.K., http://www.ut.edu/research/prie s/glossary/index.ht, 2001 [3] Caldwell, C.K., Mersenne Pries : History, Theores and Lists, http://www.ut.edu/research/prie s/ ersenne.shtl, 2001 [4] Menezes, A., P.van Oorschot, Vanstone, S., A Handbook of Applied Cryptography, CRC Press, 1997 [5] RSA Laboratories, RSA Laboratories Frequently Asked Questions About Today s Cryptography, Version 4.1, RSA Security Inc, 2000 Penulis J.J. Siang adalah dosen Jurusan Mateatika, Fakultas MIPA, Universitas Kristen Ianuel, Yogyakarta INTEGRAL, vol. 7 no. 1, April 2002 13