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