Kriptografi Elgamal Menggunakan Metode Fermat
BAB II
TINJAUAN PUSTAKA
2.1 Kriptografi Secara Umum
Menurut Richard Mollin (2003), Kriptografi (cryptography) berasal dari bahasa
Yunani, terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya
menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi adalah ilmu
yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek
keamanan informasi, seperti kerahasiaan data, keabsahan data, integritas data,
serta autentikasi data (Menezes, Oorscoot dan Vanstone, 1996). Tetapi tidak
semua aspek keamanan informasi dapat diselesaikan dengan kriptografi.
Kriptorafi dapat pula diartikan sebagai ilmu atau seni untuk menjaga keamanan
pesan
Enkripsi adalah sebuah proses penyandian yang melakukan perubahan
sebuah kode (pesan) dari yang bisa dimengerti (plainteks) menjadi sebuah kode
yang tidak bisa dimengerti (cipherteks). Sedangkan proses kebalikannya untuk
mengubah cipherteks menjadi plainteks disebut dekripsi. Proses enkripsi dan
dekripsi memerlukan suatu mekanisme dan kunci tertentu.
Kriptonalisis (cryptanalysis) adalah kebalikan dari kriptografi, yaitu suatu
ilmu untuk memecahkan mekanisme kriptografi dengan cara mendapatkan kunci
dari cipherteks yang digunakan untuk mendapatkan plainteks. Kriptologi
(cryptology) adalah ilmu yang mencakup kriptografi dan kriptonalisis.
6
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek
keamanan informasi yaitu (Menezes,Oorscoot dan Vanstone, 1996) (Schneir,
1996) :
a. Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk
menjaga isi informasi dari semua pihak kecuali pihak yang memiliki
otoritas terhadap informasi. Ada beberapa pendekatan untuk menjaga
kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma
matematika yang membuat daa tidak dapat dipahami. Istilah lain yang
senada dengan confidntiality adalah secrecy dan privacy.
b. Integritas data adalah layanan penjagaan pengubahan data dari pihak yang
tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki
kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang
tidak berhak, antara lain penyisipan, penghapusan dan pensubstitusian data
lain kedalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini
direalisasikan dengan menggunakan
tanda-tangan
digital (digital-
signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan
yang dikirim adalah asli.
c. Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik
mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user
authentication atau entity authentication) maupun mengidentifikasi
kebenaran sumber pesan (data origin authentication). Dua pihak yang
saling berkomunikasi harus dapat megotenkasi satu sama lain sehingga ia
dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran
komunikasi juga harus di otentikasi asalnya. Otentikasi sumber pesan
secara implisit juga memberikan kepastian integritas data, sebab jika pesan
telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu
layanan integritas data selalu dikombinasikan dengan layanan otentikasi
sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan
7
menggunakan tanda-tangan digital (digital signature). Tanda tangan
digital menyatakan sumber pesan.
d. Nirpenyangkalan (non-repudation) adalah layanan untuk mencegah entitas
yang berkomunikasi melakukan penyangkalan, yaitu pengiri pesan
menyabgkal melakukan pengiriman atau penerima pesan menyangkal
telah menerima pesan.
2.2 Terminologi Kriptografi
Di dalam kriptografi, akan sering ditemukan berbagai istilah (terminologi).
Adapun istilah-istilah yang kerap kali digunakan adalah sebagai berikut.
a. Pesan, Plaintext, dan Ciphertext
Pesan adalah data ataupun suatu informasi yang dapat dibaca dan
dimengerti maknanya. Nama lain dari pesan adalah plainteks. Pesan
tersebut dapat dikirim (melalui kurir, saluran telekomunikasi, dan lainlain) dan dapat juga disimpan dalam media penyimpanan (kertas,storage,
dan lain-lain). Pesan dapat juga berupa teks, tetapi juga dapat berbentuk
citra (image), suara/bunyi (audio) dan video atau berkas lainnya. Agar
pesan tersebut tidak dapat dimengerti maknanya bagi pihak lain, maka
pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk
pesan yang telah tersandikan tersebut dinamakan dengan cipherteks
(ciphertext) atau sering disebut kriptogram. Ciphertext harus dapat
ditransformasikan kembali menjadi plaintext semula agar pesan yang
diterima bisa dibaca. Perbandingan antara plainteks dan cipherteks dapat
kita lihat pada gambar 2.1
8
35 1 6 215 424 292 6 210 292 210
Besok Saya akan dat ang Pukul 7 ke
424 210
kampus
392 292 176 210 322 210 390 142
292 40 147 424 147 249 292 429 1
292 424 210 74 40 147 6
(a) Plaintext
(b) Ciphertext dari
Gambar 2.1 Perbandingan plainteks dan cipherteks
b. Pengiriman dan Penerimaan
Suatu aktivitas komunikasi data, akan melibatkan pertukaran antara dua
entitas, yakni pengirim dan penerima. Pengirim adalah entitas yang
mengirim pesan kepada entitas lainnya. Sedangkan penerima adalah
entitas yang menerima pesan.Suatu pengiriman pesan, pengirim tentu
menginginkan pesan dapat dikirim secara aman. Untuk mengamankannya,
pengirim biasanya akan menyandikan pesan yang dikirimkan tersebut
c. Enkripsi dan Dekripsi
Suatu proses untuk menyandikan plaintext menjadi ciphertext disebut
enkripsi (encryption). Sedangkan proses pengembalian dari ciphertext
manjadi plaintext dinamakan dekripsi (decription). Enkripsi dan dekripsi
merupakan suatu pesan yang memetakan elemen-elemen antara kedua
himpunan tersebut. Misalkan P adalah himpunan plaintext, dan C adalah
himpunan ciphertext, maka fungsi enkripsi E memetakan P ke C, ditulis
E(P) = C. Dan fungsi dekripsi D memetakan C ke P, ditulis D(C) = P
d. Cipher dan Kunci
Algoritma kriptografi disebut juga cipher yaitu aturan atau fungsi
matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher
9
memerlukan algoritma yang berbeda untuk enkripsi dan dekripsi (Stalling,
2005).
Untuk menjaga kerahasiaan pengiriman pesan dalam kriptografi modern
dibutuhkan kunci. Kunci (key) adalah parameter yang digunakan untuk
mentransformasi proses
pengenkripsian dan
pendekripsian pesan.
Biasanya, kunci berupa deretan bilangan maupun string. Dengan
menggunakan kunci K maka proses enkripsi dan dekripsi dapat ditulis
sebagai EK(P) = C dan DK(C) =P, dan kedua fungsi tersebut memenuhi
DK(EK(P)) = P
e. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan
selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan
informasi
sebanyak-banyaknya
mengenai
sistem
kriptografi
yang
digunakan untuk berkomunikasi dengan maksud menemukan ciphertext.
f. Kriptanalisis dan kriptologi
Kriptanalisis adalah ilmu dan seni untuk memecahkan ciphertext menjadi
plaintext tanpa mengetahui kunci yang digunakan dan pelakunya disebut
Kriptanalis. Jika seorang kriptografer mentransformasikan plaintext
menjadi ciphertext dengan suatu algoritma dan kunci maka sebaliknya
seorang kriptanalis berusaha untuk memecahkan ciphertext tersebut untuk
menemukan plaintext atau kunci.
Kriptologi adalah studi mengenai kriptografi dan kriptanalisis. Baik
kriptografi maupun kriptanalisis keduanya saling berkaitan.
2.3 Kriptografi Kunci Simetris dan Asimetris
Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi dikelompokkan
menjadi dua bagian, yaitu algoritma simetris (algoritma konvensional) dan
10
algoritma asimetris (algoritma kunci publik) (Schneier, 1996) (Kurniawan, 2004)
(Munir, 2006) (Menezes et al. 1996).
2.3.1 Algoritma Simetris
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci enkripsi
yang sama dengan kunci dekripsinya. Istilah lain untuk kriptografi kunci-simetri
adalah
kriptografi
kunci-simetri
adalah
kunci
privat
(private-key-
cryptography),kriptografi kunci rahasia (secret-key-cryptography, atau kriptografi
konvensional (conventional cryptography). Sistem kriptografi kunci-simetri (atau
disingkat menjadi “kriptografi simetri” saja), mengasumsikan pengirim dan
penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan.
Keamanan sistem kriptografi simetri terletak pada kerahasiaan kuncinya.
Kriptografi simetri merupakan satu-satunya jenis kriptografi yang dikenal
dalam catatan sejarah hingga 1976. Semua algoritma kriptografi klasik termasuk
ke dlam sistem kriptografi simetri.
Kelebihan algoritma simteris ini adalah proses enkripsi dan dekripsinya
yang jauh lebih cepat dibandingkan dengan algoritma asimetris. Sedangkan
kelemahan algoritma ini adalah permasalahan distribusi kunci (key distribituin).
Seperti yang telah dibahas proses enkrpsi dan deskripsi menggunakan kunci yang
sama. Sehingga muncul persoalan menjaga kerahasiaan kunci, yaitu pada saat
pengiriman kunci pada media yang tidak aman seperti internet. Tentunya jika
kunci ini sampai hilang atau sudah dapat ditebak oleh orang lain (orang yan tidak
berhak), maka kriptosistem ini sudah tidak aman lagi.
Kelemahan lain adalah masalah efisinsi jumlah kunci. Jika terdapat n user,
maka diperlukan n (n-1)/2 kunci, sehingga untuk jumlah user yang sangat banyak.
sistem ini tidak efisien lagi (Menezes et al, 1996).
11
Kunci
A
enkripsi
enkripsi
B
Gambar 2.2 Skema Algoritma Simetris
2.3.2 Algoritma Asimetris
Algoritma Asimetris, sering disebut juga kunci publik didesain sehingga kunci
yang digunakan untuk enkripsi berbeda dengan kunci untuk dekripsi dimana kunci
untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapu ( diumumkan ke
publik ), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan
(rahasia).
Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai
sepasang kunci, yaitu kunci privat dan kunci publik. pengirim mengenkrpsi pesan
dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan
yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya
sendiri. Kriptografi kunci-publik dapat dianalogikan seperti kotak surat yang
terkunci dan memiliki lubang untuk memasukkan surat. Setiap orang dapat
memasukkan surat ke dalam kotak surat tersebut, tetapi hanya pemilik kotak yang
dapat membuka kotak dan membaca surat di dalamnya karena ia yang memiliki
kunci. keuntungan sistem ini ada dua. Pertama, tidak ada kebutuhan untuk
mendistribusikan kunci privat sebagaimana pada sistem kriptografi simetri. Kunci
publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang
digunakan untuk mengirim pesan. saluran untuk mengirim pesan umumnya tidak
aman.
12
Kedua jumlah kunci dapat ditekan. untuk berkomunikasi secara rahasia
dengan banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut,
cukup membuat dua buha kunci, yaitu kunci publik bagi para koresponden untuk
mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan
kriptografi kunci-simetris yang dibuat adalah sebanyak jumlah pihak yang diajak
berkorespondensi.
Contoh
penggunaan, misalkan jaringan komputer menghubungkan
komputer karyawan di kantor cabang dengan komputer menejer dikantor pusat.
seluruh kepala cabang diberitahu bahwa kalau mereka mengirim laporan
kemenejer kantor pusat, mereka harus mengenkripsi laporan tersebut dengan
kunci publik menejer (kunci publik menejer diumumkan kepada seluruh kepala
cabang). Untuk mengembalikan laporan tersandi ke laporan semula, hanya
manajer yang dapat melakukan dekripsi, karena hanya dialah yang memegang
kunci privat. Selama proses transmisi ciphertext dari kantor cabang ke kantor
pusat melalui saluran komunikasi mungkin saja data yang dikirim disadap oleh
pihak ketiga, namun pihak ketiga ini tidak dapat mengembalikan ciphetext ke
plainteksnya karena ia tidak mengetahui kunci untuk dekripsi.
Meski berusia relatif muda (sejak 1976), kriptografi kunci-publik
mempunyai kontribusi yang luar biasa dibandingkan dengan sisitem krptografi
simetri. Kontribusi yang paling penting adalah tanda-tangan digital pada pesan
untuk
memberikan
aspek
keamanan
otentikasi,
integritas
data,
dan
nirpenyangkalan. tanda-tangan digital adalah nilai kriptografis yang bergantung
pada isi pesan dan kunci yang digunakan. Pengirim pesan mengenkrpsi pesan
(yang sudah diringkas) dengan kunci privatnya, hasil enkripsi inilah dinamakan
tanda-tangan digital. Tanda tangan digital diletakkan (embed) pada pesan asli.
penerima pesan memverifikasi tanda-tangan digital dengan meletakkan kunci
publik.
13
`
Kunci Publik
Kunci
Plant ers
Chiperteks
enkripsi
A
Pllainteks
enkripsi
A
Gambar 2.3 Skema Algoritma Asimetris
2.4 Kriptografi ElGamal
Algoritma Elgamal dibuat oleh Taher Elgamal pada tahun 1984. Algoritma ini
pada mulanya digunakan untuk tanda tangan digital signature. Namun kemudian
dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal
digunakan dalam perangkat lunak yang dikembangkan oleh GNU, program PGP,
dan pada program keamanan jaringan lainnya. Keamanan algoritma ini terletak
pada sulitnya menghitung logaritma diskrit (Munir, 2006)
Logaritma ini disebut logaritma diskret karena nilainya berhingga dan
bergantung pada bilangan prima yang digunakan. Karena bilangan prima yang
digunakan adalah bilangan prima yang besar, maka sangat sulit bahkan tidak
mungkin menurunkan kunci privat dan kunci publik yang diketahui walaupun
serangan dilakukan dengan menggunakan sumberdaya komputer yang sangat
besar.
Algoritma ElGamal merupakan algoritma dalam kriptografi yang
termasuk dalam katagori algoritma asimetris. Kunci asimetris biasa dikenal
dengan nama public key dan private key. Kunci asimetris adalah suatu algoritma
kunci enkripsi yang digunakan tidak sama dengan kunci publik dan kunci privat.
Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara
rahasia oleh pengguna. Walau kuncu publik telah diketahui namun akan sangat
14
sukar mengetahui kunci privat yang digunakan. Pada umumnya kunci publik
digunakan sebagai kunci enkripsi sementara kunci privat digunakn sebagai kunci
dekripsi.
Keamanan algoritma Elgamal teletak pada
kesulitan
penghitungan
logaritma diskret pada bilangan modulo prima yang besar sehingga upaya untuk
menyelesaikan masalah logaritma ini menjadi sangat sukar.
Algoritma Elgamal mempunyai kunci publik berupa tiga pasang bilangan
dan kunci rahasia berupa satu bilangan Algoritma ini mempunyai kerugian pada
cipherteksnya yang mempunyai panjang dua kali lipat dari plainteksnya. Akan
tetapi algoritma ini mempunyai kelebihan pada enkripsinya. Untuk plainteks yang
sama algoritma ini memberikan cipherteks yang berbeda (dengan kepastian yang
dekat) setiap kali plainteks di enkripsi.
Algoritma Elgamal terdiri dari dari tiga proses, yaitu proses pembentukan
kunci, proses enkripsi dan proses dekripsi. Algoritma ini merupakan cipher blok,
yaitu melakukan proses enkripsi pada blok-blok plainteks dan menghasilkan blokblok cipherteks yang kemudian dilakukan proses dekripsi dan hasilnya
digabungkan.
2.5 Kelebihan Algoritma ELGamal
Algoritma ElGamal juga dikenal sebagai kriptogrfi digital signature karena dapat
difungsikan secara baik untuk mengirimkan sebuah tanda tangan digital pada
sebuah pesan dan lebih sempurna dibandingkan kriptografi Diffie-Hellman.
Kelebihan dari algoritma ElGamal yaitu:
a)
Sebuah plainteks yang sama dapat diubah menjadi chiperteks yang berbeda
karena dalam algoritma ElGamal, kita dapat memilih secara acak bilangan
bulat untuk membuat sebuah kunci.
15
b)
Dalam algoritma ElGamal sama seperti beberapa jenis kriptografi kunci yang
lain. Hanya kunci privat yang perlu dijamin kerahasiaanya. Tetapi,
autentikasi kunci publik juga harus tetap dijaga.
c)
Pasangan kunci publik dan kunci privat pada algoritma Elgamal tidak perlu
diubah dalam periode waktu yang panjang.
d)
Algoritma ElGamal bisa dimanfaatkan untuk mengirimkan sebuah pesan
rahasia yang sangat rahasia, yaitu kunci dari sebuah kriptografi simetris.
2.6 Proses Pembentukan Kunci
Pembentukan kunci terdir atas pembentukan kunci publik dan kunci rahasia. Pada
proses ini dibutuhkan sebuah bilangan prima p yang digunakan untuk membentuk
group Zp*. elemen primitif α dan sembarang Є {0,1,2,…p-2}. Kunci publik
algoritma ElGamal terdiri atas pasangan 3 bilangan (p,α,β) dimana
β = αa mod p
Sedangkan kunci rahasianya adalah a tersebut. Proses pembentukan kunci
untuk algoritma ElGamal terdiri atas :
a) Penentuan bilangan prima aman yang bernilai besar
b) Penentuan elemen primitif
c) Pembentukan kunci berdasarkan bilangan prima aman dan elemen primitif
a. Pembangkitan kunci
Langkah langkah dalam pembangkitan kunci
1. Pilih sembarang bilangan prima p > 255
16
2. Pilih sembarang bilangan α dan a dengan ketentuan α < pdan1≤a ≤p-2
3. Hitung β = αa mod p
β adalah bagian dari kunci publik, sehingga kunci publik algoritma
ElGamal berupa pasangan 3 bilangan, yaitu (p,a,β).Sedangkan kunci
rahasianya adalah bilangan a tersebut
b. Metode Enkripsi
Pada proses ini pesan dienkripsi menggunakan kunci publik (p,a,β) dan
sebarang bilangan acak rahasia k anggota (0,1,…,p-2). Misalkan m adalah
pesan yang akan dikirim. Selanjutnya, m diubah ke dalam blok-blok
karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga
diperoleh plainteks m1,m2,…,mn dengan mi anggota {1,2,…,p-1},
i=1,2,…,n.
Langkah-langkah dalam mengenkripsi pesan:
1. Susun Plainteks menjadi blok-blok m1,m2,,…,mn dengan setiap blok
adalah suatu karakter pesan
2. Konversikan masing-masing karakter ke dalam kode ASCII, maka
diperoleh plainteks sebanyak n bilangan, yaitu m1,m2,,…,mn
3. Untuk i dari 1 sampai n kerjakan:
a. Pilih sebarang bilangan acak rahasia ki dimana 1< k≤p-2
b. Hitung γi = αki mod p
c. δi = βki x mi mod p
4. Diperoleh ciphertext yaitu (ai,,bi)
Diperoleh ciphertext yaitu (γi,,δi),i = 1,2,…n. Jadi ukuran ciphertext
dua kali ukuran plainteksnya.
c. Metode Dekripsi
Setelah menerima ciphertext (a,b), proses selanjutnya adalah mendekripsi
cipherteks menggunakan kunci publik p dan kunci rahasia a. Dapat
ditunjukkan bahwa
plaintext m dapat diperoleh dari ciphertext
menggunakan kunci rahasia a.
17
Langkah-langkah dalam mendekripsi pesan:
1. Ciphertext (ai,,b i), i = 1,2,…,n, kunci publik p dan kunci rahasia a.
2. Untuk i dari 1sampai n kerjakan:
a. Hitung γp-1-x mod p
b. Hitung mi=δ x γp-1-a mod p
3. Diperoleh plaintext m1,m2,,…,mn
4. Konversikanmasing-masimg m1,m2,,…,mn ke dalam karakter sesuai
dengan kode ASCII-nya, kemudian hasilnya digabungkan kembali.
2.7 Teorema Fermat
Teorema Fermat. Fermat (dibaca “Fair-ma”) adalah seorang matematikawan
Perancis pada tahun 1640.
Bilangan prima semu bisa didapatkan dari terema Little Fermat sebagai
berikut:
Jika p adalah bilangan prima dan a adalah sebarang bilangan bulat, maka ap = 1
(mod p). Secara khusus, jika a bukan faktor p, maka a p-1 (mod p).
Teorema uji Fermat memberikan uji yang baik untuk ketidakprimaan.
Dengan diberikan bilangan bulat n>1 pilihan a>1 dan dihitung a
p-1
(mod p). Jika
hasilnya ≠ 1, maka n bukan bilangan prima, maka n mungkin bilangan sehingga n
disebut bilangan prima semu basis a.
Algoritma pada teorema Fermat adalah :
1. Diambil sembarang bilangan bulat positif dari [1,n-1]
2. Hitung y ≡ ap-1(mod p)
3. Jika y≠1, maka output (“bukan prima)
18
2.8 Riset yang Terkait
Terdapat beberapa riset yang telah dilakukan oleh banyak peneliti
berkaitan dengan kriptografi seperti yang di jelaskan di bawah ini:
(Dulgerler dan Sariska, 2003) dalam risetnya mereka membagun sebuah apliksi
pengamanan email menggunakan algoritma Enkripsi ElGamal dan algoritma hash.
Dan mendapatkan kesimpulan dari penelitian mereka bahwa kinerja perangkat
lunak yang mereka gunakan tergantung pada perangkat keras yang digunakan.
Semakin meningkat nilai bit yang digunakan maka kinerja dari perangkat lunak
menurun, tetapi tingkat keamanan akan meningkat. Algoritma Enkripsi ElGamal
yang digunakan pada aplikasi tersebut tingkat keamanan juga meningkatkan nilai
bit. Analisis berdasarkan algoritma terbaik yang ada untuk kedua faktor dan
logaritma diskret menunjukkan bahwa RSA dan ElGamal memiliki keamanan
yang sama untuk panjang kunci yang setara
(Maureen Linda Caroline, 2011) dalam risetnya menyatakan bahwa teknik
kriptografi
algoritma
kunci-publik
bergantung
pada
pembangkit
kunci.
Pembangkitan kunci yang paling kompleks adalah algoritma ElGamal dan paling
sederhana serta cepat adalah algoritma Rabin. Semakin kompleks kunci yang
dibangkitkan, maka akan semakin kuat algoritma tersebut tetapi lebih memakan
resouce yang lebih banyak. Teknik kriptografi Rabin merupakan varian dari RSA
sehingga tingkat keamanan kedaunya relative sama dengan mengandalkan
kekuatan sulitnya memfaktorkan bilangan yang besar. Teknik kriptografi Rabin
lebih cocok digunakan pada resource yang sederhana dengan processor yang tidak
dapat melakukan komputasi yang kompleks dan rumit seperti smartcard.
Sedangkan teknik kriptografi ElGamal merupakan kebalikan dari teknik
kriptografi Rabin yang hanya dapat digunakan pada rosource yang sudah lebih
baik dengan processor yang dapat melakukan komputasi yang rumit dan
kompleks. Karena adanya disambiguitas secara tidak langsung (pada hasil
dekripsi) hal ini menambah biaya komputasi dan hal tersebut menyebabkan Rabin
19
dianggap kurang efisien dibandingkan RSA dan ElGamal sehingga algoritma
Rabin jarang digunakan.
(Supriadi, 2006), penelitiannya bertujuan untuk memperoleh suatu varian
yang memiliki kecepatan komputasi tinggi dan beban komputasi yang rendah.
Berdasarkan hasil penelitian yang telah dilakukan diperoleh bahwa pemilihan
algoritma tanda tangan digital sangat berpengaruh terhadap waktu eksekusi pada
saat pembangkitan dan pembuktian tanda tangan. hal ini disebabkan karena
operasi aritmatika yang bervariasi, seperti perkalian , perpangkatan, penjumlahan
dan pengurangan pada tiap algoritma berbeda-beda jumlahnya. Varian Algoritma
ElGamal dapat memberikan solusi terhadap masalah waktu komputasi, sehingga
dapat dicapai waktu yang lebih efisien.
20
TINJAUAN PUSTAKA
2.1 Kriptografi Secara Umum
Menurut Richard Mollin (2003), Kriptografi (cryptography) berasal dari bahasa
Yunani, terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya
menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi adalah ilmu
yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek
keamanan informasi, seperti kerahasiaan data, keabsahan data, integritas data,
serta autentikasi data (Menezes, Oorscoot dan Vanstone, 1996). Tetapi tidak
semua aspek keamanan informasi dapat diselesaikan dengan kriptografi.
Kriptorafi dapat pula diartikan sebagai ilmu atau seni untuk menjaga keamanan
pesan
Enkripsi adalah sebuah proses penyandian yang melakukan perubahan
sebuah kode (pesan) dari yang bisa dimengerti (plainteks) menjadi sebuah kode
yang tidak bisa dimengerti (cipherteks). Sedangkan proses kebalikannya untuk
mengubah cipherteks menjadi plainteks disebut dekripsi. Proses enkripsi dan
dekripsi memerlukan suatu mekanisme dan kunci tertentu.
Kriptonalisis (cryptanalysis) adalah kebalikan dari kriptografi, yaitu suatu
ilmu untuk memecahkan mekanisme kriptografi dengan cara mendapatkan kunci
dari cipherteks yang digunakan untuk mendapatkan plainteks. Kriptologi
(cryptology) adalah ilmu yang mencakup kriptografi dan kriptonalisis.
6
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek
keamanan informasi yaitu (Menezes,Oorscoot dan Vanstone, 1996) (Schneir,
1996) :
a. Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk
menjaga isi informasi dari semua pihak kecuali pihak yang memiliki
otoritas terhadap informasi. Ada beberapa pendekatan untuk menjaga
kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma
matematika yang membuat daa tidak dapat dipahami. Istilah lain yang
senada dengan confidntiality adalah secrecy dan privacy.
b. Integritas data adalah layanan penjagaan pengubahan data dari pihak yang
tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki
kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang
tidak berhak, antara lain penyisipan, penghapusan dan pensubstitusian data
lain kedalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini
direalisasikan dengan menggunakan
tanda-tangan
digital (digital-
signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan
yang dikirim adalah asli.
c. Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik
mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user
authentication atau entity authentication) maupun mengidentifikasi
kebenaran sumber pesan (data origin authentication). Dua pihak yang
saling berkomunikasi harus dapat megotenkasi satu sama lain sehingga ia
dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran
komunikasi juga harus di otentikasi asalnya. Otentikasi sumber pesan
secara implisit juga memberikan kepastian integritas data, sebab jika pesan
telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu
layanan integritas data selalu dikombinasikan dengan layanan otentikasi
sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan
7
menggunakan tanda-tangan digital (digital signature). Tanda tangan
digital menyatakan sumber pesan.
d. Nirpenyangkalan (non-repudation) adalah layanan untuk mencegah entitas
yang berkomunikasi melakukan penyangkalan, yaitu pengiri pesan
menyabgkal melakukan pengiriman atau penerima pesan menyangkal
telah menerima pesan.
2.2 Terminologi Kriptografi
Di dalam kriptografi, akan sering ditemukan berbagai istilah (terminologi).
Adapun istilah-istilah yang kerap kali digunakan adalah sebagai berikut.
a. Pesan, Plaintext, dan Ciphertext
Pesan adalah data ataupun suatu informasi yang dapat dibaca dan
dimengerti maknanya. Nama lain dari pesan adalah plainteks. Pesan
tersebut dapat dikirim (melalui kurir, saluran telekomunikasi, dan lainlain) dan dapat juga disimpan dalam media penyimpanan (kertas,storage,
dan lain-lain). Pesan dapat juga berupa teks, tetapi juga dapat berbentuk
citra (image), suara/bunyi (audio) dan video atau berkas lainnya. Agar
pesan tersebut tidak dapat dimengerti maknanya bagi pihak lain, maka
pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk
pesan yang telah tersandikan tersebut dinamakan dengan cipherteks
(ciphertext) atau sering disebut kriptogram. Ciphertext harus dapat
ditransformasikan kembali menjadi plaintext semula agar pesan yang
diterima bisa dibaca. Perbandingan antara plainteks dan cipherteks dapat
kita lihat pada gambar 2.1
8
35 1 6 215 424 292 6 210 292 210
Besok Saya akan dat ang Pukul 7 ke
424 210
kampus
392 292 176 210 322 210 390 142
292 40 147 424 147 249 292 429 1
292 424 210 74 40 147 6
(a) Plaintext
(b) Ciphertext dari
Gambar 2.1 Perbandingan plainteks dan cipherteks
b. Pengiriman dan Penerimaan
Suatu aktivitas komunikasi data, akan melibatkan pertukaran antara dua
entitas, yakni pengirim dan penerima. Pengirim adalah entitas yang
mengirim pesan kepada entitas lainnya. Sedangkan penerima adalah
entitas yang menerima pesan.Suatu pengiriman pesan, pengirim tentu
menginginkan pesan dapat dikirim secara aman. Untuk mengamankannya,
pengirim biasanya akan menyandikan pesan yang dikirimkan tersebut
c. Enkripsi dan Dekripsi
Suatu proses untuk menyandikan plaintext menjadi ciphertext disebut
enkripsi (encryption). Sedangkan proses pengembalian dari ciphertext
manjadi plaintext dinamakan dekripsi (decription). Enkripsi dan dekripsi
merupakan suatu pesan yang memetakan elemen-elemen antara kedua
himpunan tersebut. Misalkan P adalah himpunan plaintext, dan C adalah
himpunan ciphertext, maka fungsi enkripsi E memetakan P ke C, ditulis
E(P) = C. Dan fungsi dekripsi D memetakan C ke P, ditulis D(C) = P
d. Cipher dan Kunci
Algoritma kriptografi disebut juga cipher yaitu aturan atau fungsi
matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher
9
memerlukan algoritma yang berbeda untuk enkripsi dan dekripsi (Stalling,
2005).
Untuk menjaga kerahasiaan pengiriman pesan dalam kriptografi modern
dibutuhkan kunci. Kunci (key) adalah parameter yang digunakan untuk
mentransformasi proses
pengenkripsian dan
pendekripsian pesan.
Biasanya, kunci berupa deretan bilangan maupun string. Dengan
menggunakan kunci K maka proses enkripsi dan dekripsi dapat ditulis
sebagai EK(P) = C dan DK(C) =P, dan kedua fungsi tersebut memenuhi
DK(EK(P)) = P
e. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan
selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan
informasi
sebanyak-banyaknya
mengenai
sistem
kriptografi
yang
digunakan untuk berkomunikasi dengan maksud menemukan ciphertext.
f. Kriptanalisis dan kriptologi
Kriptanalisis adalah ilmu dan seni untuk memecahkan ciphertext menjadi
plaintext tanpa mengetahui kunci yang digunakan dan pelakunya disebut
Kriptanalis. Jika seorang kriptografer mentransformasikan plaintext
menjadi ciphertext dengan suatu algoritma dan kunci maka sebaliknya
seorang kriptanalis berusaha untuk memecahkan ciphertext tersebut untuk
menemukan plaintext atau kunci.
Kriptologi adalah studi mengenai kriptografi dan kriptanalisis. Baik
kriptografi maupun kriptanalisis keduanya saling berkaitan.
2.3 Kriptografi Kunci Simetris dan Asimetris
Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi dikelompokkan
menjadi dua bagian, yaitu algoritma simetris (algoritma konvensional) dan
10
algoritma asimetris (algoritma kunci publik) (Schneier, 1996) (Kurniawan, 2004)
(Munir, 2006) (Menezes et al. 1996).
2.3.1 Algoritma Simetris
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci enkripsi
yang sama dengan kunci dekripsinya. Istilah lain untuk kriptografi kunci-simetri
adalah
kriptografi
kunci-simetri
adalah
kunci
privat
(private-key-
cryptography),kriptografi kunci rahasia (secret-key-cryptography, atau kriptografi
konvensional (conventional cryptography). Sistem kriptografi kunci-simetri (atau
disingkat menjadi “kriptografi simetri” saja), mengasumsikan pengirim dan
penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan.
Keamanan sistem kriptografi simetri terletak pada kerahasiaan kuncinya.
Kriptografi simetri merupakan satu-satunya jenis kriptografi yang dikenal
dalam catatan sejarah hingga 1976. Semua algoritma kriptografi klasik termasuk
ke dlam sistem kriptografi simetri.
Kelebihan algoritma simteris ini adalah proses enkripsi dan dekripsinya
yang jauh lebih cepat dibandingkan dengan algoritma asimetris. Sedangkan
kelemahan algoritma ini adalah permasalahan distribusi kunci (key distribituin).
Seperti yang telah dibahas proses enkrpsi dan deskripsi menggunakan kunci yang
sama. Sehingga muncul persoalan menjaga kerahasiaan kunci, yaitu pada saat
pengiriman kunci pada media yang tidak aman seperti internet. Tentunya jika
kunci ini sampai hilang atau sudah dapat ditebak oleh orang lain (orang yan tidak
berhak), maka kriptosistem ini sudah tidak aman lagi.
Kelemahan lain adalah masalah efisinsi jumlah kunci. Jika terdapat n user,
maka diperlukan n (n-1)/2 kunci, sehingga untuk jumlah user yang sangat banyak.
sistem ini tidak efisien lagi (Menezes et al, 1996).
11
Kunci
A
enkripsi
enkripsi
B
Gambar 2.2 Skema Algoritma Simetris
2.3.2 Algoritma Asimetris
Algoritma Asimetris, sering disebut juga kunci publik didesain sehingga kunci
yang digunakan untuk enkripsi berbeda dengan kunci untuk dekripsi dimana kunci
untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapu ( diumumkan ke
publik ), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan
(rahasia).
Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai
sepasang kunci, yaitu kunci privat dan kunci publik. pengirim mengenkrpsi pesan
dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan
yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya
sendiri. Kriptografi kunci-publik dapat dianalogikan seperti kotak surat yang
terkunci dan memiliki lubang untuk memasukkan surat. Setiap orang dapat
memasukkan surat ke dalam kotak surat tersebut, tetapi hanya pemilik kotak yang
dapat membuka kotak dan membaca surat di dalamnya karena ia yang memiliki
kunci. keuntungan sistem ini ada dua. Pertama, tidak ada kebutuhan untuk
mendistribusikan kunci privat sebagaimana pada sistem kriptografi simetri. Kunci
publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang
digunakan untuk mengirim pesan. saluran untuk mengirim pesan umumnya tidak
aman.
12
Kedua jumlah kunci dapat ditekan. untuk berkomunikasi secara rahasia
dengan banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut,
cukup membuat dua buha kunci, yaitu kunci publik bagi para koresponden untuk
mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan
kriptografi kunci-simetris yang dibuat adalah sebanyak jumlah pihak yang diajak
berkorespondensi.
Contoh
penggunaan, misalkan jaringan komputer menghubungkan
komputer karyawan di kantor cabang dengan komputer menejer dikantor pusat.
seluruh kepala cabang diberitahu bahwa kalau mereka mengirim laporan
kemenejer kantor pusat, mereka harus mengenkripsi laporan tersebut dengan
kunci publik menejer (kunci publik menejer diumumkan kepada seluruh kepala
cabang). Untuk mengembalikan laporan tersandi ke laporan semula, hanya
manajer yang dapat melakukan dekripsi, karena hanya dialah yang memegang
kunci privat. Selama proses transmisi ciphertext dari kantor cabang ke kantor
pusat melalui saluran komunikasi mungkin saja data yang dikirim disadap oleh
pihak ketiga, namun pihak ketiga ini tidak dapat mengembalikan ciphetext ke
plainteksnya karena ia tidak mengetahui kunci untuk dekripsi.
Meski berusia relatif muda (sejak 1976), kriptografi kunci-publik
mempunyai kontribusi yang luar biasa dibandingkan dengan sisitem krptografi
simetri. Kontribusi yang paling penting adalah tanda-tangan digital pada pesan
untuk
memberikan
aspek
keamanan
otentikasi,
integritas
data,
dan
nirpenyangkalan. tanda-tangan digital adalah nilai kriptografis yang bergantung
pada isi pesan dan kunci yang digunakan. Pengirim pesan mengenkrpsi pesan
(yang sudah diringkas) dengan kunci privatnya, hasil enkripsi inilah dinamakan
tanda-tangan digital. Tanda tangan digital diletakkan (embed) pada pesan asli.
penerima pesan memverifikasi tanda-tangan digital dengan meletakkan kunci
publik.
13
`
Kunci Publik
Kunci
Plant ers
Chiperteks
enkripsi
A
Pllainteks
enkripsi
A
Gambar 2.3 Skema Algoritma Asimetris
2.4 Kriptografi ElGamal
Algoritma Elgamal dibuat oleh Taher Elgamal pada tahun 1984. Algoritma ini
pada mulanya digunakan untuk tanda tangan digital signature. Namun kemudian
dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal
digunakan dalam perangkat lunak yang dikembangkan oleh GNU, program PGP,
dan pada program keamanan jaringan lainnya. Keamanan algoritma ini terletak
pada sulitnya menghitung logaritma diskrit (Munir, 2006)
Logaritma ini disebut logaritma diskret karena nilainya berhingga dan
bergantung pada bilangan prima yang digunakan. Karena bilangan prima yang
digunakan adalah bilangan prima yang besar, maka sangat sulit bahkan tidak
mungkin menurunkan kunci privat dan kunci publik yang diketahui walaupun
serangan dilakukan dengan menggunakan sumberdaya komputer yang sangat
besar.
Algoritma ElGamal merupakan algoritma dalam kriptografi yang
termasuk dalam katagori algoritma asimetris. Kunci asimetris biasa dikenal
dengan nama public key dan private key. Kunci asimetris adalah suatu algoritma
kunci enkripsi yang digunakan tidak sama dengan kunci publik dan kunci privat.
Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara
rahasia oleh pengguna. Walau kuncu publik telah diketahui namun akan sangat
14
sukar mengetahui kunci privat yang digunakan. Pada umumnya kunci publik
digunakan sebagai kunci enkripsi sementara kunci privat digunakn sebagai kunci
dekripsi.
Keamanan algoritma Elgamal teletak pada
kesulitan
penghitungan
logaritma diskret pada bilangan modulo prima yang besar sehingga upaya untuk
menyelesaikan masalah logaritma ini menjadi sangat sukar.
Algoritma Elgamal mempunyai kunci publik berupa tiga pasang bilangan
dan kunci rahasia berupa satu bilangan Algoritma ini mempunyai kerugian pada
cipherteksnya yang mempunyai panjang dua kali lipat dari plainteksnya. Akan
tetapi algoritma ini mempunyai kelebihan pada enkripsinya. Untuk plainteks yang
sama algoritma ini memberikan cipherteks yang berbeda (dengan kepastian yang
dekat) setiap kali plainteks di enkripsi.
Algoritma Elgamal terdiri dari dari tiga proses, yaitu proses pembentukan
kunci, proses enkripsi dan proses dekripsi. Algoritma ini merupakan cipher blok,
yaitu melakukan proses enkripsi pada blok-blok plainteks dan menghasilkan blokblok cipherteks yang kemudian dilakukan proses dekripsi dan hasilnya
digabungkan.
2.5 Kelebihan Algoritma ELGamal
Algoritma ElGamal juga dikenal sebagai kriptogrfi digital signature karena dapat
difungsikan secara baik untuk mengirimkan sebuah tanda tangan digital pada
sebuah pesan dan lebih sempurna dibandingkan kriptografi Diffie-Hellman.
Kelebihan dari algoritma ElGamal yaitu:
a)
Sebuah plainteks yang sama dapat diubah menjadi chiperteks yang berbeda
karena dalam algoritma ElGamal, kita dapat memilih secara acak bilangan
bulat untuk membuat sebuah kunci.
15
b)
Dalam algoritma ElGamal sama seperti beberapa jenis kriptografi kunci yang
lain. Hanya kunci privat yang perlu dijamin kerahasiaanya. Tetapi,
autentikasi kunci publik juga harus tetap dijaga.
c)
Pasangan kunci publik dan kunci privat pada algoritma Elgamal tidak perlu
diubah dalam periode waktu yang panjang.
d)
Algoritma ElGamal bisa dimanfaatkan untuk mengirimkan sebuah pesan
rahasia yang sangat rahasia, yaitu kunci dari sebuah kriptografi simetris.
2.6 Proses Pembentukan Kunci
Pembentukan kunci terdir atas pembentukan kunci publik dan kunci rahasia. Pada
proses ini dibutuhkan sebuah bilangan prima p yang digunakan untuk membentuk
group Zp*. elemen primitif α dan sembarang Є {0,1,2,…p-2}. Kunci publik
algoritma ElGamal terdiri atas pasangan 3 bilangan (p,α,β) dimana
β = αa mod p
Sedangkan kunci rahasianya adalah a tersebut. Proses pembentukan kunci
untuk algoritma ElGamal terdiri atas :
a) Penentuan bilangan prima aman yang bernilai besar
b) Penentuan elemen primitif
c) Pembentukan kunci berdasarkan bilangan prima aman dan elemen primitif
a. Pembangkitan kunci
Langkah langkah dalam pembangkitan kunci
1. Pilih sembarang bilangan prima p > 255
16
2. Pilih sembarang bilangan α dan a dengan ketentuan α < pdan1≤a ≤p-2
3. Hitung β = αa mod p
β adalah bagian dari kunci publik, sehingga kunci publik algoritma
ElGamal berupa pasangan 3 bilangan, yaitu (p,a,β).Sedangkan kunci
rahasianya adalah bilangan a tersebut
b. Metode Enkripsi
Pada proses ini pesan dienkripsi menggunakan kunci publik (p,a,β) dan
sebarang bilangan acak rahasia k anggota (0,1,…,p-2). Misalkan m adalah
pesan yang akan dikirim. Selanjutnya, m diubah ke dalam blok-blok
karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga
diperoleh plainteks m1,m2,…,mn dengan mi anggota {1,2,…,p-1},
i=1,2,…,n.
Langkah-langkah dalam mengenkripsi pesan:
1. Susun Plainteks menjadi blok-blok m1,m2,,…,mn dengan setiap blok
adalah suatu karakter pesan
2. Konversikan masing-masing karakter ke dalam kode ASCII, maka
diperoleh plainteks sebanyak n bilangan, yaitu m1,m2,,…,mn
3. Untuk i dari 1 sampai n kerjakan:
a. Pilih sebarang bilangan acak rahasia ki dimana 1< k≤p-2
b. Hitung γi = αki mod p
c. δi = βki x mi mod p
4. Diperoleh ciphertext yaitu (ai,,bi)
Diperoleh ciphertext yaitu (γi,,δi),i = 1,2,…n. Jadi ukuran ciphertext
dua kali ukuran plainteksnya.
c. Metode Dekripsi
Setelah menerima ciphertext (a,b), proses selanjutnya adalah mendekripsi
cipherteks menggunakan kunci publik p dan kunci rahasia a. Dapat
ditunjukkan bahwa
plaintext m dapat diperoleh dari ciphertext
menggunakan kunci rahasia a.
17
Langkah-langkah dalam mendekripsi pesan:
1. Ciphertext (ai,,b i), i = 1,2,…,n, kunci publik p dan kunci rahasia a.
2. Untuk i dari 1sampai n kerjakan:
a. Hitung γp-1-x mod p
b. Hitung mi=δ x γp-1-a mod p
3. Diperoleh plaintext m1,m2,,…,mn
4. Konversikanmasing-masimg m1,m2,,…,mn ke dalam karakter sesuai
dengan kode ASCII-nya, kemudian hasilnya digabungkan kembali.
2.7 Teorema Fermat
Teorema Fermat. Fermat (dibaca “Fair-ma”) adalah seorang matematikawan
Perancis pada tahun 1640.
Bilangan prima semu bisa didapatkan dari terema Little Fermat sebagai
berikut:
Jika p adalah bilangan prima dan a adalah sebarang bilangan bulat, maka ap = 1
(mod p). Secara khusus, jika a bukan faktor p, maka a p-1 (mod p).
Teorema uji Fermat memberikan uji yang baik untuk ketidakprimaan.
Dengan diberikan bilangan bulat n>1 pilihan a>1 dan dihitung a
p-1
(mod p). Jika
hasilnya ≠ 1, maka n bukan bilangan prima, maka n mungkin bilangan sehingga n
disebut bilangan prima semu basis a.
Algoritma pada teorema Fermat adalah :
1. Diambil sembarang bilangan bulat positif dari [1,n-1]
2. Hitung y ≡ ap-1(mod p)
3. Jika y≠1, maka output (“bukan prima)
18
2.8 Riset yang Terkait
Terdapat beberapa riset yang telah dilakukan oleh banyak peneliti
berkaitan dengan kriptografi seperti yang di jelaskan di bawah ini:
(Dulgerler dan Sariska, 2003) dalam risetnya mereka membagun sebuah apliksi
pengamanan email menggunakan algoritma Enkripsi ElGamal dan algoritma hash.
Dan mendapatkan kesimpulan dari penelitian mereka bahwa kinerja perangkat
lunak yang mereka gunakan tergantung pada perangkat keras yang digunakan.
Semakin meningkat nilai bit yang digunakan maka kinerja dari perangkat lunak
menurun, tetapi tingkat keamanan akan meningkat. Algoritma Enkripsi ElGamal
yang digunakan pada aplikasi tersebut tingkat keamanan juga meningkatkan nilai
bit. Analisis berdasarkan algoritma terbaik yang ada untuk kedua faktor dan
logaritma diskret menunjukkan bahwa RSA dan ElGamal memiliki keamanan
yang sama untuk panjang kunci yang setara
(Maureen Linda Caroline, 2011) dalam risetnya menyatakan bahwa teknik
kriptografi
algoritma
kunci-publik
bergantung
pada
pembangkit
kunci.
Pembangkitan kunci yang paling kompleks adalah algoritma ElGamal dan paling
sederhana serta cepat adalah algoritma Rabin. Semakin kompleks kunci yang
dibangkitkan, maka akan semakin kuat algoritma tersebut tetapi lebih memakan
resouce yang lebih banyak. Teknik kriptografi Rabin merupakan varian dari RSA
sehingga tingkat keamanan kedaunya relative sama dengan mengandalkan
kekuatan sulitnya memfaktorkan bilangan yang besar. Teknik kriptografi Rabin
lebih cocok digunakan pada resource yang sederhana dengan processor yang tidak
dapat melakukan komputasi yang kompleks dan rumit seperti smartcard.
Sedangkan teknik kriptografi ElGamal merupakan kebalikan dari teknik
kriptografi Rabin yang hanya dapat digunakan pada rosource yang sudah lebih
baik dengan processor yang dapat melakukan komputasi yang rumit dan
kompleks. Karena adanya disambiguitas secara tidak langsung (pada hasil
dekripsi) hal ini menambah biaya komputasi dan hal tersebut menyebabkan Rabin
19
dianggap kurang efisien dibandingkan RSA dan ElGamal sehingga algoritma
Rabin jarang digunakan.
(Supriadi, 2006), penelitiannya bertujuan untuk memperoleh suatu varian
yang memiliki kecepatan komputasi tinggi dan beban komputasi yang rendah.
Berdasarkan hasil penelitian yang telah dilakukan diperoleh bahwa pemilihan
algoritma tanda tangan digital sangat berpengaruh terhadap waktu eksekusi pada
saat pembangkitan dan pembuktian tanda tangan. hal ini disebabkan karena
operasi aritmatika yang bervariasi, seperti perkalian , perpangkatan, penjumlahan
dan pengurangan pada tiap algoritma berbeda-beda jumlahnya. Varian Algoritma
ElGamal dapat memberikan solusi terhadap masalah waktu komputasi, sehingga
dapat dicapai waktu yang lebih efisien.
20