Algoritma EzStego, Algoritma Steganografi pada Citra GIF

Kebanyakan paper atau riset tentang algoritma steganografi diterapkan pada citra berformat bitmap (BMP) dengan memodifikasi bit LSB pixel secara langsung. Tidak terlalu banyak paper yang membahas algoritma steganografi pada format citra lain, misalnya JPEG atau GIF. Citra dengan format BMP sederhana, karena ia tidak dikompresi, sehingga setiap pixel menyatakan nilai keabuan secara langsung.

Sayangnya citra BMP sangat jarang digunakan di dalam World Wide Web karena ukuran memorinya yang besar.  Citra BMP tidak menjadi standard representasi citra untuk berbagai aplikasi, termasuk di Internet. Citra yang umum digunakan di dalam komunikasi dan  berbagai aplikasi adalah citra terkompresi seperti citra JPEG, GIF, PNG, dan lain-lain.

Tidak banyak paper tentang algoritma steganografi pada citra terkompresi. Tulisan ini membahas algoritma steganografi pada citra GIF.

Citra GIF

Citra GIF adalah jenis citra terindeks (indexed image) yang pertama kali diperkenalkan oleh Compuserve pada tahun 1987. Format GIF biasanya digunakan untuk menyimpan citra grafika komputer, citra ikonik, kartun, logo, animasi, maupun citra natural. Sebuah citra GIF terdiri dari sebuah palet warna dengan komponen Red, Green, dan Blue atau RGB, dan sebuah matriks pixel yang berisi indeks ke sebuah baris di palet. Dengan kata lain, nilai pixel pada matriks menyatakan indeks ke palet. Warna pixel ditentukan oleh kombinasi R, G, dan B pada baris palet yang diacu.

GIF

Struktur citra GIF (Sumber: Matlab)

Gambar 1 memperlihatkan struktur citra GIF. Di dalam gambar tersebut nilai 5 menyatakan elemen palet pada baris kelima. Pada baris tersebut,  R = 0.2902, G = 0.0627, B = 0.0627. Jadi, persepsi warna pada pixel 5 adalah kombinasi wana RGB. Karena kedalaman warnanya hanya sampai 256 buah saja, maka citra GIF cocok untuk gambar grafik buatan manusia seperti kartun, animasi, dan gambar-gambar menarik lainnya yang dibuat menggunakan kakas seperti Corel Draw, Photoshop, dan lain-lain.

EzStego

Salah satu algoritma steganografi yang cukup sederhana pada citra GIF adalah EStego. EzStego dikembangkan oleh Romana Machado (http://www.jjtc.com/Steganography/tools.html)  pada tahun 1996.

Algoitma EzStego menyisipkan bit-bit pesan dengan metode LSB.  Bit LSB dari nilai pixel (yang menunjuk ke nomor entri pada palet) diganti dengan bit pesan. Akibat penyisipan tersebut, nilai pixel dapat bertambah satu,  tetap, atau berkurang satu. Namun, karena nilai pixel merupakan pointer ke palet warna, maka nilai pixel yang baru (setelah penyisipan LSB) akan menunjuk ke warna berikutnya (atau ke warna sebelumnya) di palet yang tentu saja secara visual berbeda signifikan. Hal ini tentu menimbulkan degradasi warna yang membuat citra stego menjadi rusak.

Untuk meminimalkan degradasi warna, maka langkah pertama di dalam algoritma EzStego adalah mengurutkan warna-warna di dalam palet sedemikian sehingga perbedaan dua warna yang bertetangga adalah minimal. Perbedaan dua warna dapat dihitung dengan rumus jarak Euclidean. Misalkan warna 1 dinyatakan sebagai vektor (R1, G1, B1) dan warna 2 dinyatakan sebagai (R2, G2, dan B2). Jarak Euclidean kedua warna tersebut dihitung dengan rumus: euclidean

Jadi, proses pengurutan palet dilakukan dengan menghitung jarak antar warna di dalam palet, lalu mengurutkan palet berdasarkan jarak terkecil sedemikian sehingga akhirnya dua warna bertetangga memiliki jarak Euclidean yang kecil. Bit-bit pesan disisipkan pada bit LSB indeks dari palet yang terurut secara sekuensial.

Gambar 2 memperlihatkan ilustrasi penyisipan pesan di dalam EzStego. Misalkan terdapat delapan palet  yang berbeda warna. Angka 0-7 menyatakan nilai pixel di dalam  citra GIF. Misalkan kita ingin menyisipkan bit pesan  pada pixel bernilai 7. Warna pixel 7 pada citra asal adalah pada  indeks 4 (=100)  pada palet yang sudah terurut, dan warna pixel 3 adalah pada indeks 5 (=101) pada palet terurut. Kedua warna ini bertetangga dan sukar dibedakan. Jika kita menyisipkan bit “1” pada pixel 7, maka warnanya diganti menjadi indeks 3 pada palet terurut (100 –> 101).  Karena perbedaan warna antara dua warna bertetangga sangat kecil, perubahan tersebut  hampir tidak bisa dilihat oleh mata.

ezstego

Ilustrasi proses penyisipan pesan di dalam EzStego (Sumber: A. Westfeld and A. Pfitzmann (1999). “Attack on Steganographic System”, Lecture Notes in Computer Sciences, vol. 1768, pp. 61-76)

Ekstraksi pesan  sangat mudah dilakukan. Sebelum proses ekstraksi, palet warna diurutkan sedemikian sehingga perbedaan dua warna yang bertetangga adalah minimal. Selanjutnya bit pesan  diekstraksi dari LSB indeks palet.  Kelemahan algoritma EzStego adalah tidak membutuhkan kunci sehingga kurang aman untuk penyembunyian pesan, sehingga siapapun yang mengetahui algoritmanya dapat mengekstrak pesan.

Ringkasan algoritma EzStego adalah sebagai berikut:

Embedding Algorithm

  1. Urutkan palet dari citra cover (original image) berdasarkan jarak Euclidean
  2. Assign indeks baru pda palet yang terurut dengan penomoran 0, 1, 2, … dst.
  3. Ganti LSB dari indeks palet yang terurut dengan dengan bit-bit pesan.
  4. Hasilnya adalah sebuah citra stego (stego-image).

Extraction Algorithm

  1. Urutkan palet dari citra stego berdasarkan jarak Eucliedean.
  2. Assign indeks baru pda palet yang terurut dengan penomoran 0, 1, 2, … dst.
  3. Ekstraksi bit LSB dari indeks palet yang terurut.

Di bawah ini beberapa contoh gambar GIF yang disisipi pesan dengan algoritma EzStego. Program dibuat menggunakan kakas Matlab. Pesan yang disisipkan ke dalam citra adalah pesan teks, namun pesan dengan format lainnya pun tetap dapat disisipkan. Anda dapat melihat tidak terdapat degradasi warna pada citra stego.

ezstego1ezstego2ezstego3

ezstego4

Di bawah ini potongan program untuk mengurutkan palet:

ezstego5

 

Tinggalkan komentar

Filed under Steganografi

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s