Abstrak—Pengamanan terhadap informasi yang didistribusikan sangat penting untuk menjaga kerahasiaan, keutuhan, dan keaslian informasi tersebut. Proses pengamanan dapat dilakukan dengan menyembunyikan informasi tersebut pada media digital lain agar tidak terlihat keberadaannya. Teknik ini disebut steganografi. Steganografi citra menyembunyikan pesan di dalam suatu citra digital sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu di dalam citra tersebut.
Metode yang paling umum digunakan dalam steganografi citra adalah metode LSB (Least Significant Bit). Dalam metode ini, informasi disisipkan ke dalam LSB setiap piksel dari citra cover [1]. Namun, metode ini telah terbukti tidak tahan terhadap statistical attack [2] Selain itu, beberapa teknik yang lebih baru membuktikan bahwa sharp area pada citra dapat menampung pesan tanpa terdekteksi lebih banyak daripada smooth area [3] [4][5].
Artikel ini menggunakan sebuah teknik baru yang merupakan kombinasi metode penyisipan High Payload untuk citra berwarna dan deteksi tepi hybrid. Metode penyisipan High Payload digunakan pada saat proses komputasi bit penyisipan sehingga pengalokasian bit pada kanal RGB dapat dimaksimalkan. Deteksi tepi dimanfaatkan untuk memperbesar kapasitas dengan penyisipan lebih banyak pada piksel tepi.
Hasil uji coba menunjukkan bahwa metode ini menghasilkan citra stego dengan nilai Peak Signal to Noise Ratio (PSNR) yang relatif tinggi (> 40 db). Pada proses ekstraksi, pesan atau informasi yang disisispkan pada dapat diperoleh kembali secara utuh atau dengan kata lain pesan yang disisipkan sebelum proses penyisipan dan setelah proses ekstraksi sama tanpa ada perubahan atau gangguan yang menyebabkan isi pesan tidak dapat diperoleh sepenuhnya.
Kata Kunci—Deteksi tepi Fuzzy, deteksi tepi hybrid, metode penyisipan High Payload, steganografi citra.
I. PENDAHULUAN
TEGANOGRAFI merupakan seni untuk menyembunyikan pesan di dalam suatu media sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu di dalam pesan tersebut. Perbedaan antara kriptografi dan steganografi yaitu, kriptografi mengacak pesan sehingga tidak dimengerti, sedangkan steganografi menyembunyikan pesan sehingga tidak terlihat. Seringkali, steganografi dan kriptografi digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.
Pada era informasi digital, steganografi menyembunyikan
informasi dan data digital di balik informasi digital lain, sehingga informasi digital yang sesungguhnya tidak kelihatan. Hampir seluruh jenis berkas digital dapat digunakan sebagai media penampung pesan, salah satu media yang paling banyak digunakan untuk steganografi adalah media citra. Hal ini dikarenakan adanya keterbatasan sistem indera manusia, dalam hal ini khususnya mata, yakni HVS (Human Visual System). Steganografi citra memanfaatkan keterbatasan sistem penglihatan manusia dengan cara menurunkan kualitas warna pada citra yang belum disisipi pesan rahasia. Hasil keluaran dari steganografi ini memiliki bentuk persepsi yang sama dengan bentuk aslinya, tentunya persepsi di sini sebatas oleh kemampuan indera manusia, tetapi tidak oleh komputer atau perangkat pengolah digital lainnya.
Beberapa istilah atau terminologi yang berkaitan dengan steganografi citra dalam artikel ini:
Citra secret: merupakan hiddentext yang berupa citra, baik citra grayscale maupun citra berwarna 24-bit (RGB).
Citra cover: merupakan covertext yang berupa citra berwarna 24-bit (RGB).
Citra stego: citra yang secara visual tampak seperti citra cover namun di dalamnya telah disisipi oleh citra secret. Proses menyembunyikan citra secret ke dalam citra cover disebut proses penyisipan (embedding process) dan proses mengekstrak kembali citra secret dari citra stego yang dihasilkan dari proses penyisipan disebut proses ekstraksi (extracting process).
Metode yang digunakan pada steganografi citra berwarna dalam artikel ini merupakan kombinasi metode penyisipan High Payload untuk citra berwarna yang diusulkan oleh El-Emam [6] dan deteksi tepi hybrid yang diusulkan oleh Chen et al [7]. Deteksi tepi hybrid merupakan gabungan hasil deteksi tepi Fuzzy dan hasil deteksi tepi Canny sehingga menghasilkan piksel tepi lebih banyak. Agar lebih sederhana, filter Sobel dan Laplacian digunakan sebagai pengganti deteksi tepi Canny. Penggabungan filterSobel dengan deteksi tepi Fuzzy dinamakan deteksi tepi hybrid Sobel or Fuzzy, sedangkan penggabungan filterLaplacian dengan deteksi tepi Fuzzy dinamakan deteksi tepi hybrid Laplacian or Fuzzy. Metode penyisipan High Payload digunakan pada saat proses komputasi bit penyisipan sehingga pengalokasian bit pada kanal RGB dapat dimaksimalkan.
Studi Kinerja Peningkatan Keamanan Informasi
Berbasis Penyisipan Informasi Dengan
Menggunakan Steganografi
Claracia Dinasty, Ahmad Saikhu, dan Rully Soelaiman
Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS)
Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia
: rully@is.its.ac.id
II. METODEPENELITIAN
Secara umum, proses pada steganografi citra berwarna terbagi menjadi dua, yaitu proses penyisipan dan proses ekstraksi. Setiap proses terdiri dari beberapa tahapan.
A. Proses Penyisipan
Proses penyisipan terdiri dari tujuh tahap. Ketujuh tahap tersebut ditunjukkan pada Gambar 1.
1) Input Data Inisialisasi
Ada tiga data yang diperlukan sebagai data input, yaitu: jenis deteksi tepi yang digunakan, jumlah bit yang ditambahkan pada piksel tepi, dan citra cover. Pilihan deteksi tepi yang digunakan Sobel or Fuzzy dan Laplacian or Fuzzy.
2) Pembuatan Versi Grayscale Dari Citra Cover
Versi grayscale dari citra cover didapatkan dengan komputasi menggunakan (1). B G R I0.299 0.587 0.114 (1) 3) Pendeteksian Tepi
Langkah-langkah pendeteksian tepi menggunakan deteksi tepi hybrid adalah sebagai berikut:
i. Melakukan deteksi tepi menggunakan operator Laplacian (untuk Laplacian or Fuzzy) atau menggunakan operator Sobel (untuk Sobel or Fuzzy).
ii. Melakukan deteksi tepi Fuzzy. Deteksi tepi Fuzzy didapatkan dengan menentukan degree of edginess mn
untuk seluruh piksel dengan menggunakan (2).
1 1 , min , 1 min
i j ij ij mn w (2)Di mana nilai 9,w3,1,dan
ij(membershipgrade) didapatkan dengan melakukan perhitungan secara lokal dalam setiap window ww dengan persamaan (3)
x w j i x xij ij ij , 1 , : min max
(3)iii. Pengaplikasian Otsu threshold untuk seluruh hasil tepi. iv. Melakukan penggabungan hasil filter Sobel atau
Laplacian dengan hasil deteksi tepi Fuzzy menggunakan operasi OR.
4) Komputasi Alokasi Bit
Komputasi untuk menentukan alokasi piksel yang dapat disisipkan pada setiap kanal warna dalam citra cover dilakukan menggunakan metode penyisipan High Payload. Langkah pertama dalam metode ini adalah menentukan piksel properties sebagai berikut:
i. MC (Main Case) untuk seluruh kenal warna setiap piksel citra cover. Terdapat 16 level nilai MC yang mana setiap levelnya mewakili prioritas penyisipan. Semakin rendah nilai MC maka semakin tinggi level prioritasnya. Indeks MC ditentukan menggunakan (4). 1 16 Int ByteColor MC (4) Di mana ByteColor∈{ByteRed,ByteGreen,ByteBlue} yang merepresentasikan nilai setiap kanal warna dalam notasi desimal.
ii. SC (Sub Case) untuk seluruh kenal warna setiap piksel citra cover dengan aturan (5).
C Y X C Y C X C Y C X C Y C X C Y C X C Y X C Y C X C Y C X C Y X SC , 6 ) & ( | ) & ( 5 ) & ( | ) & ( 4 , 3 ) & ( | & 2 , 1 (5)iii. CP adalah current pixel (piksel yang sedang diproses), sedangkan NP adalah next pixel (piksel yang selanjutnya akan diproses)
iv. Selected color dipilih dengan (6).
Color
CP Color Color MC Sel argmin (6) v. Main case dari selected color pada CP dihitung dengan(7). CP Color MC C Co lo r Sel mc (7)
vi. Main case dari rest color pada CP dihitung dengan (8). START
Input: citra cover (RGB)
Tahap 2 : Membuat versi grayscale dari
citra cover
Tahap 3 : Melakukan deteksi tepi sesuai dengan jenis deteksi tepi
yang dipilih
Tahap 4 : Mengkomputasi jumlah bit yang disipkan dengan menggunakan metode penyisipan
high payload dan deteksi tepi Tahap 5 : Input: citra secret Tahap 6 : Menyisipkan citra secret kedalam citra
cover Output:citra stego Tahap 7 : Membuat berkas pelengkap untuk proses ekstraksi Output: Berkas pelengkap Stop Tahap 1 : Inisialisasi.
Input: jenis deteksi tepi, jumlah bit yang
ditambahkan untuk piksel tepi Citra hasil deteksi tepi (sobelOr Fuzzy atau laplacianOr Fuzzy)
MC
Color CP RC CP MC Color RC Color RC min & arg (8)vii. Salah satu dari rest color didapat dengan (9).
RC
E
i
RC
E
i,
1
,
2
&
(9)viii. Rest color lainnya dengan (10). RC C RC H MC MC Co lo r Sel H , (10)
ix. R,G,B adalah nilai dari kanal warna red, green, blue pada CP.
Setelah piksel properties ditentukan, selanjutnya adalah melakukan komputasi dengan algoritma sebagai berikut:
If (Cmc>=2 AND SC = 1) { //Check the MC of rest colors If (RC = 1) {
//Check if all current pixel property is equal to the next pixel property
If (CP.property = NP.property) {
//Hide 2 data bits in the selected color from the current pixel
Hide (CP.C, DataBits (2));
//Hide 2 data bits in the selected color byte from the next pixel
Hide (NP.C, DataBits (2)); }
} }
Else if (Cmc>=1 ANDCmc<=16 AND SC = 3) { //Hide 1 data bit in the Red color byte Hide (CP.R, DataBits (1));
//Hide 1 data bit in the Green color byte Hide (CP.G, DataBits (1));
//Hide 2 data bits in the Blue color byte Hide (CP.B, DataBits (2));
}
Else if (Cmc>=1 ANDCmc<=15 AND SC = 5) {
//Hide 2 data bits in the selected color byte from the current pixel
Hide (CP.C, DataBits (2));
//Hide data bits in the greater or equal MC byte for the selected color min case from the rest pixel bytes
Hide (CP.E, DataBits (2)); }
Else if (Cmc>=1 AND CP.Cmc<=15 AND SC = 6) {
//Hide 2 data bits in the selected color byte from the current pixel
Hide (CP.C, DataBits (2));
//Hide data bits in the greater or equal MC byte for the selected color min case from the rest pixel bytes
Hide (CP.H, DataBits (2)); }
Untuk setiap piksel yang pada tahap sebelumnya dideteksi sebagai piksel tepi, maka jumlah bit yang disisipkan ditambahkan dengan jumlah bit yang akan ditambahkan jika piksel tersebut merupakan piksel tepi.
5) Input Citra Secret
Langkah pertama user memilih citra secret yang akan disisipkan dengan ukuran tidak melebihi batas maksimal hasil komputasi tahap sebelumnya. Setelah citra secret dibaca, matriks citra secret yang awalnya berupa matriks integer (desimal) diubah menjadi bentuk bitstream biner untuk mempermudah proses penyisipan. Untuk citra secret berwarna
(RGB), seluruh kanal warna digabungkan menjadi satu bitstream.
6) Penyisipan Citra Secret ke Dalam Citra Cover
Langkah pertama bitstream biner dari citra secret dibagi sesuai alokasi jumlah bit yang dapat disisipkan. Alokasi ini merupakan hasil dari komputasi tahap ke-4. Kemudian per alokasi bit tersebut, dari bentuk biner diubah kembali menjadi bentuk desimal dan dibentuk kembali menjadi bentuk matriks dengan ukuran sesuai dengan citra cover.
Langkah ke-2 adalah memberi mask pada citra cover. Mask dilakukan dengan mengubah beberapa bit terakhir pada citra cover yang akan disisipi menjadi netral (bernilai 0). Hal ini bertujuan agar dalam proses ekstraksi tidak terjadi kebingungan antara bit asli citra cover atau bit citra secret yang disisipkan.
Langkah terakhir adalah menyisipkan matriks hasil alokasi citra secret ke dalam citra cover yang sudah diberi mask dengan menggunakan operasi OR. Langkah ini menghasilkan citra stego.
7) Pembuatan Berkas Pelengkap
Keberadaan berkas pelengkap penting karena dibutuhkan dalam proses ekstraksi bersamaan dengan citra stego. Berkas pelengkap yang dibuat dalam artikel ini menggunakan format txt yang didalamnya mengandung informasi sebagai berikut:
informasi jumlah bit yang telah disisipkan dalam setiap kanal warna red(R), green(G), dan blue(B) dalam tiap piksel pada citra cover (informasi dalam bentuk array satu dimensi),
informasi panjang citra secret,
informasi lebar, citra secret,
informasi jumlah kanal citra secret, dan
informasi mengenai panjang bitstream pesan rahasia (citra secret) yang telah disisipkan.
B. Proses Ekstraksi
Proses ekstraksi terdiri dari lima tahap. Kelima tahapan tersebut ditunjukkan pada Gambar 2.
i. Tahap pertama adalah tahap inisialisasi, yaitu memasukkan citra stego beserta berkas pelengkap. ii. Tahap ke-2 adalah membaca informasi yang terdapat
dalam berkas pelengkap dan memisahkan informasi- informasi didalamnya Start Tahap 1: Input: citra stego Input: berkas pendukung Tahap 3: Mengambil N bits dari
citra stego yang merupakan citra secret
yang disisipkan Tahap 4: Mengubah bitstream biner menjadi bentuk bitstream desimal Tahap 5: Membentuk kembali bitstream desimal menjadi matriks citra Output : citra secret hasil ekstraksi Stop Tahap 2: Memisahkan informasi-informasi dalam berkas
pendukung
(a) (b)
(c) (d)
(e) (f)
Gambar 3. Hasil uji kebenaran (a) citra cover, (b) citra secret awal(c) citra
stego, (d) citra stego hasil proses ekstraksi (e) histogram citra secret awal, dan (d) histogram citra secret hasil proses ekstraksi.
iii. Tahap ke-3 adalah mengambil N-bits terakhir dari citra stego sesuai dengan informasi pada matriks desimal yang didapatkan. Hasil dari tahap ini berbentuk bitstream biner. iv. Tahap ke-4 adalah mengubah kembali dari bentuk
bitstream biner menjadi bentuk bitstream desimal. v. Tahap terakhir adalah membentuk kembali bitstream
desimal menjadi matriks citra yang menghasilkan citra secret hasil ekstraksi (extracted image).
III. UJICOBADANEVALUASI
Uji coba dalam artikel ini dilakukan dengan menggunakan citra dari The Berkeley Segmentation Dataset and Benchmark (BSDS300) yang diunduh secara acak [8]. Dalam uji coba digunakan pengujian berdasarkan nilai PSNR.
A. PSNR
PSNR (Peak Signal To Noise Ratio) merupakan nilai perbandingan antara harga maksimum warna pada citra hasil proses dengan kuantitas gangguan (noise/derau), yang dinyatakan dalam satuan desibel (dB), derau yang dimaksud adalah akar rata-rata kuadrat nilai kesalahan MSE . Pada artikel ini, PSNR digunakan untuk mengetahui kualitas (validasi) citra stego. Semakin tinggi nilai PSNR yang dihasilkan semakin baik. Secara matematis, PSNR dapat dirumuskan dalam persamaan (11).
MSE PSNR 2 10 255 log 10 (11) Piksel tepi = 32274 PSNR1 = 44,66 db PSNR2 = 42,98 db Piksel tepi = 25564 PSNR1 = 44,11 db PSNR2 = 50,11 db Piksel tepi = 27345 PSNR1 = 45,04 db PSNR2 = 43,23 db (a) Piksel tepi = 31416 PSNR1 = 44,70 db PSNR2 = 43,04 db Piksel tepi = 27126 PSNR1 = 43,95 db PSNR2 = 50,11 db Piksel tepi = 26897 PSNR1 = 45,10 db PSNR2 = 43,27 db (b)
Gambar 4. Hasil uji kinerja perbandingan jenis deteksi tepi (a) hasil menggunakan deteksi tepi Sobelor Fuzzy, dan (b) hasil menggunakan deteksi tepi Laplacian or Fuzzy.
B. MSE
MSE (Mean Square Error) adalah rata-rata kuadrat nilai kesalahan antara citra cover dengan citra citra stego yang secara matematis dapat dirumuskan dalam persamaan (12).
2 1 1 1
i j ij ij S C wh MSE (12)Di mana w dan h merupakan lebar dan tinggi citra, dan Cij,Sij
merupakan nilai dari piksel pada koordinat (i,j) pada citra cover dan citra stego.
C. Hasil Uji Kebenaran
Uji ini membandingkan citra secret yang disisipkan dengan citra secret hasil proses ekstraksi dan diukur menggunakan nilai PSNR. Sistem dinyatakan sesuai jika nilai PSNR = tak hingga (INF). Hasil dari uji ini ditunjukkan pada Gambar 3.
Secara visual tidak tampak perbedaan antara citra secret sebelum proses penyisipan dengan citra secret hasil proses ekstraksi. Setelah dilakukan uji menggunakan nilai PSNR, nilai yang didapatkan adalah ‘INF’ atau tak hingga. Dengan begitu dapat dikatakan bahwa proses penyisipan dan ekstraksi pada uji kebenaran sudah sesuai.
D. Hasil Uji Kinerja
Uji kinerja memgevaluasi kualitas citra stego yang dihasilkan. Dalam uji ini terdapat dua nilai PSNR, yaitu PSNR1 dan PSNR2. PSNR1 membandingkan citra stego dengan citra cover asli, sedangkan PSNR2 membandingkan citra stego dengan citra cover yang telah diberi mask.
Gambar 4 menunjukkan perbandingan hasil proses dengan menggunakan Sobel or Fuzzy dan Laplacian or Fuzzy dapat terlihat bahwa perbedaan yang dihasilkan tidak signifikan. Beberapa citra memiliki piksel tepi lebih banyak dengan deteksi tepi hybrid Laplacian or Fuzzy beberapa lainnya dengan deteksi tepi hybridSobel or Fuzzy Citra dengan jumlah tepi lebih banyak, memiliki nilai PSNR lebih kecil, baik untuk nilai PSNR1 maupun nilai PSNR2.
0 50 100 150 200 250 300 350 400 450 0 50 100 150 200 250 0 50 100 150 200 250 300 350 400 450 0 50 100 150 200 250
Tabel1.
Perbandingan hasil dengan peningkatan jumlah bit tambahan yang disisipkan pada piksel tepi
Jumlah bit tambahan 0 1 2 3 4 5 Citra Stego PSNR1 47,69 db 45,77 db 42,01 db 36,78 db 30,87 db 25,14 db PSNR2 45,79 db 43,40 db 38,93 db 33,41 db 27,66 db 21,62 db
Kapasitas 345600 bit 385049 bit 424500 bit 463950 bit 503400 bit 542849 bit
Tabel 1 menunjukkan hasil citra stego dengan penambahan bit pada piksel tepi dari 0 hingga 5 bit. Semakin banyak jumlah bit yang ditambahkan pada piksel tepi, nilai PSNR yang dihasilkan, baik PSNR1 maupun PSNR2 semakin rendah, namun kapasitas penyimpanan bit yang dapat disisipkan semakin besar. Citra stego dengan jumlah bit tambahan kurang dari 3 bit (0,1, atau 2 bit) memiliki kualitas yang baik dengan nilai PSNR > 40db. Sedangkan untuk bit tambahan sebanyak 3 bit atau lebih, perbedaan visual mulai tampak dan nilai PSNR yang dihasilkan menurun drastis.
IV. KESIMPULAN
Pada keadaan normal (tanpa perlakuan khusus), hasil proses ekstraksi citra secret adalah sama persis dengan citra secret sebelum disisipkan, baik untuk citra secret berwarna maupun citra secret grayscale (PSNR = ∞, MSE = 0) dan kualitas citra stego yang dihasilkan cukup baik (PSNR > 40 db).
Perbedaan jumlah citra tepi yang dihasilkan oleh deteksi tepi Sobel or Fuzzy maupun Laplacian or Fuzzy tidak signifikan. Dari sejumlah citra diuji, beberapa citra memiliki jumlah tepi lebih banyak menggunakan Sobel or Fuzzy, dan beberapa lainnya terdeteksi lebih banyak menggunakan Laplacian or Fuzzy.
Jumlah piksel tepi yang lebih banyak mengakibatkan nilai PSNR citra stego yang lebih rendah.Semakin kecil ukuran citra secret, semakin tinggi nilai PSNR2 yang dihasilkan, namun nilai PSNR1 semakin rendah, dan waktu proses yang dibutuhkan semakin sedikit.
Jumlah bit yang disarankan untuk ditambahkan pada piksel tepi adalah kurang dari tiga bit. Semakin sedikit bit yang ditambahkan, semakin baik kualitas citra stego yang dihasilkan. Semakin banyak jumlah bit yang disisipkan pada piksel tepi, kapasitas untuk menampung jumlah bit yang disisipkan semakin besar.
UCAPANTERIMAKASIH
Penulis C.D. mengucapkan terima kasih kepada Allah SWT yang melimpahkan rahmat dan hidayahnya sehingga penulis dapat menyelesaikan artikel ini dengan lancar.
Penulis juga mengucapkan terima kasih kepada Bapak Rully Soelaiman dan Bapak Ahmad Saikhu yang telah membimbing penulis dalam mengerjakan artikel ini sampai selesai dengan lancar. Selain itu penulis juga berterima kasih kepada seluruh pihak yang membantu dalam menyelesaikan.
DAFTARPUSTAKA
[1] A. Ioannidou, S. T. Haldikis and G. Stephanides, "A novel technique for image steganography based on a high payload method and edge detection," Expert System with Application, vol. 39, no. 14, pp. 11517-11524, 2012.
[2] J. Fridrich, M. Goljan and R. Du, "Reliable detection of LSB steganography in color and grayscale images," IEEE Multimedia, vol. 8, p. 22–28, 2001.
[3] C.-M. Wang, N.-I. Wu, C.-S. Tsai and M.-S. Hwang, "A high quality steganographic method with pixel-value differencing and modulus function," The Journal of Systems and Software, vol. 81, p. 150–158, 2008.
[4] D.-C. Wu and W.-H. Tsai, "A steganographic method for images by pixel-value differencing," Pattern Recognition Letters, vol. 24, pp. 1613-1626, 2003.
[5] C.-C. Thien and J.-C. Lin, "A simple and high-hiding capacity method for hiding," Pattern Recognition, vol. 36, p. 2875–288, 2003.
[6] N. N. El-Emam, "Hiding a large amount of data with high security using steganography algorithm," Journal of Computer Science, vol. 3, no. 4, pp. 223-232, 2007.
[7] W.-J. Chen, C.-C. Chang and T. Hoang Ngan Le, "High payload steganography mechanism using hybrid edge detector," Expert System with Application, vol. 37, pp. 3292-3301, 2010.
[8] "The Berkeley Dataset and Benchmark," [Online]. Available: http://www.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/. [Accessed 1 June 2013].