Penerapan Algoritma Kriftografi Rives Shamir Adleman (RSA) Pada Sebuah Image Sukaesih 1, Sri Wahyuni 2 Teknik Informatika 1,Komputerisasi Akuntansi 2 Abstrak Perkembangan teknologi informasi sekarang ini sudah sangat membantu manusia dalam berkomunikasi, sehingga tidak lagi terhalang oleh jarak dan waktu untuk melakukan komunikasi. Penyajian dan penyimpanan informasi atau data kini dapat disimpan dalam format digital dan memiliki berbagai macam bentuk seperti teks, citra, audio, video, dan multimedia. Khusus berkenaan dengan gambar akhir-akhir ini, kita dapat menggunakan software desain grafis untuk mengedit dan memodifikasi citra digital dengan mudah. Penelitian ini bertujuan untuk membuat sebuah aplikasi yang digunakan untuk mengamankan sebuah data khususnya citra. Salah satu teknik pengamanan data yang digunakan adalah dengan kriptografi. Kriptografi merupakan seni dan ilmu untuk menjaga keamanan data. Dalam menjaga keamanan data kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang kemudian dikirim oleh pengirim kepada penerima. Setelah sampai di penerima, ciphertext tersebut di transformasikan kembali ke dalam bentuk plaintext agar dapat dikenali. Metode yang digunakan adalah metode enkripsi asimetris Rivest Shamir Adleman (RSA). Keamanan algoritme RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Pembuatan aplikasi ini menggunakan bahasa pemrograman java. Hasil akhir berupa aplikasi berbasis desktop yang dapat digunakan untuk mengenkripsi file image. Aplikasi ini dapat dijadikan sebagai salah satu cara untuk mengamankan data, karena hanya orang yang berhak yang dapat melihat data yang dienkripsi. Kata Kunci : Kriptografi, RSA, Enkripsi Dekripsi, Image, Java I Pendahuluan Teknologi informasi dan komunikasi telah berkembang pesat, memberikan pengaruh yang besar bagi kehidupan manusia. Perkembangan teknologi informasi sekarang ini sudah sangat membantu manusia dalam berkomunikasi, sehingga tidak lagi terhalang oleh jarak dan waktu untuk melakukan komunikasi tersebut. Penyajian dan penyimpanan informasi atau data kini dapat disimpan dalam format digital dan memiliki berbagai macam bentuk seperti teks, citra, audio, video, dan multimedia. Khusus berkenaan dengan gambar akhir-akhir ini, banyak berbagai macam software untuk mengedit dan memodifikasi citra digital dengan mudah. Hasil modifikasi mereka pun tidak sedikit yang bersifat negatif, baik untuk membuat fitnah, pencitraan buruk seseorang atau kelompok dengan berbagai maksud lain. Sebagai contoh pernah terjadi pengunggahan foto palsu yang dilakukan Yogi Samtani terhadap korban kecelakaan pesawat Sukhoi (detik.com, 2012). Hal serupa juga pernah dialami oleh Abraham Samad dengan puteri Indonesia Elvira tentang foto mesra mereka (detik.com, 2015). Hal seperti ini akan mengganggu dan menimbulkan kekhawatiran para pemilik data dan juga pihak yang ingin berkomunikasi dengan bertukar informasi baik untuk kepentingan pribadi maupun kelompok. Penelitian ini bertujuan untuk membuat sebuah aplikasi yang digunakan untuk mengamankan sebuah data khususnya citra. Salah satu teknik pengamanan data yang digunakan adalah dengan kriptografi. Kriptografi merupakan seni dan ilmu untuk menjaga keamanan data. Dalam menjaga keamanan data kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang kemudian dikirim oleh pengirim kepada penerima. Setelah sampai di penerima, ciphertext tersebut di transformasikan kembali ke dalam bentuk plaintext agar dapat dikenali. Adapun batasan masalah dalam penelitian ini adalah mengimplementasikan algoritma Rivest Shamir Adleman (RSA) ke dalam sebuah aplikasi dan data yang digunakan adalah file bertipe.jpg. Pembuatan aplikasi ini menggunakan bahasa pemrograman java. Hasil akhir berupa aplikasi berbasis desktop yang dapat digunakan untuk mengenkripsi file image. Aplikasi ini dapat dijadikan sebagai salah satu cara untuk mengamankan data, karena hanya orang yang berhak yang dapat melihat data yang dienkripsi. Berdasarkan uraian di atas, penulis akan merancang dan membuat aplikasi untuk pengamanan citra dengan algoritma Rivest Shamir Adleman (RSA) yang mampu menjaga keamanan dan keaslian dari sebuah data. Dan penulis memutuskan untuk menyusun judul Penerapan Algoritma Kriptografi Rivers Shamir Adleman (RSA) Pada Sebuah Image. II Tinjauan Pustaka 2.1 Definisi Citra Citra (image) adalah istilah lain untuk gambar yang merupakan salah satu komponen multimedia dan Copyright@2016 STMIK Cikarang 32
memegang peranan penting sebagai bentuk informasi visual. Citra mempunyai karakteristik yang tidak dimiliki oleh data berbentuk teks yakni kaya dengan informasi. Ada sebuah peribahasa, a picture is more than a thousand words, artinya sebuah gambar dapat memberikan informasi lebih banyak daripada informasi tersebut disajikan dalam bentuk ribuan kata. [9] 2.2 Sejarah Kriptografi Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas.(sadikin Rifki, 2012). 2.3 Algoritma Rivest Shamir Adleman Algoritme RSA dibuat oleh tiga orang peneliti dari MIT (Massachussets Intitute of Technology) pada tahun 1976, yaitu: Ron Rivest, Adi Shamir, dan Leonard Adleman. Keamanan algoritme RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Algoritma RSA memiliki besaran-besaran sebagai berikut : 1. p dan q bilangan prima (rahasia) 2. n = p.q (tidak rahasia) 3. Φ (n) = (p 1)(q 1) (rahasia) 4. e (kunci enkripsi) (tidak rahasia) 5. d (kunci dekripsi) (rahasia) 6. m (plainteks) (rahasia) 7. c (cipherteks) (tidak rahasia) Dalam algoritme RSA enkripsi dan dekripsi dirumuskan sebagai berikut: E e(m) = c m e mod n D d(c) = m c d mod n 2.4 MySQL MySQL adalah salah satu jenis database server yang sangat terkenal, MySQL menggunakan bahasa SQL untuk mengakses database-nya, lisensi Mysql adalah FOSS License Exception dan ada juga yang versi komersial nya, tag Mysql adalah The World's most popular open source database (Hakim, 2008). MySQL tersedia untuk beberapa platform, di antara nya adalah untuk versi windows dan versi linux, untuk melakukan administrasi secara lebih mudah terhadap Mysql, anda dapat menggunakan software tertentu, di antaranya adalah phpmyadmin dan navycat. 2.5 Java Java merupakan bahasa pemrograman yang bersifat lintas-platform. Artinya, bahasa ini dapat dipakai untuk menyusun program pada berbagai sistem operasi (misalnya Linux, Windows, dan UNIX). Secara prinsip, program yang disusun dengan java dapat dikompilasi (diubah ke bentuk biner) pada sistem operasi yang lain dengan menggunakan penerjemah yang spesifik pada sistem operasi target (Kadir, 2008). III Analisa Masalah Pada bab ini akan dibahas secara keseluruhan mengenai aplikasi yang sudah dibuat. Berikut adalah tahapan bahasan yang akan dipresentasikan. Konsep ini merujuk pada sistem komputer. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari tahap-tahap rencana (planning), analisis (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance). 3.1 Desain UML Dalam proses ini diuraikan bisnis proses yang akan dijalankan dan gambaran layout aplikasi yang akan dibuat. Tahap ini menghasilkan sistem sebagai kumpulan dari berbagai macam modul dan subsistem. 1. Use Case Diagram Use case digunakan untuk memodelkan dan menyatakan unit fungsi/layanan yang disediakan oleh sistem ke pemakai. Use case dibuat berdasar keperluan aktor, merupakan apa yang dikerjakan sistem, bagaimana sistem mengerjakannya. Untuk lebih jelasnya actor yang berinteraksi dengan use case dalam sistem yang diajukan dapat dilihat pada gambar dibawah ini: Gambar 3.1. Use Case Diagram Copyright@2016 STMIK Cikarang 33
2. Activity Diagram Activity diagram menggambarkan alur proses pada tiap-tiap use case. Terdapat lima activity diagram sesuai dengan jumlah use case-nya yaitu : a. Activity Diagram Login Activity diagram ini merupakan salah satu pengaman agar hanya orang-orang tertentu saja yang bisa masuk atau login ke dalam sistem ini, agar data yang bersifat rahasia dapat terjamin dan tidak ada penyalahgunaan terhadap sistem aplikasi yang telah dibuat. Di bawah ini merupakan gambar tampilan activity diagram login. diagram generate key. Gambar 3.4. Activity Diagram Generate Key d. Activity Diagram Enkripsi Activity diagram ini dibuat untuk menguraikan sistem dari proses enkripsi yang di dalamnya terdapat kata kunci untuk mengunci image yang bersifat rahasia atau pribadi agar tidak disalahgunakan oleh orang lain. Di bawah ini merupakan gambar tampilan activity diagram enkripsi. Gambar 3.2. Activity Diagram Login b. Activity Diagram Kelola Pengguna Activity Diagram ini berfungsi untuk mengelola pengguna aplikasi yaitu seorang admin baik menghapus ataupun menambah user. Di bawah ini merupakan gambar tampilan activity diagram-nya. Gambar 3.5. Activity Diagram Enkripsi e. Activity Diagram Dekripsi Dalam activity diagram dekripsi adalah pembuka kunci untuk membuka image yang telah terenkripsi sebelumnya, agar image tersebut dapat dilihat lagi kedalam gambar semula. Di bawah ini merupakan gambar tampilan activity diagram dekripsi. Gambar 3.3. Activity Diagram Pengguna c. Activity Diagram Generate Key Activity diagram ini untuk membuat kunci public dan private yang di generate oleh sistem, sehingga menghasilkan kunci public dan private yang dipakai untuk melakukan proses enkripsi dan dekripsi. Di bawah ini merupakan gambar tampilan activity Copyright@2016 STMIK Cikarang 34
b. Sequence Diagram Enkripsi Sequence diagram enkripsi dibuat untuk mengenkripsi suatu image yang berguna untuk mengunci image yang asli, dengan memasukkan kata kunci agar image tersebut tidak bisa dilihat oleh pihak lain. Di bawah ini merupakan gambar sequence diagram enkripsi. Gambar 3.6. Activity Diagram Dekripsi 3. Sequence Diagram Sequence diagram menggambarkan interaksi antara masing-masing objek pada setiap use case. Interaksi ini berupa pengiriman serangkaian data antar objekobjek yang saling berinteraksi a. Sequence Diagram Generate Key Sequence generate key dibuat untuk menggenerate key agar mendapatkan nilai yang digunakan sebagai kunci public dan private. Di bawah ini merupakan gambar tampilan Sequence Diagram Generate Key. Gambar 3.8. Sequence Diagram Enkripsi Sequence diagram enkripsi menggambarkan pengguna mengenkripsi image dengan cara membuka file yang akan dienkripsi dengan tombol open, kemudian tekan tombol enkripsi. Ketika enkripsi berhasil maka akan tampil pesan enkripsi berhasil. c. Sequence Diagram Dekripsi Sequence diagram deskripsi ini dibuat untuk membuka file yang telah dienkripsi sebelumnya atau bisa disebut mengembalikan file yang telah dikunci menjadi file asli (semula). Di bawah ini merupakan gambar tampilan sequence diagram enkripsi. Gambar 3.7. Sequence Diagram Generate Key Sequence generate key menggambarkan pengguna melakukan generate password dengan cara menginput bilangan prima untuk nilai p, q, dan e, setelah itu klik tombol generate. Pengguna juga bisa menggunakan tombol random, caranya sama dengan memasukkan nilai p, q, dan e dengan bilangan prima setelah itu tekan tombol random, maka aplikasi akan merubah semua nilai tadi dan memberikan nilai d dan N dengan nilai yang besar. Gambar 3.9. Sequence Diagram Dekripsi Copyright@2016 STMIK Cikarang 35
Sequence diagram dekripsi menggambarkan pengguna membuka file yang telah dienkripsi sebelumnya dengan menggunakan tombol open, kemudian masukkan nilai N dan d yang didapat pada saat meng-generate kunci setelah itu tekan tombol dekripsi, jika proses dekripsi berhasil maka akan tampil pesan dekripsi berhasil. c. Form Generate Kunci Publik dan Private Form ini digunakan untuk men-generate kunci dengan memasukkan bilangan prima kemudian menekan tombol generate. Pengguna juga bisa menggunakan tombol random. Tetapi terlebih dahulu memasukkan bilangan prima untuk nilai p, q, dan e. 3.2 Rancangan Antar Muka Sistem Pada bagian ini, akan direpresentasikan aplikasi enkripsi dan dekripsi RSA. Berikut ini akan digambarkan langkah-langkah dalam menjalankan program dari awal sampai akhir. Secara keseluruhan perancangan aplikasi ini terdiri dari proses input dan output. Dalam proses input dan output terdapat beberapa form utama yaitu, form login, form generate, form enkripsi, dan form dekripsi. a. Form Login Form ini digunakan untuk masuk ke dalam aplikasi. Pada langkah ini dilakukan validasi terhadap hak user. Langkah ini juga mencegah aplikasi digunakan oleh pihak yang tidak memiliki hak akses. Gambar 3.12. Desain Form Generate Key d. Form Enkripsi Form ini merupakan tampilan masuk pada saat pengguna selesai meng-generate kunci. Dalam melakukan enkripsi ini pengguna tidak perlu memasukkan nilai e dan N karena sudah masuk secara otomatis pada saat pengguna meng-generate kunci. Pengguna hanya memasukkan image saja dengan menekan tombol open dan aplikasi akan membawa anda memilih image mana yang akan dienkripsi. Setelah memilih, aplikasi akan menampilkan image tersebut dan pengguna hanya tinggal menekan tombol encrypt. 3.10. Desain Form Login b. Form Kelola Pengguna Form ini digunakan untuk menambah, menghapus, dan meng-update pengguna aplikasi ini. Pada form ini hanya bisa dilakukan oleh admin untuk mengelolanya. 1.13. Desain Form Enkripsi Gambar 3.11. Desain Form Kelola Pengguna e. Form Dekripsi Pada form dekripsi ini sebelum pengguna ingin mendekripsi image, pengguna harus memasukkan nilai N dan d yang didapat pada saat meng-generate kunci. Setelah itu, pengguna dapat mencari image mana yang ingin didekripsi dengan menekan tombol open, setelah aplikasi selesai menampilkan imagenya pengguna dapat melanjutkan dengan menekan Copyright@2016 STMIK Cikarang 36
tombol decrypt. Gambar 4.1. Form Login Sistem Gambar 3.14. Desain Form Dekripsi IV. Perancangan dan Implementasi 4.1 Rancangan basis data Perancangan basis data merupakan penggambaran dari spesifikasi data atau tabel pada basis data yang akan digunakan pada sistem. Adapun rancangan basis data yang penulis ajukan adalah: Jika form diinputkan data yang benar, maka akan muncul info bahwa verifikasi user telah berhasil dan telah masuk ke sistem. Hal ini juga menunjukkan bahwa aplikasi sudah dapat digunakan. Di bawah ini merupakan gambar aplikasi jika verifikasi user berhasil. Gambar 4.2. Verifikasi Form Login Berhasil Jika form di-input-kan data yang salah, maka akan muncul info bahwa verifikasi user gagal dan halaman akan dikembalikan ke form login sebagai home pagenya. Gambar 4.3. Verifikasi Form Login Gagal 4.2 Tampilan Antar Muka Sistem 1. Form Login Sistem Form login lebih dibutuhkan sebagai sistem verifikasi pengguna (authentication) yang memperbolehkan atau tidaknya pemakai mempergunakan aplikasi. Di bawah ini merupakan gambar tampilan form login sistem. 2. Form Kelola Pengguna Form ini dibutuhkan untuk mengelola user seperti menambah, menghapus dan merubah hak akses, nama dan kata kunci user. Jadi hanya user yang memiliki akun saja yang dapat menggunakan aplikasi ini. Form ini hanya bisa diakses oleh user yang memiliki akses sebagai admin. Copyright@2016 STMIK Cikarang 37
Gambar 4.4. Form Kelola Pengguna mengenkripsi foto yang akan dikirim. 4. Form Enkripsi Yang dilakukan penerima yaitu membuat kunci pembuka. Setelah masuk ke dalam aplikasi penerima harus membuat kunci terlebih dahulu. Yang dilakukan pengirim yaitu pengirim harus mengenkripsi gambar dengan kunci yang telah diterima dari penerima. Untuk lebih jelasnya lihat gambar di bawah ini : 3. Form Generate Kunci Form generate kunci dibutuhkan untuk mendapatkan nilai e dan N yang digunakan sebagai kunci publik. Pada saat tombol generate ditekan, maka aplikasi akan menghitung nilai d dan N. Gambar 4.7. Proses Enkripsi Dari gambar di atas dapat dijelaskan bahwa pengirim menggunakan kunci publik milik penerima untuk melakukan enkripsi. Gambar 4.5. Form Generate Key Penggunaan tombol random akan merubah nilai yang telah kita input, dan aplikasi akan memberikan semua nilai secara acak. Untuk lebih jelasnya lihat pada gambar dibawah ini. 5. Form Dekripsi Pada proses dekripsi penerima melakukan dekripsi dengan kunci private yang dimiliki pada saat meng-generate kunci. Untuk lebih jelasnya lihat gambar di bawah ini. Gambar 4.8. Proses Dekripsi Gambar 4.6. Form Generate Key Dari gambar di atas penerima memiliki kunci private d = 263137 dan kunci publik e = 673 dan N = 569147. Kunci publik itulah yang harus di kirim untuk Dapat dijelaskan bahwa pada proses ini penerima melakukan dekripsi dengan memasukkan kunci publik (N) dan kunci private milik penerima yaitu d. Dari hasil proses enkripsi dan dekripsi di atas, maka didapatkan waktu untuk meng-enkripsi selama 12.215 detik dan waktu untuk men-dekripsi selama 16.926 detik dengan ukuran foto 4.11 MB. V Kesimpulan Dari hasil penelitian yang dilakukan mulai dari awal hingga proses pengujian dapat disimpulkan bahwa : Copyright@2016 STMIK Cikarang 38
1. Aplikasi enkripsi dan dekripsi ini menggunakan algoritme kriptografi Rivest Shamir Adleman (RSA), karena keamanan algoritme RSA ini lebih baik dibanding dengan algoritme Data Encryption Standard (DES) yaitu terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima, selain itu juga RSA menggunakan kunci yang berbeda untuk melakukan proses enkripsi dan dekripsi. 2. Dari hasil pengujian respon sistem enkripsi dekripsi dihasilkan waktu akses yang cenderung lebih kecil, apabila pada saat proses enkripsi berlangsung menggunakan bilangan prima, kunci dan foto yang sama. 3. Aplikasi ini dapat membantu pemilik data dari rasa kekhawatiran akan pencurian data ketika bertukar data dan dapat menghindari perusakan nama baik akibat manipulasi citra. Referensi [1] Ariyus, D., 2008. Pengantar Ilmu Kriptografi Teori Analisis Dan Implementasi. Bandung:Penerbit Informatika. [2] Deliana. 2014. Implementasi Algoritma Kriptografi Hill Chipper dalam Penyandian Data gambar. Medan. [3] Fitri, Sulidar. 2010. Implementasi Algoritma Kriptografi DES dan WATERMARK dengan Metode LSB pada Data Citra. Yogyakarta. [4] Hakim, L., 2008. Membongkar Trik Rahasia Para Master PHP. Yogyakarta: Penerbit Lokomedia. [5] Haryanto, B., 2004a. Rekayasa Sistem Berorientasi Objek. Bandung: Penerbit Informatika. [6] Haryanto, B., 2004b. Sistem Manajemen Basis Data. Bandung: Penerbit Informatika. [7] Kadir, A., 2008. Dasar Pemrograman Java 2.Yogyakarta: Penerbit Andi. [8] Kurniadi, Hari. 2014. Implementasi Algoritma Kriptografi ElGamal Untuk File Citra 2 Dimensi. Malang. [9] Munir, R., 2004b. Pengolahan Citra Digital Dengan Pendekatan Algoritma. Bandung: Penerbit Informatika. [10] Munir, R., 2006a. Kriptografi. Bandung: Penerbit Informatika. [11] Nugroho, A., 2004. Konsep Pengembangan Sistem Basis Data. Bandung: Penerbit Informatika. [12] Nugroho, Adi., 2005. Rekayasa Perangkat Lunak menggunakan UML dan Java. Yogyakarta: Penerbit Andi. [13] Nugroho, A., 2005a. Rational Rose Untuk Pemodelan Berbasis Objek. Bandung: Penerbit Informatika. [14] Nugroho, B., 2005b. Database Relasional Dengan MySQL. Yogyakarta: Penerbit Andi. [15] Tamam, Taufik. 2010. Penerapan Algoritma Kriptografi ElGamal untuk Pengaman File Citra. Yogyakarta. Copyright@2016 STMIK Cikarang 39