Saat ini kriptoanalis sudah berkembang dengan pesat. sudah banyak metode kriptografi yang dapat di pecahkan dengan metode kriptoanalis saat ini. Maka dari itu diperlukan steganografi yaitu sebuah seni menyembunyikan pesan rahasia ke dalam suatu media, media bisa berupa gambar, suara ataupun video. Sehingga pesan rahasia yang disampaikan kepada penerima dari pengirim akan lebih aman dari gangguan orang ketiga.
Pada tugas akhir ini dibuat sebuah implementasi yang membuat steganografi teks pada media gambar menjadi lebih kuat dan aman. Implementasi yang digunakan adalah mengenkripsi pesan text terlebih dahulu dengan menggunakan algoritma kriptografi Blowfish. Informasi yang terenkripsi tersebut kemudian dimasukkan pada sebuah media gambar dengan algoritma steganografi GifShuffle.
Hasil dari implementasi kriptografi dan steganografi ini adalah sebuah gambar yang secara kasat mata terlihat mirip sehingga pihak ketiga tidak sadar jika gambar memiliki sebuah pesan rahasia. Hal ini di karenakan algoritma GifShuffle hanya mengubah posisi colormap sehingga tidak terjadi perubahan ukuran, piksel, panjang dan lebar image. Ditambah lagi dengan algoritma Blowfish yang sampai saat ini masih belum ada seorangpun yang bisa memecahkan dengan sempurna.
Kata Kunci :Kriptografi, Steganografi, Blowfish, GifShuffle.
I. PENDAHULUAN
AAT ini komunikasi merupakan salah satu hal terpenting dalam kehidupan. Tidak hanya manusia tetapi semua makhluk hidup juga saling berkomunikasi satu dengan lainya dengan caranya sendiri. Pada era informasi seperti sekarang, komunikasi merupakan hal yang sangat penting. Ada saat dimana suatu informasi tersebut bersifat rahasia sehingga tidak boleh ada orang lain yang mengetahui informasi selain orang yang dituju. Oleh karena itu metode komunikasi yang digunakan harus dibuat sedemikian rupa sehingga tidak ada orang lain selain orang yang di tuju mengetahui tentang informasi tersebut [5].
Maka dari itu lahirlah kriptografi yaitu sebuah metode untuk mengolah informasi dengan algoritma tertentu sehingga informasi menjadi samar dan sulit dipahami maknanya. Tetapi dengan semakin berkembangnya teknologi semakin berkembang juga kemampuan untuk memecahkan
kriptografi yang disebut dengan kriptanalisis. Sehingga pengamanan suatu informasi yang bersifat sangat penting juga harus berkembang [7].
Steganografi merupakan suatu seni menyembunyikan informasi pada suatu media. Media yang digunakan bisa berupa gambar, suara ataupun video. Sehingga jika seseorang ingin mengirim pesan kepada orang lain, tidak akan ada orang lain yang menyadari jika dalam media tersebut terdapat pesan rahasia [5].
Oleh karena itu pada tugas akhir ini dibuat sebuah implementasi yang membuat steganografi teks pada media gambar. Metode enkripsi yang digunakan adalah algoritma
Blowfish dan algoritma GifShuffle adalah metode digunakan
untuk steganografi. Sampai saat ini algoritma Blowfish masih belum ditemukan kelemahan yang berarti. Hasil dari enkripsi algoritma Blowfish juga sangat tidak mungkin dan tidak praktis untuk untuk di terjemahkan tanpa bantuan kunci. Dengan algoritma GifShuffle gambar yang di hasilkan tidak mengalami perubahan baik ukuran dan dimensinya. Gambar yang sudah berisi pesan rahasia akan sama persis dengan gambar sebelum di beri pesan rahasia, sehingga tingkat keamanan gabungan dari algoritma Blowfish dan GifShuffle akan sangat tinggi dan susah untuk dipecahkan [5,7].
II. KAJIANPUSTAKA
A. Konsep Dasar Citra
Image atau citra adalah sebuah kumpulan titik, garis,
bidang dan warna untuk menciptakan suatu objek.Citra bias berupa 2 dimensi dan 3 dimensi. contoh dari citra 2 dimensi adalah foto dan lukisan, sedangkan contoh dari citra 3 dimensi adalah patung dan hologram.
Citra digital adalah citra yang telah diproses dengan cara digitalisasi. Citra ini memiliki sebuah satuan yang dinamakan dengan piksel. Setiap gambar memiliki sebuah kedalaman bit yang merepresentasikan berapa jumlah warna yang dapat ditampung oleh sebuah gambar. Salah satu contohnya adalah gambar monochrome 1-bit, maksudnya adalah gambar tersebut hanya memiliki 2 warna saja yaitu 1
Implementasi Kriptografi dan Steganografi pada
Media Gambar dengan Menggunakan Algoritma
Blowfish dan GifShuffle
Tegar Meda Rahman, Ary Mazharudin Shiddiqi dan Hudan Studiawan
Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111
E-mail: [email protected]
dan 0 dengan kata lain gambar tersebut hanya memiliki warna hitam dan putih saja. Contoh lain adalah gambar 8-bit, berarti gambar tersebut mempunyai 256 variasi warna (28 warna).
B. Citra dengan format GIF
GIF merupakan kependekan dari Graphics Interchange
Format adalah sebuah format yang diperkenalkan pada tahun
1987 oleh Compuserve untuk menggantikan format RLE yang hanya dapat menampilkan gambar dengan warna hitam dan putih saja. GIF sering digunakan pada website karena gambar dengan format GIF memiliki ukuran yang relatif kecil karena Gif hanya memiliki 256 palet warna. Ukuran palet warna sebesar 256 adalah standar GIF’89 dan GIF’87. Kelebihan dari GIF adalah mampu menampilkan gambar bergerak.
GIF juga memiliki format yang terdiri dari header, logical
screen descriptor, global color table, graphics control extension, image descriptor, local color table, image data, plain text extension, application extension, comment extension, dan trailer.
C. Algoritma Blowfish
Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan suatu pesan dengan cara mengubahnya kedalam bentuk yang tidak dapat dimengerti lagi maknanya. Salah satunya adalah algoritma Blowfish. Algoritma ini merupakan
block cipher 64 bit. Algoritma blowfish terdiri key expansion
dan enkripsi data. Key expansion berfungsi untuk merubah
key menjadi beberapa array subkey dengan total 4168 byte.
Proses enkripsi algoritma Blowfish ini terdiri dari fungsi perulangan sederhana, di setiap putaranya terdiri dari permutasi key dependent, key subtitution dan data dependent. Operasi yang digunakan hanya penambahan dan XOR operasi tambahan lainya hanya empat penelusuran tabel
-lookup array berindeks untuk setiap putaranya. Untuk proses
dekripsi algoritma Blowfish ini sama seperti pada kebanyakan algoritma kriptografi lainya yaitu hanya pembalikan dari proses enkripsi.
D. Algoritma GifShuffle
Steganografi merupakan perkembangan dari kriptografi. Steganografi adalah seni menyembunyikan pesan kedalam suatu cara sehingga yang mengetahui hanya si pengirim dan penerima, tidak ada seorangpun yang menyadari bahwa ada suatu pesan yang disembunyikan. Algoritma GifShufle merupakan salah satu algortima steganografi yang dapat menyembunyikan suatu pesan ke dalam sebuah berkas dengan format GIF. GifShuffle memanfaatkan posisi
colormap yang terdapat pada header file untuk
menyembunyikan suatu pesan, sehingga tidak akan terjadi perubahan apapun pada berkas berformat GIF. Proses dekripsi pada algoritma GifShuffle ini hanya pembalikan dari proses enkripsinya, sama seperti pada kebanyakan algoritma
steganografi lainya.
III. ANALISISDANPERANCANGAN
A. Deskripsi Umum
Dalam tugas akhir ini dirancang sebuah aplikasi kriptografi dan steganografi menggunakan bahasa pemrograman Java dengan mengimplementasikan algoritma Blowfish dan
GifShuffle. Aplikasi ini dibuat untuk meningkatkan
keamanan steganografi berupa teks ke dalam sebuah media gambar, karena selama ini metode yang digunakan masih sederhana dan perlu diragukan tingkat keamanannya. Maka dari itu digunakan algoritma kriptografi Blowfish untuk meningkatkan keamanannya.
B. Arsitektur Sistem
Pada aplikasi ini terdapat dua proses yang terjadi yaitu proses enkripsi dan proses dekripsi. Proses enkripsi pada aplikasi ini melibatkan dua fungsi utama yaitu enkripsi
Blowfish dan GifShuffle, begitu juga dengan proses
dekripsinya juga melibatkan dua fungsi utama yaitu dekripsi
Blowfish dan GifShuffle. Gambar 1 menunjukan alur
algoritma Blowfish, Gambar 2 menunjukan alur algoritma
GifShuffle sedangkan Gambar 3 menunjukan alur gabungan
algoritma Blowfish dan GifShuffle
Start
X/2 = XL & XR
XL = XL xor Pi XR = F(XL) xor XR
Tukar XL dan XR
i < 16
Satukan kembali XL dan XR XR = XR xor P17
XL = XL xor P18
End Tukar XL dan XR
no
yes
Start
Baca pesan
Baca Citra Gif
Hitung total warna unik
Gambar 2 Diagram Alur Algoritma GifShuffle
Start
X/2 = XL & XR
XL = XL xor Pi XR = F(XL) xor XR
Tukar XL dan XR
i < 16
Satukan kembali XL dan XR XR = XR xor P17 XL = XL xor P18 Tukar XL dan XR
no
yes Baca pesan
Baca Citra Gif
Hitung total warna unik
Gambar 3 Diagram Alur Gabungan Algoritma Blowfish dan GifShuffle
C. Deskripsi Singkat Aplikasi
Pada aplikasi ini masukan algoritma GifShuffle adalah hasil dari enkripsi algoritma Blowfish yang berupa bilangan heksadesimal. Pengguna dapat memasukan pesan, kemudian memilih gambar yang ingin digunakan sebagai media penyembunyian. Setelah itu pengguna dapat melanjutkan dengan memilih enkripsi untuk memulai proses enkripsi. Hasilnya adalah sebuah gambar dengan format GIF yang telah berisi pesan. Dan ketika pengguna memilih dekripsi maka gambar akan diekstrak dan menghasilkan sebuah pesan
yang berada di dalam gambar. Seperti yang diilustrasikan pada Gambar 4.
System
Pengguna
I nput Pesan
I nput Password
pilih gambar Melakukan Ext ract ing GifShuffle
< < include> >
< < include> >
< < include> > < < include> >
Gambar 4 Use Case Sistem
IV. IMPLEMENTASI
A. Implementasi Enkripsi Blowfish
Pada implementasi enkripsi Blowfish terdapat sebuah fungsi yang akan mendapatkan masukan berupa pesan. Kemudian fungsi ini akan menghitung panjang pesan tersebut. Setelah itu, fungsi ini akan mengalokasikan sebuah buffer yang berfungsi untuk menyalin semua bytes dari string ke dalam buffer. Kemudian dimasukan kedalam fungsi lain yang berguna untuk membuat enkriptor yang akan dipindahkan ke dalam buffer. Kemudian akan ada fungsi yang berguna untuk mengenkrip buffer yang akan menghasilkan sebuah ciphertext yang berbentuk bilangan heksadesimal.
B. Implementasi Embedding GifShuffle
Pada implementasi embedding GifShuffle terdapat sebuah fungsi yang menerima masukan yang merupakan chipertext. Kemudian masukan tersebut akan diubah kedalam bentuk biner yang selanjutnya akan diubah kedalam bentuk integer. Kemudian fungsi ini akan menghitung jumlah warna yang terdapat pada gambar. Selanjutnya adalah mencari posisi
colormap yang baru untuk menyisipkan pesan kedalam
gambar. Jika posisi baru telah didapatkan maka colormap yang baru akan menggantikan colormap gambar sehingga akan didapatkan sebuah gambar yang berisi pesan.
C. Implementasi Ekstrasi GifShuffle
Implementasi ekstrasi GifShuffle lebih sederhana daripada proses embedding karena disini hanya mengambil colormap dari gambar yang telah berisi pesan dan mengembalikan nilai M seperti semula tanpa perlu mengembalikan posisi
colormap seperti semula. Dan ketika nilai M sudah
selanjutnya yaitu dekripsi Blowfish agar pesan dapat dibaca kembali.
D. Implementasi Dekripsi Blowfish
Implementasi Dekripsi Blowfish memiliki proses yang sama dengan proses Enkripsi hanya dibalik saja. Setelah melalui proses ini maka pesan akan dapat dibaca kembali.
V. UJICOBADANEVALUASI
A. Uji Coba Fungsionalitas
Uji coba Fungsionalitas ini memastikan fitur yang ada pada aplikasi telah berjalan sesuai dengan use case yang telah dijelaskan sebelumnya pada Gambar 4. Gambar 5 menunjukan aplikasi berjalan sesuai dengan rancangan yang telah dirancang sebelumnya.
Gambar 5 Uji Coba Fungsionalitas
B. Uji Coba Skenario dan Performa
Uji coba skenario dan performa dilakukan dengan berbagai macam kondisi dan gambar, untuk mengetahui faktor apa saja yang mempengaruhi proses enkripsi dan dekripsi, dan untuk mengetahui seberapa cepat proses enkripsi dan dekripsi dilakukan. Untuk melakukan uji coba performa ini diperlukan fungsi tambahan System.currentTimeMillis() yang diletakan pada setiap awal dan akhir fungsi enkripsi dan dekripsi. Pada skenario uji coba pesan yang digunakan sama yaitu “Ujian Tugas Akhir” yang akan menghasilkan ciphertext sebanyak 96 karakter. Uji coba pertama akan mencoba menyisipkan pesan kedalam gambar transparan proses enkripsi dan dekripsi berhasil.
Uji coba kedua selanjutnya akan mencoba menyisipkan sebuah pesan kedalam sebuah media gambar dengan ukuran 791 KB dengan resolusi 1024x1024, proses enkripsi dan dekripsi berhasil dilakukan. Skenario uji coba ketiga dilakukan dengan mencoba menyisipkan pesan kedalam sebuah gambar dengan ukuran dan resolusi yang kecil yaitu 69 bytes dan 10x10. Proses enkripsi dan dekripsi tidak berhasil karena pada gambar ini hanya memiliki 4 warna sehingga hanya bisa menyimpan pesan sebanyak faktorial 4 yaitu 24 karakter. Pada uji coba 4 mencoba memasukan gambar yang memiliki 256 warna proses enkripsi dan dekripsi berhasil dilakukan. Pada uji coba 5 dan 6 media
gambar yang digunakan untuk menyisipkan pesan sama tetapi yang berbeda adalah pesan yang akan dimasukan memiliki panjang yang berbeda, tujuanya adalah untuk mengerahui apakah panjang pesan yang dimasukan mempengaruhi kecepatan proses enkripsi dan dekripsi.
Hasil dari skenario ini ternyata panjang pesan mempengaruhi kecepatan proses enkripsi dan dekripsi semakin panjang pesan semakin lama waktu yang dibutuhkan. Pada skenario 7 akan mencoba menyisipkan pesan kedalam sebuah gambar animasi. Proses enkripsi dan dekripsi berhasil dilakukan tetapi hasilnya gambar bukan animasi lagi dan ukuranya berkurang. Pada uji coba 8 yang dilakukan adalah mencoba memasukan sebuah pesan kedalam sebuah gambar berukuran 69 bytes dengan resolusi 3x5. Proses enkripsi dan dekripsi berhasil dilakukan karena gambar ini memilik warna sebanyak 252 sehingga dapat menyimpan pesan sebanyak faktorial 252 karakter.
C. Uji Coba Akurasi
Uji coba akurasi ini bertujuan untuk mengetahui perubahan yang terjadi pada pesan maupun pada gambar yang digunakan sebagai media penyembunyian pesan. Pada uji coba kali ini akan membandingkan media gambar sebelum di enkripsi dan setelah di enkripsi dengan cara mencari nilai PSNR (Peak Signal to Noise Ratio). Adapun persamaan yang digunakan seperti pada persamaan (5.1)
PSNR = 10 log10 (
MSE
MAX
2) desibel (5.1)
Adapun nilai Persamaan MSE (Mean Square Error) seperti pada persamaan (5.2)
MSE =
( ) ( )
Persamaan MSE membutuhkan 2 masukan citra, kemudian dicari nilainya. Setelah itu dihitung nilai PSNR. Nilai pembanding yang wajar adalah diatas 30 dB.
Tabel 1
Perbandingan Nilai PSNR
No Nama Jumlah
gambar ini hanya memiliki jumlah colormap 4, terlalu kecil untuk menyisipkan pesan. Gambar selanjutnya mona, airplane,animasi dan test juga berhasil melakukan proses enkripsi dengan menghasilkan nilai PSNR 17.88 dB, 26.84dB, 16.30 dB dan 28.70 dB.
VI. KESIMPULAN Kesimpulan dari tugas akhir ini adalah :
1. Pemanfaatan Algoritma Blowfish dan GifShuffle dengan menggunakan Java telah berhasil diimplementasikan.
2. Media gambar yang digunakan sebagai media penyimpanan tidak mengalami perubahan pada ukuran dan dimensi. Secara kasat mata terlihat mirip tetapi sebenarnya berbeda karena nilai PSNR tidak lebih besar dari 50dB.
3. Performa proses enkripsi dan dekripsi dipengaruhi oleh besarnya pesan yang akan disembunyikan dan besarnya ukuran media gambar yang digunakan untuk menyembunyikan pesan. Semakin besar pesan dan media gambar yang digunakan untuk menyembunyikan pesan, semakin lama waktu yang dibutuhkan.
4. Proses Dekripsi memiliki performa yang lebih cepat daripada proses enkripsi, hal ini dikarenakan pada proses dekripsi pada algoritma GifShuffle prosesnya lebih sederhana karena tidak perlu mengganti colormap yang baru dengan yang lama yang lebih diutamakan adalah pesan yang disembunyikan dapat dibaca kembali.
5. Setiap berkas GIF tidak selalu memiliki jumlah warna yang sama.
6. Banyaknya kapasitas yang dapat ditampung oleh berkas GIF tidak tergantung pada ukuran dan resolusi. Tetapi pada banyaknya jumlah colormap yang ada pada berkas GIF.
7. berkas dengan format GIF mengandung 256 colormap maka dapat disimpulkan bahwa total penyimpanan maksimum dari format ini adalah faktorial 256. 8. Tingkat keamanan sangat tinggi karena algoritma
Blowfish sampai saat ini masih belum ada yang
berhasil mematahkan dengan sempurna, ditambah dengan algoritma steganografi GifShuffle yang secara kasat mata terlihat mirip.
UCAPANTERIMAKASIH
Penulis T.M. mengucapkan terima kasih kepada Tuhan Yang Maha Esa, kedua orang tua dan keluarga penulis, dosen pembimbing, dosen dan kepala jurusan Teknik Informatika, kerabat dekat, serta berbagai pihak yang telah membantu penulis dalam menyelesaikan Tugas Akhir ini.
DAFTARPUSTAKA
[1] Ficklinger, M. (n.d.). What's In A GIF - Bit by Byte. Retrieved June 2012,
from www.matthewflickinger.com:
http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp#loc al_color_table_block
[2] Ficklinger, M. (n.d.). What's In A GIF - LZW Image Data. Retrieved June
2012, from www.matthewflickinger.com:
http://www.matthewflickinger.com/lab/whatsinagif/lzw_image_data.asp
[3] Jamasoka, S. (2012). Perbandingan Steganografi pada Citra Graphic
Interchange Format Dengan Algoritma GifShuffle dan Metode Least Significant Bit.
[4] Kwan, M. (n.d.). The GifShuffle Home Page. Retrieved April 2012, from
darkside: http://www.darkside.com.au/gifshuffle/
[5] Penalosa, R. A. (2010). Steganografi Pada Citra dengan Format GIF
Menggunakan Algoritma GifShuffle.
[6] Stalling, W. (2011). Cryptography and Network Security. Boston: Prentice
hall.
[7] Stalling, W. (2011). Steganography. In W. Stalling, Cryptography and
Network Security (p. 57). Pretice hall.
[8] Stalling, W. (2011). Symmetric Cipher Model. In W. Stalling,
Cryptography and Network Security (p. 33). Prentice hall.
[9] Sutanto, C. A. (2010). Penggunaan Algoritma Blowfish dalam Kriptografi.
[10] Welstead, Stephen T. (1999). Fractal and wavelet image compression