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
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. KAJIANPUSTAKA 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
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]
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 ) dan tidak 3 termasuk kedalam “Error Block”.
Nilai dari (𝑦3𝑖=0 − 𝑦𝑖 𝑖)2 diminimalkan.
Setelah pergantian (y0, y1, y2,y3) menjadi (𝑦 , 𝑦0 , 𝑦1 , 𝑦2 ) di 3 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, 𝑦 = 151, 𝑦1 = 135, 𝑦2 = 141). 3
III. DESAINSISTEM 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. Penerima akan menerima gambar yang telah disisipi pesan oleh pengirim.
4. 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.
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 3. Diagram Aktivitas Menerima File
Gambar 4. Diagram Aktivitas Menyembunyikan Pesan
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.
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
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. UJICOBADANEVALUASI 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
browse.
Parameter keberhasilan uji coba ini adalah saat file berhasil dikirimkan, muncul pesan bahwa pengirim telah mengirim sebuah file.
Gambar 6. Proses Memilih File yang akan Dikirim
Proses memilih file dapat dilihat pada Gambar 6, sementara hasil pengujian bisa dilihat pada Gambar 7.
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
proses mengirim file berhasil
Gambar 9. Tampilan Proses Menerima File Berhasil
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 10. Proses Memilih Media Gambar
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
gambar yang telah berisi pesan, kemudian memilih menu ekstrak pesan. Gambar 12 menunjukkan proses memilih gambar yang akan diekstrak.
Gambar 126. Proses Memilih Gambar Berisi Pesan
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 14. Cover Image: (a)Lena (b)Baboon (c)Pepper Tabel 1. Hasil Uji Coba Kapasitas Gambar
Threshold Low High
Kapasitas (bit)
Lena Baboon Pepper 5 2 3 609688 708232 643836 2 4 706056 903232 783552 2 5 802424 1098232 923264 3 4 866344 964848 895896 10 2 3 558152 653424 569880 2 4 602776 793920 627032 2 5 647392 934416 684184 3 4 814920 909888 826240 15 2 3 540192 611296 536984 2 4 566648 709344 560848 2 5 593096 807392 584632 3 4 797064 867920 793696 30 2 3 521736 543512 520384 2 4 529480 573088 526736 2 5 537216 602664 533080 3 4 778736 800480 777408 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.
F. 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.
Tabel 2. Hasil Uji Coba PSNR
Threshold Low High PSNR (dB)
Lena Baboon Peppe 5 2 3 42,591 42,040 41,680 2 4 37,828 37,502 36,771 2 5 30,567 29,922 29,561 3 4 37,508 37,393 36,469 10 2 3 44,668 42,611 43,706 2 4 40,331 37,625 38,815 2 5 33,749 30,436 32,319 3 4 39,439 37,468 38,022 15 2 3 45,580 43,314 45,608 2 4 41,842 38,380 41,921 2 5 34,889 31,170 34,459 3 4 40,486 37,985 40,175 30 2 3 46,654 45,374 46,778 2 4 44,755 41,376 45,274 2 5 37,929 33,437 39,672 3 4 41,72 40,152 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.
UCAPANTERIMAKASIH
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.
DAFTARPUSTAKA
[1] Cole, E.2003. Hiding in Plain Sight:Steganography and the Art of Covert Communication. Indianapolis: Wiley Publishing, Inc. [2] Katzenbeisser, S., & A.P. Petitcolas, F. 2000. Information Hiding
Techniques for Steganography and Digital Watermarking. ARTECH HOUSE, INC.
[3] Chan, C.-k., & Cheng, L. 2004. Hiding data in images by simple LSB substitution. Elsevier .
[4] Liao, X., Wen, Q.-y., & Zhang, J. 2011. A Steganographic Method For Digital Images With Four-pixel Differencing and Modified LSB Substitution. elsevier .
[5] Miano, J. 1999. Compressed Image File Formats. Massachusetts: Addison Wesley Longman,Inc.
[6] DIBs and Their Uses. 2005. diakses 18 Juni, 2012, dari Microsoft Support:http://support.microsoft.com/kb/q81498/
[7] J. Cox, I., L. Miller, M., A. Bloom, J., Fridrich, J., & Kalker, T. 2008. Digital Watermarking and Steganography Second Edition. Elsevier.