Kriptografi merupakan ilmu dan seni untuk menjaga kerahasiaan
suatu informasi. Orang yang melakukan kegian di bidang kriptografi dinamakan
kriptografer. Pesan kriptografi terdiri dari dua bentuk, yaitu plainteks dan
cipherteks. Plainteks merupakan pesan yang dapat dibaca dengan mudah dan sudah
jelas. Sedangkan cipherteks adalah pesan yang isinya acak sehingga tidak dapat
dibaca, pengacakan pesan tersebut menggunakan cara tertentu. Kriptografi
terdiri dari dua, yaitu simetri kriptografi dan asimetri kriptografi.
Saat ini algoritma kriptografi yang paling efektif adalah
algoritma RSA. Algoritma kriptografi ini sebenarnya sangat sederhana, yang
diperlukan hanya dua bilangan prima. Yang menjadi kekuatan dari RSA ini adalah
pencarian dua bilangan prima tersebut dari hasil kali kedua bilangan tersebut.
Jika dua bilangan tersebut memiliki digit yang sedikit, maka alogritma tersebut
sangatlah lemah. Sang penemu menyarankan menggunakan bilangan prima dengan 100
digit. Sehingga tidak mungkin didapat karena membutuh waktu bermiliar tahun
untuk mendapatkan kedua bilangan prima tersebut.
SEJARAH RSA
Gagasan tentang kriptografi asimetris menggunakan kunci
privat dan publik ditemukan oleh Whitfield Diffie dan Martin Hellman, pada
tahun 1976. Mereka juga memperkenalkan tanda tangan digital dan mencoba
menerapkan teori bilangan. Perumusan mereka dalam penggunaan kunci rahasia
secara bersama yang dibuat dari beberapa bilangan berpangkat, dan modulus pada
bilangan prima. Namun, mereka meninggalkan metode ini karena sulitnya untuk
membuat fungsi satu arah, hal ini terjadi karena kemungkinan besar sulit untuk
melakukan faktorisasi bilangan tidak dipelajari dengan baik pada saat itu.
Ron Rivest, Adi Shamir, dan Leonard Adleman
("R.S.A.") di Massachusetts Institute of Technology melakukan
beberapa upaya selama setahun untuk menciptakan fungsi satu arah yang sulit
untuk dibalikkan. Rivest dan Shamir, sebagai ilmuwan komputer, mengajukan
banyak fungsi yang potensial. Sementara Adleman, sebagai seorang matematikawan,
bertanggung jawab untuk menemukan kelemahan mereka. Mereka mencoba banyak
pendekatan termasuk "berbasis knapsack" dan "polinom
permutasi". Untuk sementara, mereka pikir tidak mungkin untuk mencapai apa
yang mereka inginkan karena persyaratan yang saling bertolak belakang.
Pada bulan April 1977, mereka menghabiskan Paskah di rumah
seorang siswa dan meminum banyak anggur Manischewitz sebelum kembali ke rumah
mereka pada tengah malam. Rivest, tidak bisa tidur, berbaring di sofa dengan
buku teks matematika dan mulai memikirkan fungsi satu arah mereka. Ia
menghabiskan sisa malam itu untuk mewujudkan idenya, dan ia telah menulis
dibanyak kertas hingga fajar menyingsing. Algoritma ini sekarang dikenal
sebagai RSA - yang merupakan inisial dari nama keluarga mereka dalam urutan
yang sama seperti kertas mereka.
Clifford Cocks, seorang matematikawan Inggris yang bekerja
untuk badan intelijen Inggris, Government Communications Headquarters
(GCHQ), membuat sebuah algoritma untuk meyandikan dokumen internal pada tahun
1973. Namun, karena harga computer yang cukup mahal pada saat itu, RSA dianggap
algoritma yang tepat untuk menyandikan dokumen tersebut, karena algoritma RSA
yang belum dikenal public dan jarang digunakan. Hingga pada tahun 1997, dokumen
yang telah disandikannya baru dapat buka sandinya. Ini berarti selama 24 tahun
dokumen tersebut aman dengan menggunakan ekripsi RSA.
Pada 1997 Algoritma turunan dari RSA pun mulai dikenalkan
dengan nama Kid-RSA (KRSA). KRSA adalah algoritma yang menggunakan kunci
public yang sederhana dan dirancang untuk tujuan pendidikan. Beberapa orang
merasa mempelajari Kid-RSA berarti juga mempelajari RSA dan kunci
publiknya, yang dianalogikan sebagai Algoritma DES yang disederhanakan.
CARA KERJA RSA
Gambar 1 Cara Kerja algoritma RSA
Pada dasarnya, cara kerja algoritma ini sangat sederhana,
yaitu pengirim pesan menyandikan pesannya dengan menggunakan kunci yang
dimilikinya. Kunci yang dimiliki penyandi tidak dapat digunakan untuk membuka
pesan kembali karena fungsi dari kuncinya hanya untuk menyandikan pesan. Yang
dapat membuka sandi dari pesan tersebut hanyalah penerima yang dialamatkan
dengan menggunakan kunci yang hanya dimiliki olehnya.
Langkah untuk melakukan untuk menentuka pasangan kunci,
enkripsi, dan dekripsi akan dijelaskan dibawah ini :
a. Pembuatan
pasangan kunci
Langkah-langkah melakukan pembangkit pasangan kunci
adalah sebagai berikut:
·
Pilih dua bilangan prima sembarang, sebut p
dan q. jaga kerahasian p dan q ini.
·
Hitung n = p x q. nilai dari n
tidak perlu dirahasiakan.
·
Hitung m = (p - 1)(q - 1).
Sekali m telah dihitung, a dan b dapat dihapus untuk
mencegah diketahui oleh orang lain.
·
Pilih sebuah bilangan bulat untuk kunci public,
sebut namanya e, yang relatif prima terhadap m.
·
Hitung kunci dekripsi, d,
dengan kekongruenan d º e-1 mod m.
b. Enkripsi
Langkah-langkah melakukan enkripsi adalah sebagai
berikut:
·
Nyatakan pesan menjadi: blok-blok plainteks: p1,
p2, p3,… (harus dipenuhi persyaratan bahwa nilai p, harus terletak
dalam himpunan nilai 0,1,2,…,(n – 1) untuk menjamin hasil perhitungan
tidak berada di luar himpunan).
· Hitung blok cipherteks c, untuk blok plain teks p, dengan persamaan
ci = pie mod n
dalam hal ini, e adalah kunci publik.
c. Dekripsi
Proses dekripsi dilakukan
dengan menggunakan persamaan
pi = cid
mod n
dalam hal ini, d
adalah kunci privat (privat key).
Dari uraian diatas, maka didapat beberapa komponen dalam menggunakan algoritma ini, yaitu:
a) p dan q
adalah bilangan prima (rahasia)
b) n = p x q (tidak rahasia)
c) m= (p-1) (q-1)
(rahasia)
d) e (kunci
enkripsi / publik) (tidak rahasia)
Perhatikan Langkah ker-5 pada proses pembangkitan pasangan kunci. Kekonguenan ed = 1 (mod m) sama dengan ed mod m = 1. Dengan menggunakan pernyataan a = b (mod m) ekivalen dengan a = b +km maka d dapat dicari dengan rumus :
Dalam implementasinya, nilai a dan b disarankan
memiliki nilai yang sangat besar (100 angka). Agar tidak mudah mendapatkan
factor bilangan prima dari n. Seperti yang telah dijelaskan di atas,
kekuatan algoritma RSA itu bergantung pada tingkat kesulitan memfaktor n
menjadi 2 bilangan prima. Dengan menggunakan komputer, pencarian faktor
bilangan prima menjadi mudah, oleh karena itu sang penemu menyarankan untuk
memilih dua buah bilangan prima yang jumlah digitnya minimal 100 sehingga hasil
perkalian kedua bilangan prima tersebut memiliki digit 200. Untuk mencari
factor bilangan prima dari 200 digit tersebut dibutuhkan waktu 4 miliar tahun
dengan kecepatan computer 1 milidetik.
KELEBIHAN DAN KEKURANGAN
Beberapa kelebihan dari algoritma RSA adalah :
a.
Ketahanannya
terhadap berbagai bentuk serangan, terutama serangan brute force.
b.
Masalah
Keamanan Pada distribusi kunci dapat lebih baik.
c.
Masalah
menejemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit.
d. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima.
Beberapa kekurangan dari algoritma RSA adalah :
a.
RSA
memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma
simetrik lainnya.
b.
Ukuran
kunci privat yang terlalu besar akan mengakibatkan proses dekripsi yang cukup
lambat, terutama untuk ukuran pesan yang besar.
c. RSA tidak di gunakan untuk mengenkripsi pesan, tetapi mengenkripsi kunci simetri dengan kunci public penerima pesan.
0 Komentar