RS, LS yang menggantikan masukan plaintext. Namun fungsi key schedule digunakan secara terbalik.
Untuk lebih spesifik, berikut ini adalah urutan key schedule pada saat melakukan dekripsi:
1. Subkey K12, K13,K14,K15 digunakan untuk XOR initial subkey 2. Sedangkan subkey K8,K9,K10,K11 digunakan untuk XOR final subkey.
3. Dan putaran kunci digunakan dari i=8 hingga i=1 tahap 7
Contoh Dekripsi 1:
Diketahui kunci yang digunakan : elektro
Nilai signature yang dimasukkan :
Public key : 2203, 5959
Signature : 3784
Plaintext:
2.5 Algoritma ElGamal
Algoritma ElGamal merupakan algoritma kriptografi asimetris. Pertama kali dipublikasikan oleh Taher ElGamal pada tahun 1985. Sadikin R. 2011
Seperti RSA Rivest Shamir Adleman, algoritma ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma ini
merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok palintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses enkripsi, dan
hasilnya digabungkan kembali menjadi pesan yang utuh dan bisa dimengerti. Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan prima p. Untuk
algoritma ElGamal maka secara secara umum dapat dijelaskan pada gambar dibawah ini, merupakan pseudo code ElGamal proses pembentukan kunci, enkripsi dan
dekripsi ElGamal, Sadikin R. 2011
Pseudo code algoritma ElGamal Ghazi M, 2010:
Gambar 2.10 Sistem Kriptografi proses pembentukan kunci, enkripsi dan dekripsi ElGamal
2.5.1 Landasan perhitungan Matematika Algoritma ElGamal
Dalam memahami dan mempelajari sebuah kriptografi, ada baiknya terlebih dahulu memahami konsep-konsep dasar dalam perhitungan matematis yang digunakan dalam
suatu algoritma kriptografi tersebut.
2.5.1.1 Modulo Eksponesial menghitung modulo sisa hasil pembagian
Modulo eksponensial sering dipakai dalam bidang kriptografi dalam menghitung hasil dari enkripsi maupun dekripsi. Permaslahan pada operasi modulo adalah bagaimana
mengitung dengan yang sangat besar. Terdapat beberapa cara untuk
menghitung modulo eksponensial, antara lain adalah dengan cara iteratif.
Function mod exp x, y, n {
z =1 For i=1; i≤y; i++{
z = x z mod n Return z
} 1.
Pilih P dimana P adalah bilangan prima 2.
Pilih a dimana a adalah primitive root P dan a p 3.
Pilih sembarang bilangan Xa , dimana Xa Q - 1 4.
Hitung Ya, dimana Ya = a
Xa
mod Q 5.
Plaintext key = { P, a, Ya} 6.
Private key = {Xa} 7.
Plaintext M Q 8.
Pilih sembarang bilangan K0 dimana K0 Q 9.
Hitung K1 dimana K1 = Ya
k
mod Q 10.
Hitung C1 = a
k0
mod Q 11.
Hitung C2 = K
1
M mod Q 12.
Cipher = C1, C2 13.
Dekripsi : cipher = C1, C2 14.
Hitung K1 dimana K1 = C1
Xa
mod Q 15.
Plaintext M = C2K1
-1
mod Q
Contoh : Tentukan hasil dari dengan cara iterasi
Diketahui nilai x = 2, y = 5 dan n = 60 z = 1
i = 1 z = 4 1 mod 60 = 4
i = 2 z = 4 2 mod 60 = 8
i = 3 z = 4 4 mod 60 = 16
i = 4 z = 4 8 mod 60 = 32
i = 5 z = 4 16 mod 60 = 4
Maka hasil dari adalah 4
Hasil kalkulator 2.5.1.2
Algoritma Euclidean Algoritma Euclidean merupakan algoritma yang digunakan untuk mencari Faktor
Persekutuan Terbesar Great Common Divisor dari dua bilangan bulat. Algoritma ini berdasarkan pernyataan bahwa ada dua bilangan bulat yang positif yaitu
dan dimana
. Tahap perhitungan algoritma ini adalah sebagai berikut:
1. Jika
Jika tidak lanjutkan kelangkah selanjutnya langkah nomor 2
2. Bagilah
dengan dan misalkan sisanya adalah 3.
Ganti nilai dengan nilai dengan nilai , lalu ulang kembali ke langkah awal langkah nomor 1
Contoh 1: Tentukan GCD dari 312 dan 720 720 mod 312 = 96
312 mod 96 = 24
96 mod 24 = 0
Jadi GCD dari 312, 720 adalah 96
Contoh 2: Tentukan GCD dari 64 dan 93 93 mod 64 = 29
64 mod 29 = 6 29 mod 6 = 5
6 mod 5 = 1
5 mod 1 = 0
Jadi GCD dari 64, 93 = 1. Apabila GCD dari maka
disebut
relatif prima
2.5.1.3 Inversi Modulo
Jika a dan n relatif prima dan , maka inversi dari a mod n dapat ditemukan.
Inversi dari , disebut juga sebagai inversi perkalian, dimana bilangan
demikian sehingga:
Pembuktian dari persamaan diatas dapat dilihat dari defenisi relatif prima diketahu bahwa
Contoh 1: tentukan inversi dari 7 mod 17, dapat dijelaskan dalam tabel 2.4 berikut ini:
Tabel 2.4 Inversi Modulo dari 7 mod 17
Dari tabel diatas iterasi berhenti ketika dan diperoleh hasil
Contoh 2: Tentukan inversi dari 25 mod 31,
Tabel 2.5 Inversi Modulo dari 25 mod 31
Dari tabel diatas iterasi berhenti ketika dan diperoleh hasil
2.5.1.4 Bilangan Prima Aman
Input : Bilangan prima
Output : Pernyataan “bilangan prima aman” atau”bukan bilangan prima aman”
Langkah-Langkah: 1.
Hitung prima 2.
Jika q adalah bilangan prima, maka output “bilangan prima aman” 3.
Jika q komposit, maka output “bukan bilangan prima aman”
Contoh 1: Tentukan bilangan p = 2579 adalah bilangan prima
Dengan melakukan tes keprimaan diatas , diperoleh bahwa 1289 merupakan bilangan prima. Jadi dapat disimpulkan bahwa 1289 merupakan bilangan prima aman.
2.5.1.5 Elemen primitive
Selain bilangan prima, dalam kriptografi ElGamal juga digunakan elemen primitive yang merupakan elemen pembangun dari Z
p
. Untuk mencari dan menentukan elemen ini digunakan
, dimana merupakan bilangan prima. Jika elemen
dan , maka merupakan elemen primitive Jeffrey dkk,
2008.
Dalam Gambar Gambar 2.11 dibawah ini akan dijelaskan elemen primitive dari algoritma ElGamal
Gambar 2.11 Elemen primitive algoritma ElGamal Stalling W., 5th, pg. 305, 2011
Tahap menentukan suatu bilangan merupakan elemen primitive atau tidak dapat dilihat dari beberapa poin dibwah ini:
1. Input bilangan prima aman
. 2.
Hitung 3.
Hitung dan
. 4.
Jika 5.
Jika 6.
Jika tidak terpenuhi dua persyaratan diatas maka merupakan elemen primitive
Contoh 1: Misalkan pada point 2.5.1.4 diatas merupakn bilangan prima
aman. Maka dapat ditentukan bilangan prima = 1289. Untuk
menunjukkan bahwa suatu bilangan bulat a merupakan elemen primitive Z
2579
, harus ditunjukkan bahwa
. Dari tabel 2.5 dibawah ini dapat ditunjukkan untuk perhitungan
yaitu sebagai berikut:
Tabel 2.5 Perhitungan bilangan prima aman algoritma ElGamal 2578
4 9
16 25
36 49
64 2578
1 1
1 2578
1 2578
Dalam algoritma ElGamal menggunakan bilangan bulat dalam proses perhitungannya, maka pesan harus di konversi kedalam bilangan bulat. Untuk
mengubah pesan menjadi bilangan bulat, digunakan kode ASCII American Standart for Information Interchange. Kode ASCII merupakan represntasi Numerik dari
karakter masing-masing yang digunakan pada komputer, serta mempunyai nilai minimal 0 sampai 255. Oleh karena itu, berdasarkan sistem kriptografi ElGamal diatas
harus digunakan bilangan yang lebih besar dari 255. Karakter dalam ASCII berkorespondesnsi 1-1 dengan karakter pesan.
2.5.2 Prinsip Kerja Algoritma ElGamal
2.5.2.1 Algoritma Pembangkitan Kunci ElGamal
Dalam gambar 2.12 dibawah ini akan dijelaskan bagaimana gambaran Pembangkian Kunci Algoritma ElGamal,
Gambar 2.12 Pembangkitan kunci algoritma ElGamal Stalling W., 5th, pg. 305, 2011
1. Pilih sembarang bilang prima p sebaiknya nilai bilangan prima lebih besar
dari 255. Misalkan 271 2.
Ambil bilangan
α
sebagai primitive mod p Misalkan
α
= 107 3.
Ambil bilangan acak
α dengan syarat α berada pada rentang
. Misalkan 96
4. Hitung berapa
Maka hasil perhitungan didapat
a. Kunci public p,
α
, x = 271, 107, 39
b.
Kunci private p,a = 271, 96 Contoh: Diketahui bilangan prima aman yaitu p = 2579, elemen primitive a = 2. Dan
dipilih a = 765 dan dihitung
Jadi diperoleh kunci public dan kunci private
. Kunci public diberikan Alice kepada Bob. Sedangkan kunci private tetap di
rahasiakan oleh alice dan tidak di publikasikan.
2.5.3 Enkripsi Algoritma ElGamal
Proses enkripsi dari algoritma ElGamal dapat dijelaskan secara ringkas dalam gambar 2.13 dibawah ini:
Gambar 2.13 Proses Enkripsi ElGamal Stalling W., 5th, pg. 305, 2011
Input : Pesan yang akan di enkripsi dan kunci public p, α, x
Output : Ciphertext 1, 2, .... n Langkah enkripsi algoritma ElGamal adalah sebagai berikut:
1. Sebelum melakukan enkripsi harus menerima kunci public p,
α
, x 2.
Pesan di potong-potong blok kedalam bentuk blok-blok dengan setiap blok adalah karakter suatu pesan.
3. Konversikan masing-masing karakter tersebut kedalam kode ASCII, maka
diperoleh plaintext sebanyak n, bilangan, yaitu 4.
Diperoleh ciphertext yaitu C1 = ak mod q; C2 = KM mod q
Contoh 1:
Tentukan output dari “Desember tahun 2015”, dengan diketahui kunci public
p, α, x = 2579, 2, 1127, jika diketahui alice mengirim pesan rahasia “Desember
t ahun 2015” kepada bob. Alice akan mengengripsi kunci public 2579, 2, 1127 yang
telah diterima oleh bob sebelumnya. Selanjutnya pesan di potong menjadi beberapa blok dari setiap karakter pesan, dan konversikan dalam bentuk ASCII.
Untuk menyelesaikan permasalahan diatas dapat dijelaskan dengan tabel 2.6 dibawah ini:
Tabel 2.7 Blok Cipher Algoritma ElGamal dalam bentuk ASCII i
Karakter Plaintext Mi ASCII 1
D 68
2 e
101 3
s 115
4 e
101 5
m 109
6 b
98 7
e 101
8 r
114 9
spasi 32
10 t
116 11
a 97
12 h
104 13
u 117
14 n
110 15
spasi 32
16 2
50 17
48 18
1 49
19 5
53
Berdasarkan tabel 2.6 diatas diperoleh banyak karakter pada pesan tersebut .
Proses selanjutnya
yaitu menentukan
bilangan acak
rahasia Kemudian dihitung
dan ,
. Dapat dijelaskan pada tabel 2.7 dibawah ini:
Tabel 2.8 Pembentukan ciphertext algoritma ElGamal i
Karakter 1
D 68
2341 798
1955 2
e 101
2329 1192
2318 3
s 115
1127 2264
2179 4
e 101
1303 1669
407 5
m 109
859 2050
187 6
b 98
662 2569
115 7
e 101
863 1852
1840
8 r
114 202
1177 1832
9 spasi
32 377
1127 2240
10 t
116 1259
2373 1681
11 a
97 13
455 95
12 h
104 681
227 799
13 u
117 587
1694 2206
14 n
110 315
99 2156
15 spasi
32 213
1710 724
16 2
50 2383
1019 2045
17 48
545 1891
111 18
1 49
545 1891
1924 19
5 53
450 739
868
Berdasarkan tabel diatas diperoleh ciphertext sebagai berikut:
798, 1955 1177, 1832
1710, 724 1192, 2318
1127, 2240 1019, 2045
2264, 2179 2373, 1681
1891, 111 1669, 407
455, 95 1891, 1924
2050, 187 227, 799
739, 868 2569, 115
1694, 2206 1852, 1840
99, 2156
Selanjutnya Alice sending chiper message to Bob,
Salah satu kelebihan dari Algoritma ElGamal merupakan bahwa sebuah ciphertext akan di enkripsi menjadi ciphertext yang berbeda. Permasalahan ini terjadi karena
pemilihan bilangan acak k. Namun meskipun demikian, ciphertext yang diperoleh berbeda, tetapi proses enkripsi dan dekripsi akan diperoleh plaintext yang sama,
seperti akan dijelaskan pada tahap dekripsi Algoritma ElGamal.
2.5.4 Dekripsi Algoritma ElGamal
Proses dekripsi dari algoritma ElGamal dapat dijelaskan secara ringkas dalam gambar 2.14 dibawah ini:
Gambar 2.14 Proses Dekripsi ElGamal Stalling W., 5th, pg. 305, 2011
Langkah dekripsi algoritma ElGamal adalah sebagai berikut: Input
: Ciphertext , γ δ i i , i n =1, 2,..., , kunci publik p dan kunci rahasia
a. Output
: Pesan asli. plaintext
Langkah dekripsi algoritma ElGamal adalah sebagai berikut: 1.
Untuk i dari 1 sampai dengan n kerjakan 1.1
Hitung 1.2
Hitung 2.
Diperoleh plaintext
3.
Konversikan masing-masing bilangan kedalam karakter
sesuai dengan kode ASCII Contoh : pada contoh kasus dalam algoritma Enkripsi bahwa Alice telah mengirimkan
ciphertext kepada Bob, Ciphertextnya yang diperoleh adalah:
798, 1955 1177, 1832
1710, 724 1192, 2318
1127, 2240 1019, 2045
2264, 2179 2373, 1681
1891, 111 1669, 407
455, 95 1891, 1924
2050, 187 227, 799
739, 868 2569, 115
1694, 2206 1852, 1840
99, 2156
Bob mempunyai kunci public p = 2579 dan kunci rahasia, 765. Selanjutnya maka dilakukan perhitungan pada tabel 2.7 sebagai berikut:
Tabel 2.8 Dekripsi pengembalian ciphertext ke dalam bentuk plaintext algoritma ElGamal
i 1
798 1955
314 68
D 2
1192 2318
2392 101
e 3
2264 2179
767 115
s 4
1669 407
165 101
e 5
2050 187
2552 109
m 6
2569 115
2535 98
b 7
1852 1840
1852 101
e 8
1177 1832
352 114
r 9
1127 2240
1879 32
spasi 10
2373 1681
1051 116
t 11
455 95
734 97
a 12
227 799
1472 104
h 13
1694 2206
55 117
u 14
99 2156
79 110
n 15
1710 724
456 32
spasi 16
1019 2045
62 50
2 17
1891 111
2792 48
18 1891
1924 2192
49 1
19 739
868 215
53 5
Dari tabel diatas maka pesan dalam blok maka digabungkan maka pesan akan menjadi sem
ula yaitu “Desember Tahun 2015”.
BAB 1
PENDAHULUAN 1.1.
Latar Belakang
Teknologi informasi dan komunikasi telah berkembang pesat, memberikan pengaruh
yang besar bagi kehidupan manusia. Perkembangan teknologi jaringan dan internet memungkinkan setiap orang untuk saling bertukar data, informasi, atau pesan kepada
orang lain tanpa batasan jarak dan waktu.
Keamanan dan kerahasiaan merupakan aspek penting yang dibutuhkan dalam proses pertukaran pesaninformasi melalui jaringaninternet, karena turut berkembang
pula kejahatan teknologi dengan berbagai teknik interupsi, penyadapan, modifikasi, maupun fabrikasi. Tanpa adanya jaminan keamanan, orang lain dapat dengan mudah
mendapatkan pesaninformasi yang dikirimkan melalui jaringaninternet. Berbagai macam teknik keamanan telah dikembangkan untuk melindungi dan menjaga
kerahasiaan pesan agar terhindar dari orang yang tidak berhak, salah satunya yaitu teknik kriptografi. Kriptografi adalah suatu ilmu dan seni untuk menjaga kerahasiaan
pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Kriptografi telah ada dan digunakan sejak berabad-abad yang lalu dikenal
dengan istilah kriptografi klasik, yang bekerja pada mode karakter alfabet.
Dalam dunia kriptografi, pesan yang akan dirahasiakan disebut plaintext. Pesan yang sudah diacak disebut ciphertext. Proses untuk mengkonversi plaintext
menjadi ciphertext disebut enkripsi. Proses untuk mengembalikan plaintext dari ciphertext disebut dekripsi. Algoritma kriptografi ciphers adalah fungsi-fungsi
matematika yang digunakan untuk melakukan enkripsi dan dekripsi. Dalam kriptografi diperlukan kunci yaitu kode untuk melakukan enkripsi dan dekripsi.
Penelitian ini menggunakan dua algoritma berbeda yaitu algoritma FEAL dan ElGamal penggabungan algoritma simetri dan asimetri yang juga disebut dengan
hybrid cryptosystem.
1.2. Rumusan Masalah