Hitung Manual Enkripsi dan Dekripsi Pada Algoritma ElGamal

Table of Contents


Algoritma ElGamal dibuat oleh Tager ElGamal tahun 1984 yang digunakan untuk enkripsi dan dekripsi text. Keamanan algoritma ini terletak pada sulitnya menghitung logaritma diskrit. Secara garis besar, besaran-besaran yang digunakan di dalam algoritma ElGamal adalah:
1.      p          = bilangan prima (tidak rahasia, publik)
2.      g          = akar primitif dari p (tidak rahasia, publik)
3.      x          = bilangan acak (rahasia, kunci privat)
4.      y          = gx mod p (tidak rahasia, kunci publik)
5.      m         = plainteks  (rahasia)

6.      a dan b = chiperteks (tidak rahasia)

Misalkan Tono dan Tini berkomunikasi menggunakan algoritma ElGamal untuk mengenkripsi pesan. Tono dan Tini masing-masing membangkitkan pasangan kunci privat dan kunci publiknya, kemudian menggunakannya untuk mengenkripsi dan dekripsi pesan. Urutan prosesnya adalah sebagai berikut: pembangkitan kunci privat dan kunci publik, enkripsi pesan dan dekripsi pesan. Cara untuk pembangkitan kunci privat dan kunci publik dimulai dari Tono dan Tini yang sudah menyepakati bilangan prima p dan bilangan bulat g. Tono membangkitkan kunci privat dan kunci publiknya sebagai berikut:
1.      Tono memilih sebuah bilangan acak x dengan syarat 1<x<p-1
2.      Tono menghitung y= gx mod p.
Hasilnya, kunci privat Tono adalah x, dan kunci public adalah tripel (y,g,p). Prosedur yang sama juga dilakukan Tini untuk membangkitkan kunci privat dan kunci publiknya.

Proses Enkripsi

Misalkan Tono mengirim plainteks HALO kepada Tini. Misal A= 00, B= 01… Z=25, maka Plainteks M menjadi 07001114.

1.      p = 2273
2.      g = 3
3.      x = 243
4.      y = 3243 mod 2273 = 461
5.      m = HALO
6.      a, b …?

Plainteks m dipecah menjadi blok-blok sepanjang 4 angka:
m1 = 0700
m2 = 1114

Enkripsi m1 = 0700
Tono memilih angka acak k = 1463 (masih dalam selang 0,2273-1)
a = gk mod p = 31463 mod 2273 = 1439
b = ykm1 mod p = 4611463 . 700 mod 2273 = 74
Chiperteks untuk m1 adalah a,b = 1439, 74

Enkripsi m2 = 1114
Tono memilih angka acak k = 2001 (masih dalam selang 0,2273-1)
a = gk mod p = 32001 mod 2273 = 1220
b = ykm2 mod p = 4612001 . 1114 mod 2273 = 1682
Chiperteks untuk m2 adalah a,b = 1220, 1682

PLAINTEKS = HALO
CHIPERTEKS  = 1439, 74, 1220, 1682


Proses Dekripsi

Dekripsi C1 (1439, 74)
(ax)-1  = ap-1-x mod p
            = 14392029 mod 2273 = 1791

m1      = b/ax mod p
            = b(ax)-1 mod p
            = 74 . 1791 mod 2273
            = 700
            = 0700

Dekripsi C2 (1220, 1682)
(ax)-1  = ap-1-x mod p
            = 12202029 mod 2273 = 1125

m2      = b/ax mod p
            = b(ax)-1 mod p
            = 1682 . 1125 mod 2273
            = 1114
    
m1m2 = 07001114
            = H A L O

Post a Comment