Steganografi adalah teknik penyembunyian data rahasia ke dalam sebuah wadah (media) sehingga data yang disembunyikan sulit dikenali oleh indera manusia.
Steganografi membutuhkan dua properti: wadah penampung dan data rahasia yang akan disembunyikan.
Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, suara, teks, dan video. Data rahasia yang disembunyikan juga dapat berupa citra, suara, teks, atau video.
Penggunaan steganografi antara lain bertujuan untuk menyamarkan eksistensi (keberadaan) data rahasia sehingga sulit dideteksi, dan melindungi hak cipta suatu produk.
Steganografi dapat dipandang sebagai kelanjutan kriptografi. Jika pada kriptografi, data yang telah disandikan (ciphertext) tetap tersedia, maka dengan steganografi ciphereteks dapat disembunyikan sehingga pihak ketiga tidak mengetahui keberadaannya.
Sejarah Steganografi
Steganografi sudah dikenal oleh bangsa Yunani. Penguasa Yunani dalam mengirimkan pesan rahasia menggunakan kepala budak atau prajurit sebagai media. Dalam hal ini, rambut budak dibotaki, lalu pesan rahasia ditulis pada kulit kepala budak. Ketika rambut budak tumbuh, budak tersebut diutus untuk membawa pesan rahasia di kepalanya.
Bangsa Romawi mengenal steganografi dengan menggunakan tinta tak-tampak (invisible ink) untuk menuliskan pesan. Tinta tersebut dibuat dari campuran sari buah, susu, dan cuka. Jika tinta digunakan untuk menulis maka tulisannya tidak tampak. Tulisan di atas kertas dapat dibaca dengan cara memanaskan kertas tersebut.
Kriteria Steganografi yang Bagus
Steganografi yang dibahas di sini adalah penyembunyian data di dalam citra digital. Meskipun demikian, penyembunyian data dapat juga dilakukan pada wadah berupa suara digital, teks, ataupun video.
Penyembunyian data rahasia ke dalam citra digital akan mengubah kualitas citra tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah:
1. Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia.
2. Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung. Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak.
3. Data yang disembunyikan harus dapat diungkapkan kembali (recovery).
Teknik Penyembunyian Data
Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam segmen citra dengan bit-bit data rahasia. Salah satu metode penyembunyian data yang sederhana adalah LSB Modification.
Perhatikan contoh sebuah susunan bit pada sebuah byte:
& nbsp; &n bsp; &nb sp; 1101001
& nbsp; &n bsp; &nb sp;| &nb sp; &nbs p; |&nbs p; ; & nbsp; &n bsp; &nb sp; &nbs p; ; LSB = Least Significant Bit
& nbsp; &n bsp; &nb sp;| &nb sp; &nbs p; |&nbs p; ; & nbsp; &n bsp; &nb sp; &nbs p; ; MSB = Most Siginificant Bit
& nbsp; &n bsp; &nb sp; MSB LSB
Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut menyatakan warna keabuan tertentu, maka perubahan satu bit LSB tidak mengubah warna keabuan tersebut secara berarti. Lagi pula, mata manusia tidak dapat membedakan perubahan yang kecil.
Misalkan segmen data citra sebelum perubahan:
0 0 1 1 0 0 1 1 & nbsp; 1 0 1 0 0 0 1 0 & nbsp; 1 1 1 0 0 0 1 0 & nbsp; 0 1 1 0 1 1 1 1
Segmen data citra setelah ‘0 1 1 1 ‘ disembunyikan:
0 0 1 1 0 0 1 0 & nbsp; 1 0 1 0 0 0 1 1 & nbsp; 1 1 1 0 0 0 1 1 & nbsp; 0 1 1 0 1 1 1 1
Untuk memperkuat teknik penyembunyian data, bit-bit data rahasia tidak digunakan mengganti byte-byte yang berurutan, namun dipilih susunan byte secara acak. Misalnya jika terdapat 50 byte dan 6 bit data yang akan disembunyikan, maka maka byte yang diganti bit LSB-nya dipilih secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49.
Bilangan acak dibangkitkan dengan pseudo-random-number-gene rator (PRNG) kriptografi. PRNG kriptografi sebenarnya adalah algoritma kriptografi yang digunakan untuk enkripsi. PRNG dibangun dengan algoritma DES (Data Encryption Standard), algoritma hash MD5, dan mode kriptografi CFB (Chiper-Feedback Mode). Tujuan dari enkripsi adalah menghasilkan sekumpulan bilangan acak yang sama untuk setiap kunci enkripsi yang sama. Bilangan acak dihasilkan dengan cara memilih bit-bit dari sebuah blok data hasil enkripsi
Teknik penyembunyian data untuk citra 8-bit berbeda dengan citra 24-bit. Seperti diketahui berkas citra bitmap terdiri atas bagian header, palet RGB, dan data bitmap.
Pada citra 8-bit, setiap elemen data bitmap menyatakan indeks dari peta warnanya di palet RGB.
Pada citra 24-bit, tidak terdapat palet RGB, karena nilai RGB langsung diuraikan dalam data bitmap. Setiap elemen data bitmap panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan B.
Teknik penggantian bit pada citra bukan 24-bit.
Sebelum melakukan penggantian bit LSB, semua data citra yang bukan tipe 24-bit diubah menjadi format 24-bit. Jadi, setiap data pixel sudah mengandung komponen RGB.
Setiap byte di dalam data bitmap diganti satu bit LSB-nya dengan bit data yang akan disembunyikan. Jika byte tersebut merupakan komponen hijau (G), maka penggantian 1 bit LSB-nya hanya mengubah sedikit kadar warna hijau, dan perubahan ini tidak terdeteksi oleh mata manusia.
Teknik penggantian bit pada citra 24-bit.
Karena data bitmap pada citra 24-bit sudah tersusun atas komponen RGB, maka tidak perlu dilakukan perubahan format.
Setiap byte di dalam data bitmap diganti satu bit LSB-nya dengan bit data yang akan disembunyikan.
Perubahan Jumlah Warna
Pada citra 8-bit, jumlah warna terbatas, hanya 256 warna. Pengubahan format citra 8-bit menjadi 24-bit akan menghasilkan warna baru (yang semula tidak terdapat di dalam palet RGB). Setiap elemen RGB pada tabel palet berpotensi menjadi 8 warna berbeda setekah proses penggantian bit LSB. Hal ini karena setiap data bitmap terdiri atas 3 byte, maka tersedia 3 bit LSB untuk penggantian. Penggantian 3 bit LSB menghasilkan 23 = 8 kombinasi warna. Dengan demikian, steganografi pada citra 256 warna berpotensi menghasilkan 256 ´ 8 = 2048 warna.
Untuk menghindari kelebihan warna dari 256, maka sebelum proses penyembunyian data, warna citra 8-bit diturunkan terlebih dahulu menjadi 32 warna (jika jumlah warnanya kurang dari 32, tidak perlu dilakukan penurunan warna). Dengan demikian, jika setiap warna menghasilkan 8 warna baru, jumlah warna seluruhnya maksimum 32 ´ 8 = 256 warna.
Penurunan jumlah warna dilakukan dengan cara kuantisasi warna (color quantization). Penurunan jumlah warna harus tetap menghasilkan citra yang tampak persis seperti citra semula. Algoritma kuantisasi warna ada beberapa buah, antara lain algoritma diversity. Prinsip algoritma diversity adalah memaksimumkan perbedaan warna.
4. Untuk setiap warna yang tersisa di dalam list, hitung jaraknya dari masing-masing warna di dalam senarai warna terpilih. Ambil warna yang paling jauh berbeda dengan warna yang sudah dipilih. Lakukan langkah 4 ini berulang kali sampai k warna sudah terpilih.
Ukuran Data Yang Disembunyikan
Ukuran data yang akan disembunyikan bergantung pada ukuran citra penampung. Pada citra 8-bit yang berukuran 256 ´ 256 pixel terdapat 65536 pixel, setiap pixel berukuran 1 byte. Setelah diubah menajdi citra 24-bit, ukuran data bitmap menjadi 65536 ´ 3 = 196608 byte. Karena setiap byte hanya bisa menyembunyikan satu bit di LSB-nya, maka ukuran data yang akan disembunyikan di dalam citra maksimum 196608/8 = 24576 byte. Ukuran data ini harus dikurangi dengan panjang nama berkas, karena penyembunyian data rahasia tidak hanya menyembunyikan isi data tersebut, tetapi juga nama berkasnya.
Semakin besar data disembunyikan di dalam citra, semakin besar pula kemungkinan data tersebut rusak akibat manipulasi pada citra penampung.
Teknik Pengungkapan Data
Data yang disembunyikan di dalam citra dapat dibaca kembali dengan cara pengungkapan (reveal atau extraction). Posisi byte yang menyimpan bit data dapat diketahui dari bilangan acak yang dibangkitkan oleh PRNG. Karena algoritma kriptografi yang digunakan menggunakan kunci pada proses enkripsi, maka kunci yang sama digunakan untuk membangkitkan bilangan acak. Bilangan acak yang dihasilkan sama dengan bilangan acak yang dipakai pada waktu penyembunyian data. Dengan demikian, bit-bit data rahasia yang bertaburan di dalam citra dapat dikumpulkan kembali.
Next : aplikasi steganografi
Steganografi Sebagai Salah Satu Teknik Penyandian Data???
Sebagai salah satu orang yang pernah menggeluti tentang steganografi, data hiding, dan watermarking. Sepertinya judul itu kurang pas/cocok. Coba baca ensiklopedia kriptologi yang ada di perpus…
Keep on spirit bwt nulis2nya.
iya, kalau tidak salah, steganografi “cukup” menyembunyikan data, tidak dienkripsi pun tidak apa-apa.
bisa bantu terjemahin salah satu listing steganorafi dari delphi kan ?
bantu ya klo bisa ntar ku kirim……….
pengen nanya niih pak ^^, saya rada bingung gimana proses ektraksi pada lsb dengan PRNG, bukankah ntar yg posisi byte yang dihasilkan pd saat ekstraksi juga random??…trus gimana dapatin ekstraksi secara tepat?? (or saya yg salah ngertiin prosesnya yak ??) mohon pencerahan nya pak…maklum nubie nih…
M’f ni baru smpt bls,baru buka blog lagi.
3-64m3 : mengenai judul tulisan ini emang harus diperbaiki dan sudah saya perbaiki. Mungkin pemahaman sya kurang waktu itu,steganografi merupkan slah satu cabang ilmu dari kriptologi dimana kriptologi itu sendiri adlah ilmu penyandian data, makanya judul ini sebelumnya adalah Steganografi sebagai salah satu teknik penyandian dat, sekali lagi m’f
samudra : mengenai tulisan ini kebetulan saya dapat dari salah satu blog orang lain, saya juga lupa siapa penulis nya maknya belum saya cantumkan. menurut pemahaman sya dan ilmu yang saya dapat, klo PRNG itu atau Pseudorandom Number Generator adlah pembngkit bilangan acak. Bilangan yang dibngkitkan sebenarnya hnya terlhat acak, karena dalam pembngkitannya itu menggunakan suatu fungsi makanya terdapat pola-pola. dalam tulisan diatas pada proses dekripsi merupakan kebalikan dari proses enkripsi dengan menggunakan kunci yang sama sehingga dpt diktahui posisi – posisi bit yang sebelumnya telah dienkripsi.
[...] Steganografi Sebagai Salah Satu Teknik Penyandian Data Ditulis pada Oktober 3, 2008 oleh Sandromedo Steganografi Sebagai Salah Satu Teknik Penyandian Data [...]