Anda di halaman 1dari 11

PERTEMUAN XIII

Sub Materi :
1. Konsep Kerja Metode El-Gamal
2. Contoh Enkripsi dan Dekripsi Teks Berdasarkan
Metode El-Gamal
PERTEMUAN XIII

Algoritma ini dibuat oleh Taher Elgamal pada tahun 1985.


Keamanan pada algoritma ini terletak pada rumitnya
menghitung logaritma diskrit.
Contoh logaritma diskrit :
gx  y (mod p)
Berapakah x, jika diketahui y = 1 dan p = 256, g = 167

Algoritma ini bila diimplementasikan akan menghasilkan dua


buah nilai hasil pada setiap blok plain, yaitu a dan b. Oleh
karenanya cipher yang dihasilkan memiliki jumlah 2 kali lipat
dari pada jumlah plain.
Blok P1 akan menghasilkan cipher C1= (a,b)
PERTEMUAN XIII
Elemen-elemen Algoritma ElGamal :

1. Bilangan prima, p (tidak rahasia)


2. Bilangan acak, g ( g < p) (tidak rahasia)
3. Bilangan acak, x (x < p) (rahasia, kc. privat)
4. y = gx mod p (tidak rahasia, kc. publik)
5. m (plainteks) (rahasia)
6. a dan b (cipherteks) (tidak rahasia)
7. Elemen kunci PUBLIK adalah p, g, y
8. Elemen Kunci PRIVATE adalah x dan p
PERTEMUAN XIII
CARA KERJA ENKRIPSI :

1. Pilih nilai p yang merupakan bilangan prima (tidak rahasia)


2. Pilih nilai g (g < p) dan harus Relatif Prima dengan nilai p
3. Pilih bilangan x, dimana x < p-1 (bersifat rahasia)
4. Hitung nilai y = gx mod p (bersifat tidak rahasia)
5. Kunci PUBLIC adalah (p, g, y)
6. Kunci PRIVATE adalah x, p
7. Susun plain ke dalam blok M dengan syarat m  p - 2
8. Setiap blok plainteks dienkripsi dengan formula
pilih bilangan acak sebagai k, dimana nilai 1  k  p-2
a = gk mod p
b = (yk * Blok Plain) mod p
9. Cipher adalah pasangan (nilai a, nilai b)
Ciphertext yang dihasilkan adalah akan 2 x jlh plain karena terdiri
dari elemen a dan b.
PERTEMUAN X

CARA KERJA DEKRIPSI:

1. Proses dekripsi menggunakan kunci pribadi (private) x


dan p untuk mendekripsi nilai a dan b (cipher) dari
masing-masing blok ciphertext menjadi plaintext
2. Formula yang digunakan :
s = ax mod p
P =b * sp-2 mod p
Sehingga plain dapat ditemukan kembali dari hasil P
PERTEMUAN X
Contoh Proses Pembangkitan Kunci :
Proses ini dilakukan oleh penerima pesan (receiver)
RECEIVER membangkitkan kunci public dan private-nya
p = 257 ; g = 7; x = 2
Hitung y = gx mod p
y = 72 mod 257
y = 49 mod 257
y = 49
Berdasarkan proses pembangkitan kunci, maka diperoleh :
Kunci PUBLIC = (p, g, y)  Kpublic = (257, 7, 49)  (p, g, y)
Kunci PRIVATE = (x, p)  Kprivate = (2, 257)

Catatan :
Kunci PUBLIC akan dibagikan kepada PENGIRIM pesan
PERTEMUAN X
Contoh Proses Enkripsi :
Plaintext = STMIK_BD_17

Kelompokkan plaintext dimana nilai desimal kelompok plainteks  nilai p-2


