Penerapan Algoritma ElGamal

Elgamal
Algoritma elgamal dibuat oleh Taher ElGamal pada tahun 1984. Algortima ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal digunakan di dalam perangkat lunak sekuriti yang dikembangkan oleh GNU, program PGP, pada sistem sekuriti lainnya. Keamanan algoritma ini terletak pada sulitnya menghitung algoritma diskrit.
Masalah logaritma diskrit. Jika p adalah bilangan prima dan g dan y adalah sembarang bilangan bulat. Carilah x sedemikian sehingga g^(x )= y(mod p)
Besaran-besaran yang digunakan di dalam algoritma ElGamal adalah :
  1. Bilangan prima, p (tidak rahasia)
  2. Bilangan acak, g(g<p) (tidak rahasia)
  3. Bilangan acak, x(x<p) (tidak rahasia)
  4. y= g^(x )mod p (tidak rahasia, k, publik)
  5. m(plainteks) (rahasia)
  6. a dan b (chiperteks) (tidak rahasia)

Contoh Kasus
Dimisalkan contoh kasus teks dalam agenda pribadi atau plainteks dengan nama “DHARMA” sebelum melakukan proses enkripsi, ubah terlebih dahulu ke ASCII dari setiap huruf, Adapun nilai numerik “DHARMA”: ASCII (68, 72, 65, 82, 77, 65)
Enkripsi Metode Elgamal
Input teks : DHARMA
Proses Pembangkitan Kunci :
P = 257 ; g = 7 ; x = 2
Hitung y = g^x mod p
y = 7^2 mod 257
y = 49 mod 257
y = 49
Berdasarkan proses pembangkit kunci, maka diperoleh :
Kunci PRIVATE = (x,y) K_public = (2, 257)
Kunci PUBLIC = (p,g,y) K_public = (257,7,49)

Contoh Kasus :
Plaintek = DHARMA
Nilai k yang dipilih harus berada dalam himpunan 1≤ k ≥ p-2.
Nilai k untuk P1 = 4
a = g^k mod p a = 7^4 mod 257
a = 2401 mod 257 = 88
b = (y^k mod Pi) mod p
b = (〖49〗^4 mod P1) mod 257
= 5764801 * 83 mod 257
= 392006468 mod 257
= 256
Nilai k untuk P2 = 2
a = g^k mod p a = 7^2 mod 257
a = 49 mod 257 = 49
b = (y^k mod Pi) mod p
b = (〖49〗^2 mod P2) mod 257
= 2401 * 72 mod 257
= 172872 mod 257
= 168
Nilai k untuk P3 = 3
a = g^k mod p a = 7^3 mod 257
a = 373 mod 257 = 86
b = (y^k mod Pi) mod p
b = (〖49〗^3 mod P3) mod 257
= 117649 * 65 mod 257
= 7647185 mod 257
= 150
Nilai k untuk P4 = 5
a = g^k mod p a = 7^5 mod 257
a = 16807 mod 257 = 102
b = (y^k mod Pi) mod p
b = (〖49〗^5 mod P4) mod 257
= 282475249 * 82 mod 257
= 23162970418 mod 257
= 145
Nilai k untuk P5 = 2
a = g^k mod p a = 7^2 mod 257
a = 49 mod 257 = 49
b = (y^k mod Pi) mod p
b = (〖49〗^2 mod P5) mod 257
= 2401 * 77 mod 257
= 184877 mod 257
= 94
Nilai k untuk P6 = 4
a = g^k mod p a = 7^4 mod 257
a = 2401 mod 257 = 88
b = (y^k mod Pi) mod p
b = (〖49〗^4 mod P6) mod 257
= 5764801 * 65 mod 257
= 374712065 mod 257
= 154
Plainteks Char DEC K a=(g^k)mod p b=((y^k)*M)) mod p (a,b)
P1 D 68 4 88 256 (88,256)
P2 H 72 2 49 168 (49,168)
P3 A 65 3 86 150 (86,150)
P4 R 82 5 102 145 (102,145)
P5 M 77 2 49 94 (49,94)
P6 A 65 4 88 154 (88,154)

Hasil enkripsi dari Plaintek “DHARMA” adalah = (88,256), (49,168), (86,150), (102,145), (49,94), (88,154).

Dekripsi Metode Elgamal
Chiperteks:
(88,256), (49,168), (86,150), (102,145), (49,94), (88,154).
Kunci : x = 2, p = 257
Mencari Plainteks P1:
s = a^x mod p P1 = (b *S^(P-2))mod p
s = 〖88〗^2mod 257 P1 = (256 *〖34〗^((257-2))mod 257
s = 7744 mod 257 P1 = (256 *〖34〗^255)mod 257
s = 34 P1 = 68 = D
Mencari Plainteks P2:
s = a^x mod p P2 = (b *S^(P-2))mod p
s = 〖49〗^2mod 257 P2 = (168 *〖88〗^((257-2))mod 257
s = 2401 mod 257 P2 = (168 *〖88〗^255)mod 257
s = 88 P2 = 72 = H
Mencari Plainteks P3:
s = a^x mod p P3 = (b *S^(P-2))mod p
s = 〖86〗^2mod 257 P3 = (150 *〖200〗^((257-2))mod 257
s = 7396 mod 257 P3 = (150 *〖200〗^255)mod 257
s = 200 P3 = 65 = A
Mencari Plainteks P4:
s = a^x mod p P4 = (b *S^(P-2))mod p
s = 〖102〗^2mod 257 P4 = (145 *〖124〗^((257-2))mod 257
s = 10404 mod 257 P4 = (145 *〖124〗^255)mod 257
s = 124 P4 = 82 = R
Mencari Plainteks P5:
s = a^x mod p P5 = (b *S^(P-2))mod p
s = 〖49〗^2mod 257 P5 = (94 *〖88〗^((257-2))mod 257
s = 2401 mod 257 P5 = (94 *〖88〗^255)mod 257
s = 88 P5 = 77 = M
Mencari Plainteks P6:
s = a^x mod p P6 = (b *S^(P-2))mod p
s = 〖88〗^2mod 257 P6 = (154 *〖34〗^((257-2))mod 257
s = 7744 mod 257 P6 = (154 *〖34〗^255)mod 257
s = 34 P6 = 65 = A

Dalam proses pendekripsian algoritma Kunci Public Elgamal sama dengan langkah-langkah proses enkripsi, karna algoritma Kunci Public Elgamal merupakan kriptografi system kunci simetris dalam artian kunci enkripsi dan kunci dekripsi. Seperti contoh diatas cipherteks yang didapat akan diproses kembali menjadi teks aslinya.Yaitu: 68, 72, 65, 82, 77, 65 menjadi DHARMA.

Komentar

Postingan populer dari blog ini

Menghapus data Pada Listview

ENTAH SIAPA YANG TAHU??

PROGRAM PEMBAYARAN LISTRIK DENGAN VB NET