Algoritma Kriptografi RSA Konsep Dasar Perhitungan Matematis

22 Ciphertext AddRoundKey InvShiftRow InvSubByte AddRoundKey InvMixColoumn InvShiftRow InvSubByte KeyAddition Plaintext 9 putaran Gambar 2.8 Alur proses dekripsi algoritma AES, key 128-bit Stallings, 2003

2.5. Algoritma Kriptografi RSA

Algoritma kriptografi RSA ditemukan oleh tiga orang yang kemudian nama-nama mereka disingkat menjadi RSA. Ketiga penemu itu adalah Ron Riverst, Adi Shamir, dan Leonard Adleman. RSA dibuat di MIT pada tahun 1977 dan dipatenkan oleh MIT Massachussets Institute of Technology pada tahun 1983. Sejak 21 September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas Brian, 2000. RSA merupakan algoritma kriptografi asimetrik yang paling mudah untuk diimplementasikan dan dimengerti Ariyus, 2008. Algoritma kriptografi RSA merupakan algoritma yang termasuk dalam kategori algoritma asimetri atau algoritma kunci publik. Algoritma kriptografi RSA Universitas Sumatera Utara 23 didesain sesuai fungsinya sehingga kunci yang digunakan untuk enkripsi berbeda dari kunci yang digunakan untuk dekripsi. Algoritma RSA disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya, namun hanya orang tertentu si penerima pesan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci publik yang dapat melakukan dekripsi terhadap pesan tersebut. Keamanan algoritma RSA didasarkan pada sulitnya memfaktorkan bilangan besar menjadi faktor-faktor primanya Sulistyanto, 2004. Secara umum ada beberapa besaran-besaran yang harus diperhatikan dalam algoritma RSA, yaitu : 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 ciphertext rahasia

2.6. Konsep Dasar Perhitungan Matematis

Dalam setiap proses pada algoritma RSA terdapat perhitungan matematis. Pada proses pembangkitan kunci dibutuhkan perhitungan untuk menentukan nilai Totient n dan perhitungan dengan algoritma Euclidean untuk menentukan nilai dua buah bilangan yang relatif prima. Sedangkan pada proses enkripsi dan dekripsi dilakukan perhitungan menggunakan metode Fast Exponentiation. 2.6.1. 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 gcda,b = 1 pembagi bersama terbesar dari a dan b adalah 1. Jika n = pq p dan q bilangan prima maka ϕ n = ϕ p . ϕ q = p-1q-1 Universitas Sumatera Utara 24 Contoh : ϕ 15 = ϕ 3 ϕ 5 = 2x4 = 8 buah bilangan bulat yang relatif prima terhadap 15, yaitu 1,2,4,7,8,11,13,14. 2.6.2. Algoritma Euclidean Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar PBB dari dua bilangan bulat Munir, 2006. 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 PBBm, n; stop. Jikalau tidak yaitu n ≠ 0 lanjutkan ke langkah nomor 2. 2. Bagilah m dengan n dan misalkan sisanya adalah r. 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 : menghitung nilai GCD100, 64 dan GCD43, 19. 100 mod 64 43 mod 19 64 = 1 . 36 + 28 43 = 2 . 19 + 5 36 = 1 . 28 + 8 19 = 3 . 5 + 4 28 = 2 . 8 + 4 5 = 1 . 4 + 1 8 = 2 . 4 + 0 4 = 4 . 1 + 0 Nilai GCD100, 64 = 4 Nilai GCD43, 19 = 1 GCD100, 64 ≠ 1 2.6.3. 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 abc.... mod m = [a mod mb mod mc mod m....] mod m Universitas Sumatera Utara 25 Untuk lebih jelasnya mengenai langkah-langkah metode fast exponentiation dapat dilihat pada contoh berikut. Sebagai ilustrasi, untuk menghitung 1504 283 mod 2077 dapat dilakukan sebagai berikut. 1504 1 = 1504 mod 2077 1504 2 = 163 mod 2077 1504 4 = 163 2 mod 2077 = 1645 mod 2077 1504 8 = 1645 2 mod 2077 = 1771 mod 2077 1504 16 = 1771 2 mod 2077 = 171 mod 2077 1504 32 = 171 2 mod 2077 = 163 mod 2077 1504 64 = 163 2 mod 2077 = 1645 mod 2077 1504 128 = 1645 2 mod 2077 = 1771 mod 2077 1504 256 = 1771 2 mod 2077 = 171 mod 2077 Maka, 1504 283 mod 2077 = 1504 1+2+8+16+256 mod 2077 = 1504 1 . 1504 2 . 1504 8 . 1504 16 . 1504 256 mod 2077 = [1504 1 mod 2077 . 1504 2 mod 2077 . 1504 8 mod 2077 . 1504 16 mod 2077 . 1504 256 mod 2077] mod 2077 = [1504 mod 2077 . 163 mod 2077 . 1771 mod 2077 . 171 mod 2077 . 171 mod 2077 ] mod 2077 = [ 1504 . 163 . 1771 . 171 . 171 ] mod 2077 = [ 66 . 1771 . 171 . 171 ] mod 2077 = [ 574 . 171 . 171 ] mod 2077 = [ 535 . 171 ] mod 2077 = [ 97 ] mod 2077 Jadi, nilai dari 1504 283 mod 2077 = 97 Universitas Sumatera Utara 26

2.7. Cara Kerja Algoritma RSA