Karena nilai p = 257-2, maka nilai desimal kelompok plain harus di bawah
257 atau  257-2 (255).
Kelompok Plaintext :
Kelompok CHAR DEC Lalu si Pengirim Pesan memilih nilai k dengan
P1 S 83
membangkitkan bilangan acak untuk masing-
masing blok pesan.
P2 T 84
Nilai k yang dipilih harus berada dalam
P3 M 77 himpunan 1  k  p-2
P4 I 73 Mis. nilai k untuk P1 = 4
P5 K 75 a = gk mod p  a = 74 mod 257
P6 _ 95 a =2401 mod 257 = 88
P7 B 66 b = (yk * Pi) mod p 
P8 D 68 b = (494 * P1) mod 257
P9 _ 95 = 5764801 * 83 mod 257
P10 1 49 = 478478483 mod 257 = 252
P11 7 55
PERTEMUAN X
Contoh Proses Enkripsi :
Plaintext = STMIK_BD_17
Kelompok Plaintext dan bilangan acak (k) yang dipilih untuk masing-masing
kelompok plaintext :
Kelompok a= b=
CHAR DEC k Cipher (a,b)
Plaintext ( g ^ k) mod p ((y ^ k) * M)) mod p
P1 S 83 4 88 252 ( 88, 252 )
P2 T 84 2 49 196 ( 49, 196 )
P3 M 77 3 86 237 ( 86, 237 )
P4 I 73 5 102 57 ( 102, 57 )
P5 K 75 7 115 112 ( 115, 112 )
P6 _ 95 6 200 255 ( 200, 255 )
P7 B 66 8 34 224 ( 34, 224 )
P8 D 68 11 97 139 ( 97, 139 )
P9 _ 95 23 71 104 ( 71, 104 )
P10 1 49 12 165 195 ( 165, 195 )
P11 7 55 110 42 131 ( 42, 131 )
Saran :
Untuk proses perhitungan, gunakan aplikasi calculator di komputer
PERTEMUAN X
Contoh Proses Dekripsi :

Kelompokkan nilai desimal ciphertext yang memenuhi syarat nilai kelompok


desimal ciphertext <= p-2.
Dalam contoh kasus ini p = 257, sehingga p-2 = 257-2 = 255, artinya nilai desimal
setiap kelompok harus berada pada interval 0-255

Setiap kelompok yang dibentuk pada proses dekripsi harus terdiri dari 2 elemen
yaitu nilai a dan b. Sehingga kelompok plainteks adalah Ci=(a, b). Masing-masing
nilai a dan b harus berada pada interval 0-255 (lihat syarat di atas).

Sehingga, nilai-nilai desimal ciphertext dapat dikelompokkan sbb :


a b
( 88, 252 ), ( 49, 196 ), ( 49, 196 ), ( 86, 237 ), ( 102, 57 ), ( 115, 112 ),
( 200, 255 ), ( 34, 224 ), ( 97, 139 ), ( 71, 104 ), ( 165, 195 ), ( 42, 131 )

Lakukan Dekripsi dengan formula :


s = ax mod p untuk mencari plaintext : Pi = b * sp-2 mod p
PERTEMUAN X
Contoh Proses Dekripsi :

Kelompok ciphertext :
( 88, 252 ), ( 49, 196 ), ( 49, 196 ), ( 86, 237 ), ( 102, 57 ), ( 115, 112 ),
( 200, 255 ), ( 34, 224 ), ( 97, 139 ), ( 71, 104 ), ( 165, 195 ), ( 42, 131 )

Formula dekripsi:
s = ax mod p untuk mencari plaintext : Pi = b * sp-2 mod p
Kelompok Kelompok
Cipher (a,b) Cipher (a,b)
Plaintext Plaintext
P1 ( 88, 252 ) P7 ( 34, 224 )
P2 ( 49, 196 ) P8 ( 97, 139 )
P3 ( 86, 237 ) P9 ( 71, 104 )
P4 ( 102, 57 ) P10 ( 165, 195 )
P5 ( 115, 112 ) P11 ( 42, 131 )
P6 ( 200, 255 )
PERTEMUAN X
Contoh Proses Dekripsi :  Kunci Private : a
b
Ciphertext : x = 2, p = 257
( 88, 252 ), ( 49, 196 ), ( 49, 196 ), ( 86, 237 ), ( 102, 57 ), ( 115, 112 ),
( 200, 255 ), ( 34, 224 ), ( 97, 139 ), ( 71, 104 ), ( 165, 195 ), ( 42, 131 )

Mencari Plaintext P1 :
s = ax mod p P1 = (b * sp-2)mod p
s = 882 mod 257 P1 = (252 * 34(257-2) mod 257
s = 7744 mod 257 P1 = (252 * 34255) mod 257
s = 34 p1 = 83  S

Mencari Plaintext P2 :
s = ax mod p P2 = (b * sp-2)mod p
s = 492 mod 257 P2= (196 * 88(257-2) mod 257
S = 2401 mod 257 P2 = (196 * 88255) mod 257
S = 88 p2 = 84  T
Lanjutkan untuk kelmpok Ciphertext yang lainnya....

Anda mungkin juga menyukai