Hanes1 Rin Rin Meilani Salim2
1,2
Fakultas Ilmu Komputer dan Teknologi Informasi, Program Studi S-2 Teknik Informatika, Universitas Sumatera Utara
1,2
Program Studi S-1 Sistem Informasi, STMIK Mikroskil
E-mail:2)
ABSTRAK
Berkembangnya teknologi informasi dan komunikasi selain memberikan manfaat bagi kehidupan manusia, juga memberikan dampak negatif. Dengan berkembangnya teknologi dan perkembangan ilmu pengetahuan saat ini, membuat pencurian data semakin mudah untuk dilakukan. Untuk itu perlu adanya sebuah algoritma yang dapat mengamankan data penting sebelum data tersebut disimpan. Algoritma RSA merupakan algoritma kriptografi asimetris. Sebagai algortima kunci public, RSA mempunyai dua kunci, yaitu kunci public dan kunci private. Kunci public boleh diketahui oleh siapa saja, dan digunakan untuk proses enkripsi. Sedangkan kunci private hanya pihak-pihak tertentu saja yang boleh mengetahuinya, dan digunakan untuk proses dekripsi. Dengan menggunakan algoritma RSA data berupa password yang disimpan di dalam database akan dienkripsi terlebih dahulu sehingga data tersebut menjadi bentuk yang tidak dapat dimengerti oleh orang yang membacanya. Dan apabila data tersebut akan dipakai, maka dilakukan proses dekripsi untuk mengembalikan data tersebut ke bentuk aslinya.
Kata kunci : Kriptografi, Asimetris, RSA
1. Pendahuluan
Pada perkembangan teknologi informasi dan komunikasi dewasa ini, hal yang menjadi penting bagi para penggiat teknologi adalah isu pengamanan data. Data merupakan elemen penting yang harus diamankan karena kumpulan dari data yang telah disimpan dan diproses, dapat menghasilkan sebuah informasi yang penting bagi orang lain. Banyak pelaku kejahatan pencurian data memanfaatkan hal tersebut untuk kepentingannya ataupun orang lain seperti pencurian yang dilakukan untuk mengambil data penting dari pihak lawan bisnis ataupun pembobolan kartu ATM dan sebagainya.
Dengan berkembangnya ilmu pengetahuan dan kecanggihan teknologi informasi, semakin mudah bagi para pencuri data untuk melakukan kejahatannya. Salah satu data yang paling penting untuk diamankan adalah password yang disimpan di dalam sebuah database misalnya pada Microsoft SQL Server 2012. Maka dari itu perlu adanya sebuah teknik pengamanan data yang dapat mengamankan data tersebut.
Untuk mengamankan password yang disimpan di dalam sebuah database, penulis menggunakan algoritma kriptografi RSA untuk meng-enkripsi password yang telah disimpan menjadi bentuk lain.
2. Landasan Teori
Kriptografi bertujuan menjaga kerahasiaan informasi yang tekandung dalam data sehingga informasi tersebut tidak dapat dikethui oleh pihak yang tidak sah. Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data asli (plaintext) ke dalam bentuk data santi (ciphertext) yang tidak
dapat dikenali. Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai di penerima, ciphertext tersebut ditransformasikan kembali ke dalam bentuk plaintext agar dapat dikenali. Proses tranformasi dari plaintext menjadi ciphertext disebut proses Encripherment atau enkripsi (encryption), sedangkan proses mentransformasikan kembali ciphertext menjadi plaintext disebut proses dekripsi (decryption). Kriptografi menggunakan suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi metematika yang digunakan untuk mengenkripsi dan mendekripsi data. Secara sederhana istilah-istilah di atas digambarkan sebagai berikut.
Gambar 1. Proses Enkripsi dan Dekripsi Berdasarkan kunci yang digunakan, algoritma kriptografi dapat dibedakan atas dua golongan, yaitu:
a. Symmetric Algorithms
Algoritma kriptografi simetris atau disebut juga algoritma konvensional adalah algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi.
b. Asymmetric Algorithms
Algoritma kriptografi asimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini disebut juga algoritma kunci public (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat diketahui oleh
setiap orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci private (private key). Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA dan ECC.
Gambar 2. Proses Enkripsi dan Dekripsi Kriptografi Asimetris
RSA merupakan algoritma kriptografi asimetris. Ditemukan pertama kali pada tahun 1976 oleh Ron Rivest, Adi Shamir, dan Leonard Adleman. Nama RSA sendiri diambil dari inisial nama depan ketiga penemunya tersebut. Sebagai algortima kunci public, RSA mempunyai dua kunci, yaitu kunci public dan kunci private. Kunci public boleh diketahui oleh siapa saja, dan digunakan untuk proses enkripsi. Sedangkan kunci private hanya pihak-pihak tertentu saja yang boleh mengetahuinya, dan digunakan untuk proses dekripsi.
Untuk pembangkitan pasangan kunvi RSA, digunakan algoritma sebagai berikut:
1. Dipilih dua buah bilangan prima sembarang yang
besar, p dan q. Nilai p dan q harus dirahasiakan.
2. Dihitung n = p x q. Besaran n tidak perlu
dirahasiakan.
3. Dihitung m = (p – 1)(q – 1)
4. Dipilih sebuah bilangan bulat sebagai kunci
public, disebut namanya e, yang relatif prima terhadap m. e relatif prima terhadap m artinya faktor pembagi terbesar keduanya adalah 1, secara matematis disebut gcd(e,m) = 1. Untuk mencarinya dapat digunakan algoritma Euclid.
5. Dihitung kunci private, disebut namanya d
sedemikian agar (d x e) mod n = 1. Untuk mencari nilai d yang sesuai dapat juga digunakan algoritma Extended Euclid.
Maka hasil dari algoritma tersebut diperoleh: 1. Kunci public adalah pasangan (e,n)
2. Kunci private adalah pasangan (e,m)
3. n tidak bersifat rahasia, namun diperlukan pada
perhitungan enkripsi/dekripsi.
Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n = p x q. jika n berhasil difaktorkan menjadi p dan q, maka m = (p – 1) (q – 1) dapat dihitung. Dan karena kunci enkripsi e telah diumumkan (tidak dirahasiakan), maka kunci dekripsi d dapat dihitung melalui persmaan (d x e) mod n = 1. Selama belum ditemukan cara untuk memfaktorkan bilangan besar menjadi faktor-faktor primanya, maka selama itu pula keamanan algoritma RSA terjamin.
Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan demikian hasil dari n = p x q akan berukuran lebih dari 200
digit. Dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan computer yang dipakai mempunyai kecepatan 1 milidetik, menurut Rivest dan kawan-kawan, usaha untuk mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun.
3. Penerapan Algoritma Kriptografi RSA
Untuk lebih jelasnya tentang penerapan algoritma RSA, berikut terdapat kasus sederhana yang menggunakan algoritma RSA untuk enkripsi dan dekripsi data.
Plaintext = HARIINI
Plaintext diubah ke dalam ASCII = 7265827332737873
Pembentukan kunci:
Misalkan p = 47 dan q = 71 (p dan q harus bilangan prima) di mana p dan q dipilih secara acak.
Hitung : n = p.q = 47 x 71 = 3337 Maka Ф(n) = (p-1)(q-1) = 3220
Pilih kunci public e = 79 (relative prima terhadap 3220 karena pembagi terbesar bersamanya adalah 1).
Hitung nilai cipher dengan menggunakan kunci public e: C1 = m1e mod n = 72679 mod 3337 = 215 C2 = m2e mod n = 58279 mod 3337 = 776 C3 = m3e mod n = 73379 mod 3337 = 1743 C4 = m4e mod n = 27379 mod 3337 = 933 C5 = m5e mod n = 78779 mod 3337 = 1731 C6 = m6e mod n = 00379 mod 3337 = 158 Selanjutnya bentuk kunci private: e.d = 1 (mod Ф (n))
d= (1 (mod Ф (n)))/m = 1019 Proses enkripsi:
Pecah M menjadi blok yang lebih kecil:
m1 = 726, m2 = 582, m3 = 733, m4 = 273, m5 = 787, m6 = 003
jadi ciphertext yang dihasilkan adalah 215 776 1743 933 1731 158
Proses dekripsi:
Ubahlah ciphertext dengan menggunakan kunci private m1 = C1d mod n = 2151019 mod 33337 = 726 m2 = C2d mod n = 7761019 mod 33337 = 582 m3 = C3d mod n = 17431019 mod 33337 = 733 m4 = C4d mod n = 9331019 mod 33337 = 273 m5 = C5d mod n = 17311019 mod 33337 = 787 m6 = C6d mod n = 1581019 mod 33337 = 3
jadi plaintext yang dihasilkan = 726 582 733 273 787 3 = HARIINI[4]
Penerapan algoritma RSA diterapkan pada sebuah aplikasi registrasi user. Password yang diregistrasi akan dienkripsi terlebih dahulu sebelum dimasukkan ke dalam basis data. Password yang tersimpan nantinya tidak akan dapat dimengerti oleh orang yang membacanya karena password tersebut telah diubah menjadi bentuk lain.
Adapun rancangan form registrasi user dapat dilihat pada gambar dibawah ini.
Gambar 3. Form Registrasi
Pada proses registrasi, user memasukkan user name dan password ke dalam form registrasi. Gambar dibawah ini menunjukkan user name yang dimasukkan adalah “Budi” dan passwordnya adalah “universitas”.
Gambar 4. Tampilan Data yang Diregistrasi Setelah proses registrasi selesai dilakukan, maka data tersebut disimpan ke dalam database. Penulis telah memodifikasi data yang telah disimpan di dalam database tersebut dengan menambahkan p1 dan p2 yang telah dienkripsi di paling belakang password untuk memudahkan proses pengambilan kembali password ketika user melakukan login. Data yang telah tersimpan dapat dilihat pada gambar di bawah ini.
Gambar 5. Hasil Enkripsi Password
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 6. Hasil Enkripsi Password pada Saat Login
4. Kesimpulan
Dengan mengenkripsi password yang terdapat 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.
Referensi
Alan G.Konheim (2007). “Computer Security and Cryptography”. New Jersey. John Wiley & Sons. Inc.
Dony Ariyus (2008). “Pengantar Ilmu Kriptografi, Teori, Analisis, dan Implementasi”. Yogyakarta. Andi Offset.
Steve Burnett and Stephen Paine, 2001, “RSA Security’s Official Guide to Cryptography”. McGraw-Hill Companies. Inc.
Husni Lubis. Ihsan Lubis. Sayuti Rahman (2012). “Metode Enkripsi Menggunakan Algoritma RSA pada Sistem Login”. SNASTIKOM 2012.
Septya Mahrani. Fahrul Agus. 2009. “Implementasi Perangkat Lunak Penyandian Pesan Menggunakan Algoritma RSA”. Jurnal Informatika Mulawarman, Vol 4 No. 1 Feb 2009.