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