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