Sabtu, 06 Maret 2010


Simulasi Enkripsi-Dekripsi RSA Menggunakan Library Bouncy Castle

Para peminat kriptografi dan Java, kali ini saya akan memberikan sedikit simulasi kriptografi dengan menggunakan bahasa pemrograman Java. Jika sebelumnya saya menggunakan algoritma simetrik AES-128, maka pada kesempatan kali ini saya akan menggunakan algoritma asimetrik RSA-1024. Lagi-lagi source code ini akan menggunakan kunci statik guna memudahkan pemahaman dan saya buat dengan versi saya sendiri. Silahkan bagi yang mau mendefinisikan requirement analysis dari source code untuk mensimulasikan enkripsi-dekripsi RSA ini, insya Allah akan saya buatkan yang sesuai…

Sedikit mengulas tentang algoritma asimetrik atau algoritma public key, yaitu algoritma yang menggunakan dua kunci yang berbeda pada proses enkripsi (public key) dan proses dekripsi (privat key). Cara kerja algoritma asimetrik berbeda dengan cara kerja algoritma simetrik.

Sebagai perumpamaan, kita adalah pihak pengirim berita yang mengirimkan berita yang penting dan harus dirahasiakan untuk itu kita membutuhkan sebuah mekanisme untuk mengirimkannya agar berita tersebut dapat terkirim secara aman, mekanisme itu adalah perumpamaan untuk kriptografi. Kemudian berita yang akan dikirimkan dimasukkan ke dalam box dan dikunci dengan kunci publik (public key) yang keberadaannya tidak dirahasiakan/dipublikasikan, hal ini merupakan proses enkripsi. Lalu box dikirimkan ke pihak penerima sesuai dengan alamat yang dimiliki, dan pihak penerima akan membuka box tersebut dengan kunci privat (private key) yang dimilikinya yang keberadaannya dirahasiakan, hal ini merupakan proses dekripsi. Kunci publik dan kunci privat berelasi kuat sehingga pasangan kunci ini tidak akan tertukar dengan pasangan kunci lainnya. Keberadaan kunci privat dirahasiakan sehingga hanya pihak yang sah saja yang dapat memiliki kunci privat ini, sedangkan pihak lainnya dapat memiliki kunci publik secara bebas karena tidak dirahasiakan dan bahkan dipublikasikan. Dengan adanya algoritma asimetrik, maka untuk melakukan kirim-terima berita antara n orang tidak akan dibutuhkan kunci dalam jumlah yang besar, yaitu N = n*(n-1)/2. Namun kunci yang dibutuhkan hanya sebanyak n*2 saja atau dengan kata lain penggunaan algoritma asimetrik ini dapat menyelesaikan permasalahan distribusi kunci.

RSA dibuat oleh Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi factor-faktor prima. Selama belum ditemukan algoritma yang mangkus untuk melakukan pemfaktoran bilangan besar maka selama itu pula keamanan algoritma RSA tetap terjamin. Algoritma RSA memiliki beberapa besaran sebagai berikut :

  1. p dan q bilangan prima (rahasia)
  2. n = p . q (tidak rahasia)
  3. ф(n) = (p - 1)(q - 1) (rahasia)
  4. e (kunci enkripsi) (tidak rahasia)
  5. d (kunci dekripsi) (rahasia)
  6. m (plainteks) (rahasia)
  7. c (cipherteks) (tidak rahasia).
Untuk melakukan simulasi enkripsi-dekripsi RSA, silahkan unduh file-nya download disini. Selamat mencoba… ^^


Thanx to mba Restia


Tidak ada komentar:

Posting Komentar

Terima kasih atas komentar Anda :)

Komentar