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.