Penerapan Algoritma Kriptografi RSA
3. Penerapan Algoritma Kriptografi RSA
Untuk lebih jelasnya tentang penerapan algoritma Gambar 2. Proses Enkripsi dan Dekripsi
RSA, berikut terdapat kasus sederhana yang Kriptografi Asimetris
menggunakan algoritma RSA untuk enkripsi dan dekripsi data.
RSA merupakan algoritma kriptografi asimetris.
Plaintext = HARIINI
Ditemukan pertama kali pada tahun 1976 oleh Ron Plaintext diubah ke dalam ASCII = Rivest, Adi Shamir, dan Leonard Adleman. Nama
RSA sendiri diambil dari inisial nama depan ketiga
Pembentukan kunci:
penemunya tersebut. Sebagai algortima kunci public, Misalkan p = 47 dan q = 71 (p dan q harus RSA mempunyai dua kunci, yaitu kunci public dan
bilangan prima) di mana p dan q dipilih secara acak. kunci private. Kunci public boleh diketahui oleh siapa
Hitung : n = p.q = 47 x 71 = 3337 saja, dan digunakan untuk proses enkripsi. Sedangkan
Maka Ф(n) = (p-1)(q-1) = 3220 kunci private hanya pihak-pihak tertentu saja yang
Pilih kunci public e = 79 (relative prima terhadap boleh mengetahuinya, dan digunakan untuk proses
3220 karena pembagi terbesar bersamanya adalah 1). dekripsi.
Hitung nilai cipher dengan menggunakan kunci Untuk pembangkitan pasangan kunvi RSA, public e: digunakan algoritma sebagai berikut:
C1 = m1 e mod n = 726 79 mod 3337 = 215
1. Dipilih dua buah bilangan prima sembarang yang C2 = m2 e mod n = 582 79 mod 3337 = 776 C3 = m3 e mod n = 733 besar, p dan q. Nilai p dan q harus dirahasiakan. 79 mod 3337 = 1743
2. Dihitung n = p x q. Besaran n tidak perlu C4 = m4 e mod n = 273 79 mod 3337 = 933 C5 = m5 e mod n = 787 dirahasiakan. 79 mod 3337 = 1731
3. e Dihitung m = (p – 1)(q – 1) C6 = m6 mod n = 003 79 mod 3337 = 158
4. Dipilih sebuah bilangan bulat sebagai kunci Selanjutnya bentuk kunci private: public, disebut namanya e, yang relatif prima
e.d = 1 (mod Ф (n))
terhadap m. e relatif prima terhadap m artinya d= (1 (mod Ф (n)))/m = 1019
faktor pembagi terbesar keduanya adalah 1, secara
Proses enkripsi:
matematis disebut gcd(e,m) = 1. Untuk Pecah M menjadi blok yang lebih kecil: mencarinya dapat digunakan algoritma Euclid.
m1 = 726, m2 = 582, m3 = 733, m4 = 273, m5 =
5. Dihitung kunci private, disebut namanya d 787, m6 = 003 sedemikian agar (d x e) mod n = 1. Untuk mencari
jadi ciphertext yang dihasilkan adalah 215 776 nilai d yang sesuai dapat juga digunakan 1743 933 1731 158 algoritma Extended Euclid.
Proses dekripsi:
Maka hasil dari algoritma tersebut diperoleh: Ubahlah ciphertext dengan menggunakan kunci
1. Kunci public adalah pasangan (e,n)
private
2. m1 = C1 d mod n = 215 Kunci private adalah pasangan (e,m) 1019 mod 33337 = 726
3. n tidak bersifat rahasia, namun diperlukan pada m2 = C2 d mod n = 776 1019 mod 33337 = 582 m3 = C3 d perhitungan enkripsi/dekripsi. 1019 mod n = 1743 mod 33337 = 733 Keamanan algoritma RSA terletak pada tingkat
m4 = C4 d mod n = 933 1019 mod 33337 = 273 m5 = C5 kesulitan dalam memfaktorkan bilangan non prima d mod n = 1731 1019 mod 33337 = 787 m6 = C6 menjadi faktor primanya, yang dalam hal ini n = p x d mod n = 158 1019 mod 33337 = 3
q. jika n berhasil difaktorkan menjadi p dan q, maka jadi plaintext yang dihasilkan = 726 582 733 273 m = (p – 1) (q – 1) dapat dihitung. Dan karena kunci
787 3 = HARIINI [4]
enkripsi e telah diumumkan (tidak dirahasiakan), Penerapan algoritma RSA diterapkan pada sebuah maka kunci dekripsi d dapat dihitung melalui
aplikasi registrasi user. Password yang diregistrasi persmaan (d x e) mod n = 1. Selama belum
akan dienkripsi terlebih dahulu sebelum dimasukkan ditemukan cara untuk memfaktorkan bilangan besar
ke dalam basis data. Password yang tersimpan menjadi faktor-faktor primanya, maka selama itu pula
nantinya tidak akan dapat dimengerti oleh orang yang keamanan algoritma RSA terjamin.
membacanya karena password tersebut telah diubah Penemu algoritma RSA menyarankan nilai p dan
menjadi bentuk lain.
q panjangnya lebih dari 100 digit. Dengan demikian Adapun rancangan form registrasi user dapat hasil dari n = p x q akan berukuran lebih dari 200
dilihat pada gambar dibawah ini.
ISBN: 979-458-766-4 KeTIK 2014 Konferensi Nasional Pengembangan Teknologi Informasi dan Komunikasi
Untuk menjaga agar password yang telah disimpan lebih aman maka setiap kali user melakukan login, password yang tersimpan akan dienkripsi kembali dengan mengganti nilai p1 dan p2 yang lama dengan nilai p1 dan p2 yang baru yang di-generate secara acak.
Gambar 3. Form Registrasi Gambar 6. Hasil Enkripsi Password pada Saat Pada proses registrasi, user memasukkan user
Login
name dan password ke dalam form registrasi. Gambar
dibawah ini menunjukkan user name yang 4. Kesimpulan
dimasukkan adalah “Budi” dan passwordnya adalah Dengan mengenkripsi password yang terdapat “universitas”.
pada tabel user, keamanan sebuah aplikasi lebih terjamin. Aplikasi yang dirancang juga menambahkan
sistem pengamanan tambahan dengan mengenkripsi password dengan hasil yang berbeda-beda setiap kali user melakukan login. Walaupun para pencuri data mendapatkan password yang tersimpan di dalam database, tetapi mereka tidak dapat menggunakan password tersebut secara langsung. Data yang telah dienkripsi harus didekripsi terlebih dahulu sebelum digunakan di sistem login.