Algoritma Kriptografi RSA

 

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.


Posting Komentar

0 Komentar