Upload
ngotuyen
View
233
Download
0
Embed Size (px)
Citation preview
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
Perbandingan Algoritma Kunci Public RSA dan ElGamal
Wico Chandra - 13509094
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
Abstract—Algortima kunci publik merupakan teknik
kriptografi asimertris, yang kunci untuk dekripsi dan enkripsi
berbeda. Pada makalah ini, dibahas perbandingan antara
algoritma RSA dan ElGamal. Dari hasil percobaan yang
didapatkan RSA memiliki keunggulan dalam hal kecepatan
Enkripsi dan dekripsi serta dalam aplikasi enkripsi halaman
web yang lebih efisien, ukuran hasil enkripsi memiliki ukuran
yang sama dengan halaman sebenarnya. Untuk ElGamal
memiliki keunggulan dalam hal kecepatan pembangkitan
kunci publik dan kunci privat serta keefektifan aplikasi dalam
dunia tanda tangan digital yang selalu menghasilkan tanda
yang berbeda-beda.
Index Terms—RSA, ElGamal, Tanda Tangan Digital
I. PENDAHULUAN
Kriptografi adalah kata serapan dari bahasa
asing, dalam hal ini bahasa inggris, yaitu
cryptography. Cryptography atau cryptology berasal
dari bahasa Yunani, yaitu κρσπτός, kryptos, "hidden,
secret" atau “tersembunyi, rahasia”, dan γράφω, gráphō,
"I write" atau “aku menulis”, dan -λογία, -logia atau
“ilmu”. Kriptografi adalah ilmu atau seni untuk
menyembunyikan informasi. Proses menyembunyikan
informasi ini dilakukan dengan teknik penyandian, atau
mengubah pesan atau informasi menjadi sandi-sandi
yang tidak dimengerti oleh orang lain, selain
pembuat dan penerimanya.
Pada kriptografi dikenal istilah-istilah seperti plain
text, cipher text, enkripsi, dan dekripsi. Plain text adalah
pesan asli yang ingin dikirimkan. Cipher text adalah
pesan yang telah disandikan dengan metode enkripsi
tertentu. Enkripsi adalah proses mengubah sebuah
plain text menjadi cipher text, dan dekripsi adalah proses
mengubah sebuah cipher text menjadi plain text.
Transaksi data banyak dilakukan dalam
kehidupan sehari-hari. Beberapa informasi yang
dikirimkan tersebut adalah informasi-informasi yang
bersifat rahasia dan pribadi. Karena itu data-data yang
dikirimkan perlu dirahasiakan sehingga pihak lain yang
mencoba mendapatkan informasi tersebut tanpa izin tidak
akan dapat mengetahuinya.
Pada masa lalu, informasi yang dianggap
rahasia adalah seperti pada masa peperangan.
Informasi mengenai operasi militer, kekuatan militer, dan
sebagainya adalah informasi yang tidak boleh sampai
ketahuan oleh pihak musuh. Karena itu informasi-
informasi ini perlu disandikan ketika ingin dikirimkan
ke tempat lain, sehingga jika informasi yang dikirim jatuh
ke tangan pihak musuh, mereka tetap tidak mengerti.
Sementara pada era modern ini, kita sering
melakukan transaksi secara elektronik. Transaksi-
transaksi ini juga perlu dilindungi karena mengandung
informasi yang bersifat pribadi, misalnya nomor kartu
kredit. Karena itu kriptografi menjadi sebuah cabang ilmu
yang terus diteliti dan dikembangkan untuk melindungi
kerahasiaan data.
Perkembangan teknologi dan ditemukannya
komputer membuat penggunaan algoritma kriptografi
yang lebih kompleks lagi menjadi terbuka
kemungkinannya. Banyak penelitian mengenai algoritma
kriptografi telah dilakukan sehingga muncul metode baru
dalam sistem penyandian pesan. Metode-metode
enkripsi yang selama ini dikenal adalah dengan
menggunakan sebuah kunci atau kode khusus yang
digunakan untuk menyandikan dan membaca pesan.
Misalnya dalam Caesar Cipher digunakan 3 huruf
setelah huruf yang digunakan untuk menyandikan
pesan. Dan hal itu berarti untuk membaca pesan, kita
cukup menggeser setiap huruf yang muncul dengan 3
huruf sebelumnya. Metode ini dikenal dengan symmetric-
key cryptography, dimana untuk membaca dan
menyandikan sebuah pesan digunakan sebuah key atau
kunci yang sama.
Di tahun 1976, sebuah sistem kriptografi yang
asymmetric-key dipublikasikan oleh Whitfield Diffie dan
Martin Hellman yang dipengaruhi oleh metode distribusi
kunci publik (public-key) yang dikembangkan oleh
Ralph Merkle. Sistem pertukaran kunci ini dikenal
dengan nama Diffie-Hellman key exchage (pada tahun
2002, Hellman menyarankan agar nama ini diubah
menjadi Diffie-Hellman-Merkle key exchage atas jasa
Merkle dalam penemuan metode public-key). Sistem ini
juga disebut public-key cryptography. Dalam public-key
cryptography, kedua pihak yang ingin mengirimkan dan
menerima pesan akan saling bertukar kunci yang
digunakan untuk mengenkripsi data, sedangkan
kunci untuk melakukan dekripsi tetap dirahasiakan. Salah
satu public-key cryptography adalah kriptografi RSA.
Oleh karena banyaknya algoritma kriptogarfi kunci
publik maka pada makalah ini akan dibahas mengenai
perbandingan dua algoritma kunci publik yaitu RSA dan
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
ElGamal. Hal yang dibandingkan adalah masalah
performasi dalam melakukan enkripsi dan dekripsi suatu
pesan, dan aplikasinya dalam kehidupan sehari-hari.
Sumber: http://clean-clouds.com/2011/03/08/encryptionhybrid-approach/
Gambar 1 Skema Kunci Publik
II. RSA
RSA adalah salah satu contoh kriptografi yang
menerapkan konsep public key. Algoritma ini pertama
kali dipublikasikan di tahun 1977 oleh Ron Rivest, Adi
Shamir, dan Leonard Adleman dari Massachusetts
Institute of Technology (MIT). Nama RSA sendiri
adalah singkatan dari nama belakang mereka bertiga.
Clifford Cocks, seorang matematikawan Inggris
sebenarnya juga telah mengembangkan algoritma
yang hampir sama dengan RSA ini pada tahun 1973.
Namun algoritma buatannya tidak begitu dikenal oleh
publik, dan baru dipublikasi pada tahun 1997 karena
merupakan proyek rahasia. Walau begitu algoritma
yang dikembangkan Rivest, Shamir, dan Adleman
tidak berhubungan dengan pekerjaan Cocks.
Pada algoritma RSA terdapat 3 langkah utama yaitu
key generation (pembangkitan kunci), enkripsi, dan
dekripsi.
Kunci pada RSA mencakup dua buah kunci, yaitu
public key dan private key. Public key digunakan untuk
melakukan enkripsi, dan dapat diketahui oleh orang lain.
Sedangkan private key tetap dirahasiakan dan digunakan
untuk melakukan dekripsi.
Pembangkitan kunci atau key generation dari RSA
adalah sebagai berikut :
1. Pilih dua buah bilangan prima sembarang a dan b.
Kedua bilangan ini tidak boleh diketahui oleh orang
lain
2. Hitung . Hasil dari perkalian ini tidak perlu
dirahasiakan dari pihak luar
3. Hitung . Setelah m dihitung
maka kedua bilangan, a dan b, sudah dapat dibuang
(dihapus) untuk menjaga kerahasian dari bilangan
tersebut
4. Pilih sebuah bilangan bulat untuk kunci publik, sebut
namanya e, yang relatif prima terhadap m (relatif
prima berarti ) dengan syarat
5. Hitung kunci dekripsi, d, dengan kekongruenan
Dari hasil pembangkitan kunci didapat kunci publik,
e, dan kunci privat, d. Seperti yang sudah dijelaskan
sebelumnya kunci publik digunakan untuk mengenkripsi
suatu pesan dengan menggunakan rumus
Sedangkan untuk proses dekripsi menggunakan
rumus
Blok-blok plainteks dinyatakan dengan , ...
, pn (harus dipenuhi persyaratan bahwa nilai pn harus
terletak dalam himpunan nilai 0, 1, 2, ..., n-1 untuk
menjamin hasil perhitungan tidak berada di luar
himpunan). Pada langkah kelima pembangkitan kunci
atau key generation, kekongruenan
sama dengan . Sehingga dapat pula
dikatakan bahwa ekivalen dengan . Maka d dapat dihitung dengan cara yang
sederhana dengan persamaan
Dengan mencoba nilai k = 1, 2, 3, ..., diperoleh nilai d
yang bulat. Nilai d inilah yang dirahasiakan sebagai kunci
privat, yang digunakan untuk mendekripsi suatu pesan
yang sudah dienkripsi menggunakan kunci publik e .
Dalam implementasi besar dari nilai a dan b adalah
suatu bilangan prima yang lebih besar dari 100 digit. Hal
ini diperlukan agar untuk menfaktorkan hasil perkalian
dibutuhkan waktu yang sangat lama untuk menemukan
kedua bilangan tersebut.
Kekuatan algoritma RSA terletak pada tingkat
kesulitan dalam memfaktorkan bilangan menjadi
faktor primanya, dalam hal ini memfaktorkan n menjadi a
dan b. Karena sekali n berhasil difaktorkan, maka
menghitung nilai m adalah perkara mudah. Meskipun
nilai e diumumkan, perhitungan kunci d tidaklah mudah
pula karena nilai m yang tidak diketahui.
III. ELGAMAL
Algoritma Elgamal merupakan salah satu algoritma
kriptografi kunci-publik yang dibuat oleh Taher ElGamal
pada tahun 1984. Algoritma in pada umumnya digunakan
untuk digital signature, namun kemudian dimodifikasi
sehingga juga bisa digunakan untuk enkripsi dan
deskripsi. ElGamal digunakan dalam perangkat lunak
sekuriti yang dikembangkan oleh GNU, program PGP,
dan pada sistem sekuriti lainnya. Kekuatan algoritma ini
terletak pada sulitnya menghitung logaritma diskrit.
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
Algoritma Elgamal tidak dipatenkan. Tetapi,
algoritma ini didasarkan pada algoritma Diffie – Hellman,
sehingga hak paten algoritma Diffie – Hellman juga
mencakup algoritma ElGamal. Karena hak paten
algoritma Diffie – Hellman berakhir pada bulan April
1997, maka algoritma ElGamal dapat diimplementasikan
untuk aplikasi komersil.
Besaran-besaran yang digunakan dalam
pembangkitan kunci publik algoritma ElGamal:
1. Bilangan prima, p (tidak rahasia)
2. Bilangan acak, g ( g < p) (tidak rahasia)
3. Bilangan acak, x (x < p) (rahasia)
4. Blok plainteks M (plainteks) (rahasia)
5. a dan b (cipherteks) (tidak rahasia)
Setelah bilangan p, g, dan x diketahui pada untuk
membangkitkan kunci publik dapat dilakukan dengan
rumus
Maka didapat kunci publik y dan kunci privat x, bilangan
p dan g harus diberikan kepada pihak luar agar dapat
menenkripsi pesan yang akan dikirim.
Sebelum melakukan enkripsi pesan dibagi menjadi
. Dengan syarat besar dari mn harus
lebih kecil dari p dan tidak boleh negatif. Untuk
melakukan enkripsi maka dilakukan tahap-tahap sebagai
berikut :
1. Pilih bilangan acak k, yang lebih kecil dari p – 1, dan
relatif prima dengan p – 1.
2. Hitung bilangan a dan b dengan menggunakan rumus
Untuk melakukan proses dekripsi maka dilakukan tahap-
tahap sebagai berikut:
1. Hitung nilai s, dengan rumus
2. Melakukan dekripsi pada pesan dengan
menggunakan rumus
IV. PERBANDINGAN PERFORMANSI
Pada percobaan digunakan bilangan prima yang
besarnya adalah 300 digit. Pesan yang digunakan untuk
menenkripsi memiliki panjang yang sedimikian sehingga
hanya diperlukan sekali operasi enkripsi. Hasil dari
percobaan dapat dilihat pada Tabel 1.
Tabel 1. Hasil percobaan kecepatan
RSA ElGamal
Pembangkitan Kunci 0.0005 s 0.0002 s
Enkripsi 0.016 s 0.041 s
Dekripsi 0.015 s 0.026 s
Untuk membangkitkan bilangan prima, Algoritma
RSA memiliki kecepatan yang lebih lambat 0.0003 detik
jika dibandingan dengan menggunakan algoritma
ElGamal. Hal ini disebabkan karena pada algoritma RSA
diperlukan operasi mod yang lebih banyak dibandingan
dengan algoritma Elgamal.
Pada Enkripsi, Algoritma RSA memiliki kecepatan
yang lebih cepat 0.025 detik jika dibandingkan dengan
algoritma Elgamal. Pada Dekripsi , Algoritma RSA
memiliki kecepata yang lebih cepat 0.011 detik jika
dibandingkan dengan algoritma ElGamal. Kecepatan
enkripsi dan dekripsi kedua algoritma dipengaruhi oleh
jumlah operasi mod.
V. APLIKASI DALAM KEHIDUPAN SEHARI-HARI
Kedua Algoritma ini, diaplikasikan pada halaman
web yang secure dan pada tanda tangan digital. Pada
halaman web, hasil enkripsi dengan algoritma Elgamal
menjadi dua kali lebih besar dari ukuran web sebelumnya.
Hal ini disebabkan karena adanya nilai a dan b yang
dihasil pada enkripsinya. Sedangkan pada algoritma RSA
hasil enkripsinya memiliki ukuran yang hampir sama
dengan ukuran yang semula. Hasil enkripsi pada pada
halaman web yang memiliki ukuran 59,232 bytes dapat
dilihat pada Tabel 2.
Tabel 2. Hasil percobaan enkripsi halaman web
Hasil Enkripsi Waktu
RSA 60,562 6 detik
ElGamal 119,502 13 detik
Untuk Tanda tangan digital, hasil signatur dari
algoritma elgmal berbeda-beda untuk tiap pesan yang
sama, sedangkan untuk algoritma RSA selalu sama untuk
pesan yang sama dan kunci yang sama. Pada Algoritma
Elgamal selalu berbeda disebabkan karena adanya
bilangan acak yang dibangkitkan pada saat enkripsi.
Sedangkan untuk RSA tidak ada. Apabila menggunakan
algoritma RSA untuk tanda tangan digital maka dapat
mengakbatkan orang lain dapat mengimitasi hasil dari
enkripsi RSA. Oleh karena itu, dapat disimpulkan bahwa
algoritma ElGamal lebih efektif bila digunakan untuk
tanda tangan digitial.
VI. KESIMPULAN
Berdasarkan hasil eksperimen yang dilakukan, dapat
diambil kesimpulan bahwa algoritma RSA memiliki
kecepatan yang lebih cepat dibandingan dengan algoritma
ElGamal dalam hal melakukan enkripsi dan dekripsi
pesan. Hal ini dapat dijelaskan dengan melihat rumus
Makalah IF3058 Kriptografi – Sem. II Tahun 2011/2012
yang digunakan untuk melakukan enkripsi dan dekripsi.
Pada algoritma RSA hanya melakukan operasi mod sekali
saja untuk tiap message sedangan pada algoritma elGamal
diperlukan sebanyak dua operasi mod dengan besar
bilangan yang sama yaitu 100 digit bilangan prima. Tetapi
dalam hal pembangkitan pasangan kunci publik dan kunci
privat algoritma ElGamal lebih cepat jika dibandingan
dengan algoritma RSA. Hal ini disebabkan karena jumlah
operasi mod yang digunakan dalam algoritma RSA lebih
banyak jika dibandingkan dengan algoritma Elgamal.
Algoritma RSA memiliki keunggulan yang lebih
cepat jika dibandingkan dengan algoritma ElGamal, tetapi
dalam hal kerumitan algoritma Elgamal memiliki
kerumitan yang lebih tinggi jika dibandingkan dengan
algoritma RSA. Hal ini mengakibatkan algoritma
ElGamal lebih susah untuk dipecahkan.
Dalam kehidupan sehari-hari, terutama dalam
keamanan pengiriman halaman web, algoritma RSA lebih
efisian jika dibandingankan dengan algoritma ElGamal
karena pada ElGamal hasil dari enkripsi merupakan dua
kali dari pesan semula. Hal ini mengakibatkan diperlukan
usaha lebih untuk mendownload ataupun meng-upload
halaman web yang mengakibatkan menjadi menjadi
lambat. Bukan karena ukuran saja, melainkan karena
kecepatan yang lebih lambat jika dibandingan dengan
algoritma RSA. Akan tetapi Algoritma ElGamal memiliki
keunggulan yaitu pada tanda tangan digital, yang selalu
menghasilkan hasil enkripsi yang berbeda-beda untuk
kunci dan pesan yang sama, sedangkan algoritma RSA
selalu mengahasil nilai yang sama.
VII. UCAPAN TERIMA KASIH
Saya mengucapakan terima kasih kepada Tuhan
Yang Maha Esa atas berkat-Nya sehingga saya dapat
menyelesaikan makalah ini, saya juga mengucapkan
terima kasih kepada dosen IF3058-Kriptografi karena
sudah memberi kesempatan sehingga saya dapat menulis
makalah ini. Saya berterima kasih kepada teman-teman
saya yang membantu saya dalam proses penyelesaian
makalah ini, sehingga makalah ini dapat selesai dengan
tepat waktu.
REFERENCES
[1] Munir, Rinaldi. 2006. Kriptografi. Bandung:
Informatika.
[2] A. J. Menezes, P. C. van Oorschot, and S. A.
Vanstone. "Chapter 8 Public Key Encryption".
Handbook of Applied Cryptography. CRC Press.
[3] http://agcrypt.wordpress.com/2008/02/25/elgamal-
algorithm/
Diakses tanggal 12 mei 2012 pukul 21.00 WIB
[4] http://clean-
clouds.com/2011/03/08/encryptionhybrid-approach/
Diakses tanggal 13 mei 2012 pukul 10.00 WIB
PERNYATAAN
Dengan ini saya menyatakan bahwa makalah yang saya
tulis ini adalah tulisan saya sendiri, bukan saduran, atau
terjemahan dari makalah orang lain, dan bukan plagiasi.
Bandung, 14 Mei 2012
Wico Chandra – 13509094