Algoritma RSA Sistem Tanda Tangan Digital Pada Pesan Teks Menggunakan Algoritma Kriptografi Kunci Publik Rsa

27

2.8. Algoritma RSA

Algoritma kriptografi RSA dibuat oleh tiga orang peneliti dari MIT Massachussets Institute of Technology pada tahun 1976, yaitu Ron Rivest, Adi Shamir dan Leonard Adleman. 2.8.1. Konsep dasar perhitungan matematis Algoritma RSA Dalam algoritma RSA terdapat perhitungan matematis dalam pembangkitan pasangan kunci maupun enkripsi dan dekripsi pesan. Pada proses pembangkitan kunci dibutuhkan perhitungan yang akan menentukan nilai dari φ n Totient n dan perhitungan yang menggunakan algortima Euclidean untuk menentukan dua buah bilangan yang relatif prima. Selain itu pada proses enkripsi dan dekripsi dilakukan juga perhitungan dengan menggunakan metode Fast Exponentiation. Algoritma kriptografi RSA merupakan algoritma yang termasuk dalam kategori algoritma asimetri atau algoritma kunci publik. Algoritma kriptografi RSA didesain sesuai fungsinya sehingga kunci yang digunakan untuk enkripsi berbeda dari kunci yang digunakan untuk dekripsi. Algoritma RSA disebut algoritma kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya, namun hanya orang tertentu si penerima pesan sekaligus pemilik pasangan kunci publik yang dapat melakukan dekripsi terhadap pesan tersebut. Keamanan algoritma RSA adalah sulitnya memfaktorkan bilangan besar menjadi faktor primanya Munir, 2006. Hal itu dapat ditunjukkan dari beberapa kriptosistem yang merupakan bukti konstruktif dari kesulitan untuk memfaktorkan bilangan terhadap serangan chosen-chipertext attack Rosen, 2007. Kita telah melihat bahwa memfaktoran bilangan dalam algoritma RSA berarti dapat memecahkan kriptosistem, tetapi dalam kenyataannya tidak seperti itu. Dengan kata lain, belum ada metode untuk memecahkan RSA. Walaupun tidak mudah untuk dibuktikan, hal itu menunjukkan bahwa komputasi eksponen pada RSA adalah komputasi pemfaktoran modulus yang keduanya memiliki kompleksitas Rosen, 2007. Secara umum ada beberapa besaran-besaran yang harus diperhatikan dalam algoritma RSA, yaitu : Universitas Sumatera Utara 28 1. p dan q adalah bilangan prima rahasia 2. n = p.q tidak rahasia 3. n = p-1q-1 rahasia 4. e kunci enkripsi tidak rahasia 5. d kunci dekripsi rahasia 6. m plaintext tidak rahasia 7. c chipertext rahasia A. Fungsi Totient Euler φ Fungsi Totient Euler φ atau biasa disebut dengan fungsi Euler merupakan salah satu fungsi yang dipakai dalam perhitungan matematis pada algoritma RSA. Fungsi Euler mendefinisikan φn untuk n ≥ 1 yang menyatakan jumlah bilangan bulat positif n yang relatif prima dengan n Munir, 2006. Dua bilangan bulat a dan b dikatakan relatif prima jika GCD a, b = 1 pembagi bersama terbesar dari a dan b adalah 1. Jika n = p . q p dan q bilangan prima maka φn = p-1 q-1 Contoh 1. φ15 = 3-1 5-1 = 8 buah bilangan bulat yang relatif prima terhadap 15, yaitu 1,2,4,7,8,11,13,14. B. Algoritma Euclidean Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar atau Greatest Common Divisor GCD dari dua bilangan bulat Munir, 2006. Penemu algoritma Euclidean adalah Euclid, seorang matematikawan Yunani. Algoritma ini didasarkan pada pernyataan bahwa ada dua buah bilangan bulat tak negatif yakni m dan n dimana nilai m ≥ n. Adapun tahap-tahap pada algoritma Euclidean adalah: 1. Jika n = 0 maka m adalah GCDm, n; stop. Kalau tidak yaitu n ≠ 0 lanjutkan ke langkah nomor 2. 2. Bagilah m dengan n dan misalkan sisanya adalah r. Universitas Sumatera Utara 29 3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah nomor 1. Algoritma Euclidean dapat digunakan untuk mencari dua buah bilangan bulat yang relatif prima. Dua buah bilangan bulat dikatakan relatif prima jika GCD dari kedua bilangan bernilai 1. Contoh 2. Hitung nilai GCD277, 30 dan GCD43, 19. 277 mod 30 43 mod 19 277 = 9 . 30 + 7 43 = 2 . 19 + 5 30 = 4 . 7 + 2 19 = 3 . 5 + 4 7 = 3 . 2 + 1 5 = 1 . 4 + 1 2 = 2 . 1 + 0 4 = 4 . 1 + 0 Nilai GCD277, 30 = 1 Nilai GCD43, 19 = 1 C. Metode Fast Exponentiation Metode ini digunakan untuk menghitung operasi pemangkatan besar bilangan bulat modulo dengan cepat Munir, 2006. Metode ini berdasarkan pada pernyataan berikut ini: ab mod m = [a mod mb mod m] mod m 2.1 Untuk lebih jelasnya mengenai langkah-langkah metode fast exponentiation dapat dilihat pada contoh dibawah ini. Contoh 3. Hitung nilai dari 47 52 mod 277. Sebagai ilustrasi, untuk menghitung 47 52 mod 277 dapat dilakukan sebagai berikut. 47 52 = 47 4 . 47 16 . 47 32 47 2 mod 277 = 2209 mod 277 = 270 47 4 mod 277 = 47 2 . 47 2 mod 277 = [ 47 2 mod 277 47 2 mod 277 mod 277 ] Universitas Sumatera Utara 30 = 270 2 mod 277 = 49 47 8 mod 277 = 47 4 . 47 4 mod 277 = [ 47 4 mod 277 47 4 mod 277 mod 277 ] = 49 2 mod 277 = 185 47 16 mod 277 = 47 8 . 47 8 mod 277 = [ 47 8 mod 277 47 8 mod 277 mod 277 ] = 185 2 mod 277 = 154 47 32 mod 277 = 47 16 . 47 16 mod 277 = [ 47 16 mod 277 47 16 mod 277 mod 277 ] = 154 2 mod 277 = 171 47 52 mod 277 = [ 47 32 mod 277 47 16 mod 277 47 4 mod 277 mod 277 ] = 171 . 154 . 49 mod 277 = 1290366 mod 277 = 100 Jadi nilai dari 47 52 mod 277 = 100

2.9. Proses Enkripsi dan Dekripsi RSA