Algoritma ElGamal


Algoritma ElGamal adalah salah satu algoritma yang dapat digunakan untuk melakukan enkripsi data sehingga data asli hanya dapat dibaca oleh seseorang yang memiliki kunci enkripsi tersebut. Contoh yang dibahas kali ini adalah mengenai enkripsi dan dekripsi dari sebuah kalimat.


Langkah-langkah penggunaan algoritma ini adalah

* Karena perhitungan menggunakan angka-angka yang sangat besar, maka diperlukan tipe BigInteger yang mampu memuat bilangan hingga tak terbatas
Untuk dapat menggunakan tipe data ini, maka harus dilakukan penambahan reference bernama System.Numerics pada saat pembuatan project
Kemudian melakukan import namespace System.Numerics

* Tentukan kalimat yang digunakan sebagai data input
Diasumsikan data input adalah sebagai berikut:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

1. Lakukan proses pembuatan kata kunci enkripsi (poin 1a – 1c)

1a. Tentukan bilangan prima secara acak
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini

* Gunakan fungsi ini untuk mendapatkan bilangan prima pada rentang tertentu
Bilangan prima adalah bilangan yang menghasilkan sisa pembagian 0 apabila dibagi dengan bilangan 1 dan dirinya sendiri

1b. Tentukan kata kunci acak yang berada diantara 1 sampai dengan bilangan prima – 1

1c. Tentukan g secara acak,
kemudian hitung h dengan rumus:
h = g ^ key mod p

2. Lakukan enkripsi kalimat awal menggunakan algoritma ini

* Lakukan perhitungan pada masing-masing karakter dalam kalimat
Lakukan proses enkripsi untuk karakter ini.
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini

* Gunakan fungsi ini untuk melakukan proses enkripsi
Dapatkan nilai y acak
Hitung c1 = g ^ y mod p
Hitung s = h ^ y mod p
Hitung c2 = m * s mod p

3. Lakukan dekripsi dari kalimat yang telah terenkripsi

* Lakukan perhitungan pada masing-masing cipher yang telah ditemukan
Lakukan proses dekripsi dari cipher yang tersedia
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini

* Gunakan fungsi ini untuk melakukan proses dekripsi
Hitung s2 = c1 * key mod p
Hitung m’ = c2 * invers modulus s

* Gunakan fungsi ini untuk menghitung modular multiplicative inverse
hasil perhitungan adalah nilai x yang memenuhi syarat
n x = 1 (mod m)
Jika n = 3 dan m = 11,
maka x = 4, karena (4 * 3) mod 11 = 1
Sehingga dapat dikatakan 4 adalah invers modulus dari 3


Hasil akhir adalah: (klik untuk perbesar gambar)

cmd154


Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.

Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *