APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH Achmad Shoim 1), Ahmad Ali Irfan 2), Debby Virgiawan Eko Pranoto 3) FAKULTAS TEKNIK INFORMATIKA UNIVERSITAS PGRI RONGGOLAWE TUBAN Abstrak Blowfish adalah algoritma kunci simetrik chipper block yang dirancang oleh Bruce Schneider pada tahun 1993 untuk menggantikan DES (Data Encryption Standart). Algoritma ini mempunyai kriteria perancangan secara cepat, compact, sederhana, dan kemanan bervariasi sesuai dengan panjangnya bit yang diberikan. Keamanan file sangat diperlukan agar file tidak dapat terbaca oleh pihak yang tidak bertanggung jawab, sehingga penerima dan pengirim merasa aman karena pesan yang terdapat pada file sudah dienkripkan. Tujuan dari pembuatan aplikasi ini agar isi yang terdapat pada pesan tidak dapat dibaca oleh pihak yang tidak bertanggung jawa, sebelum pesan dikirimkan, pesan harus dienkripsikan yang kemudian didekripsikan apabila ingin membaca pesan tersebut dengan benar. Kata kunci : Blowfish, DES(Data Encryption Standart).
1. PENDAHULUAN Kerahasiaan dan keamanan file saat pertukaran data adalah hal yang dibutuhkan oleh setiap orang, karena pastinya pengirim atau penerima tidak ingin data tersebut diketahui oleh pihak yang tidak berkepentingan. Banyak cara yang dilakukan untuk melindungi data pribadi kita, dari memberi password saat membuka atau menyembunyikan file tersebut agar tidak diketahui oleh orang yang tidak berkepentingan. Perlindungan terhadap kerahasiaan datapun meningkat, salah satunya dengan cara penyandian data atau enkripsi file dengan algoritma agar orang yang tidak berkepentingan tidak tahu apa maksud atau isi file tersebut. Blowfish adalah algoritma kunci simetrik chipper block yang dirancang oleh Bruce Schneider pada tahun 1993 untuk menggantikan DES (Data Encryption Standart). Algoritma ini dibuat untuk dipergunakan pada komputer dan Schneier menyatakan bahwa blowfish adalah kriptografi yang bebas dari paten dan mempunyai kriteria perancangan yang cepat, kuat, dan tidak terhalang oleh lisensi. Algorotma ini termasuk algoritma yang mudah dalam penggunaan karena hanya terdapat penambahan, XOR, dan lookup, namun memiliki tingkat keamanan yang bervariasi, panjang kunci yang digunakan dapat bervariasi dan bisa sampai sepanjang minimal 32-bit, maksimal 448- bit, multiple 8-bit dan default 128-bit. Dengan menggunakan algoritma Blowfish memungkinkan dibuatnya aplikasi yang dapat menyembunyikan informasi yang akan disampaikan dengan cara enkripsi pada isi file tersebut, sehingga pihak yang tidak berkepentingan tidak akan mengetahui informasi yang tedapat pada file yang akan dikirimkan atau diterima, sehingga penerima dan pengirim akan merasa aman. 2. TINJAUAN PUSTAKA a. Aplikasi Aplikasi adalah Program siap pakai yang dapat digunakan untuk menjalankan printah-printah dari pengguna aplikasi tersebut dengan tujuan mendapatkan hasil yang lebih akurat sesuai dengan tujuan pembuatan aplikasi tersebut, aplikasi mempunyai arti yaitu pemecahan masalah yang menggunakan salah satu tehnik pemrosesan data
aplikasi yang biasanya berpacu pada sebuah komputansi yang diinginkan atau diharapkan maupun pemrosesan data yang diharapkan Pengertian Aplikasi Secara Umum adalah alat terapan yang difungsikan secara khusus dan terpadu sesuai kemampuan yang dimilikinya aplikasi merupakan suatu perangkat komputer yang siap pakai bagi user b. Kriptografi Secara etimologi (ilmu asal usul kata), kata kriptografi berasal dari gabungan dua kata dalam bahasa Yunani yaitu kriptos dan graphia. Kata kriptos digunakan untuk mendeskripsikan sesuatu yang disembunyikan, rahasia atau misterius. Sedangkan kata graphia berarti tulisan. Kriptografi didefinisikan sebagai ilmu dan pelajaran untuk tulisan rahasia dengan pertimbangan bahwa komunikasi dan data dapat dikodekan untuk mencegah dari mata-mata atau orang lain yang ingin mengetahui isinya, dengan menggunakan kode-kode dan aturanaturan tertentu dan metode lainnya sehingga hanya orang yang berhak yang dapat mengetahui isi pesan sebenarnya. Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai di penerima, ciphertext tersebut ditranformasikan kembali ke dalam bentuk plaintext agar dapat dikenali. Dalam arti lain, cryptography adalah seni dan ilmu dalam mengamankan pesan. Dalam dunia kriptografi, pesan disebut plaintext atau cleartext. Proses untuk menyamarkan pesan dengan cara sedemikian rupa untuk menyembunyikan isi aslinya disebut enkripsi. Pesan yang telah dienkripsi disebut ciphertext. Proses pengembalian sebuah ciphertext ke plaintext disebutdekripsi. c. Algoritma Blowfish Blowfish atau yang disebut juga OpenPGP.Cipher.4 adalah algoritma kunci simetrik cipher blok yang dirancang pada tahun 1993 oleh Bruce Schneider untuk menggantikan DES (Data Encryption Standard). Algoritma
Blowfish dibuat untuk digunakan pada komputer yang mempunyai microposesor besar (32-bit keatas dengan cache data yang besar). Pada saat itu banyak sekali rancangan algoritma yang ditawarkan, namun hampir semua terhalang oleh paten atau kerahasiaan pemerintah Amerika. Schneier menyatakan bahwa blowfish bebas paten dan akan berada pada domain publik. Dengan pernyataan Schneier tersebut blowfish telah mendapatkan tempat di dunia kriptografi, khususnya bagi masyarakat yang membutuhkan algoritma kriptografi yang cepat, kuat, dan tidak terhalang oleh lisensi. Blowfish dirancang dan diharapkan mempunyai kriteria perancangan yang diiginkan sebagai berikut : a. Cepat, Blowfish melakukan enkripsi data pada microprocessor 32-bit dengan rate 26 clock cycles per byte. b. Compact,Blowfish dapat dijalankan pada memory kurang dari 5K. c. Sederhana, Blowfish hanya menggunakan operasi operasi operasi sederhana, seperti : penambahan, XOR, dan lookup tabel pada operan 32-bit. d. Memiliki tingkat keamanan yang bervariasi, panjang kunci yang digunakan oleh Blowfish dapat bervariasi dan bisa sampai sepanjang minimal 32-bit, maksimal 448 -bit, Multiple 8 bit, default 128 bit. Blowfish merupakan blok cipher 64-bit dengan panjang kunci variabel. Algoritma ini terdiri dari dua bagian: key expansion dan enkripsi data. Key expansion merubah kunci yang dapat mencapai 448 bit menjadi beberapa array subkunci (subkey) dengan total 4168 byte. Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali. Setiap putaran terdiri dari permutasi kuncidependent dan substitusi kunci- dan datadependent. Semua operasi adalah penambahan dan XOR pada variable 32- bit. Tambahan operasi lainnya hanyalah empat penelusuran tabel (table lookup) array berindeks untuk setiap putaran. Blowfish menggunakan subkunci yang besar. Kunci ini harus dihitung sebelum enkripsi atau dekripsi data. Blowfish
merupakan algoritma yang menerapkan jaringan Feistel (Feistel network) yang terdiri dari 16 putaran. Input merupakan elemen 64 bit, X. Berikut adalah pseudocode algoritma enkripsinya: Bagi X menjadi dua 32-bit: XL, XR untuk i = 1 sampai 16 XL = XL xor Pi XR = F(XL) xor XR Tukar XL dan XR Tukar XL dan XR /*untuk membatalkan penukaran terakhir*/ XR = XR xor P17 XL = XL xor P18 Kombinasikan kembali XL dan XR /*hasil cipherteks dari blok plainteks X*/ Gambar 1. Struktur Blowfish Cipher Adapun F-function untuk Blowfish seperti pada gambar berikut : Agar lebih mudah dipahami silahkan lihat ilustrasi berikut: Gambar 2. Struktur F-function Blowfish Cipher
F-function terdiri dari 4 buah S- box yang masingmasing menerima input 8-bit dan menghasilkan output 32-bit. Jadi 32 ketika bit hasil XOR P1 dan subblok kiri memasuki F-function, akan dipecah menjadi 4 buah bagian yang masing-masing 8-bit. Masing-masing akan mengalami substitusi dan hasil dari sebuah S-box ialah 32-bit. Hasil dari S- box 1 akan dijumlahkan modular dengan hasil dari S-box 2, kemudian di XOR dengan hasil dari S-box 3, dan terakhir dijumlahkan modular dengan hasil dari S-box 4. Secara matematis F-function dapat ditulis sebagai berikut: Bagi XL, menjadi empat bagian 8-bit: a, b, c dan d. Hasil dari F-function ini akan di XOR dengan subblok kanan (R) dari blok pertama. Hasilnya akan menjadi subblok kiri untuk kemudian di XOR lagi dengan P2, dan seterusnya. Setelah diulang sebanyak 16 kali, subblok kiri terakhir di XOR dengan P17, dan subblok kanan terakhir di XOR dengan P18. Hasil inilah yang merupakan ciphertext dari blok pertama. Selanjutnya dienkripsi blok kedua dan seterusnya dari plainteks dengan algoritma enkripsi yang sama. Dekripsi sama persis dengan enkripsi, kecuali P1, P2,., P18 digunakan pada urutan yang terbalik. Subkunci dihitung menggunakan algoritma Blowfish, metodanya adalah sebagai berikut: 1. Pertama-tama inisialisasi P-array dan kemudian empat S-box secara berurutan dengan string yang tetap. String ini terdiri digit hexadesimal dari pi. 2. XOR P1 dengan 32 bit pertama kunci, XOR P2 dengan 32 bit kedua dari kunci dan seterusnya untuk 3. setiap bit dari kunci (sampai P18). Ulangi terhadap bit kunci sampai seluruh P-array di XOR dengan bit kunci. 4. Enkrip semua string nol dengan algoritma Blowfish dengan menggunakan subkunci seperti dijelaskan pada langkah (1) dan (2). 5. Ganti P1 dan P2 dengan keluaran dari langkah (3)
6. Enkrip keluaran dari langkah (3) dengan algoritma Blowfish dengan subkunci yang sudah dimodifikasi. 7. Ganti P3 dan P4 dengan keluaran dari langkah (5). 8. Lanjutkan proses tersebut, ganti seluruh elemen dari P-array, dan kemudian seluruh keempat S-box berurutan, dengan keluaran yang berubah secara kontinyu dari algoritma Blowfish. Total diperlukan 521 iterasi untuk menghasilkan semua subkunci yang dibutuhkan. Aplikasi kemudian dapat menyimpan subkunci ini dan tidak dibutuhkan langkah-langkah proses penurunan ini berulang kali, kecuali kunci yang digunakan berubah. a. Enkripsi Gambar 3. Tampilan utama Aplikasi Enkripsi Deskripsi File Teks Pilihan Enkripsi Pada tampilan utama aplikasi ini terdapat menu untuk memilih file yang akan diproses dan pilihan proses Enkripsi. 3. HASIL DAN PEMBAHASAN Pada tahapan ini terdapat file yang akan dienkripsi maupun didekripsi dengan menggunakan aplikasi yang telah dibuat, dan perancangan dari aplikasi yang sudah dibuat. Gambar 4. File teks sebelum dienkripsi Gambar 5. Tampilan aplikasi setelah dilakukan proses enkripsi Pada tampilan setelah proses enkripsi akan ditampilkan isi dari file yang belum dan telah dienkripsi dan
terdapat link langsung ke file yang telah dienkripsi. Gambar 8. File teks sebelum didekripsi Gambar 6. File teks setelah dienkripsi b. Dekripsi Gambar 9. Tampilan aplikasi setelah dilakukan proses dekripsi Gambar 7. Tampilan utama Aplikasi Enkripsi Deskripsi File Teks Pilihan Dekripsi Pada tampilan setelah proses enkripsi akan ditampilkan isi dari file yang belum dan telah dienkripsi dan terdapat link langsung ke file yang telah dienkripsi. Pada tampilan utama aplikasi ini terdapat menu untuk memilih file yang akan diproses dan pilihan proses Dekripsi. Gambar 10. File teks setelah didekripsi
4. KESIMPULAN Keamanan file sangat diperlukan agar pihak yang tidak bertanggung jawab tidak dapat mengetahui tujuan pesan tersebut. Walaupun isi dari file teks dapat terbaca oleh orang lain, namun pesan tersebut hanya berisi kalimat yang sudah dienkripsi sehingga isi dari file tersebut hanya terdapat simbol-simbol acak. Apabila ingin mengetahui isi dari file tersebut maka file harus didekripsi terdahulu. Sehingga pesan ini akan aman jika berada pada pihak lain yang tidak tau cara mengetahui isi pesan yang dimaksud. blowfish. html, diakses pada tanggal 11 Februari 2016 Sutanto, Candra Alim,, Penggunaan Algoritma Blowfish Dalam Kriptografi, Bandung, STEI ITB. DAFTAR PUSTAKA Ipulhe. 2015. Pengertian Aplikasi. http://www.ipulhe.com/pengertian -aplikasi/, diakses pada tanggal 11 Februari 2016. Kurniawan J., Ir., M.T., Kriptografi, Keamanan Internet dan Jaringan Komunikasi, Penerbit Informatika Bandung, April 2004. Sukmawan, Budi, 2000, Metoda Enkripsi Blowfish, http://www.bimacipta.com/