Bilangan Prima The Sieve of Eratosthenes

Carilah x dari logaritmik diskrit, sulit Berikut ini merupakan algoritma kunci publik ElGamal [4] [12]. 5. Pasangan kunci dibangkitkan oleh penerima pesan. i. Pilih sembarang bilangan prima p. ii. Pilih bilangan bulat acak a, syarat 2 ≤ a≤ p-1 iii. Tentukan α, dimana α primitive root modulo p, dengan ketentuan α ≠ p dan α ≠ a. Primitive root dari sebuah bilangan prima p adalah sebuah bilangan asli g yang mana orde modulo dari g mod p adalah p-1 [10]. iv. Hitung v. Kunci publik y, α, p disebarkan dan kunci privat a disimpan 6. Enkripsi oleh pengirim. i. Menerima kunci publik y, α, p ii. Mempersiapkan plainteks m, representasikan plainteks dalam rentang 0…p-1. iii. Memilih bilangan asli acak sebagai kunci sesi b, syarat b ≤ p-1 iv. Cipherteks pertama, v. Cipherteks kedua, vi. Cipherteks c 1 , c 2 dikirim kepada penerima. 7. Dekripsi oleh penerima. i. Terima Cipherteks c 1 , c 2 ii. Hitung iii. Dekripsi chiperteks menjadi plainteks,

2.3.1 Bilangan Prima

Bilangan prima adalah bilangan asli yang tidak dapat dibagi tanpa sisa oleh bilangan asli lain kecuali satu dan bilngan itu sendiri [5]. Menurut Stallings [11], bilangan bulat positif p disebut bilangan prima jika pembaginya hanya 1 dan p. Contohnya bilangan 23 adalah prima karena ia hanya habis dibagi oleh 1 dan 23. Karena bilangan prima harus lebih besar daripada 1, maka barisan bilangan prima dimulai dari 2, yaitu 2, 3, 5, 7, 11, 13, …. Seluruh bilangan prima adalah bilangan ganjil kecuali 2 yang merupakan bilangan genap [6]. Pembangkitan bilangan prima dibutuhkan untuk hampir semua algoritma kunci publik [10]. Seperti yang telah dijabarkan pada bagian sebelumnya dalam kriptografi kunci publik algoritma ElGamal menggunakan bilangan prima sebagai salah satu nilai parameternya, oleh karena itu dibutuhkan suatu metode pembangkitan bilangan prima. Beberapa algoritma-algoritma yang dapat digunakan untuk membangkitkan bilangan prima antara lain algoritma probabilistik seperti Lehman dan Rabin-Miller atau algoritma deterministik seperti Sieve of Eratosthenes. Bedanya algoritma deterministik menghasilkan bilangan yang pasti merupakan prima sedangkan algoritma probabilistik dapat menghsailkan pseudoprimes prima semu [11].

2.3.2 The Sieve of Eratosthenes

Metode The Sieve of Eratosthenes merupakan sebuah algoritma deterministik sederhana untuk membangkitan bilangan prima yang ditemukan oleh Eratosthenes seorang matematikawan Yunani kuno [5]. Metode The Sieve of Eratosthenes membangkitkan bilangan prima yang ada di antara bilangan satu sampai dengan batas bilangan maksimum yang ditentukan dengan cara membuat daftar semua bilangan asli dari satu sampai batas kemudian mengeliminasi bilangan komposit hingga tersisa hanya bilangan prima. Bilangan komposit adalah bilangan asli yang lebih besar dari satu dan bukan bilangan prima, memiliki pembagi selain satu dan bilangan itu sendiri. Disebut The Sieve of Eratosthenes, sieve saringan karena bukannya membangun objek yang diinginkan, yaitu bilangan prima, tetapi menyaringnya dari yang bukan prima [5]. Menurut Möhring dan Oellrich [5], komputasi running time dari pembangkit bilangan prima dengan metode The Sieve of Eratosthenes pada komputer 3.2 GHz dengan sistem operasi Linux lebih cepat dibandingkan komputasi menggunakan metode standar untuk membangkitkan bilangan prima pada komputer yang sama. Tabel 2.1 Komputasi Running Time Pembangkit Bilangan Prima Metode Standar pada Komputer 3.2 GHz Sistem Operasi Linux [5] n 10 3 10 4 10 5 10 6 Time 0.00 s 0.20 s 19.4 s 1934.4 s Tabel 2.2 Komputasi Running Time Pembangkit Bilangan Prima Metode The Sieve of Eratosthenes pada Komputer 3.2 GHz Sistem Operasi Linux [5] n 10 6 10 7 10 8 10 9 Time 0.02 s 0.43 s 5.4 s 66.5 s Adapun prosedur dari metode standar pembangkitan bilangan prima yang diutarakan oleh Möhring dan Oellrich adalah sebagai berikut. Tabel 2.3 Prosedur Pembangkit Bilangan Prima Metode Standar [5] Sedangkan prosedur dari metode The Sieve of Eratosthenes yang digunakan oleh Mohring dan Oellrich sehingga menghasilkan komputasi seperti pada tabel 3.2 adalah sebagai berikut. Tabel 2.4 Prosedur Pembangkit Bilangan Prima Metode The Sieve of Eratosthenes [5] Algoritma The Sieve of Eratosthenes adalah sebagai berikut. 1. Buat daftar bilangan dari 2..n 2. Tandai bilangan pertama dari daftar sebagai bilngan prima pertama, yaitu p = 2 . 3. Eliminasi semua kelipatan p yang lebih kecil dari n untuk 2 eliminasi 4, 6, 8,…, menghitung kelipatan p dimulai dari p 2 . 4. Tandai bilangan terkecil yang belum dieliminasi dari daftar namun lebih besar dari p sebagai prima selanjutnya, ulangi langkah 3. 5. Sampai tidak ada lagi bilangan yang bisa ditandai sebagai prima karena semua bilangan yang tersisa tidak tereliminasi dari daftar sudah ditandai sebagai prima.

2.3.3 Relatif Prima