1
Aplikasi Chat dengan Steganografi pada Media Gambar Menggunakan Metode Four-pixel Differencing dan Modifikasi Substitusi Least Significant Bit (LSB) Muhammad Holil, Muhammad Husni, dan Baskoro Adi Pratomo Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 E-mail:
[email protected] Abstrakβ Perkembangan media digital yang pesat dan penggunaannya yang meliputi berbagai bidang menimbulkan tuntutan yang semakin besar untuk menciptakan suatu sistem penyampaian informasi yang terjamin keamanannya, salah satunya adalah dengan steganografi. Namun metode yang digunakan pada umumnya mempunyai kekurangan yakni pada sisi kapasitas data yang akan disisipkan. Dari permasalahan diatas dibuat sebuah aplikasi chat yang akan menerapkan teknik steganografi pada media gambar menggunakan metode Four-pixel Differencing dan metode modifikasi substitusi Least Significant Bit, metode ini dipilih karena memiliki kapasitas penempelan data yang besar serta minimnya kemungkinan kerusakan gambar dari proses penyisipan data. Hasil uji coba yang dilakukan dengan menyisipkan data sebesar 653918 bit didapatkan PSNR 30-60 dB, kualitas gambar dapat ditingkatkan dengan memperbesar nilai threshold dan menurunkan nilai low level dan high level. Kata Kunciβ Chat, Four-pixel Differencing, Modifikasi LSB, Steganografi.
I. PENDAHULUAN
S
ekarang ini proses bertukar informasi sudah tidak memiliki batasan waktu dan tempat. Proses bertukar informasi ini dapat dilakukan oleh siapapun dan dimanapun. Sayangnya perkembangan dalam proses bertukar informasi ini juga diikuti oleh banyak kekurangan, salah satunya adalah dari sisi keamanan. Masalah akan muncul ketika informasi bersifat pribadi atau bersifat rahasia. Pemilik informasi tentunya tidak ingin rahasianya diketahui oleh orang yang tidak berhak. Masalah ini dapat diatasi dengan cara menyisipkan pesan kedalam sebuah media, cara ini biasa disebut dengan steganografi. Metode steganografi yang paling terkenal adalah substitusi Least Significant Bit (LSB), yang menanamkan data dengan mengganti piksel k LSB dengan k bits rahasia secara langsung [1]. Namun metode yang digunakan pada umumnya mempunyai kekurangan yakni pada sisi kapasitas data yang akan disisipkan. Oleh karena itu, pada tugas akhir ini dibuat sebuah aplikasi chat yang mampu menyembunyikan pesan kedalam sebuah gambar. Aplikasi ini akan menerapkan teknik steganografi pada media gambar menggunakan metode Four-pixel differencing dan metode modifikasi substitusi LSB, metode ini dipilih karena memiliki kapasitas penyisipan data yang besar serta minimnya kemungkinan kerusakan gambar dari proses penempelan data. Four-pixel
differencing akan menghitung rata-rata dari tiga nilai piksel yang berbeda, kemudian hasil dari penghitungan ini dimanfaatkan untuk membedakan low level dan high level. Penyisipan bit pesan kedalam masing-masing piksel menggunakan subsitusi Least Significant Bit (LSB). Kemudian readjustment akan dilakukan untuk menjamin blok piksel yang dihasilkan dari proses penyisipan data tetap berada pada level yang sama dengan blok piksel sebelum penyisipan data. Gambar yang telah berhasil disisipi pesan inilah yang nantinya akan dikirim. II. KAJIAN PUSTAKA A. Least Significant Bit Least Significant Bit merupakan satu cara yang umum untuk penyisipan pesan. Hal ini dikarenakan kemudahan dalam aplikasinya. Teknik steganografi LSB dilakukan dengan memodifikasi bit-bit yang kurang berarti yang terletak pada bit paling kanan pada setiap byte dari sebuah file media [2]. Bit-bit paling kanan inilah yang disebut dengan bit LSB, bit-bit LSB akan dimodifikasi dengan cara mengganti setiap bit LSB yang ada dengan bit-bit pesan yang ingin disembunyikan [3]. Setelah semua bit pesan menggantikan bit LSB dalam media tersebut maka pesan telah berhasil disembunyikan. Pesan rahasia tersebut dapat dikeluarkan dengan mengambil setiap bit LSB pada media dan menggabungkkannya menjadi sebuah pesan yang utuh seperti semua. Sebagai contoh, urutan bit berikut ini menggambarkan 3 piksel cover image 24 bit 00100111 11101001 11001000 00100111 11001000 11101001 11001000 00100111 11101001 Pesan yang akan disipkan adalah karakter βAβ yang nilai binernya adalah 01000001 maka akan dihasilkan stego image dengan urutan bit sebagai berikut 00100110 11101001 11001000 00100110 11001000 11101000 11001000 00100111 11101001 B. Modifikasi Substitusi LSB dan Four-pixel Differencing LSB yang umum dipakai adalah dengan mengganti k bit LSB dengan dengan k bit pesan, dimana k adalah jumlah bit yang disisipkan, pada LSB ini nilai k selalu bernilai sama untuk setiap pikselnya. Sedangkan modifikasi substitusi LSB membagi gambar menjadi dua bagiam yakni low level dan high level. High level adalah bagian gambar yang lebih mentolerir perububahan sedangkan low level adalah
2 kebalikan dari high level yang kurang mentolerir adanya perubahan [4]. Piksel gambar yang berada di bagian high level akan disisipi pesan dengan jumlah yang lebih banyak, sedangkan piksel yang berada di bagian low level akan disisipi dengan dengan jumlah yang lebih sedikit. Pembagian low level dan high level ditentukan oleh pengguna. Pengguna akan menentukan batas (threshold) untuk setiap gambar. Area pada gambar yang lebih kecil dari threshold tersebut akan berada di bagian low level, sedangkan area yang yang lebih besar dari threshold akan berada di bagian high level. Nilai setiap area atau blok pada gambar ditentukan menggunakan metode Four-pixel Differencing, dimana jumlah piksel untuk setiap blok terdiri dari empat piksel. Nilai dari setiap piksel dirata-rata menggunakan rumus persamaan 1. Nilai rata-rata (D) ini yang akan dibandingkan dengan nilai Threshold yang telah ditentukan oleh pengguna. 1
π·=3
3 π=0(π¦π
β π¦πππ ), ymin =min{y0, y1, y2,y3} (1)
Penyisipan data akan dilakukan pada blok piksel yang bukan termasuk βError Blockβ. Error Block adalah kondisi dimana nilai D lebih kecil atau sama dengan nilai Threshold T (Dβ€T) dan hasil pengurangan antara nilai piksel tertinggi dengan piksel terendah lebih besar dari dua kali threshold ditambah dua (Ymax-Ymin > 2T+2) [4]. Proses selanjutnya adalah menaikkan atau menurunkun Most Significant Bit (MSB) sehingga nilai piksel yang telah disisipi pesan tidak mempunyai perbedaan yang besar dengan piksel sebelum disisipi. Hal ini dialakukan untuk menaikkan kualitas dari gambar yang telah disisipi oleh pesan[4]. Sebagai contoh jika pesan yang akan disisipkan adalah 000 dan piksel dari cover image adalah 1100111. Piksel ini akan disisipi pesan sebanyak 3 bit pesan sehingga menjadi 1100000. MSB pada piksel ini akan dinaikkan sehingga nilai piksel ini menjadi 1101000. Proses menaikkan dan menurunkan bit MSB ini akan dilakukan jika hasil dari nilai piksel setelah dirubah dan sebelum dirubah memperkecil nilai perbedaan antara piksel sebelum dan sesudah disisipi pesan. Proses terakhir sebelum setiap piksel yang telah disisipi disimpan sebagai stego image disebut βreadjusting procedureβ. Proses ini akan memjamin jika blok piksel sesudah dan sebelum disisipi pesan berada pada level yang sama serta proses ini menjamin blok piksel dari hasil proses penyisipan pesan bukan termasuk error block [4]. Proses ini dilakukan dengan merubah nilai piksel hasil penyisipan menjadi nilai baru sesuai rumus yang ada pada persamaan 2. Cari nilai dari setiap piksel yang telah disisipi pesan menggunakan rumus persamaan 2 sehingga nilai dari setiap piksel memnuhi sarat-sarat berikut: ο· π· dan D berada di level yang sama ο· Block stego final adalah (π¦0 , π¦1 , π¦2 , π¦3 ) dan tidak termasuk kedalam βError Blockβ. ο· Nilai dari 3π=0(π¦π β π¦π )2 diminimalkan. Setelah pergantian (y0, y1, y2,y3) menjadi (π¦0 , π¦1 , π¦2 , π¦3 ) di dalam blok maka proses penyisipan 4k-bit secret data telah sukses [4]. Sebagai contoh jika kita mempunyai satu blok piksel (139,146,137,142), dan pesan yang disembunyikan adalah 000111111101. Kita asumsikan nilai T=5,kl =2 dan kh=3,
π¦π = π¦πβ²β² + π π₯ 2π , 0 β€ π β€ 3, π β {0,1, β1} (2) Sehingga kita mendapatkan nilai π· = 16 3 > π = 5, kemudian yi(0β€iβ€3) ditanami 3-bit menggunakan LSB biasa sehingga nilai y0 β²=136, y1 β²=151, y2 β²=143, y3 β²=141. Setelah itu gunakan metode modifikasi substitusi LSB sehingga y0 β²β²=136, y1β²β²=143, y2 β²β²=135, y3 β²β²=141. Setelah proses readjustment dilakukan makan akan menghasilkan (π¦0 = 136, π¦1 = 151, π¦2 = 135, π¦3 = 141). III. DESAIN SISTEM A. Deskripsi Umum Aplikasi yang akan dibuat dalam tugas akhir ini adalah aplikasi chat yang dapat menyisipkan pesan yang akan dikirim kedalam sebuah media gambar. Aplikasi ini menggunakan metode modifikasi LSB dan Four-pixel Differencing untuk proses penyisipan serta proses ekstraksi pesan. B. Arsitektur Sistem Dalam tugas akhir ini akan dirancang dan diaplikasikan sebuah aplikasi chat dengan steganografi pada media gambar menggunakan metode Four-pixel Differencing dan modifikasi substitusi Least Significant Bit, dimana secara garis besar memiliki arsitektur seperti diperlihatkan pada Gambar 1.
Gambar 1. Arsitektur Sistem
Sesuai dengan Gambar 1, maka jalannya aplikasi adalah sebagai berikut: 1. Pesan yang dikirimkan oleh pengirim akan disisipkan kedalam sebuah gambar. 2. Gambar yang telah disisipi kemudian akan dikirim ke server yang selanjutnya akan diteruskan ke penerima.
3 3. 4.
Penerima akan menerima gambar yang telah disisipi pesan oleh pengirim. Pesan yang terkandung di dalam gambar dipisahkan dari gambar sehingga penerima dapat mengetahui pesan yang terkandung dalam gambar.
C. Deskripsi Singkat Aplikasi Aplikasi chat ini memiliki empat fitur utama yang dapat digunakan oleh pengguna. Fitur-fitur yang terdapat pada aplikasi ini adalah sebagai berikut: Mengirim File. Pengguna dapat mengirimkan sebuah file kepada penerima. Pengguna hanya bisa mengirimkan satu file dalam satu waktu. Menerima File. Aplikasi ini akan menerima file yang dikirimkan oleh pengirim. Sama halnya dengan proses mengirim file proses menerima file hanya bisa menerima satu file dalam satu waktu.
Gambar 3. Diagram Aktivitas Menerima File
Menyembunyikan Pesan. Aplikasi ini dapat menyembunyikan pesan yang ingin dikirim kedalam sebuah gambar. Gambar yang telah disisipi pesan akan berformat BMP, gambar ini akan dikirim sebagai file biasa menggunakan fitur mengirim file. Mengekstrak Pesan. Pesan dapat dipisahkan dari gambar dengan cara mengekstrak bit-bit pesan yang telah disisipkan kedalam setiap piksel yang memenuhi sarat. Bit-bit pesan ini kemudian akan disatukan kembali sehingga bisa menjadi pesan utuh yang sesuai dengan pesan asli. D. Diagram Aktivitas Aplikasi Diagram aktivitas dari aplikasi ini terbagi menjadi 4 buah diagram aktivitas yang dapat dilihat pada Gambar 2, Gambar 3, Gambar 4, dan Gambar 5. Diagram aktivitas ini terdiri dari fitur-fitur yang terdapat pada aplikasi ini, yaitu : Mengirim File, Menerima File, Menyembunyikan Pesan, dan Mengekstrak Pesan.
Gambar 2. Diagram Aktivitas Mengirim File
Gambar 4. Diagram Aktivitas Menyembunyikan Pesan
Gambar 5. Diagram Aktivitas Mengekstrak Pesan
4 IV. IMPLEMENTASI A.
Implementasi Fitur Sign Up Fitur ini diimplementasikan di dalam class ChatClient. Saat proses ini dilakukan, fungsi signup akan mengirim username serta password yang didaftarkan oleh pengguna keserver. Proses signup akan berhasil jika username belum dipakai.
browse. Parameter keberhasilan uji coba ini adalah saat file berhasil dikirimkan, muncul pesan bahwa pengirim telah mengirim sebuah file.
B.
Implementasi Fitur Login Fitur ini diimplementasikan didalam class ChatClient. Saat proses ini dilakukan, fungsi login akan mengirim username serta password ke server. Proses login akan sukses bila username dan login sesuai dengan yang ada pada database. C.
Implementasi Fitur Logout Fitur ini diimplementasikan didalam class ChatClient. Saat proses ini dilakukan, fungsi logout akan mengirim permintaan logout kepada server, yang kemudian oleh server akan mengubah status pengguna menjadi offline. D. Implementasi Fitur Menghitung Kapasitas Gambar Fitur ini diimplementasikan didalam class Steganography. Saat proses ini dilakukan fungsi countAllPixel akan menghitung kapasitas dari gambar sesuai dengan nilai threshold, low level dan high level yang ditentukan oleh pengguna
Gambar 6. Proses Memilih File yang akan Dikirim
Proses memilih file dapat dilihat pada Gambar 6, sementara hasil pengujian bisa dilihat pada Gambar 7.
E.
Implementasi Fitur Mengirim File Fitur ini diimplementasikan di dalam class ChatClient. Saat proses ini dilakukan fungsi sendFile dengan parameter username pengirim dan penerima serta alamat dari file dijalankan. Fungsi ini akan mengirim file ke server yang kemudian akan diteruskan ke server. F.
Implementasi Fitur Menerima File Fitur ini diimplementasikan di dalam class ChatClientThread. Fitur ini akan menerima semua file yang dikirimkan satu persatu. G. Implementasi Fitur Menyembunyikan Pesan Fitur ini diimplementasikan di dalam class Steganography. Saat proses ini dilakukan fungsi Embed dengan parameter pesan, alamat gambar, nilai threshold, low level dan high level dijalankan. Fungsi ini akan menyisipkan pesan kedalam gambar sesuai parameter yang telah ditentukan oleh pengguna. H.
Implementasi Fitur Mengekstak Pesan Sama halnya dengan fitur menyembunyikan pesan fitur ini diimplementasikan di dalam class Steganography. Fitur ini akan mengekstrak pesan yang terdapat dalam gambar dengan memanggil fungsi EkstrakPesan. Fungsi ini memiliki empat parameter yailtu alamat gambar, nilai threshold, low level dan high level, selain alamat gambar tiga parameter yang lain harus bernilai sama dengan nilai yang dipakai saat proses penyisipan pesan. V. UJI COBA DAN EVALUASI A.
Uji Coba Mengirim File Uji coba ini dilakukan dengan dengan cara memilih file yang akan dikirimkan kemudian menekan tombol send. Pengguna dapat memilih file dengan cara menekan tombol
Gambar 7. Tampilan Proses Mengirim File Berhasil
B.
Uji Coba Menerima File Gambar 8 menunjukkan dialog untuk menyimpan file yang diterima. Dialog ini akan muncul apabila aplikasi menerima sebuah file.
Gambar 8. Dialog untuk Menyimpan File
Jika file berhasil diterima maka aplikasi akan menampilkan sebuah pesan yang menunjukkan bahwa proses menerima file berhasil. Gambar 9. Menunjukkan
5 proses mengirim file berhasil
gambar yang telah berisi pesan, kemudian memilih menu ekstrak pesan. Gambar 12 menunjukkan proses memilih gambar yang akan diekstrak.
Gambar 9. Tampilan Proses Menerima File Berhasil
Gambar 126. Proses Memilih Gambar Berisi Pesan
C.
Uji Coba Penyembunyian Pesan Uji coba ini dilakukan dengan dengan cara memasukkan sebuah pesan ke dalam textbox pada antarmuka aplikasi, kemudian menekan tombol send. Sebelum menekan tombol send pengguna telah memilih sebuah gambar dengan yang akan menjadi media serta memilih untuk menyembunyikan pesan. Setelah proses penyembunyian selesai gambar yang telah disisipi akan dikirim ke tujuan.
Gambar 13. Hasil Proses Ekstrak Pesan
Pesan yang berhasil diekstrak akan ditampilkan pada antarmuka aplikasi. Gambar 13 menunjukkan pesan yang telah diekstrak. E.
Uji Coba Kapasitas Gambar Uji coba kapasitas gambar dilakukan menggunakan beberapa nilai Threshold, low level, dan high level serta menggunakan tiga gambar grayscale.dengan ukuran 512x512 yaitu lena, baboon, dan pepper. Ketiga gambar tersebut dapat dilihat pada Gambar 14.
Gambar 10. Proses Memilih Media Gambar (a)
(b)
(c)
Gambar 14. Cover Image: (a)Lena (b)Baboon (c)Pepper Tabel 1. Hasil Uji Coba Kapasitas Gambar Kapasitas (bit) Threshold
Low
High
Lena
Baboon
Pepper
5
2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 3
3 4 5 4 3 4 5 4 3 4 5 4 3 4 5 4
609688 706056 802424 866344 558152 602776 647392 814920 540192 566648 593096 797064 521736 529480 537216 778736
708232 903232 1098232 964848 653424 793920 934416 909888 611296 709344 807392 867920 543512 573088 602664 800480
643836 783552 923264 895896 569880 627032 684184 826240 536984 560848 584632 793696 520384 526736 533080 777408
10
15 Gambar11. Proses Penyembunyian Pesan Berhasil
Gambar 10 menunjukkan proses memilih gambar yang akan digunakan sebagai media penyembunyian pesan. Gambar yang telah disisipi pesan akan dikirim ke penerima. Gambar 11 menunjukkan proses mengirim gambar yang berisi pesan berhasil dikirim. D.
Uji Coba Mengekstrak pesan Uji coba ini dilakukan dengan dengan cara memilih
30
Tabel 1 menunjukkan hasil uji coba kapasitas. nilai dengan warna hijau adalah nilai kapasitas yang tertinggi sedangkan nilai dengan warna kuning adalah nilai kapasitas yang paling rendah.
6 Uji Coba PSNR PSNR atau Peak Signal to Noise Ratio adalah nilai (rasio) yang menunjukan tingkat toleransi noise tertentu terhadap banyaknya noise pada suatu sinyal video/gambar. Noise adalah kerusakan sinyal pada bagian tertentu dalam sebuah gambar sehingga mengurangi kualitas sinyal tersebut. Dengan kata lain PSNR merupakan suatu nilai yang menunjukkan kualitas suatu sinyal gambar. Semakin tinggi nilai PSNR maka semakin bagus kualitas dari gambar tersebut. Uji coba PSNR dilakukan dengan menggunakan sebuah aplikasi yang bernama PhotoDefiner PSNR Calculator. Gambar yang dipakai adalah lena, baboon, dan pepper. Ketiga gambar ini dapat dilihat pada Gambar 15. Aplikasi ini dapat menghitung nilai PSNR dengan cara membandingkan gambar asli dengan gambar hasil dari proses penyisipan pesan. Hasil uji coba PSNR dapat dilihat pada Tabel 2. Nilai PSNR yang berwarna kuning adalah nilai terendah sedangkan yang berwarna hijau adalah PSNR tertinggi.
UCAPAN TERIMA KASIH
F.
Threshold 5
10
15
30
Tabel 2. Hasil Uji Coba PSNR PSNR (dB) Low High Lena Baboon 2 2 2 3 2 2 2 3 2 2 2 3 2 2 2 3
3 4 5 4 3 4 5 4 3 4 5 4 3 4 5 4
42,591 37,828 30,567 37,508 44,668 40,331 33,749 39,439 45,580 41,842 34,889 40,486 46,654 44,755 37,929 41,72
42,040 37,502 29,922 37,393 42,611 37,625 30,436 37,468 43,314 38,380 31,170 37,985 45,374 41,376 33,437 40,152
Penulis M.H. mengucapkan terima kasih kepada Tuhan Yang Maha Esa, kedua orangtua dan keluarga penulis, dosen pembimbing, dosen dan kepala jurusan Teknik Informatika, kerabat-kerabat dekat, serta berbagai pihak yang telah membantu penulis dalam menyelesaikan Tugas Akhir ini. DAFTAR PUSTAKA [1] [2] [3] [4] [5] [6] [7]
Peppe 41,680 36,771 29,561 36,469 43,706 38,815 32,319 38,022 45,608 41,921 34,459 40,175 46,778 45,274 39,672 41,752
Dengan menggunakan metode ini gambar yang telah disisipi pesan tidak akan tampak perubahannya jika Gambar mempunyai PSNR diatas 40 dB. Nilai PSNR berbanding lurus dengan nilai treshold dan berbanding terbalik dengan dengan nilai low level dan high level. VI. KESIMPULAN Kesimpulan yang bisa ditarik dari Tugas Akhir ini adalah sebagai berikut: 1. Modifikasi substitusi LSB dilakukan dengan menaikkan atau menurunkan MSB sehingga perbedaan nilai piksel setelah penyisipan tidak jauh berbeda dengan piksel asli. 2. Pemilihan nilai Threshold, low dan high level dapat mempengaruhi kapasitas cover image dan kualitas dari stego image. 3. Hasil steganografi tidak tampak secara kasat mata pada media gambar yang telah disipi pesan jika PSNR dari gambar tersebut bernilai diatas 40 dB. 4. Dari hasil uji coba fungsional, aplikasi ini dapat mengirim dan menerima pesan, mengirim dan menerima file, dan melakukan steganografi dengan algoritma LSB dan Four Piksel Differencing.
Cole, E.2003. Hiding in Plain Sight:Steganography and the Art of Covert Communication. Indianapolis: Wiley Publishing, Inc. Katzenbeisser, S., & A.P. Petitcolas, F. 2000. Information Hiding Techniques for Steganography and Digital Watermarking. ARTECH HOUSE, INC. Chan, C.-k., & Cheng, L. 2004. Hiding data in images by simple LSB substitution. Elsevier . Liao, X., Wen, Q.-y., & Zhang, J. 2011. A Steganographic Method For Digital Images With Four-pixel Differencing and Modified LSB Substitution. elsevier . Miano, J. 1999. Compressed Image File Formats. Massachusetts: Addison Wesley Longman,Inc. DIBs and Their Uses. 2005. diakses 18 Juni, 2012, dari Microsoft Support:http://support.microsoft.com/kb/q81498/ J. Cox, I., L. Miller, M., A. Bloom, J., Fridrich, J., & Kalker, T. 2008. Digital Watermarking and Steganography Second Edition. Elsevier.