Algoritma Rivest Shamir Adleman RSA

X = g x mod n = 5 36 mod 97 = 50 Irfan mengirimkan X kepada Antoni. 2. Antoni memilih y = 58 dan menghitung Y = g y mod n = 5 58 mod 97 = 44 Antoni mengirimkan X kepada Irfan. 3. Irfan menghitung kunci simetris K, K = Y x mod n = 44 36 mod 97 = 75 4. Antoni menghitung kunci simetris K’, K’ = X y mod n = 50 58 mod 97 = 75 Jadi, Irfan dan Antoni sudah mempunyai kunci sesi yang sama, yaitu K = 75. Kunci siap digunakan untuk melakukan komunikasi dengan kriptografi simetris.

2.4 Algoritma Rivest Shamir Adleman RSA

RSA merupakan salah satu algoritma yang paling maju dalam bidang kriptografi. RSA masih digunakan secara luas dalam berbagai bidang kriptografi dan dipercaya dapat mengamankan kerahasiaan data dengan menggunakan kunci yang cukup panjang. Akan tetapi besarnya bilangan yang digunakan mengakibatkan lambatnya operasi yang melibatkan algoritma RSA ini [7].

2.4.1 Sejarah 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 [7]. 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 Universitas Sumatera Utara pada tahun 1997 karena merupakan proyek rahasia. Walau begitu algoritma yang dikembangkan Rivest, Shamir, dan Adleman tidak berhubungan dengan pekerjaan Cocks. Algoritma RSA dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat, dan paten tersebut berlaku hingga 21 September 2000. Semenjak Algoritma RSA dipublikasikan sebagai aplikasi paten, regulasi di sebagian besar negara-negara lain tidak memungkinkan penggunaan paten.

2.4.2 Algoritma RSA dalam Proses Enkripsi dan Dekripsi

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 p dan q. Jaga kerahasiaan p dan q ini. 2. Hitung n = p q. Besaran n ini tidak perlu dirahasiakan. 3. Hitung Фn = p-1 q-1. Sekali Фn telah dihitung, p dan q dapat dihapus untuk mencegah diketahuinya oleh pihak lain. 4. Pilih sebuah bilangan bulat untuk kunci publik, sebut namanya e, yang relatif prima terhadap Фn relatif prima berarti GCDe, Фn = 1 dengan syarat e ≠ p-1, e ≠ q-1, dan e n. 5. Kunci publik Public Key = n,e. 6. Hitung kunci privat d dengan kekongruenan ed ≡1 mod Фn. Maka d dapat dihitung dengan cara yang sederhana dengan syarat de mod Фn ≡ 1 mod Фn. Kita dapat menuliskan kembali pernyataan tersebut dengan d = Universitas Sumatera Utara 1+k Фne sehingga nilai-nilai k dapat diselesaikan sampai didapat sebuah nilai k dan d adalah anggota bilangan bulat. Proses enkripsi dapat dilakukan dengan : Sedangkan proses dekripsi dilakukan dengan : Dengan mencoba nilai k = 1, 2, 3, ..., diperoleh nilai d yang bulat. Nilai itu yang akan dipakai sebagai kunci pribadi untuk dekripsi pesan. Dalam implementasi sebenarnya, nilai p dan q diharapkan sangat besar sekali misalnya 100 digit agar pekerjaan memfaktorkan n menjadi faktor primanya menjadi sangat sukar, sehingga lebih susah untuk ditembus.

2.4.3 Keamanan dan Kecepatan RSA

Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor primanya, dalam hal ini memfaktorkan n menjadi p dan q. Masing-masing p dan q besarnya dapat mencapai 100 sampai 200 digit dan bahkan lebih. Sekali n berhasil difaktorkan, maka menghitung nilai m adalah perkara mudah. Selanjutnya, walau nilai e diumumkan, perhitungan kunci d tidaklah mudah pula karena nilai m yang tidak diketahui [10]. RSA memiliki modulus 512-bit dengan kecepatan 64 kilobit per detik. Saat ini chip sedang direncanakan akan mendekati 1 megabit per detik menggunakan modulus 512-bit. Dalam perangkat keras, kecepatan RSA sekitar 1000 kali lebih lambat dibandingkan dengan DES. Sedangkan dalam perangkat lunak, kecepatan DES adalah sekitar 100 kali lebih cepat dari kecepatan RSA [13]. C i = m i e mod n m i = C i d mod n Universitas Sumatera Utara

2.5 Lucas Lehmer Primality Test