ENKRIPSI DAN DEKRIPSI TEKS MENGGUNAKAN ALGORITMA

advertisement
Prosiding Seminar Nasional Matematika dan Terapannya 2016
p-ISSN : 2550-0384; e-ISSN : 2550-0392
ENKRIPSI DAN DEKRIPSI TEKS MENGGUNAKAN
ALGORITMA ASYMMETRIS ELGAMAL
Akik Hidayat
Prodi Teknik Informatika, Fakultas MIPA, Universitas Pdjadjaran
Jl. Raya Bandung Sumedang KM 21 Jatinangor Sumedang 45363
[email protected]
Erick Paulus
Prodi Teknik Informatika,Fakultas MIPA, Universitas Pdjadjaran
Jl. Raya Bandung Sumedang KM 21 Jatinangor Sumedang 45363
ABSTRACT. ElGamal is an algorithm that uses asymmetric cryptosystem is an algorithm
that uses the public key to the private key encryption and decryption process. Excess
asymmetric algorithms are the key distribution process in media such as the internet are
not safe, do not require confidentiality. Because the keys are distributed is a key
public.Then if this key is lost or known by others who are not entitled to, then the message
password remains secure. While the private key (secret) remains stored (not distributed).
By using ElGamal can use key sizes smaller than cryptosystems like this RSA. ElGamal
has a strong security with short key lengths. While the goal to be achieved is to apply the
method of the ElGamal cryptosystem using the programming language C ++.
Keywords: asymmetric encryption, decryption, cryptosystem, public key, private key.
ABSTRAK. Elgamal merupakan kriptosistem yang menggunakan algoritma asymmetris
yaitu suatu algoritma yang menggunakan kunci public pada proses enkripsi dan kunci
private pada proses dekripsinya. Kelebihan algoritma asimetris ini adalah proses
pendistribusian kunci pada media yang tidak aman seperti internet, tidak memerlukan
kerahasiaan. Karena kunci yang didistribusikan adalah kunci publik.Sehingga jika kunci
ini sampai hilang atau diketahui oleh orang lain yang tidak berhak, maka pesan sandi
yang dikirimakan tetap aman. Sedangkan kunci private (rahasia) tetap disimpan (tidak di
distribusikan). Dengan menggunakan Elgamal dapat menggunakan ukuran kunci yang
lebih kecil dibandingkan dengan kriptosistem seperti RSA. Kemampuan ini membuat
Elgamal mempunyai keamanan yang kuat dengan panjang kunci yang pendek. Sedangkan
tujuan yang ingin dicapai yaitu mengaplikasikan metode kriptosistem Elgamal
menggunakan bahasa pemrograman C++.
Kata Kunci: asimetris, enkripsi, dekripsi, kriptosistem, kunci publik, kunci private.
Enkripsi dan Dekripsi Teks
233
1. PENDAHULUAN
ElGamal adalah suatu algoritma enkripsi yang asimetris, seperti pada
gambar berikut ini :
Cara enkripsi ini mempunyai banyak kelebihan, salah satunya adalah setiap orang
hanya perlu memiliki satu set kunci, tanpa peduli berapa banyak orang yang akan
diajak berkomunikasi. Jadi jika ada n orang yang berkomunikasi dengan cara ini,
hanya dibutuhkan n set kunci saja. Selain itu, cara enkripsi ini tidak membutuhkan
saluran yang aman untuk pengiriman kunci, sebab kunci yang dikirim ini memang
harus diketahui oleh publik [1]. Cara enkripsi ini sangat praktis sehingga dapat
digunakan oleh awam. Setiap orang yang menggunakan enkripsi ini harus
mempunyai dua buah kunci, yaitu kunci rahasia yang hanya diketahui oleh dirinya
sendiri dan yang lain disebut kunci public yang disebarkan kepada orang lain.
Kedua kunci ini dibuat secara acak secara matematis. Jika A akan mengirimkan
pesan kepada si B, si A harus meng-enkrip pesan itu dengan kunci public milik si
B. Pesan si A yang telah dienkrip dengan menggunakan kunci publik si B, hanya
bisa dibuka dengan menggunakan kunci rahasia B. Walaupun dienkrip dengan
menggunakan kunci public si B, pesan ini tidak bisa dibuka dengan kunci public
itu sendiri. Si B wajib untuk menjamin keamanan kunci rahasianya. ElGamal
Cryptosystem berdasarkan atas problema Algoritma Discrete, Pertama kita awal
dengan men-setting pada suatu lapangan terhingga (Zp), dimana p adalah bilangan
prima, dijelaskan pada Gambar 1, Selain itu diperlukan Multiplicative Group Zp*
(Cyclic) dan sebuah Generator Zp* yang disebut primitive Element yaitu anggota
dari himpunan Multiplicative Group Zp*. Multiplicative Group adalah bilangan
prima pada Zp yang memenuhi sifat-sifat : asosiatif, mempunyai identitas dan
mempunyai invers. Contoh Multiplicative Group Zp* (Cyclic), dengan p=12 :
Purwokerto, 3 Desember 2016
234
A. Hidayat dan E. Paulus
a/b
1
5
7
11
1
1
5
7
11
5
5
1
11
7
7
7
11
1
5
11
11
7
5
1
Multiplicative Group Z12* = {1,5,7,11}
2. METODE PENELITIAN DAN LANDASAN TEORI
2.1 Metode Penelitian
Metode yang digunakan dalam penelitian ini adalah :
a. Melakukan studi literatur yang berkaitan dengan penelitian ini.
b. Perhitungan menggunakan alat bantu Excell.
2.2 Landasan Teori
Ambil p sebagai bilangan prima, sedemikian hingga berlaku pada Zp,
kemudian ambil  € Zp*, yang merupakan elemen primitif. Ambil P = Zp*, C =
Zp* x Zp*, ambil a dengan 0  a  p-2. Definisikan :
K = {( P, ,a,) : a (mod p)}.
dengan nilai  merupakan public key, sedangkan a adalah private key. Untuk K =
(P, ,a,), dan ambil bilangan acak k pada Zp-1, kemudian untuk melakukan
enkripsi, definisikan :
e K (x,k) = (y1,y2)
dimana y1 = k mod p dan y2 = x  k mod p
Purwokerto, 3 Desember 2016
Enkripsi dan Dekripsi Teks
235
untuk y1,y2 € Zp*,
Untuk melakukan dekripsi[2], definisikan :
d K (y1,y2)= y2(y1 a)-1 mod p
3. HASIL DAN PEMBAHASAN
Tabel korespondensi yang digunakan :
A
B
C
D
E
F
G
H
I
1
2
3
4
5
6
7
8
9
J
K
L
M
N
O
P
Q
R
10
11
12
13
14
15
16
17
18
S
T
U
V
W
X
Y
Z
19
20
21
22
23
24
25
26
Kami akan mencoba mengenkripsi huruf J(10),
Tahap Setting up :
Melakukan setting up, yaitu memilih p, private key dan public key, dengan cara :
Langkah 1 : Pilih p = 29 (harus cukup besar, minimal dapat meng-akomodasi
karakter yang akan digunakan, karena kaitan akan bekerja pada Zp )
Langkah 2 : Pilih primitive element dari p, dengan 235 = 2.
Langkah 3 : Pilih sebuah private key, ambil a = 6.
Langkah 4 : Menghitung nilai  (public key), dengan =a (mod p) = 26(mod 29)
= 6.
Hasil yang didapat bekerja dalam Module 29, private key = 6, publik key = 6.
Tahap Enkripsi :
Plaintext = j = 10, menggunakan public key = 6
1. Ambil angka a secara random k = 3 (k  Zp-1)
Purwokerto, 3 Desember 2016
236
A. Hidayat dan E. Paulus
y1 = k mod p = 23 mod 29 = 8
2. Hitung
y2 = x  k mod p =10 x 63 mod 29 = 14
3. Didapat Ciphertext (8,14)
Tahap Dekripsi :
Untuk men-dekripsi-kan C=(8,14)
dengan rumus : d K (y1,y2) = y2(y1 a)-1 mod p
1. Hitung : y1 a = 86 = 13 mod 29 = 13
2. Hitung : y2(y1 a)-1 mod 29 = 14(13)-1 mod 29 = 10 mod 29 = 10
3. Didapat Plaintext 10 = j.
4. IMPLEMENTASI
P
29 Bilangan Prima
G
2
Primitive element modulo p
X
6
private key (merupakan angka dari 1 sampai dengan p-1)
K
3
Bilangan acak
Himpunanan plaintext (modulo p)
M
6
Y
Public Key
Kita akan mencoba mengenkripsi (AKIKHIDAYAT)
m={0,10,8,10,7,8,3,0,24,0,19}
Enkripsi
M
0
10
8
10
7
8
3
0
24
0
19
y1
8
8
8
8
8
8
8
8
8
8
8
y2
0
14
17
14
4
17
10
0
22
0
15
Purwokerto, 3 Desember 2016
Enkripsi dan Dekripsi Teks
237
Dekripsi
Plaintext
Private key
6
GCD(29,13)=1
1/13 (mod 29)
9
Artinya 16 mempunyai invers
dengan menggunakan algorithma Euclidean untuk menentukan
nilai inversnya
y1x
13
13
13
13
13
13
13
13
13
13
13
M
0
10
8
10
7
8
3
0
24
0
19
Plaintext = AKIKHIDAYAT ( 0, 10, 8, 10, 7, 8, 3, 0, 24, 0, 19 )
Alfabet
Korespondensi satu-satu
Hasil Enkripsi
Hasil
(Ciphertext)
Dekripsi
(Plaintext)
A
0
(8,0)
1
K
10
(8,14)
11
I
8
(8,17)
9
K
10
(8,14)
11
H
7
(8,4)
8
I
8
(8,17)
9
D
3
(8,10)
4
A
0
(8,0)
1
Y
24
(8,22)
25
A
0
(8,0)
1
T
19
(8,15)
20
Purwokerto, 3 Desember 2016
238
A. Hidayat dan E. Paulus
DAFTAR PUSTAKA
Shala, M., Primes Number in Cryptography, University of Greenwich, 2004.
Stinson, D. R., Cryptography : Theory and Practice, CRC Press, Boca Raton,
Florida, 1956.
Purwokerto, 3 Desember 2016
Download