Pelita Informatika Budi Darma, Volume : XVI, Nomor: 1, Januari 2017 ISSN : 2301-9425
PENERAPAN ALGORITMA RSA DAN DES PADA PENGAMANAN FILE TEKS Nada Safarina 1)
Mahasiswa program studi Teknik Informatika STMIK Budidarma Medan Jl. Sisingamangaraja No. 338 Simpang limun Medan
ABSTRAK Kriptografi merupakan bidang yang sangat banyak di-implementasikan saat ini dalam bidang pengamanan digital. Metode kriptografi terus berkembang mulai dari kriptografi simetris yang menerapkan kunci identik pada proses enkripsi dan dekripsi sampai metode kriptografi asimetris yang menerapkan kunci public dan private dalam proses enkripsi dan dekripsinya. Beberapa metode yang cukup dikenal saat ini salah satunya adalah metode RSA. Metode RSA merupakan metode enkripsi yang menerapkan kunci public dan kunci private pada proses enkripsi dan dekripsinya. Hal ini membuat algoritma RSA cukup baik dalam mengautentikasi pengirim dan penerima. Namun algoritma RSA merupakan metode yang cukup sederhana sehingga banyak kasus kriptanalisis pada chiperteks hasil RSA. Untuk mengatasi itu pada penelitian ini dilakukan kombinasi algoritma RSA yang memiliki keunggulan dalam penerapan kunci asimetris dengan algoritma yang memiliki kompleksitas tinggi sehingga memiliki daya tahan yang cukup baik seperti DES. Sistem yang dikembangkan pada penelitian ini menunjukkan kombinasi berjalan cukup baik dimana proses enkripsi dan dekripsi membutuhkan kunci yang berbeda sehingga meningkatkan kemanan di sisi autentikasi serta memiliki chiperteks yang lebih kompleks hasil proses enkripsi algoritma DES. Kata Kunci: Teks, Kriptografi, RSA, DES. RSA dimana algoritma ini termasuk algoritma asimetris atau penggunaan dua kunci dalam proses dekripsi dan enkripsinya. Algoritma ini dibuat oleh tiga orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976 yaitu, Ron Riverst, Adi Shamir dan Leonard Adleman. Keunggulan dari algortima ini adalah tingkat kesulitanya adalah dalam memfaktorkan bilangan non prima menjadi faktor primanya. Di dalam implementasinya, algoritma RSA membangkitkan dua kunci. Yang pertama adalah kunci umum atau public key, kunci ini digunakan untuk melakukan enkripsi. Sedangkan kunci yang kedua adalah kunci privat atau private key. Kunci ini digunakan pada saat melakukan dekripsi chipertext menjadi plaintext yang asli. Untuk melakukan pembangkitan dua kunci ini, diperlukan dua buah bilangan prima yang besar. Dalam perhitungan untuk menemukan kunci tersebut, dibutuhkan beberapa teori matematika yang digunakan untuk menunjang perhitungan dalam mencari dua bilangan prima besar. Standart saat ini merekomendasikan ukuran 512 bit walaupun sebenarnya membongkar 256 bit saja sudah sangat sulit menggunakan komputer biasa. Banyak sekali jenis algoritma kriptografi, diantaranya adalah algoritma Data Encryption Standard (DES). Algoritma ini termasuk jenis simetri yang disebut jugasebagai algoritma konvensional, yaitu algoritma yang menggunakan kunci enkripsi dankunci dekripsi yang sama.M. Yuli Andri meneliti tentang implementasi algoritma kriptografi DES padaberkas digital [3]. Irjatul Wardah meneliti tentang kriptografi algoritmaDES untuk image yang dikirim menggunakan telephone seluler [4]. Indra Syahputra meneliti tentang simulasi keamanan informasi
1. PENDAHULUAN Kriptografi merupakan ilmu atau seni untuk menjaga kemanan sebuah pesan data yang dikirim dari satu tempat ketempat lain [1]. Salah satu aspek keamanan yang perlu dijamin dalam satu pesan secara digital adalah kerahasiaanya. Kerahasiaan adalah layanan yang digunakan dalam menjaga informasi dari setiap pihak yang tidak berwenang untuk mengaksesnya. Masalah keamanan dan kerahasiaan data merupakan salah satu aspek penting dari suatu sistem informasi. Dalam hal ini, sangat terkait dengan betapa pentingnya informasi tersebut dikirim dan diterima oleh orang yang berkepentingan. Informasi akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau dibajak oleh orang yang tidak berhak. Kriptografi merupakan bidang ilmu yang bertujuan untuk menjaga kerahasiaan pesan dari pihak yang tidak berhak. Bidang kriptografi telah melahirkan berbagai jenis metode dan teknik yang dapat digunakan pada kegiatan pengamanan pesan. Salah satunya adalah metode RSA. RSA merupakan metode kriptografi pertama yang menggunakan public key dalam prosesnya [2]. RSA merupakan metode kriptografi asimetris yang beroperasi pada mode blok. RSA membutuhkan dua kunci yang berbeda pada proses enkripsi dan dekripsi nya sehingga proses enkripsi dan dekripsi hanya dapat dilakukan oleh pihak yang memiliki kunci yang sesuai. Walaupun kunci enkripsi diketahui oleh pihak yang tidak berhak, pesan tidak dapat di dekripsi menggunakan kunci tersebut. Dalam metode ini algoritma yang digunakan dalam proses enkripsi dan dekripsi adalah algoritma
55
56 Pelita Informatika Budi Darma, Volume : XVI, Nomor: 1, Januari 2017 ISSN : 2301-9425
menggunakan kriptografi algoritma DES [5]. William Mehuron meneliti tentang penggunaan algoritma DES dan Triple Data Encryption Algorithm (TDEA) untuk melindungi data rahasia. Berdasarkan pemaparan dan alasan tersebut, maka penulis mencoba membuat sebuah keamanan pada sistem dalam pengamanan file teks digunakan setiap pengguna, sehingga menjamin dan melindungi kerahasaiaan akan informasi pesan dari ancamanancaman yang ada pada informasi data dalam bentuk pesan teks. II.LANDASAN TEORI A. Algoritma RSA RSA merupakan algoritma kriptografi yang menggunakan dua kunci berbeda pada proses enkripsi dan dekripsi-nya [2]. RSA menganut sistem algoritma kunci publik yang saat ini telah digunakan secara luas. RSA pertama kali dipublikasikan pada tahun 1977. RSA merupakan metode kriptografi asimetris yang beroperasi pada mode blok. RSA membutuhkan dua kunci yang berbeda pada proses enkripsi dan dekripsi nya sehingga proses enkripsi dan dekripsi hanya dapat dilakukan oleh pihak yang memiliki kunci yang sesuai. Walaupun kunci enkripsi diketahui oleh pihak yang tidak berhak, pesan tidak dapat di dekripsi menggunakan kunci tersebut. Secara garis besar algoritma RSA menggunakan tiga tahapan proses yaitu pembangkitan kunci, enkripsi dan dekripsi. Yang mana tiap tahapan prosesnya dapat dijabarkan sebagai berikut [6]. Pembangkitan kunci merupakan kegiatan untuk menghasilkan dua buah kunci yang berbeda yaitu kunci privat (private key) yang digunakan untuk mendekripsi pesan dan kunci publik (public key) yang digunakan untuk meng-enkripsi pesan yang mana biasanya di sebarkan kepada pihak yang akan mengirimkan pesan kepada pemilik kunci. Proses pembangkitan kunci dapat dilakukan dengan menggunakan tahap – tahap berikut [7] : 1. Memilih dua bilangan prima a dan b. 2. Menghitung nilai n = a x b. 3. Menghitung nilai m = (a – 1) x (b – 1) 4. Memilih sebuah bilangan bulat (e) dimana 1 < e < m yang relatif prima terhadap (m). 5. Menghitung nilai (d), dimana 1 < d < m dimana e x d = 1 (mod m). Berdasarkan tahapan pembangkitan kunci diatas maka dapat diperoleh kunci publik dari variabel (n) dan (e) sedangkan kunci privat diperoleh dari variabel (d). Proses enkripsi pada algoritma RSA merupakan operasi enkripsi yang cukup sederhana yang mana dapat dijabarkan pada tahapan – tahapan berikut : 1. Membentuk pesan kedalam blok – blok pesan (p1, p2, …. , pn) dan mengkonversi blok pesan tersebut kedalam bilangan integer. 2. Melakukan enkripsi pada blok – blok pesan tersebut menggunakan persamaan berikut : 𝑐 = 𝑚𝑒 𝑚𝑜𝑑 𝑛
Dimana : c = integer pesan ter-enkripsi m = integer pesan asli e dan n = kunci public Dekripsi pada RSA merupakan proses kebalikan dari proses enkripsi yang mana menggunakan kunci privat dalam operasinya. Tahapan dalam proses dekripsi pada algoritma RSA dapat dijabarkan sebagai berikut : 1. Membentuk pesan chiperteks kedalam blok – blok pesan (p1, p2, …. , pn) dan mengkonversi blok pesan tersebut kedalam bilangan integer. 2. Melakukan enkripsi pada blok – blok pesan tersebut menggunakan persamaan berikut : 𝑚 = 𝑐 𝑑 𝑚𝑜𝑑 𝑛 Dimana : c = integer pesan ter-enkripsi m = integer pesan asli e = kunci publik d = kunci privat B. Algoritma DES DES merupakan algoritma enkripsi yang memanfaatkan kunci simetris dan menggunakan jaringan feistel dalam operasinya. DES beroperasi pada ukuran blok 64 bit. Blok plainteks berukuran 64 bit akan menghasilkan blok chiperteks berukuran 64 bit dengan menggunakan kunci 56 bit yang dibangkitkan menggunakan kunci yang diberikan oleh pengguna [8]. Algoritma DES menggunakan jaringan feistel yang diproses secara berulang. Proses pada algoritma DES terbagi menjadi dua proses utama yaitu enkripsi dan dekripsi. Proses pembangkitan kunci putaran dilakukan seiringan dengan proses enkripsi dan dekripsi. Kedua operasi tersebut baik enkripsi maupun dekripsi menggunakan jaringan feistel yang sama namun memiliki urutan operasi yang berbeda pada proses enkripsi dan dekripsi.
57 Pelita Informatika Budi Darma, Volume : XVI, Nomor: 1, Januari 2017 ISSN : 2301-9425
Gambar 1: Diagram Proses DES Proses enkripsi pada DES dapat dijabarkan sebagai berikut : 1. Membentuk pesan kedalam blok – blok berukuran 64 bit. 2. Membentuk blok kunci berukuran 56 bit. 3. Melakukan inisial permutasi pada blok – blok pesan. 4. Membagi blok 64 bit menjadi dua blok 32 bit yaitu blok L dan blok R. 5. Melakukan fungsi subbyte pada blok R. 6. Melakukan fungsi shiftrow pada blok R. 7. Melakukan fungsi mixcolumn pada blok R. 8. Melakukan operasi penambahan kunci putaran kepada blok R. 9. Melakukan operasi XOR antara blok R dan L sehingga menghasilkan blok R yang baru. 10. Melakukan pergantian nilai pada blok L menggunakan nilai blok R yang lama. 11. Mengulang langkah 5 sebanyak 9 putaran. 12. Melakukan fungsi subbyte pada blok R. 13. Melakukan fungsi shiftrow pada blok R. 14. Melakukan operasi penambahan kunci putaran kepada blok R. 15. Melakukan operasi XOR pada blok R dan L sehingga menghasilkan blok L yang baru. 16. Menggabungkan blok R dan L menjadi sebuah blok tunggal berukuran 64 bit. 17. Melakukan operasi permutasi inverse pada blok tersebut sehingga menghasilkan blok chiperteks hasil enkripsi. Proses dekripsi pada algoritma DES menggunakan tahapan yang sama seperti pada proses enkripsi namun memiliki perbedaan pada tahapan fungsi enkripsi nya yang mana digantikan dengan fungsi dekripsi yang dapat dijabarkan sebagai berikut : 1. Membentuk pesan kedalam blok – blok berukuran 64 bit. 2. Membentuk blok kunci berukuran 56 bit. 3. Melakukan inisial permutasi pada blok – blok pesan.
4. Membagi blok 64 bit menjadi dua blok 32 bit yaitu blok L dan blok R. 5. Melakukan fungsi inverse shiftrow pada blok R. 6. Melakukan fungsi inverse subbyte pada blok R. 7. Melakukan operasi penambahan kunci putaran kepada blok R. 8. Melakukan fungsi inverse mixcolumn pada blok R. 9. Melakukan operasi XOR antara blok R dan L sehingga menghasilkan blok R yang baru. 10. Melakukan pergantian nilai pada blok L menggunakan nilai blok R yang lama. 11. Mengulang langkah 5 sebanyak 9 putaran. 12. Melakukan fungsi inverse shiftrow pada blok R. 13. Melakukan fungsi inverse subbyte pada blok R. 14. Melakukan operasi penambahan kunci putaran kepada blok R. 15. Melakukan operasi XOR pada blok R dan L sehingga menghasilkan blok L yang baru. 16. Menggabungkan blok R dan L menjadi sebuah blok tunggal berukuran 64 bit. Melakukan operasi permutasi inverse pada blok tersebut sehingga menghasilkan blok plainteks hasil dekripsi. III. ANALISA DAN PEMBAHASAN A. Analisa Sistem Analisa dan perancangan sistem merupakan proses analisa secara mendalam terhadap suatu sistem atau lingkungan dalam rangka mengembangkan prosedur dan metode yang dapat merepresentasikan proses dari operasi yang dilakukan oleh sistem yang akan dibangun. Kegiatan Analisa dan Perancangan Sistem dilakukan dengan beberapa tahap yaitu analisa sistem yang terdiri dari analisa kebutuhan, spesifikasi, dan metode yang digunakan. Tahap berikutnya adalah tahap perancangan dimana antar muka dan diagram alir dari sistem dirancang untuk digunakan pada tahap pengembangan sistem. B. Perancangan Sistem Dalam perancangan yang akan dijabarkan oleh penulis, perancangan aplikasi enkripsi dan dekripsi pesan teks menggunakan algoritma RSA dan DES ini meliputi perancangan modul – modul atau dasar dari operasi yang dapat dilakukan oleh aplikasi yaitu operasi enkripsi dan operasi dekripsi pada pesan teks. Perancangan flowchart sistem bertujuan untuk menggambarkan Perancangan flowchart dari sistem dapat dilihat pada gambar 3.1 berikut ini :
58 Pelita Informatika Budi Darma, Volume : XVI, Nomor: 1, Januari 2017 ISSN : 2301-9425 START
Input Plainteks
ENKRIPSI RSA
ENKRIPSI DES
Output Chiperteks
END
Gambar 1: Flowchart Sistem Pada gambar 2 dapat dilihat proses sistem yang dikembangkan. Input plainteks pertama sekali diterima dan kemudian di-enkripsi terlebih dahulu menggunakan algoritma RSA, hasil enkripsi dari algoritma RSA kemudian dilanjutkan dengan enkripsi algoritma DES sehingga menghasilkan chiperteks yang diberikan kepada pengguna. Algoritma merupakan langkah-langkah maupun urutan bertahap menganalisa sertaa menjelaskan urutan dan hubungan antara kegiatan-kegiatan yang akan ditempuh untuk memecahkan dan menyelesaikan suatu permasalahan hingga tercapai tujuan yang diinginkan. Adapun algoritma yang dituangkan pada bab IV merupakan algoritma yang di implementasikan dalam program Algoritma perancangan perangkat lunak enkripsi dan dekripsi pesan teks menggunakan RSA dan DES dibagi menjadi beberapa bagian yaitu : 1. Algoritma Enkripsi RSA Input : Plainteks, Kunci Publik Proses:P[] = KodeAscii dari Plainteks for i = 0 to PanjangTeks C[i] = (P[i] ^ e) mod M End Chiperteks = C[] Output: Chiperteks RSA 2. Algoritma Enkripsi DES Input : Chiperteks RSA, Kunci Proses:B[] = blok input dengan panjang 64bit dari Chiperteks RSA for i = 0 to JumlahBlok Pb = InisialPermutasi dari B[i] Lb = bit kiri dari Pb Rb = bit kanan dari Pb For j = 1 to 15 Lb = Lb Xor Feistel(Rb, Kunci) Lb = Rb Rb = Lb End C[i] = Penggabungan Lb dengan Rb
End Output: Chiperteks DES C[] 3. Algoritma Dekripsi DES Input :Chiperteks DES, Kunci Proses:B[] = blok input dengan panjang 64bit dari Chiperteks DES for i = 0 to JumlahBlok Pb = InisialPermutasi dari B[i] Lb = bit kiri dari Pb Rb = bit kanan dari Pb For j = 15 to 1 Lb = Lb Xor Feistel(Rb, Kunci) Lb = Rb Rb = Lb End C[i] = Penggabungan Lb dengan Rb End Output:Plainteks DES 4. Algoritma Dekripsi RSA Input : Plainteks DES, Kunci Private Proses:C[] = KodeAscii dari PlainteksDES for i = 0 to PanjangTeks P[i] = (C[i] ^ d) mod M End Plainteks = P[] Output : Plainteks IV. IMPLEMENTASI Implementasi sistem merupakan tahap bagaimana sistem untuk dijalankan berdasarkan desain yang telah dibuat dan dirancang pada tahap sebelumnya kemudian dimasukkan ke bahasa pemograman yang digunakan. Implementasi ini menggunakan bahasa pemograman VB.NET. Frorm aplikasi utama merupakan form yang berisi tombol–tombol yang dapat digunakan untuk membuka tampilan enkripsi dan dekripsi, aplikasi yang dirancang dibuat semenarik mungkin sebagai desain interface nya sehingga terkesan menarik dan mudah digunakan berikut adalah interface nya.
Gambar 1: Tampilan Aplikasi Utama Form enkripsi merupakan form yang digunakan untuk mengenkripsi pesan teks dan memperoleh chiperteks dari kombinasi algoritma enkripsi RSA dan DES. Untuk dapat memulai proses enkripsi, pesan yang akan di-enkripsi di-isi didalam kolom “Plainteks” yang kemudian kunci public di-isi pada kolom kunci public. Jika belum memiliki kunci public dan kunci private, maka kunci–kunci tersebut dapat
59 Pelita Informatika Budi Darma, Volume : XVI, Nomor: 1, Januari 2017 ISSN : 2301-9425
dibangkitkan menggunakan tombol “Generate” untuk dapat memperoleh kunci public dan kunci private.
Gambar 2: Tampilan Form Enkripsi Proses enkripsi seperti yang terlihat pada gambar 4.2, dapat dilihat enkripsi dilakukan menggunakan pesan “pesan ini merupakan pesan yang diuji untuk proses enkripsi dan dekripsi menggunakan metode RSA dan DES” dengan kunci public 3-1219. Kunci private nantinya dapat digunakan pada proses dekripsi untuk memperoleh kembali plainteks asli. Setelah proses enkripsi selesai, hasil chiperteks dapat disimpan menggunakan tombol “Simpan”.Form dekripsi digunakan untuk mendekripsi kembali pesan chiperteks menjadi pesan plainteks. Pesan chiperteks dapat dibuka dengan menggunakan tombol “Open”. Proses dekripsi kemudian dapat dilakukan dengan mengisi kunci private yang diperoleh dari pembangkitan kunci sebelumnya.
Gambar 3: Form Dekripsi Pada gambar 4.3 dapat dilihat bagamana fungsi dekripsi dari sistem yang dikembangkan dapat melakukan dekripsi kembali pesan hasil enkripsi yang telah diproses sebelumnya. Berdasarkan implementasi sistem yang telah dilakukan menunjukkan bahwa sistem dapat melakukan enkripsi dan dekripsi dengan baik. Pembangkitan kunci RSA dapat dibangkitkan dengan acak dan bagian dari kunci RSA menjadi kunci yang digunakan pada proses enkripsi pada algoritma DES sehingga pada saat proses dekripsi algoritma DES dapat mengembalikan pesan chiperteks kembali menjadi pesan asli mengingat baik RSA maupun DES bekerja dengan mekanisme kunci yang berbeda dimana RSA menggunakan kunci asimetris sedangkan DES menggunakan kunci Simetris. V. KESIMPULAN DAN SARAN Berdasarkan penelitian pengembangan aplikasi enkripsi pesan teks menggunakan kombinasi RSA dan DES maka dapat diambil beberapa kesimpulan yaitu:
1. Pada proses pengamanan pesan teks menggunakan kombinasi algoritma RSA dan DES, tahapannya dimulai dengan membangkitkan kunci publik dan kunci private yang dapat digunakan pada proses enkripsi RSA. Setelah proses enkripsi RSA dilakukan, hasil chiperteks dari RSA kemudian dienkripsi lebih lanjut menggunakan algoritma DES. Pada proses enkripsi Algoritma DES, kunci yang digunakan adalah komponen n dari kunci RSA dimana komponen n pada kunci public dan kunci private bernilai sama sehingga dapat digunakan pada saat enkripsi dan dekripsi. Pada proses dekripsi, chiperteks hasil DES di dekripsi terlebih dahulu menggunakan algoritma DES yang mana hasil plainteks dari algoritma DES di dekripsi lebih lanjut menggunakan algoritma RSA menggunakan kunci private. 2. Perancangan sistem pengamanan file teks menggunakan kombinasi algoritma RSA dan DES dilakukan dengan mengembangkan komponen – komponen yang dapat mengakomodasi kebutuhan akan kunci public dan kunci private dari algoritma RSA sehingga pada sistem yang dikembangkan menyediakan komponen yang terpisah antara DES dan RSA namun diproses secara berurutan. 3. Hasil implementasi kombinasi pengamanan file teks menggunakan RSA dan DES menunjukkan hasil yang cukup baik, dimana pesan teks yang ter enkripsi memiliki keunggulan dalam proses autentikasi dimana menerapkan kunci public dan kunci private dari algoritma RSA serta memiliki keunggulan dalam kompleksitas chiperteks dari algoritma DES. DAFTAR PUSTAKA 1. Ariyus, D. (2011). Keamanan Multimedia. Yogyakarta: Penerbit Andi. 2. Hayden, R. (2010), Cryptography: RSA and the discrete logarithm problem. Advanced Maths Lectures. Department of ComputingImperial College London 3. Andri. M. Yuli, (2009), Implementasi Algoritma Kriptografi DES, RSA dan Algoritma Kompresi LZW pada Berkas Digital. Universitas Sumatera Utara. 4. Wardah, Irjatul. (2011). Kriptografi Pengiriman Image Pada Telephon Seluler Menggunakan Algoritma Des. UIN. Malang. 5. Zdancewic, S. (2014). Stream and Block Cipher Functions. ISE 334/SE 425: Communication, ECommerce, and Information Security. 6. Mahajan, P., & Sachdeva, A. (2013). A Study of Encryption Algorithms AES, DES and RSA for Security. Global Journal of Computer Science and Technology Network, Web & Security. 7. Septialoka, D. K. (2015). Aplikasi Bilangan Prima dalam Pemanfaatan Algoritma RSA untuk
60 Pelita Informatika Budi Darma, Volume : XVI, Nomor: 1, Januari 2017 ISSN : 2301-9425
Keamanan Dokumen Negara. Institut Teknologi Bandung. 8. Ibrahim, R. N. (2012). Kriptografi Algoritma Des, Aes/Rijndael, Blowfish Untuk Keamanan Citra Digital Dengan Menggunakan Metode Discrete Wavelet Transformation (Dwt). Jurnal Computech & Bisnis, Vol. 6, No. 2.