Penerapan Enkripsi Algoritma Blowfish Pada Proses Steganografi Metode Eof
PENERAPAN ENKRIPSI ALGORITMA BLOWFISH PADA PROSES STEGANOGRAFI METODE EOF Paskalis Andrianus Nani Program Studi Teknik Informatika Universitas Katolik Widya Mandira Email:
[email protected]
Abstrak Steganografi adalah proses penyembunyian pesan dalam sebuah gambar. Steganografi bisa dikatakan lebih aman karena sifatnya yang tidak mengacak, sehingga file yang disisipi tidak mencurigakan, walaupun hampir setiap metode memiliki kelebihan dan kekurangan masing-masing. Steganography adalah cara yang menarik dan efektif dalam menyembunyikan pesan rahasia dan telah digunakan selama berabad-abad. Metode-metode untuk “memperlihatkan” pesan yang disembunyikan (disebut steganalysis) sudah cukup banyak. Oleh karena itu, pesan yang akan disisipkan perlu dienkripsi terlebih dahulu. Tujuan dari penelitian ini adalah mencoba memadukan kelebihan algoritma Blowfish (kriptografi) dan metode End Of File (steganografi); dimana “pesan rahasia” dienkripsi terlebih dahulu menggunakan algoritma Blowfish, lalu setelah itu disisipkan pada cita digital menggunaan metode End Of File. Kata Kunci : End Of File (EOF), Steganografi, Blowfish.
1. Pendahuluan Seiring dengan perkembangan teknologi, ancaman terhadap keamanan informasi yang dibutuhkan semakin besar, terutama untuk informasi yang dirahasiakan tersebut. Berbagai ancaman di dunia maya seperti hacker, cracker, carder membuat orang khawatir akan keamanan informasi yang dikirimnya. Kekhawatiran inilah yang membuat pengiriman informasi sedikit terhambat, sedangkan informasi tersebut sangat penting orang-orang tertentu[1]. Banyak cara yang dapat dilakukan untuk menyembunyikan informasi yang akan dikirim. Pertama, menggunakan teknik kriptografi, yakni dengan menyandikan informasi menggunakan algoritma tertentu. Tetapi, dengan menyandikan pesan, maka pesan akan nampak sebagai kodekode aneh yang justru akan membuat penasaran bagi orang yang membacanya, yang akhirnya akan berusaha untuk mengetahui kode-kode aneh tersebut. Teknik lain adalah dengan menyisipkan pesan yang akan dikirimkan ke media lain, sehingga pesan tersebut akan “tersembunyi” dan yang akan nampak adalah media lain yang digunakan untuk menyisipkan pesan. Teknik penyembunyian informasi yang cukup terkenal adalah steganografi. Teknik mengurangi kekurangan dari kriptografi yang dapat dengan mudah menimbulkan kecurigaan. Steganografi menyembunyikan informasi rahasia di dalam informasi lain sehingga informasi tersebut tidak dapat diketahui oleh orang lain
yang tidak bersangkutan. Teknik ini mempunyai beberapa metode yang digunakan untuk mengenkripsinya, salah satunya adalah End Of File (EOF) [5]. Banyak penelitian yang telah dilakukan dalam bidang steganografi seperti yang dilakukan oleh Aditya[1], yang membandingkan beberapa teknik steganografi, Anggraini[4], menganalisa penyisipan data pada citra bitmap tanpa mengubah karakteristik citra tersebut, serta Krisnawati[5] yang membahas lebih mendalam mengenai perbandingan metode LSB dan EOF dalam tulisannya. Penelitian ini ingin mengimplementasikan algoritma Blowfish untuk mengenkripsi informasi yang akan dikirim lalu memproses informasi tersebut menggunakan teknik steganografi dengan metode End Of File untuk menyamarkan informasi tersebut.
2.
Tinjauan Pustaka Kriptografi
Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integrasi data, serta autentifikasi. Tidak semua aspek keamanan informasi ditangani oleh kriptografi.
Penerapan Enkripsi Algoritma Blowfish Pada Proses Steganografi Metode Eof
Steganografi Steganografi (steganography) adalah teknik menyembunyikan data rahasia di dalam wadah (media) digital sehingga keberadaan data rahasia tersebut tidak diketahui oleh orang[7]. Penyembunyian data rahasia ke dalam citra digital akan mengubah kualitas citra tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah: [12] 1. Fidelity. Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. 2. Robustness. Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung (seperti pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan (cropping), enkripsi, dan sebagainya). Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak. 3. Recovery. Data yang disembunyikan harus dapat diungkapkan kembali (recovery). Karena tujuan steganografi adalah data
key
hiding, maka sewaktu-waktu data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut. key
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu: [11] 1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas ataukunci rahasia untuk membuka/mengupas informasi yang telah disandi. 2. Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihakpihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya. 3. Autentifikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain. 4. Non-reoudiasi, atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
cover*
cover
emb
fE sender
stego
fE-1
emb*
recipient
Gambar 1. Steganographic System Gambar di atas menunjukkan sebuah sistem steganografi umum dimana di bagian pengirim pesan(sender) dilakukan proses embedding(fE) pesan yang hendak dikirim secara rahasia(emb) ke dalam data cover sebagai tempat menyimpannya(cover), dengan menggunakan kunci tertentu(key), sehingga dihasilkan data dengan pesan tersembunyi di dalamnya(stego). Di bagian penerima pesan(recipient), dilakukan proses extracting(fE-1) pada stego untuk memisahkan pesan rahasia(emb*) dan data penyimpan(cover*) tadi menggunakan kunci(key) yang sama seperti pada proses embedding.
Algoritma Blowfish Blowfish merupakan metoda enkripsi yang mirip dengan DES (DES-like cipher) dan diciptakan oleh Bruce Schneier yang ditujukan untuk mikroposesor besar (32 bit ke atas dengan cache data yang besar). Blowfish dikembangkan untuk memenuhi kriteria disain sebagai berikut:[11] 1. Cepat, pada implementasi yang optimal Blowfish dapat mencapai kecepatan 26 clock cycle per byte. 2. Kompak, Blowfish dapat berjalan pada memori kurang dari 5 KB. 3. Sederhana, Blowfish hanya menggunakan operasi yang simpel: penambahan (addition), XOR, dan penelusuran tabel (table lookup) pada operand 32 bit. Desainnya mudah untuk dianalisa yang membuatnya resisten terhadap kesalahan implementasi. 4. Keamanan yang variabel, panjang kunci Blowfish dapat bervariasi dan dapat mencapai 448 bit (56 byte). Blowfish dioptimasikan untuk aplikasi dimana kunci tidak sering berubah, seperti jalur komunikasi atau enkripsi file otomatis. Blowfish jauh lebih cepat dari DES bila diimplementasikan pada 32 bit mikroprosesor dengan cache data yang besar, seperti Pentium dan Power PC, Blowfish tidak cocok untuk aplikasi seperti packet switching, dengan perubahan kunci yang sering, atau sebagai fungsi hash satu arah. Kebutuhan memorinya yang besar tidak memungkinkan untuk aplikasi kartu pintar (smart card).
Penerapan Enkripsi Algoritma Blowfish Pada Proses Steganografi Metode Eof
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 kunci-dependent dan substitusi kunci- dan data-dependent. 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 pseudo-code algoritma enkripsinya:[10] 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*/
Agar lebih mudah dipahami silahkan lihat ilustrasi berikut: [6]
Gambar 2. Struktur Blowfish Cipher Adapun F-function untuk Blowfish seperti pada gambar berikut: [6]
Gambar 3. 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. [10]
F xL S1, a S2,b mod 232 XOR S 3, c S4, d mod 232
(1)
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:[10] 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 P 2 dengan 32 bit kedua dari kunci dan seterusnya untuk setiap bit dari kunci (sampai P18). Ulangi terhadap bit kunci sampai seluruh P-array di XOR dengan bit kunci. 3. Enkrip semua string nol dengan algoritma Blowfish dengan menggunakan subkunci seperti dijelaskan pada langkah (1) dan (2). 4. Ganti P1 dan P2 dengan keluaran dari langkah (3) 5. Enkrip keluaran dari langkah (3) dengan algoritma Blowfish dengan subkunci yang sudah dimodifikasi. 6. Ganti P3 dan P4 dengan keluaran dari langkah (5). 7. Lanjutkan proses tersebut, ganti seluruh elemen dari P-array, dan kemudian seluruh keempat S-box
Penerapan Enkripsi Algoritma Blowfish Pada Proses Steganografi Metode Eof
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.
End Of File Metode ini meyembunyikan pesan rahasia dengan cara manambahkan bit-bit pesan yang akan disembunyikan ke akhir file citra penampung[1]. Proses penyisipan pesan dengan metode End Of File dapat dituliskan dalam algoritma sebagai berikut:[5] 1. Inputkan pesan yang akan disisipkan 2. Ubah pesan menjadi kode-kode desimal. 3. Inputkan citra grayscale yang akan disisipi pesan. 4. Dapatkan nilai derajat keabuan masingmasing piksel. 5. Tambahkan kode desimal pesan sebagai nilai derajat keabuan diakhir citra. 6. Petakan menjadi citra baru
3. Metode Penelitian Penelitian ini akan mengimplementasikan perpaduan antara algoritma blowfish dan metode end of file dalam proses steganografi pada citra grayscale menggunakan software Borland Delphi 7. Proses perpaduan kedua metode tersebut dapat digambarkan pada diagram alur di bawah ini:
Start
Pesan yang akan disisipkan
Enkripsi pesan dengan algorima blowfish
PassPhrase
Pesan yang telah dienkripsi
Citra penampung
Steganografi dengan metode EOF
Stego
End
Gambar 4. Diagram Alir proses enkripsi pesan dan penyisipan Proses ekstraksi pesan dilakukan sebaliknya. Pesan diekstraksi dari citra penampung lalu didekripsi dengan algoritma blowfish menggunakan passphrase yang sama saat proses enkripsi. Berikut diagram alurnya: Start
Stego
Ekstraksi pesan dari citra penampung
Pesan hasil ekstraksi
PassPhrase
Dekripsi pesan
Pesan
End
Gambar 5. Diagram Alir proses ekstraksi dan dekripsi pesan
Penerapan Enkripsi Algoritma Blowfish Pada Proses Steganografi Metode Eof
4. Hasil Dan Pembahasan Pada tahapan ini, terdapat tiga buah file text yang akan dienkripsi dan masing-masing akan disisipkan ke dalam sebuah citra berformat bitmap(*.BMP). Tabel 1. File yang digunakan dalam percobaan No 1 2 3 4
Nama File Saya.txt Belajar.txt Pemrograman.txt Unwira.bmp (1000 x 936 piksel)
Ukuran 438 byte 106.846 byte 338.486 byte 2.808.056 byte
Gambar 8. citra unwira.bmp Enkripsi Pesan Rahasia Proses enkripsi pesan dilakukan terhadap 3 buah file yang disebutkan di atas dengan passphrase berupa kata “andi”. Perubahan ukuran file setelah enkripsi dapat dilihat pada tabel di bawah ini:
Berikut adalah tampilan aplikasi steganografi menggunakan metode EOF:
Tabel 2. Perubahan ukuran file setelah enkripsi No 1 2 3
Nama File Saya.txt Belajar.txt Pemrograman.txt
Sebelum 438 byte 106.846 byte 338.486 byte
Sesudah 454 byte 106.862 byte 338.502 byte
Berdasarkan tabel di atas, dapat dilihat bahwa hasil enkripsi ketiga file tersebut mengalami pembengkakan sebesar 16 bytes. Berikut tampilan aplikasinya:
Gambar 9. Form steganografi dengan metode LSB Ukuran citra stego setelah steganografi tidak sama seperti ukuran awal citra sebelum steganografi. Resolusi citra stego bertambah banyak sebanding dengan besar file yang disipkan. Perbandingan lama proses steganografi terhadap ketiga buah file yang telah dienkripsi dapat dilihat pada tabel di bawah ini: Tabel 3. Perbandingan lama proses penyisipan
Gambar 6. Form enkripsi data Jika proses enkripsi sukses, maka akan muncul tampilan berikut:
No 1 2 3
Nama File Saya.txt Belajar.txt Pemrograman.txt
Lama Proses 0.090 det 0.631 det 1.153 det
Berdasarkan tabel perbandingan di atas, dapat dilihat bahwa ukuran file yang akan disisipkan berbanding lurus dengan waktu yang dibutuhkan dalam proses steganografi. Ekstaksi Pesan Rahasia
Gambar 7. Pemberitahuan jika enkripsi sukses Penyisipan Pesan Rahasia Yang dienkripsi Proses penyisipan pesan dilakukan terhadap ketiga buah file yang telah dienkripsi. Citra penampung adalah citra “unwira.bmp” grayscale dengan resolusi 1000 x 936 piksel.
Proses ekstraksi pesan rahasia relatif lebih lama dibandingkan dengan proses penyisipan. Lama proses dapat dlihat pada tabel di bawah ini: Tabel 4. Perbandingan lama proses ekstraksi No 1 2 3
Nama File Saya.txt Belajar.txt Pemrograman.txt
Lama Proses 0.245 det 1.872 det 2.651 det
Penerapan Enkripsi Algoritma Blowfish Pada Proses Steganografi Metode Eof
Berikut disajikan tampilan form ekstraksi pesan:
[6]
[7]
[8] [9] [10]
Gambar 10. Form ekstraksi dan dekripsi pesan
5. Kesimpulan Steganografi menggunakan metode EOF merupakan teknik yang relatif mudah dimengerti, walaupun pesan yang terdapat dalam stego dapat dengan mudah diekstrak oleh orangorang yang tidak bertanggungjawab menggunakan software steganalysis yang beredar luas di dunia maya saat ini. Selain itu, ukuran file penampung akan semakin besar tergantung ukuran pesan yang akan disisipkan. Tetapi, dengan melakukan enkripsi tehadap pesan yang ingin disisipkan, keamanan pesan dapat semakin dijaga.
Daftar Pustaka [1]
[2]
[3]
[4]
[5]
Aditya, Yogie, dkk, 2010, Studi Pustaka Untuk Steganografi Dengan beberapa Metode, Prosiding Seminar Nasional Aplikasi Teknologi Informasi Yogyakarta 9 Juni 2010. Alatas, Putri, 2009, Implementasi Teknik Steganografi Dengan Metode LSB Pada Citra Digital, Jakarta, Universitas Gunadarma. Anggaraini, Ema Utami, 2007, Analisis Penyisipan Data pada Citra Bitmap Menggunakan Metode Bit Plane Complexity Segmentation, Prosiding Seminar Nasional Teknologi Yogyakarta 24 November 2007. Hakim, Muhammad, - , Studi Dan Implementasi Steganografi Metode LSB Dengan Preprocessing Kompresi Data Dan Ekspansi Wadah, Bandung, STEI ITB. Krisnawati, 2008, Metode Least Significant Bit (LSB) dan End Of File (EOF) Untuk Menyisipkan Teks ke Dalam Citra Grayscale, Prosiding Seminar Nasional Informatika @ UPN Veteran Yogyakarta 24 Mei 2008.
[11]
[12]
Marcel, Jonathan, - , Studi Perbandingan Cipher Blok Algoritma Blowfish Dan Algoritma Camellia, Bandung, STEI ITB. Munir, Rinaldi, 2004, Pengolahan Citra Digital Dengan Pendekatan Algoritmik, Bandung, INFORMATIKA. Pitas, Ioannis, 1993, Digital Image Processing Algorithms. UK, Prentice-Hall. Putra, Dharma, 2010, Pengolahan Citra Digital, Yogyakarta, ANDI. Sukmawan, Budi, 2000, Metoda Enkripsi Blowfish, http://www.bimacipta.com/blowfish.htm, Diakses tanggal 16 Oktober 2011. Sutanto, Candra Alim, - , Penggunaan Algoritma Blowfish Dalam Kriptografi, Bandung, STEI ITB. Sutoyo, dkk. 2009, Teori Pengolahan Citra Digital, Yogyakarta, ANDI.