c. Kunci α merupakan salah satu akar primitif primitive root dari
bilangan prima p , α ≠ p dan α ≠ a. Sebagaimana yang telah disebutkan
pada bab yang sebelumnya, primitive root dari sebuah bilangan prima p adalah sebuah bilangan asli g yang mana orde modulo dari g mod p
adalah p-1 [10]. d.
Kunci y dengan persamaan .
Sehingga keluaran dari aktivitas pembangkitan kunci ini adalah tiga kunci publik p,
α, y yang akan dibagikan kepada para calon pengirim pesan dan satu kunci privat a yang hanya diketahui oleh penerima pesan.
2. Enkripsi
Aktivitas enkripsi dilakukan oleh pengirim pesan dengan masukkan berupa tiga kunci publik p,
α, y milik penerima pesan dan pesan asli plainteks m yang akan dikirimkan. Enkripsi dilakukan dengan menghitung cipherteks
pertama dan cipherteks kedua
. Hasil keluarannya berupa cipherteks c
1
, c
2
dikirimkan kepada penerima pesan.
3. Dekripsi
Dekripsi dilakukan oleh penerima pesan dengan masukkan cipherteks c
1
, c
2
, kunci privat a, dan kunci publik p miliknya. Apabila cipherteks dan kunci
yang dimasukkan benar maka akan diperoleh keluaran berupa plainteks yang sama dengan pesan aslinya.
Berdasarkan pembahasan di atas, sistem yang akan dibangun memiliki tiga fungsi mengikuti aktivitas yang dimiliki algoritma ElGamal, yaitu pembangkit kunci,
enkripsi, dan dekripsi. Di dalam fungsi ini terdapat proses-proses pendukung seperti pembangkit bilangan prima metode The Sieve of Eratosthenes, perhitungan modulo,
dan proses pengujian apakah sebuah bilangan merupakan akar primitif dari kunci p.
3.1.1 Pembangkit Bilangan Prima
Bardasarkan pembahasan sebelumnya diketahui bahwa kunci publik p pada algoritma kriptografi ElGamal adalah bilangan prima dan kunci-kunci yang lainnya ditentukan
berdasarkan nilai kunci p oleh karena itu, sebelum aktivitas pembangkitan kunci dilakukan pembangkitan bilangan prima terlebih dahulu.
3.1.1.1 The Sieve of Eratosthenes
Dalam penelitian ini, algoritma pembangkit bilangan prima yang digunakan adalah The Sieve of Eratosthenes
. Berikut ini merupakan langkah-langkah pembangkitan bilangan prima metode The Sieve of Eratosthenes.
1. Inisialisasi integer 2…N.
2. Tandai bilangan terkecil dari daftar 2…N sebagai prima pertama, p
1
= 2. 3.
Eliminasi semua bilangan kelipatan p
1
dari daftar 2…N dimulai dari p
1 2
= 2
2
= 4 yaitu 4, 6, 8,….
4. Tandai bilangan integer terkecil berikutnya dari daftar 2…N yang belum
tereliminasi sebagai bilangan prima selanjutnya, p
i +1
. 5.
Eliminasi semua bilangan kelipatan p
i +1
dari daftar 2…N dimulai dari p
i +1
2
. 6.
Ulangai angkah e dan g sampai p
i +1
2
N, maka integer dari daftar 2…N yang
tersisa adalah prima.
Untuk mempermudah pemahaman langkah-langkah di atas, berikut ini merupakan contoh pembangkitan bilangan prima metode The Sieve of Eratosthenes
jika nilai batas atas N = 30. 1.
Inisialisasi integer 2…N yaitu 2…30. 2.
Tandai bilangan terkecil dari 2…30 sebagai prima pertama, p
1
= 2. 3.
Eliminasi semua bilangan kelipatan p
1
dari daftar 2…30 dimulai dari p
1 2
= 2
2
= 4 yaitu 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, maka daftar integer yang belum tereliminasi 2, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25,
27, 29. 4.
Tandai bilangan integer terkecil berikutnya dari daftar 2…N yang belum tereliminasi sebagai prima selanjutnya, p
i +1
= p
2
= 3. 5.
Eliminasi semua bilangan kelipatan p
i +1
= p
2
= 3 dari daftar 2…N dimulai dari p
2 2
= 3
2
= 9 yaitu 9, 12, 15, 18, 21, 24, 27, 30, maka daftar integer yang belum tereliminasi 2, 3, 5, 7, 11, 13, 15, 17, 19, 23, 25, 29.
6. Tandai bilangan integer terkecil berikutnya dari daftar 2…N yang belum
tereliminasi sebagai prima selanjutnya, p
i +1
= p
3
= 5. 7.
Eliminasi semua bilangan kelipatan p
i +1
= p
2
= 5 dari daftar 2…N dimulai dari p
2 2
= 5
2
= 25 yaitu 25, 30, maka daftar integer yang belum tereliminasi 2, 3, 5, 7, 11, 13, 17, 19, 23, 29.
8. Bilangan integer terkecil berikutnya dari daftar 2…N yang belum
tereliminasi sebagai prima selanjutnya adalah p
i +1
= p
4
= 7 namun 7
2
N, sehingga dapat dipastikan bilangan yang tersisa dari daftar integer yang
belum tereliminasi yaitu 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 adalah bilangan prima.
3.1.2 Algoritma Kriptografi Kunci Publik ElGamal