IMPLEMENTASI ALGORITMA BLOWFISH UNTUK ENKRPSI DAN DEKRIPSI BERBASIS WEB Shohfi Tamam 1412120032, Agung Setyabudi 1412120013 Fakultas Teknik Program Studi Teknik Informatika Universitas PGRI Ronggolawe Tuban 2016 Abstraksi Tingginya kebutuhan informasi saat ini mendorong tumbuhnya metode pengamanan informasi. Seni penyandian dan pengamanan pesan yang disebut kriptografi ini berkembang sangat cepat saat ini. Penggunaan komputer dijital saat ini mendorong tumbuhnya algoritma kriptografi modern yang beroperasi dalam mode bit. Kriptografi modern terbagi menjadi algoritma kunci simetri dan kunci publik. Algoritma kunci simetri pun terbagi ke dalam cipher aliran dan cipher blok. Semua jenis algoritma ini digunakan dalam berbagai bidang aplikasi. Blowfish merupakan algoritma cipher blok yang sangat luas dan banyak penggunaannya saat ini. Algoritma ini dikembangkan oleh Bruce Scheneier. Penggunaannya yang luas disebabkan algoritma ini kuat terhadap serangan. Penggunaan algoritma Blowfish ini dibuat untuk mengetahui hasil enkripsi suatu kata atau kalimat menjadi ciphertext dan di dekripsi kembali menjadi kata atau kalimat semula atau plantext. Kata Kunci : Blowfish, keamanan, enkripsi, dekripsi 1. PENDAHULUAN 1.1 Latar Belakang Algoritma penyandian data saat ini telah semakin banyak jumlahnya, sejalan dengan berkembangnya ilmu yang mempelajari penyandian data tersebut. Ilmu ini biasa disebut Kriptografi. Dalam kriptografi terdapat beberapa metode yang cukup penting dalam pengamanan data, untuk menjaga kerahasiaan data salah satunya adalah enkripsi (encryption). Enkripsi adalah suatu proses yang dilakukan untuk mengubah pesan asli menjadi chipertext. Sedangkan suatu proses yang dilakukan untuk mengubah pesan tersembunyi menjadi pesan asli disebut dekripsi. Pesan biasa atau pesan asli disebut 1
plaintex sedangkan pesan yang telah diubah atau disandikan supaya tidak mudah dibaca disebut dengan chipertext. Untuk mengatasi masalah keamanan dokumen ini, penulis melakukan pendekatan teknologi enkripsi data menggunakan algoritma Blowfish. Enkripsi data merupakan teknologi untuk memastikan bahwa informasi yang mengalir pada suatu sesi tidak disadap atau diubah orang lain. Blowfish merupakan enkripsi yang termasuk dalam golongan Symmetric Cryptosystem (Schneier, 1993), yaitu menggunakan kunci yang sama untuk enkripsi dan dekripsinya. 2. DASAR TEORI 2.1 Kriptografi Kriptografi (cryptographi) berasal dari BahasaYunani: cryptos artinya secret (rahasia), sedangkan graphein artinya writing (tulisan). Sehingga kriptografi berarti secret writing (tulisan rahasia). Jadi kriptografi didefinisikan sebagai ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya kebentuk yang tidak dapat dimengerti lagi maknanya. Secara umum kriptografi merupakan teknik pengamanan informasi yang dilakukan dengan cara mengolah informasi awal (plainteks) dengan suatu kunci tertentu menggunakan suatu metode enkripsi tertentu sehingga menghasilkan informasi baru (chipertext) yang tidak dapat dibaca secara langsung. Chipertext tersebut dapat dikembalikan menjadi informasi awal (plainteks) melalui proses deskripsi. 2.2 Algoritma Blowfish Blowfish diciptakan oleh seorang Cryptanalyst bernama Bruce Schneier, Presiden perusahaan Counterpane Internet Security, Inc (Perusahaan konsultan tentang kriptografi dan keamanan komputer) dan dipublikasikan tahun 1994. Dibuat untuk digunakan pada komputer yang mempunyai microposesor besar (32-bit keatas dengan cache data yang besar). Blowfish merupakan algoritma yang tidak dipatenkan dan licensefree, dan tersedia secara gratis untuk berbagai macam kegunaan (Syafari, 2007). 2.3 Enkripsi dan Dekripsi Proses penyandian pesan dari plaintext ke ciphertext dinamakan enkripsi / enchipering. Sedangkan proses mengembalikan pesan dari chipertext ke plaintext 2
dinamakan deskripsi / dechipering. Proses enkripsi dan deskripsi ini dapat diterapkan pada pesan yang dikirim ataupun pesan yang disimpan. 2.4 PHP PHP (akronim dari PHP Hypertext Preprocessor) yang merupakan bahasa pemrogramman berbasis web yang memiliki kemampuan untuk memproses data dinamis. PHP dikatakan sebagai sebuah server-side embedded script language artinya sintaks-sintaks dan perintah yang kita berikan akan sepenuhnya dijalankan oleh server tetapi disertakan pada halaman HTML biasa. Aplikasi-aplikasi yang dibangun oleh PHP pada umumnya akan memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan di server. Pada prinsipnya server akan bekerja apabila ada permintaan dari client. Dalam hal ini client menggunakan kode-kode PHP untuk mengirimkan permintaan ke server. Ketika menggunakan PHP sebagai server-side embedded script language maka server akan melakukan hal-hal sebagai berikut : 1. Membaca permintaan dari client/browser 2. Mencari halaman/page di server 3. Melakukan instruksi yang diberikan oleh PHP untuk melakukan modifikasi pada halaman/page. 4. Mengirim kembali halaman tersebut kepada client melalui internet atau intranet. 3. ANALISA DAN PERANCANGAN 3.1 Cara Kerja Algorima Blowfis Blowfish menggunakan subkunci besar yang harus dihitung sebelum enkripsi dan dekripsi data. Algoritma Blowfish menerapkan jaringan Feistel (Feistel Network) yang terdiri dari 16 putaran. Input adalah elemen 64-bit, X untuk alur algoritma enkripsi dengan metode Blowfish dijelaskan sebagai berikut [Schneier, 1993]: 1. Bentuk inisial P-array sebanyak 18 buah (P1,P2,...P18) masing-masing bernilai 32-bit. Array P terdiri dari delapan belas kunci 32-bit subkunci : P1,P2,...,P18 2. Bentuk S-box sebanyak 4 buah masing-masing bernilai 32-bit yang memiliki masukan 256. Empat 32-bit S-box masing-masing mempunyai 256 entri : 3
S1,0,S1,1,...,S1,255 S2,0,S2,1,...,S2,255 S3,0,S3,1,...,S3,255 S4,0,S4,1,...,S4,255 3. Plaintext yang akan dienkripsi diasumsikan sebagai masukan, Plaintext tersebut diambil sebanyak 64-bit, dan apabila kurang dari 64-bit maka kita tambahkan bitnya, supaya dalam operasi nanti sesuai dengan datanya. 4. Hasil pengambilan tadi dibagi 2, 32-bit pertama disebut XL, 32-bit yang kedua disebut XR. 5. Selanjutnya lakukan operasi XL = XL xor Pi dan XR = F(XL) xor XR. 6. Hasil dari operasi diatas ditukar XL menjadi XR dan XR menjadi XL. 7. Lakukan sebanyak 16 kali, perulangan yang ke-16 lakukan lagi proses penukaran XL dan XR. 8. Pada proses ke-17 lakukan operasi untuk XR = XR xor P17 dan XL = XL xor P18. 9. Proses terakhir satukan kembali XL dan XR sehingga menjadi 64-bit kembali. 3.2 Flowchart Sistem Berikut adalah flowchart sistem enkripsi dan dekripsi algoritma blowfish : 4
4. IMPLEMENTASI 4.1 Enkripsi Memasukkan plantext : Memasukkan key : 5
Output enkripsi : 4.2 Dekripsi Memasukkan key : 6
Output dekripsi : 5. PENUTUP 5.1 Kesimpulan Berdasarkan keseluruhan proses yang dilakukan untuk membangun Aplikasi Kriptografi menggunakan Algoritma Blowfish ini dapat disimpulkan bahwa aplikasi ini telah berhasil dibangun dan dapat berfungsi sesuai tujuan, yaitu mengamankan data ataupun informasi yang berupa text (plainteks) dengan mengacak text tersebut sehingga tidak dapat dibaca atau dimengerti. Aplikasi ini juga telah berhasil mengembalikan text yang telah diacak tersebut (cipherteks) seperti semula dengan menggunakan kunci yang sama sewaktu enkripsi. 6. DAFTAR PUSTAKA Rinaldi Munir. Data encryption standart (des). Technical report, Program Studi Teknik Informatika Institut Teknologi Bandung., 2005. Man Young. Rhee. Cryptography and Secure Communications. McGraw- Hill., 1994. Bruce. Schneider. Description of a new variablelength key, 64-bit block cipher (blowfish), fast software encryption. In Cambridge Security Workshop Proceedings, 1994. 7
Bruce Schneier. The blowfish encryption algorithm. In One Year Later. Dr. Dobb s Journal., 1995. Bruce Schneier. Aplied Cryptography 2nd. 1996. W Stalling. Cryptography and Network Security, Principle and Practice 2rd Edition,. Pearson Education, Inc., 1998. 8