Pendekatan metode Least Significant Bit untuk merancang aplikasi steganography pada file PNG dengan metode huffman code dalam kompresi pesan Akbar Muchbarak1 Farham Harvianto2 Magister Ilmu Komputer, Teknik Informatika, Universitas Budi Luhur, Jl. Cileduk Raya, Petukangan Utara,Jakarta Selatan, 12260, Indonesia E-mail: farhamapple @gmail.com,
[email protected] ABSTRAK Terdapat beberapa cara untuk menangani masalah keamanan data rahasia yang dikirimkan melalui internet, diantaranya adalah menggunakan teknik steganografi dan kompresi. Steganografi merupakan ilmu dan seni penyembunyian informasi/pesan pada suatu media sedemikian rupa sehingga keberadaannya tidak terdeteksi oleh pihak lain yang tidak berhak atas informasi tersebut. Sebaliknya, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan bahwa ada suatu pesan karena file terlihat mencurigakan. Teknik Steganografi yang penulis gunakan adalah Least Significant Bit (LSB). Teknik LSB menggunakan cara menambahakan data atau file pada akhir file image. Untuk teknik ini, data atau file yang akan disembunyikan tidak merubah ukuran besarnya suatu gambar, tetapi sedikit merubah citra dari gambar. Data yang disembunyikan tersebut akan disisipkan pada akhir bit-bit pixel yang ada dalam gambar tersebut, sehingga pesan yang disisipkan terbatas. Aplikasi steganografi ini juga dilengkapi dengan kompresi data dengan metode Huffman code, pada saat sebelum penyisipan data yang berfungsi sebagai kompresi data, agar pesan yang dimasukkan kedalam gambar bisa lebih panjang dan juga keamanan suatu data dalam file lebih terjaga dan terlindungi dari pihak yang tidak berhak mengetahui data tersebut. Data menggunakan steganografi dengan algoritma metode least significant bit (LSB) dan kompresi data dengan metode Huffman code berbasis Java Programming diharapkan dapat melindungi data rahasia perusahaan agar tidak mudah terbaca oleh orang yang tidak berkepentingan. Kata kunci: Steganografi, Least Significant Bit (LSB), Huffman Code
1. INTRODUCTION (PENDAHULUAN) Muncul kebutuhan pengiriman sebuah informasi yang mengandung rahasia dan privasi tanpa diketahui orang yang tidak dituju, hanya antara pengirim pesan dan penerima pesan saja. Contohnya, pertukaran file sebuah perusahaan, pertukaran file organisasi militer pemerintah, dan lainnya. Hal ini membuat orang yang tidak memiliki kuasa atas file ingin mengetahui isi dari file, kemudian muncul ancaman kriminalitas akan keamanan informasi rahasia tersebut. Ancaman ini akan berakibat pada informasi rahasia yang dikomunikasikan. Proses pengiriman informasi rahasia yang aman, cepat, dan akurat menjadi prioritas utama. Dibutuhkan suatu aplikasi yang mampu menyembunyikan informasi ke dalam suatu media yang dapat diakses oleh semua orang, namun mereka tidak menyadari bahwa media tersebut telah disisipkan informasi rahasia. Menyikapi masalah keamanan informasi rahasia tersebut, dikembangkan aplikasi steganography yang merupakan teknik untuk menyisipkan pesan atau data rahasia ke dalam suatu media yang tidak terlihat menunjukkan ciri-ciri perubahan dari kualitas
danstruktur media semula, sehingga mengurangi kecurigaan sebab tidak ada pihak ketiga yang mengetahui keberadaan pesan atau data rahasia tersebut. Steganography dapat diterapkan pada berbagai macam bentuk media digital, misalnya teks, citra(image), suara (audio), dan video. Media yang umum digunakan untuk studi dan pengembangan aplikasi steganography adalah image dan audio. Berdasarkan oleh kenyataan tersebut, akan dikembangkan aplikasi program steganography yang dapat menyembunyikan pesan atau data rahasia ke dalam media video. Steganography pada video merupakan gabungan antara steganography pada image dan audio. Pesan atau data rahasia disisipkan pada setiap frame video.
2. RELATED WORK 2.a Steganography Steganography adalah ilmu dan seni menulis atau menyembunyikan pesan kedalam sebuah media sedemikian rupa sehingga keberadaan pesan tidak diketahui atau tidak disadari oleh orang selain pengirim dan penerima pesan tersebut. Kata steganography berasal dari bahasaYunani, yaitu “steganos” yang berarti tersembunyi atau terselubung dan “graphein” yang berarti menulis[1]. Steganography membutuhkan dua aspek yaitu media penyimpanan dan rahasia yang akan disembunyikan. Metode steganography sangat berguna jika digunakan pada steganography compute karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan pesan. Steganography digital menggunakan media digital sebagai wadah penamping, misalnya teks, citra, suara, dan video. Data rahasia yang disembunyikan juga dapat berupa teks, citra, suara, atau video. Steganography dan cryptography berkaitan erat, namun keduanya merupakan hal yang berbeda. Steganography dapat dipandang sebagai kelanjutan cryptography. Maka kelebihan steganography daripada cryptography adalah pesan rahasia tidak terlihat sehingga tidak menarik perhatian pihak ketiga. Atau lebih jelasnya, pada cryptography data yang telah disandikan (ciphertext) tetap tersedia; sedangkan pada steganography, ciphertext disembunyikan sehingga pihak ketiga tidak mengetahui keberadaannya. Pesan-pesan berkode dalam cryptography yang telah dienkripsi akan menimbulkan kecurigaan, walaupun tidak dapat dipecahkan, sedangkan sebuah pesan rahasia yang tidak tampak tentunya tidak akan dicurigai. Steganography dan cryptography digunakan secara bersamaan untuk menghasilkan perlindungan yang lebih baik terhadap sebuah pesan, yaitu ketika steganography gagal dan pesan dapat terlihat, pesan tersebut masih tidak dapat diartikan karena telah dienkripsi menggunakan teknik-teknik cryptography. Caranya, sebuah pesan steganography (plaintext), biasanya pertama-tama dienkripsikan dengan beberapa arti tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext. Secara umum proses steganography menggunakan kunci sebagai sarana kepemilikan untuk dapat membuka pesan yang disisipkan melalui encoder yang berisi algoritma penyisipan steganography ke dalam media.
Gambar 1
Manfaat penggunaan steganography sebagai suatu teknik penyembunyian data pada data digital lain adalah sebagai berikut : - Tamper-proofing Steganography digunakan sebagai alat indikator untuk memeriksa integritas data dengan menunjukkan apakah data digital yang asli telah mengalami perubahan dari aslinya. - Feature location Steganography sebagai alat identifikasi isi dari data digital pada lokasi-lokasi tertentu, misalnya penamaan suatu objek tertentu dari beberapa objek yang ada pada data digital. - Annotation/caption Steganography berisi keterangan tentang data digital itu sendiri, misalnya pada broadcast monitoring pada penayangan iklan di stasiun TV. Selain itu, steganography juga dapat digunakan untuk mengirimkan informasi rahasia. - Copyright-labeling Steganography digunakan sebagai metode untuk menyembunyikan label hak cipta pada data digital atau sebagai bukti otentik kepemilikan atas data digital tersebut, yang dikenal sebagai watermark. Sebagian besar penelitian dan perancangan aplikasi steganography adalah pada citra digital. Hal ini disebabkan sebuah image dengan informasi rahasia di dalamnya lebih mudah disebarluaskan melalui web atau forum. Yang perlu diperhatikan adalah ketika informasi disembunyikan ke dalam file image dan image tersebut diubah ke format image lain, maka informasi yang disembunyikan akan hilang.
2.b Least Significant Bit(LSB) Least Significant Bit (LSB) adalah cara paling umum untuk menyembunyikan pesan. LSB dilakukan dengan memodifikasi bit-bit yang termasuk bit LSB pada setiap byte warna pada sebuah piksel. Bit-bit LSB ini akan dimodifikasi dengan menggantikan setiap LSB yang ada dengan bit-bit pesan rahasia yang ingin disembunyikan. Setelah semua bit pesan rahasia menggantikan bit LSB file tersebut, maka pesan rahasia telah berhasil disembunyikan. Metode ini memodifikasi nilai yang paling kurang signifikan dari jumlah bit dalam 1 byte file carrier. Bit yang memiliki signifikansi paling tinggi adalah numerik yang memiliki nilai tertinggi (misal, 27 = 128), artinya bila terjadi perubahan pada bit ini akan menghasilkan perubahan yang sangat signifikan. Bit yang memiliki signifikansi paling rendah adalah numerik yang memiliki nilai terendah (misal, 20 = 1), artinya bila terjadi perubahan pada bit ini akan menghasilkan perubahan yang tidak terlalu signifikan. Sebagai contoh, akan dilakukan proses penyembunyian karakter „G‟ (ASCII 71) pada berkas carrier yang berukuran 8 byte. Least Significant Bit dari file carrier ditandai dengan garis bawah[2]. Berkas carrier dalam biner dengan ukuran 8 byte : „ 10010101 00001101 11001001 10010110 00001111 11001011 10011111 00010000‟ Karakter „G‟ dalam biner dengan ukuran 1 byte : „ 01000111 ‟ Kedelapan bit ini nantinya akan dimasukan kedalam Least Significant Bit dari tiap-tiap byte pada file carrier seperti berikut ini : Berkas carrier dalam biner dengan ukuran 8 byte : „ 10010101 00001101 11001001 10010110 00001111 11001011 10011111 00010000 ‟ Karakter „G‟ dalam biner dengan ukuran 1 byte : „ 01000111 ‟ Proses Least Significant Bit Modification : „ 10010100 00001101 11001000 10010110 00001110 11001011 10011111 00010001 ‟ Pada contoh diatas, hanya sebagian dari Least Significant Bit file carrier yang berubah (ditunjukkan dengan karakter miring). Berdasarkan teori yang didapat adalah bahwa kemungkinan terjadinya perubahan bit adalah sekitar 50 %, karena peluangnya perubahannya adalah antara 0 atau 1 dan dengan mengubah Least Significant Bit maka ukuran dari file pembawa tidak akan berubah sehingga akan sulit untuk terdeteksi (Bender, 1996). Kekurangan dari LSB Invertion adalah dapat diambil kesimpulan dari contoh 8 bit pixel, menggunakan LSB Insertion dapat secara drastis mengubah unsur pokok warna dari pixel. Ini dapat
menunjukkan perbedaan yang nyata dari cover image menjadi stego image, sehingga tanda tersebut menunjukkan keadaan dari steganografi. Variasi warna kurang jelas dengan 24 bit image, bagaimanapun file tersebut sangatlah besar. Antara 8 bit dan 24 bit image mudah diserang dalam pemrosesan image, seperti cropping (kegagalan) dan compression (pemampatan). Keuntungan dari LSB Insertion : Keuntungan yang paling besar dari algoritma LSB ini adalah cepat dan mudah. Dan juga algoritma tersebut memiliki software steganografi yang mendukung dengan bekerja di antara unsur pokok warna LSB melalui manipulasi pallete (lukisan). 2.c Kompresi data Kompresi data adalah proses mengkodekan informasi menggunakan bit atau information-bearing unit yang lain yang lebih rendah daripada representasi data yang tidak terkodekan dengan suatu sistem enkoding tertentu. Contoh kompresi sederhana yang biasa kita lakukan misalnya adalah menyingkat katakata yang sering digunakan tapi sudah memiliki konvensi umum. Misalnya: kata “yang” dikompres menjadi kata “yg”. Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim/yang melakukan kompresi dan pihak penerima memiliki aturan yang sama dalam hal kompresi data. Pihak pengirim harus menggunakan algoritma kompresi data yang sudah baku dan pihak penerima juga menggunakan teknik dekompresi data yang sama dengan pengirim sehingga data yang diterima dapat dibaca / di-dekode kembali dengan benar. Kompresi data menjadi sangat penting karena memperkecil kebutuhan penyimpanan data, mempercepat pengiriman data, memperkecil kebutuhan bandwidth. Teknik kompresi bisa dilakukan terhadap data teks/biner, gambar (JPEG, PNG, TIFF), audio (MP3, AAC, RMA, WMA), dan video (MPEG, H261, H263). Kompresi data memiliki banyak jenis, seperti dialog mode, retrieval mode,lossy compression, loseless compression. Lossy Compression adalah teknik kompresi dimana data hasil dekompresi tidak sama dengan data sebelum kompresi namun sudah “cukup” untuk digunakan. Contoh: Mp3, streaming media, JPEG, MPEG, dan WMA. Kelebihan: ukuran file lebih kecil dibanding loseless namun masih tetap memenuhi syarat untuk digunakan. Biasanya teknik ini membuang bagian-bagian data yang sebenarnya tidak begitu berguna, tidak begitu dirasakan, tidak begitu dilihat oleh manusia sehingga
manusia masih beranggapan bahwa data tersebut masih bisa digunakan walaupun sudah dikompresi. Misal terdapat image asli berukuran 12,249 bytes, kemudian dilakukan kompresi dengan JPEG kualitas 30 dan berukuran 1,869 bytes berarti image tersebut 85% lebih kecil dan ratio kompresi 15%. Loseless compression adalah Teknik kompresi dimana data hasil kompresi dapat didekompres lagi dan hasilnya tepat sama seperti data sebelum proses kompresi. Contoh aplikasi: ZIP, RAR, GZIP, 7-Zip Teknik ini digunakan jika dibutuhkan data setelah dikompresi harus dapat diekstrak/dekompres lagi tepat sama. Contoh pada data teks, data program/biner, beberapa image seperti GIF dan PNG Kadangkala ada data-data yang setelah dikompresi dengan teknik ini ukurannya menjadi lebih besar atau sama. 2.d Huffman Code Kode Huffman adalah algoritma yang menggunakan frekuensi/probabilitas kemunculan dari simbol pada sebuah string sebagai input dan menghasilkan output berupa prefix code yang mengkodekan string menggunakan bit palingsedikit dari seluruh kemungkinan binary prefix code yang mungkin. Algoritma ini dikembangkann oleh David A. Huffman pada paper yang ditulisnya sebagai prasyarat kelulusannya di MIT. Kode Huffman salah satu algoritma dasar untukkompresi data, yang bertujuan untuk mengurangi jumlah bit yang diperlukan untuk merepresentasikan informasi/pesan. Membentuk suatu kode Huffman dimulai dengan membuat suatu pohon biner yang disebut pohon Huffman. Pohon ini akan disimpan pada suatu tabel, dengan ukuran yang bergantung pada jumlah dari simbol tersebut. Suatu node pada pohon biner dapat berupa node daun (node yang memiliki jumlah anak nol) ataupun node dalam (node yang mempunyai anak). Pada awalnya, semua node merupakan node daun, yang mengandung simbol itu sendiri serta bobotnya (frekuensi kekerapan) dari simbol tersebut dan bisa juga mengandung link ke node orangtua yang akan memudahkan pembacaan kode (secara terbalik) dimulai dari node daun. Pada simbul dalam terdapat bobot dan link ke dua node anak dan bisa ke node orangtua. Sebagai perjanjian, bit „0‟ akan merepresentasikan anak kiri dan bit „1‟ akan merepresentasikan anak kanan. Pohon yang telah selesai akan memiliki n buah node daun dan n-1 buah node dalam. Ada beberapa langkah untuk men encoding sebuah data dengan algoritma huffman, yaitu sebagai berikut[7]:
Contoh “SAYAABAY” S -> frekuensinya : 1 B -> frekuensinya : 1 Y -> frekuensinya : 2 A -> frekuensinya : 4 Gabung dua node list terkecil menjadi sebuah node tree, semisal node yang digabungkan adalah node S dan node B maka tree yang terbentuk adalah : SB S
B
Gambar 2 Parent dari tree yang baru dibentuk ke dalam list: - Remove 2 node yang telah dibentuk tree nya tadi. - Sorting ulang list tadi. - Ulangi Langkah ke -2 Hingga node dari list Cuma tersisa satu. Baca pohon uffman yang terbentuk dengan aturan jika bergerak ke nodeChild kiri “0”, dan jika nodeChild kanan “1”. Maka tree yang terbentuk dari encoding diatas adalah SBYA A
SBY SB
S
Y
B
Gambar 3 Jika dilihat dari pohon yang ada pada gambar diatas, maka encoding string “SAYAABAY” dengan aturan jika berjalan ke kiri = 0 dan kekanan = 1, maka akan menjadi seperti ini : S = 000 A=1 Y = 01 A=1 A=1 B = 001 A=1 Y = 01 maka jika kita jumlahkan seluruh dari bitwise diatas adalah = 14 bit atau hanya cukup 2 byte dataspace saja. Jika kita bandingkan, jika menggunakan binary biasa adalah 8 x 8 = 64 bit atau 8 byte dataspace maka dengan itu kita telah
menghemat ruang sebesar sekitar 75%. Persentase tersebut berlaku hanya untuk data diatas, jika data yang diberikan berbeda tentu saja persentase yang dihasilkan pun berbeda. Di bawah ini adalah algoritma yang digunakan untuk membuat Kode Huffman.
Algoritma di atas adalah algoritma Huffman yang digunakan untuk membuat kode Huffman. Penjelasan mengenai algoritma di atas adalah sebagai berikut : procedure Huffman(C:symbols ai with frequencies wi , i = 1, …. , n). Algoritma ini menunjukkan sebuah prosedur atau fungsi yang menggunakan simbol ai dengan frekuensi wi yang menunjukkan besar probabilitas kemunculan dari simbol tersebut dalam suatu deretan string yang berisi informasi/pesan tertentu F : = forest of n rooted trees, each consisting of single vertex ai and assign weight wi F didefinisikan sebagai sebuah forest yang berisi sekumpulan node tunggal ai(tree) dan memiliki frekuensi wi seperti yang telah disebutkan sebelumnya while F is not a tree Selama forest F masih memiliki lebih dari sebuahtree maka proses yang ada di bawahnya akan dijalankan terus. begin Replace the rooted trees T and T’ of least weight from F with w(T) > w(T’) with a tree having a new root that has T as its left subtree and T’ as its right subtree. Label new edge to T with 0 and the new edge to T with 1. Assign w(T) + w(T’) as the weight of the new tree. end begin -> proses pada bagian ini dimulai Ganti dua root pohon T dan T‟ yang memiliki frekuensi terendah di dalam F dengan w(T) > w(T‟) dengan tree baru yang memiliki root dengan T
sebagai subtree sebelah kiri dan T‟ sebagai subtree sebelah kanan. Beri label 0 untuk edge yang menuju T dan label 1 untuk edge yang menuju T‟. Jadikan w(T) + w(T‟) sebagai frekuensi bagi tree yang baru dibentuk. end -> menunjukkan satu proses pada bagian ini selesai, tetapi tidak menunjukkan selesainya pembentukan tree secara total. Hal ini disebabkan proses pembentukan tree secara total akan selesai ketika hanya tinggal satu bulan tree di dalam forest F. 2.e Java Java by example by Jerry R. Jackson & Alan L. McClellan. Cetakan 1996 Sun Microsystems, Inc – Andi Yogyakarta) Java adalah pemrograman berorientasi-objek yang serbaguna. Bahasa ini menyediakan sejumlah perluasan yang mendukung pengembangan aplikasi GUI (Antarmuka kepada pemakai yang berbentuk grafis), dan juga pengembangan aplikasi klien/server terhadap jaringan local (LAN) atau jaringan luas (WAN). Dengan memberikan perhatian yang sepenuhnya terhadap bahasa pemrograman Java ini, agak mengejutkan bahwa hanya sedikit hal baru yang ada padanya. Namun, kepopulerannya yang mendadak bias dijelaskan. Ia hampir merupakan kumpulan bentuk dan sifat-sifat yang telah di kenal pada bahasa-bahasa pemrograman seperti C, C++, Objective-C, Java memakai konsep antarmuka. Dari SmallTalk, Java meminjam model ekstensibilitas sewaktu pengeksekusian, manajemen memori dinamis, dan beberapa pengeksekusian secara bersamaan (multithreading). Terhadap hal-hal ini, Java menambahkan keamanan, paradigma pemrograman yang sederhana, dan banyak lagi. Java merupakan bahasa pemrograman compiler dan juga interpreter yang menjadikan Java dapat dijalankan pada platform yang berbeda. Java compiler melakukan kompilasi pada source code menjadi Java bytecodes. Java bytecode merupakan instruksi mesin yang tidak spesifik terhadap prosesor komputer dan akan dijalankan pada platform menggunakan Java Virtual Machine (JVM) yang biasa disebut dengan bytecodes interpreter atau Java runtime interpreter.
3. METHODELOGY (METODELOGI) 3.1 Struktur File Steganografi dengan Metode Least Significant Bit (LSB) dan kompresi pesan menggunakan Huffman Code Dengan metode LSB, secara umum media steganografi (file yang akan disisipi data) memiliki konsep yang sama, namun dalam aplikasi usulan ini
kami menggunakan struktur data yang berbeda. Struktur data dalam pesan tidak hanya berupa pesan saja, namun pesan akan ditambahkan header pesan yang berisi data untuk pengecekan validasi pesan yang akan dibaca. Selain itu setelah header pesan, data bit akan ditambahkan tabel Huffman untuk keperluan dekompresi data.
Hidden Text
Header Pesan
Table Huffman
Pesan
Table Huffman 32 Bit (Panjang Pesan)
56 + 256 = 312 Bit Password = [kunci] + [MD5 Password]
32 Bit (Panjang Table Huffman)
Pesan yang sudah terkompresi
Gambar 4 Gambar diatas adalah struktur data yang telah di kompresi dengan menggunakan metode Huffman code dan juga digabung dengan password dan kunci untuk disisipkan kedalam file gambar.
Gambar 5 Gambar 5 adalah gambaran secara umum metode yang akan digunakan untuk di implementasikan kedalam aplikasi steganografi yang akan dibuat. a) Terdapat satu media dalam bentuk file citra, file tersebut kemudian digunakan untuk meng-embed data yang akan disisipkan. b) Pesan yang akan di embed kedalam file gambar, terlebih dahulu di kompresi dengan menggunakan metode Huffman Code, sehingga menghasilkan data yang sudah dikompresi dan juga table Huffman code, sebagai penerjeman kompresinya. c) Setelah di kompresi, file tersebut di satukan dengan password yang telah di masukkan sebelum menjalankan aplikasi dan juga di encrypt dengan menggunakan MD5 ditambah kunci yang telah di embed didalam aplikasi. d) Setelah di kompresi adalah proses penyisipan bitbit pesan yang telah di kompresi kedalam file gambar yang tadi disediakan dengan menggunakan teknik LSB pada metode steganografi. 3.2 Metode kerja aplikasi Dalam aplikasi ini terdapat dua proses yang terjadi dalam keseluruhan proses yang ada, yaitu: a. Proses Penyisipan Pesan
b. Proses Pengambilan Pesan Flowchart berikut merupakan gambaran alur proses Pengambilan Pesan, form ini terdapat fasilitas proses menampilkan pesan. Urutan proses digambarkan dengan Flowchart berikut ini:
Gambar 6 f)
Setelah kita klik tombol Sisipkan Pesan maka akan muncul tampilan seperti diatas. g) Informasi gambar akan muncul dibawah gambar, berupa resolusi gambar, ukuran gambar dalam satuan byte dan banyaknya bit yang dapat ditampung oleh gambar bila menggunakan metode LSB 1 bit. h) Hasil kompresi menggunakan huffman code akan muncul pada kolom Hasil Kompresi, data yang ditampilkan berupa panjang bit pesan asli, panjang bit setelah kompresi dan konversi dari deretan bit. 4.2 Pengambilan Pesan
4. APLIKASI 4.1 Penyisipan pesan a) Klik Cari dan pilih gambar (cover image) yang akan kita sisipkan pesan. b) Masukkan Pesan yang akan kita sisipkan kedalam gambar. c) Input Password dan re-Password minimal 8 karakter dan harus mengandung huruf dan angka. d) Pilih path output dan nama gambar stego yang akan kita buat. e) Klik tombol Sisipkan Pesan. Gambar 7 Setelah kita klik tombol Ambil Pesan maka akan muncul tampilan seperti diatas. a) Informasi gambar akan muncul dibawah gambar, berupa resolusi gambar, ukuran gambar dalam satuan byte dan banyaknya bit
yang dapat ditampung oleh gambar bila menggunakan metode LSB 1 bit. b) Hasil pembacaan pesan dari gambar (stego image) akan ditampilkan di kolom Pesan dari Gambar, namun data yang ditampilkan masih berupa data hasil kompresi Huffman. Hasil dekompresi berdasarkan tabel huffman akan muncul pada kolom Hasil Kompresi, data yang ditampilkan berupa pesan asli sebelum data dikompresi atau dengan kata lain data dikembalikan seperti semula. 4.3 Contoh Pengaplikasian a. Menyimpan data penting ke dalam gambar - Penyisipan pesan
-
Membaca pesan yang sudah diedit tetapi tidak merusak header
Gambar 10 Dari hasil pembacaan pesan diatas, setelah gambar (stego image) diedit seperti diatas dapat kita lihat bahwa isi pesan bisa berubah jika perubahan pixel terjadi pada pixel-pixel yang berisi pesan stego. -
Membaca pesan yang headernya rusak
Gambar 8 -
Membaca pesan
Gambar 11 Dari hasil pembacaan pesan diatas, setelah gambar (stego image) diedit sehingga merubah citra secara keseluruhan maka header pesan pun akan berubah, hal ini mempengaruhi saat proses pengecekan header pesan. Program tidak menemukan kunci pada bit gambar dikarenakan header sudah rusak. Gambar 9
4.4 Evaluasi Program Evaluasi program merupakan salah satu hal yang perlu dilakukan dalam setiap pengembangan aplikasi guna menganalisa dan mengetahui hasil yang telah dicapai oleh aplikasi yang dikembangkan tersebut. Demikian juga pada aplikasi steganografi yang dikembangkan ini, maka dilakukan evaluasi program untuk menganalisa hasil yang dicapai pada aplikasi ini. Dan dalam evaluasi tersebut ditemukan beberapa kelebihan dan kekurangan program yang dilihat dari beberapa kondisi dan situasi. Adapun kelebihan dan kekurangan pada aplikasi yang dikembangkan adalah sebagai berikut: a) Kelebihan program Program dapat dengan mudah dioperasikan oleh user, karena memiliki user interface (tampilan antar muka) yang baik dan user friendly. Dapat dioperasikan di komputer yang memiliki spesifikasi rendah karena program aplikasi ringan ketika dijalankan. Tidak memerlukan database dalam pengoprasiannya. Integritas data dari file yang disisipi tetap dapat terjaga. Lebih banyak pesan yang dapat disimpan kedalam gambar karena pesan tersebut dikompresi terlebih dahulu sebelum disisipkan kedalam gambar. b) Kekurangan Program Hanya dapat memuat pesan berupa text saja, karena memang hanya dirancang untuk pesan berupa text Dalam beberapa kasus, jumlah bit yang dihasilkan setelah melakukan kompresi bisa menjadi lebih besar dari sebelumnya. Hal ini dikarenakan dalam penyisipan pesan disertakan juga tabel huffmannya. Stego image bisa berubah isi pesannya jika terjadi perubahan pada pixel-pixel yang disisipkan pesan. Stego image tidak dapat dibaca jika telah terjadi perubahan pada header data, atau dengan kata lain pixel-pixel yang mengandung header pesan telah berubah bit nya.
5. KESIMPULAN Program aplikasi steganography ini membatasi akses dari orang yang tidak berhak atas pesan atau data rahasia, karena informasi disisipkan kedalam file image dengan key berupa password dan disembunyikan dengan baik ke dalam file image tersebut.Selain itu dalam hal kompresi jika pesan yang ingin disisipkan panjang, maka pengimplementasian kompresi pesan akan sangat berguna dalam mengkompresi pesan sebelum masih ke dalam file image. Sedangkan untuk konsistensi data, data pesan akan terjaga selama tidak terjadi perubahan citra gambar pada pixel-pixel yang mengandung pesan, dan juga perubahan citra tersebut tidak merubah header pesanna. Untuk pengembangan aplikasi steganography dengan kompresi data kedepannya bisa ditambahkan metode enkripsi di dalamnya, dan juga dilakukan pengecekan apakah terjadi perubahan pada citra atau tidak, sehingga dapat memastikan konsistensi data pesan. Seperti halnya bisa dilakukan pengecekan dengan menggunakan checksum terlebih dahulu sebelum data pesan dibaca dari gambar. DAFTAR PUSTAKA [1] Ary Budi Warsito., Lusi Fajarita., Nazori AZ (2012). PROTEKSI KEAMANAN DOKUMEN SERTIFIKAT FILE JPEG PADA PERGURUAN TINGGI DENGAN MENGGUNAKAN STEGANOGRAFI DAN KRIPTOGRAFI. Jurnal TELEMATIKA MKOM Vol.4 No.1, Maret 2012 [2] Emma Utami (2009). PENDEKATAN METODE LEAST BIT MODIFICATION UNTUK MERANCANG APLIKASI SEGANOGRAPHY PADA FILE AUDIO DIGITAL TIDAK TERKOMPRESI. JURNAL DASI Vol. 10 No. 1 Maret 2009. [3]Algoritma Huffman Code. http://yohandamandala.blogspot.com/2009/11/algort ima-huffman-code.html. Waktu akses : Minggu, 3 Nopember 2013 pukul 14.00 WIB [4] Kompresi Data Dengan Algoritma Huffman. http://id.scribd.com/doc/2588857/Kompresi-Datadengan-Algoritma-Huffman. Waktu akses : Minggu, 3 Nopember 2013.
[5] Huffman Coding. (2013). (http://en.wikipedia.org/wiki/Huffman_coding), diakses 9 Nopember 2013 [6] Least Significant Bit (2013),( http://en.wikipedia.org/wiki/Least_significant_bit), diakses 3 Nopember 2013