bab 2 landasan teori 2.1 algoritma - thesis.binus.ac.idthesis.binus.ac.id/asli/bab2/lbm2006-361-bab...
TRANSCRIPT
6
BAB 2
LANDASAN TEORI
2.1 Algoritma
Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan
untuk memecahkan suatu permasalahan (Wahono et al, 2003). Penemu algoritma adalah
seorang ahli matematika dari uzbekistan yang bernama Abu Abdullah Muhammad Ibn
Musa al-Khwarizmi (770-840) (Wahono et al, 2003). Di literatur barat dia lebih terkenal
dengan sebutan Algorizm (Wahono et al, 2003). Panggilan inilah yang kemudian dipakai
untuk menyebut konsep algorithm yang ditemukannya. Dalam bahasa Indonesia
kemudian disebutkan dengan algoritma.
Suatu algoritma yang baik harus memenuhi beberapa syarat (Wahono et al,
2003), yaitu:
Susunan langkah yang dilaksanakan harus jelas.
Harus memiliki suatu titik awal dan minimal satu titik akhir.
Harus berhenti setelah beberapa langkah yang terhingga.
Setiap pernyataan harus jelas.
2.2 Steganografi
Selama beratus-ratus tahun, sejarah membuktikan bahwa menjaga kerahasiaan
sebuah informasi sangatlah penting. Berbagai cara dan metode guna menjaga
kerahasiaan telah ditempuh. Efeknya pun luar biasa.
Salah satu contohnya adalah metode kuno yang bernama steganografi.
Steganografi adalah teknik penyembunyian data rahasia ke dalam sebuah wadah (media)
7 sehingga data yang disembunyikan sulit dikenali oleh indera manusia (Mdesian, 2005).
Pengamanan dengan menggunakan steganografi membuat seolah-olah pesan rahasia
tidak ada atau tidak nampak, padahal pesan tersebut ada. Hanya saja kita tidak sadar
bahwa ada pesan tersebut di sana.
Kata steganografi (steganography) berasal dari bahasa Yunani (Budi, 2002).
Steganos artinya 'tersembunyi/terselubung', dan graphein, 'menulis' sehingga kurang
lebih artinya "menulis (tulisan) terselubung" (Budi, 2002). Teknik ini meliputi banyak
sekali metoda komunikasi untuk menyembunyikan pesan rahasia (Budi, 2002). Metoda
ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital,
jalur tersembunyi dan komunikasi spektrum lebar (Budi, 2002).
Steganografi membutuhkan dua properti, yaitu wadah penampung dan data
rahasia yang akan disembunyikan (Mdesian, 2005). 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 dikatakan mempunyai hubungan yang erat dengan
kriptografi. Akan tetapi metoda ini sangat berbeda dengan kriptografi. Kriptografi
mengacak pesan sehingga tidak dimengerti, sedangkan steganografi menyembunyikan
pesan sehingga tidak terlihat (Budi, 2002). Pesan dalam cipherteks mungkin akan
menimbulkan kecurigaan sedangkan pesan yang dibuat dengan steganografi tidak akan.
Kedua teknik ini dapat digabungkan untuk mendapatkan metoda pengiriman rahasia
yang sulit dilacak. Pertama pesan dienkrip, kemudian cipherteks disembunyikan dengan
cara steganografi pada media yang tampak tidak mencurigakan (Budi, 2002). Cara ini
8 sangat berguna jika digunakan pada cara steganografi komputer karena banyak format
file digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang
biasa digunakan diantaranya:
• Format image: bitmap (bmp), gif, pcx, jpeg, dll.
• Format audio: wav, voc, mp3, dll.
• Format lain: teks file, html, pdf, dll.
Gambar 2.1. Komunikasi Steganografi Modern (Provos, 2003)
2.2.1 Sejarah Steganografi
Teknik steganografi sudah digunakan sejak ribuan tahun yang lalu. Saat
itu, ada seorang Yunani bernama Demaratus yang sedang berada Persia. Dia
menjadi saksi bahwa Raja Persia Xerxes tengah membangun armada perang
yang sangat besar. Armada perang tersebut akan digunakan Xerxes menginvasi
9
Yunani dan Spartans. Selain akan datang dengan armada yang lengkap dan besar,
Xerxes akan menyerang secara cepat dan tiba-tiba. Demaratus sebagai orang
Yunani merasa terpanggil untuk membela bangsanya. Namun tentu saja bukan
hal yang mudah melarikan diri dari wilayah Persia dan melaporkan hal ini ke
Yunani dan Spartan. Resiko hukuman mati pasti didapat seandainya dia
tertangkap (Adi, 2004).
Demaratus lalu mengambil kulit kayu yang mengandung lilin.
Dibersihkannya kayu itu dari lilin dan ditulisnya pesan di bawah kulit kayu itu.
Setelah itu, kayu itu kembali diberi lilin sehingga pesannya menjadi tidak
terbaca. Dikirimkanlah kulit kayu itu ke Yunani dan ketika melewati prajurit-
prajurit penjaga Persia, pesan itu tetap aman karena tidak terbaca dan disangka
hanya sebagai kulit kayu biasa. Akhirnya Yunani menerima pesan Demaratus
dan segera mempersiapkan bala tentaranya untuk mengantisipasi invasi Persia.
Dan datanglah waktu yang ditunggu-tunggu. Waktu itu Persia sangat terkejut
karena ternyata Yunani sudah mengantisipasinya. Peperangan tersebut
mengakibatkan kekalahan di pihak Persia (Adi, 2004).
Dalam perkembangannya teknik steganografi tidak hanya melalui kulit
kayu yang mengandung lilin tapi juga berkembang melalui tinta khusus yang
hanya dapat dibaca dengan penambahan cairan khusus (Adi, 2004). Ada juga
dengan trik berupa pesan biasa namun kata-kata tertentunya diberi tanda khusus,
sehingga penerima pesan tidak membaca pesan secara keseluruhan tapi hanya
pesan yang diberi tanda saja (Adi, 2004). Namun begitu, teknik steganografi ini
tidak efisien. Dalam beberapa kasus teknik ini mudah dipatahkan bagi orang-
orang yang sudah berpengalaman (Adi, 2004).
10
Selain itu ada beberapa kasus yang melibatkan penggunaan teknik
steganografi, diantaranya adalah:
• Di jaman Histalaeus, pesan disembunyikan dengan cara membuat tato di
kepala budak yang telah digunduli. Kemudian ditunggu sampai rambut
budak tersebut mulai tumbuh baru sang budak dikirim melalui penjagaan
musuh. Ketika diperiksa di pintu gerbang memang sang budak tidak
membawa pesan apa-apa. Sesampainya di tujuan baru sang budak
dicukur oleh sang penerima pesan untuk dapat dibaca pesannya (Budi,
2005).
• 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 (Budi, 2005).
• Pesan rahasia dapat juga dikirimkan dengan mengirim surat pembaca ke
sebuah surat kabar. Huruf awal setiap kalimat (atau bisa juga setiap kata)
membentuk pesan yang ingin diberikan. Cara lain adalah dengan
membuat puisi dimana huruf awal dari setiap baris membentuk kata-kata
pesan sesungguhnya (Budi, 2005).
• Hal yang sama dapat dilakukan dengan membuat urutan gambar buah
dimana pesan tersebut merupakan gabungan dari huruf awal dari nama
buah tersebut (Budi, 2005).
11
• Pengarang Dan Brown dalam buku novelnya yang berjudul “The Da
Vinci Code” memberikan pesan di sampul bukunya dengan membuat
beberapa huruf dalam cetakan tebal (bold). Jika disatukan, huruf-huruf
yang ditulis dalam cetakan tebal tersebut membuat berita yang dimaksud
(Budi, 2005).
• Dalam peristiwa penyerangan gedung WTC tanggal 11 September 2001
disebutkan oleh "pejabat pemerintah dan para ahli dari pemerintahan AS"
yang tidak disebut namanya bahwa "para teroris menyembunyikan peta-
peta dan foto-foto target dan juga perintah untuk aktivitas teroris di ruang
chat sport, bulletin boards porno dan web site lainnya". Isu lainnya
menyebutkan bahwa teroris menyembunyikan pesan-pesannya dalam
gambar-gambar porno di web site tertentu. Walaupun demikian
sebenarnya belum ada bukti nyata dari pernyataan-pernyataan tersebut
diatas (Budi, 2002).
Di dunia digital, steganografi muncul dalam bentuk digital watermark,
yaitu tanda digital yang disisipkan dalam gambar (digital image) atau suara. Hak
cipta (copyright) dari gambar dapat disisipkan dengan menggunakan high-bit
dari pixel yang membentuk gambar tersebut (Budi, 2005). Gambar terlihat tidak
berbeda - karena kemampuan, atau lebih tepatnya ketidakmampuan mata
manusia yang tidak dapat membedakan satu bit saja, akan tetapi sebenarnya
mengandung pesan-pesan tertentu.
12
Gambar 2.2. Syndrome tanpa data sisipan
Gambar 2.3. Syndrome yang disisipkan Chapter 2 dari
”Harry Potter and The Sorcerer’s Stone”
2.2.2 Kriteria Steganografi yang Baik
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.
13
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 (Mdesian, 2005). 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 (Mdesian, 2005). Bila pada citra
dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak
rusak.
3. Data yang disembunyikan harus dapat diungkapkan kembali (recovery)
(Mdesian, 2005).
2.2.3 Teknik Penyembunyian Data
Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam
segmen citra dengan bit-bit data rahasia (Mdesian, 2005). Salah satu metode
penyembunyian data yang sederhana adalah LSB Modification. Contoh:
11010010
LSB = Least Significant Bit
MSB = Most Siginificant Bit
MSB LSB
14
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.
Selain itu, mata manusia tidak dapat membedakan perubahan yang kecil.
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-generator
(PRNG) kriptografi (Mdesian, 2005). 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) (Mdesian, 2005). 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.
2.2.4 Struktur File Image
Pada komputer, suatu gambar adalah array dari bilangan yang
merepresentasikan intensitas terang pada point yang bervariasi (pixel). Pixel ini
menghasilkan raster data gambar. Suatu gambar yang berdimensi 640 x 480
15
pixel dengan 256 warna (atau 8 bit per warna per pixel). akan berisi kira-kira 900
kilobyte data.
Gambar digital disimpan juga secara khusus di dalam file 24-bit atau 8-
bit. Gambar 24-bit menyediakan lebih banyak ruang untuk menyembunyikan
informasi; bagaimanapun, ukurannya dapat menjadi sangat besar (dengan
perkecualian gambar JPEG). Semua variasi warna untuk pixel yang diperoleh
dari tiga warna dasar: merah, hijau dan biru. Setiap warna dasar
direpresentasikan dengan 1 byte; gambar 24-bit menggunakan 3 byte per pixel
untuk merepresentasikan suatu nilai warna. 3 byte ini dapat direpresentasikan
sebagai nilai hexadesimal, desimal, dan biner. Dalam banyak halaman Web,
warna latar belakang direpresentasikan dengan bilangan 6 digit hexadesimal,
yang merupakan tiga ikatan representasi warna merah, hijau dan biru. Latar
belakang putih akan mempunyai nilai FFFFFF: 100% merah (FF), 100% hijau
(FF) dan 100% biru (FF). Nilai desimal-nya 255,255,255 dan nilai biner-nya
adalah 11111111, 11111111, 11111111.
Pixel merepresentasikan kontribusi dari ukuran file. sebagai contoh,
andaikan kita mempunyai gambar 24-bit dengan lebar 1,024 pixel dan panjang
768 pixel, yang merupakan resolusi umum untuk grafik beresolusi tinggi, gambar
tersebut akan mempunyai lebih dari dua juta pixel, dan akan menghasilkan file
berukuran lebih dari 2 Mbyte, yang tentu saja menjadi penyebab utama
ketidakpopulerannya di internet.
16
2.2.5 Steganografi pada file image
Seperti terlihat diatas bahwa file 8-bit merepresentasikan satu warna pada
satu pixel menggunakan 1 byte data, yang berarti satu warna direpresentasikan
dengan skala 255, yang berarti pula bahwa file 24-bit yang menggunakan 3 byte
data memiliki skala sampai 16,581,375.
Steganografi pada file image didasarkan pada kenyataan bahwa mata
manusia tidak mampu membedakan perubahan warna yang terlalu kecil,
misalnya perubahan 1 nilai dalam skala 255, yang berarti bahwa mata manusia
tidak dapat membedakan warna biru yang bernilai 255 dan yang bernilai 254.
Kenyataan ini kemudian dimanfaatkan untuk menyisipkan data rahasia ke dalam
tiap warna per pixel sebanyak 1 bit dengan cara mengubah LSB (Least
Significant Bit) dari nilai warna dengan data yang akan disisipkan. Walaupun
demikian perubahan 1 bit tersebut berpengaruh terhadap ganjil-genap nilai warna
yang kemudian dapat dideteksi oleh serangan visual.
2.3 Kompresi JPEG
Beberapa tahun yang lalu, JPEG (Joint Photographic Experts Group) membuat
standar teknik kompresi internasional pertama untuk format file citra tidak bergerak (still
image) yang kini digunakan secara luas. Standar yang pada waktu itu diajukan oleh
JPEG bertujuan agar bersifat umum sehingga dapat memenuhi kebutuhan berbagai
aplikasi yang bekerja dengan file image (Guillermito, 2004) .
Lebih lanjut akan dijelaskan secara singkat tahapan dalam proses kompresi yang
diajukan dalam standar JPEG.
17
Gambar 2.4. Tahap – tahap dalam kompresi JPEG (Leung, 2004)
2.3.1 Konversi dari RGB Menjadi YCbCr
Format warna RGB (Red, Green, Blue) adalah format yang digunakan
dalam file bitmap, dimana setiap pixel terdiri atas komposisi tiga variabel yang
berisi nilai masing – masing warna. JPEG mengubah format tersebut menjadi
satu koefisien luminance (nilai Y : intensitas warna keseluruhan pada gambar)
yang berupa bentuk hitam/putih dari gambar, dan dua koefisien chrominance
(nilai Cb dan Cr : Cb merupakan kombinasi warna dari Biru/Kuning dan Cr
merupakan kombinasi warna dari Merah/Hijau) melalui rumus berikut
(Anonymous, 2004):
YCbCr
Kuantisasi
Tabel Kuantisasi
18
Gambar 2.5. Rumus Perkalian Matriks untuk mengubah RGB menjadi YcbCr
(Anonymous, 2004)
Tujuan dari pengubahan ini karena mata manusia pada dasarnya lebih
peka terhadap intensitas (luminance) dibanding terhadap warna (chrominance)
(Guillermito, 2004), sehingga untuk alasan penghematan ruang, beberapa metode
JPEG mampu menggunakan hanya satu pixel warna untuk mewakili empat pixel
lainnya tanpa menyebabkan perubahan yang berarti pada gambar. Berikut ini
contoh dari gambar yang dikonversi menjadi YCbCr :
Gambar 2.6. Perubahan dari format RGB menjadi YcbCr (Anonymous, 2004)
2.3.2 DCT (Discrete Cosine Transform)
DCT merupakan fungsi yang digunakan untuk mengubah nilai YCbCr
pada setiap pixel menjadi koefisien DCT. Pada bulan Juni 1987, JPEG
melakukan studi terhadap 12 proposal yang membahas tentang kualitas gambar
yang melalui proses DCT, dan pada bulan Januari 1988 ditemukan bahwa
Red
Green
Blue
Y (Luminance)
Cr (Chrominance)
Cb (Chrominance)
19
proposal yang menggunakan 8 x 8 DCT, telah menghasilkan gambar dengan
kualitas paling baik, namun demikian penggunaan teknik ini tetap memiliki
kekurangan yaitu efek isolasi antara blok – blok pixel yang saling berdekatan,
inilah alasan mengapa gambar JPEG yang dikompres dengan rasio yang tinggi
akan terlihat terkotak – kotak (Wallace, 2004).
Gambar 2.7. JPEG image dengan rasio kompresi tinggi (Leung, 2004)
Pada tahap ini keseluruhan gambar pertama – tama dibagi menjadi
berukuran 8 x 8 pixel, kemudian blok – blok pixel tersebut satu persatu diproses
menjadi 64 koefisien DCT melalui rumus berikut :
Gambar 2.8. Persamaan DCT (Leung, 2004)
Tujuan dari tahap ini adalah karena pada gambar “alami” nilai koefisien
DCT rata – rata berukuran amat kecil dan banyak yang dapat dihilangkan dengan
Jika
Sebaliknya
20
tetap mempertahankan keakuratan gambar. Pada gambar berikut akan
diperlihatkan perubahan dari nilai warna menjadi koefisien DCT :
Gambar 2.9. Perubahan nilai warna menjadi koefisien DCT (Guillermito, 2004)
Koefisien DCT pertama dari tiap blok memiliki nilai paling besar
dibanding 63 koefisien lainnya karena merupakan nilai rata – rata dari
keseluruhan blok, koefisien pertama ini disebut dengan koefisien DC dan 63
koefisien lainnya disebut dengan koefisien AC. Jika blok DCT tersebut
dikembalikan melalui tahap Inverse DCT, maka akan didapat kembali 64 nilai
pixel yang mengalami sedikit perubahan sehingga tahap ini disebut sebagai tahap
lossy.
2.3.3 Kuantisasi
Kuantisasi juga merupakan tahap lossy dalam kompresi JPEG karena
kuantisasi sendiri berarti pembagian antara setiap koefisien DCT dengan
koefisien kuantisasi dan pembulatan sesudahnya (Guillermito, 2004). Berikut ini
adalah tabel kuantisasi untuk koefisien luminance dan chrominance yang sudah
ditetapkan sebagai standar oleh JPEG dengan rasio kompresi paling baik dan
penurunan kualitas gambar paling rendah :
21
Gambar 2.10. Tabel Kuantisasi Luminance dan Tabel Kuantisasi
Chrominance(Leung, 2004)
Tabel koefisien ini sendiri pada implementasinya akan berubah sesuai
rasio kompresi yang ditentukan oleh user, oleh karena itu tabel tersebut disimpan
di awal file gambar dan akan digunakan kembali untuk mengembalikan koefisien
frekuensi menjadi koefisien DCT (Inverse Quantization). Semakin tinggi rasio
kompresi pada gambar maka semakin tinggi pula nilai pada tabel kuantisasi dan
kualitas gambarpun akan semakin rendah.
Keragaman warna pada satu blok ternyata juga sangat berpengaruh pada
penurunan kualitas yang disebabkan oleh dua tahap lossy tersebut (DCT dan
Kuantisasi) (Leung, 2004). Pada dua gambar berikut akan diperlihatkan
perbedaan pada blok yang memiliki warna variatif dengan blok yang memiliki
warna cenderung sama :
22
Gambar 2.11. Perubahan pada blok dengan warna cenderung seragam (Leung, 2004)
Gambar 2.12. Perubahan pada blok dengan warna cenderung variarif (Leung, 2004)
2.3.4 DPCM (Differential Pulse Code Modulation)
Pada tahap ini, koefisien DC dari tiap – tiap blok disatukan untuk
memasuki tahap Entropy Coding, teknik DPCM digunakan karena nilai – nilai
Kuantisasi
Inverse Kuantisasi
Kesalahan
Tabel Kuantisasi
Kesalahan Tabel Kuantisasi
Kuantisasi
Inverse Kuantisasi
23
koefisien DC antara blok satu dengan lainnya tidak jauh berbeda (Leung, 2004).
Berikut ini akan digambarkan lebih rinci :
Gambar 2.13. Proses DPCM (Leung, 2004)
2.3.4.1 Entropy coding pada Koefisien DC
Koefisien DC yang sudah melalui tahap DPCM kemudian
dikompresi menggunakan kompresi huffman, sebelumnya deretan angka
DPCM tersebut dirubah bentuknya menjadi pasangan – pasangan
(size,amplitude), dimana size menyatakan jumlah bit yang diperlukan
untuk merepresentasikan angka DPCM dan amplitude menyatakan angka
tersebut dalam bentuk bit (Leung, 2004). Tabel berikut menyatakan
hubungan antara size, amplitude dan angka :
Gambar 2.14. Hubungan size, amplitude dan angka (Leung, 2004)
Koefisien DC
Blok 1
Koefisien DC
Blok 2
Koefisien DC
Blok 3
Koefisien DC
Blok 4
Koefisien DC
Blok 5
Blok 1
Blok 2
Blok 3
Blok 4
Blok 5
24
Seperti yang terlihat diatas bahwa amplitude dapat menyatakan
nilai absolut dari angka DPCM, yang berarti amplitude dapat berisi angka
positif maupun negatif (dalam bentuk komplemen satu dari positifnya).
Dalam tahap Entropy coding yang mengalami kompresi huffman hanya
size-nya saja, karena perubahan pada size tidak terlalu jauh sedangkan
amplitude sangat bervariasi. Lebih lanjut dijelaskan pada gambar berikut
Gambar 2.15. Entropy coding pada koefisien DC (Leung, 2004)
2.3.5 RLC (Run Length Coding)
Pada tahap ini koefisien AC dari tiap – tiap blok disatukan untuk
memasuki tahap Entropy Encoding, teknik RLC digunakan karena nilai – nilai
koefisien AC memiliki banyak nilai berurut, yaitu nilai nol yang urutannya rata –
rata panjang (Guillermito, 2004). Berikut ini contoh dari blok koefisien DCT
yang telah dikuantisasi :
Gambar 2.16. Koefisien DC ter-Kuantisasi (Leung, 2004)
25
Pada gambar diatas terlihat bahwa nilai – nilai nol cenderung berdekatan
dari kiri/atas ke kanan/bawah, oleh karena itu untuk membuat semakin banyak
nilai 0 yang berurutan maka urutan koefisien diubah dalam bentuk zig - zag yang
lebih rinci dijelaskan pada gambar berikut (Leung, 2004):
Gambar 2.17. Koefisien AC dalam urutan zig – zag (Leung, 2004)
Setelah diubah urutannya, nilai – nilai AC tersebut kemudian diubah
bentuknya menjadi pasangan – pasangan (runlength, value), dimana runlength
adalah jumlah 0 yang berurutan dan value adalah nilai non - 0 yang terletak
sesudahnya. Dalam hal ini koefisien DC tidak diperhitungkan dalam RLC.
Gambar 2.18. Proses RLC (Leung, 2004)
Koefisien DCT ter-Kuantisasi
Koefisien AC
Koefisien DC Tidak diproses
Akhir Blok
26
2.3.5.1 Entropy coding pada koefisien AC
Koefisien AC yang sudah melalui tahap RLC juga kemudian
dikompresi menggunakan kompresi huffman, sebelumnya deretan
pasangan – pasangan (runlength, value) tersebut dirubah bentuknya
menjadi pasangan – pasangan (runlength, size, value), sama seperti
koefisien DC (Leung, 2004). Dalam hal ini yang mengalami kompressi
huffman hanya runlength dan size-nya saja untuk alasan yang sama
dengan koefisien DC. Lebih lanjut dijelaskan dalam gambar berikut :
Gambar 2.19. Entropy coding pada koefisien AC (Leung, 2004)
2.4 Steganografi pada JPEG
Secara umum proses kompresi diatas dapat digambarkan seperti dibawah ini :
Gambar 2.20. Proses Kompresi secara umum (Westfeld, 2004)
Seperti dijelaskan diatas bahwa tahap DCT dan kuantisasi merupakan tahap lossy
yang menyebabkan turunnya kualitas pada gambar namun tidak demikian halnya pada
27 tahap Huffman. Kondisi ini kemudian dimanfaatkan untuk melakukan penyisipan data
dengan melihat bahwa koefisien – koefisien DCT yang ditransfer antara tahap kuantisasi
dan Huffman dapat dikembalikan persis ke bentuk semula melalui proses dekompresi
karena tidak melalui tahap lossy.
Koefisien DCT tersebut pun memiliki karakteristik sendiri, yang harus tetap
dijaga agar tidak menimbulkan kecurigaan pada pendeteksian steganografi, dengan kata
lain bahwa algoritma steganografi yang baik dapat mempertahankan sifat – sifat yang
dimiliki koefisien DCT. Lebih lanjut dijelaskan dalam gambar berikut :
Gambar 2.21. Frekuensi Kemunculan Koefisien DCT (Westfeld, 2004)
Dari gambar diatas dapat kemudian disimpulkan beberapa karakteristik :
1. Jumlah kemunculan berkurang dengan meningkatnya nilai absolut dari koefisien
frekuensi.
2. selisih jumlah kemunculan antara antara dua koefisien frekuensi berkurang
dengan meningkatnya nilai absolut dari koefisien frekuensi.
Steganografi menyisipkan data steganografi dengan mengubah nilai – nilai dari
koefisien frekuensi tersebut.
28 2.5 Pendeteksian Terhadap Steganografi ( Steganalysis )
Berbagai usaha telah dilakukan untuk mendeteksi keberadaan data tersembunyi
dalam file image untuk alasan keamanan oleh berbagai pihak. Seperti sempat terjadi di
Amerika pada sekitar bulan Februari 2001, sebuah media lokal USA TODAY yang
memuat berita tentang steganografi yang digunakan oleh teroris untuk berkomunikasi,
sempat membuat kepanikan massal dan memaksa pemerintah mendanai sebuah
perusahaan teknologi informasi, WetStone Technologies, untuk menyelidiki
kemungkinan penyisipan data rahasia dalam file – file image yang terdapat pada situs
pelelangan yang sangat terkenal yaitu eBay.com.
WetStone akhirnya mengumumkan hasil penyelidikannya bahwa mereka hanya
menemukan sekitar 1 diantara 100.000 gambar yang dicurigai memiliki data rahasia, dan
sekitar 1 diantara 1 – 2 juta gambar yang diyakini memiliki data rahasia, jumlah yang
terlalu kecil untuk menjadi ancaman besar dan tidak sebanding dengan kepanikan yang
dialami masyarakat, karena memang, pada sekitar bulan Maret 2004 USA TODAY
mengakui bahwa wartawan yang memuat berita tersebut memalsukan hampir seluruh
ceritanya dan kemudian memberhentikannya dengan tidak hormat
2.5.1 Visual attack
Visual attack adalah teknik pertama yang pernah dipublikasikan terhadap
file image untuk mendeteksi keberadaan data tersebut. Visual attack
memungkinkan mata manusia melihat keberadaan data tersembunyi dalam file
image karena data tersembunyi tersebut menimpa struktur gambar secara visual.
File image pada umumnya memiliki nilai warna yang sama pada pixel-
pixel yang berdekatan. Penyisipan data rahasia yang memiliki bit tidak beraturan
29
akan menyebabkan pixel-pixel yang saling berdekatan tersebut memiliki nilai
warna yang bervariasi dalam bentuk ganjil-genap walaupun tidak terlihat oleh
manusia karena perbedaanya terlalu kecil. Teknik visual attack memperbesar
perbedaan tersebut sehingga terlihat oleh mata manusia dengan cara membuat
nilai warna ganjil menjadi ekstrim maksimum (255) dan nilai warna genap
menjadi ekstrim minimum (0) sehingga setiap pixel hanya memiliki nilai warna 0
atau 255 saja (Guillermito, 2003). berikut ini diberikan contoh :
Sisipan Data File Asli Visual attack Keterangan
Tidak disisipkan apapun
Terlihat bahwa warna
putih tidak mengalami
perubahan, warna putih
yang saling berdekatan
cenderung memiliki
LSB yang sama (semua
pixelnya memiliki nilai
warna 255)
Disisipkan 1kB data
File image yang
disisipkan data terlihat
penuh dibawah, ini
terjadi Karena nilai
warna pertama pada
struktur file BMP adalah
pixel terakhir pada
gambar.
30
Disisipkan 5 kB data
Data terlihat semakin
penuh oleh data sisipan
Gambar 2.22. Perbandingan Image pada Visual Attack (Guillermito, 2003)
2.5.2 Analisis Histogram DCT
Seperti telah dijelaskan sebelumnya, pada umumnya pixel – pixel yang
berdekatan pada file image memiliki nilai LSB yang sama, dengan kata lain pixel
– pixel yang berdekatan umumnya memiliki nilai-nilai warna yang sama,
kemudian setelah penyisipan data LSB dari nilai – nilai warna tersebut berubah
menjadi sangat bervariasi dengan perbedaan yang sangat kecil yaitu hanya satu
nilai warna. Menurut Guillermito (Anonymous, 2004) LSB dari data yang
disisipkan tersebut, pada setiap kasus, ternyata memiliki distribusi yang
mendekati 50/50, yang berarti pada data yang disisipkan, LSB bernilai 1
memiliki jumlah yang hampir sama dengan LSB bernilai 0 (Guillermito, 2003).
Pada algoritma JSteg, yang mengalami perubahan bukanlah nilai – nilai
warna pada pixel melainkan koefisien DCT pada saat kompresi, seperti telah
dijelaskan bahwa JSteg menyisipkan LSB data rahasia pada koefisien DCT. Hal
tersebut memberikan pengaruh yang sama seperti halnya nilai – nilai warna pada
31
BMP, koefisien DCT yang memiliki LSB bernilai 1 juga memiliki jumlah yang
hampir sama dengan LSB bernilai 0.
Westfeld dan Pfitzmann (Westfeld, 2003) kemudian merumuskan suatu
teknik pendeteksian berdasarkan kenyataan tersebut. Mereka menyebut pasangan
LSB 0 dan 1 yang hampir sama jumlahnya dengan Pair of Values (PoV).
0010
0011
PoV pertama,
koefisien DCT bernilai 2 dan 3 memiliki jumlah hampir sama.
0100
0101
PoV kedua,
koefisien DCT bernilai 4 dan 5 memiliki jumlah hampir sama.
0110
0111
PoV ketiga,
koefisien DCT bernilai 6 dan 7 memiliki jumlah hampir sama.
1000
1001
PoV keempat,
koefisien DCT bernilai 8 dan 9 memiliki jumlah hampir sama.
Lebih lanjut dalam histogram koefisien DCT berikut :
Gambar 2.23. Koefisien DCT file image setelah disisipi data oleh Jsteg
(Westfeld, 2003)
32
Seperti terlihat diatas jumlah koefisien DCT bernilai 1 dan 0 tidak
mengalami perubahan, ini disebabkan karena 0 dan 1 merupakan PoV
(pasangan), karena koefisien DCT bernilai 0 tidak bisa digunakan dalam
steganografi (oleh algoritma apapun) maka 1 pun menjadi tidak bisa digunakan
(Westfeld, 2004).
2.6 Algoritma Steganografi pada File JPEG
2.6.1 Algoritma JSteg
JSteg dibuat oleh Derek Upham dan merupakan algoritma
steganografi pertama yang dipublikasikan secara umum untuk format JPEG.
Algoritma JSteg menyisipkan data ke dalam koefisien DCT JPEG secara
sekuensial dangan cara mengganti LSB (Least Significant Bit) dengan LSB
dari data yang akan disisipkan. Algoritma ini tidak menggunakan password
sehingga siapapun yang mengetahui algoritma JSteg dapat memperoleh data
rahasia tersebut (Provos, 2003).
File JPEG, dalam hal ini yang menggunakan algoritma steganografi
apapun, tidak terdeteksi oleh visual attack karena tidak mengubah struktur
visual (Provos, 2003) melainkan koefisien DCT (lebih lanjut dijelaskan pada
kompresi JPEG) dan cenderung berukuran jauh lebih kecil dari BMP, oleh
karena itu sangat populer di internet dan mengalami perkembangan pesat
dalam hal algoritma steganografi.
JSteg menyisipkan data ke dalam koefisien DCT yang tidak bernilai
nol, sama seperti algoritma steganografi JPEG pada umumnya, tanpa
mempertahankan sifat-sifat koefisien DCT (lebih lanjut dijelaskan pada
33
kompresi JPEG). Hal tersebut menyebabkan algoritma ini sangat rentan
terdeteksi melalui pengamatan histogram DCT.
2.6.2 Perkembangan Algoritma F5
Algoritma F5 dikembangkan secara bertahap dari bentuknya yang
pertama yaitu algoritma F3, namun dalam implementasinya hanya algoritma
F5 yang digunakan dalam aplikasi. Algoritma F3 dan F4 yang akan
dijelaskan berikut hanya dimaksudkan untuk memperjelas proses
perkembangannya.
2.6.2.1 Algoritma F3
Algoritma F3 mengatasi kelemahan pada JSteg namun
belum cukup sempurna untuk diimplementasikan menjadi sebuah
aplikasi, untuk selanjutnya akan dibahas perkembangan algoritma
F3 dan proses penyempurnaanya sampai menjadi F5.
F3 memiliki 2 sifat yang membedakannya dari Algoritma
JSTEG :
1. Tidak seperti JSTEG yang menggunakan algoritma LSB
(menimpa LSB dari bit host dengan bit steganografi), F3
hanya melakukan pengurangan terhadap nilai absolut dari
koefisien DCT ketika LSB dari bit host tidak sama dengan bit
steganografi (Westfeld, 2004). Hal ini dilakukan untuk
mengatasi kelemahan JSTEG yang merusak sifat – sifat
34
histogram DCT (Westfeld, 2004). Lebih rinci dijelaskan
dalam diagram berikut :
Gambar 2.24. Penyisipan data steganografi pada F3 (Westfeld, 2004)
2. Koefisien DCT yang bernilai 1 atau -1 mengalami penyusutan
dalam jumlah besar. F3 otomatis memproses koefisien lain
ketika menghasilkan nilai 0 karena penerima pesan tidak dapat
membedakan antara nilai 0 yang memang tidak digunakan
oleh F3 dengan nilai 0 yang dihasilkan oleh pengurangan 1
atau -1. Penyusutan terjadi ketika F3 terus menerus
mengurangi koefisien yang bernilai 1 atau -1 menjadi 0 sambil
beralih ke koefisien berikutnya.
3. Terjadi Peningkatan koefisien jumlah genap sehingga
melebihi jumlah koefisien ganjil dalam tingkat yang
mencolok. Hal ini terjadi karena pemrosesan koefisien lain
yang selalu menghasilkan nilai genap setelah terjadi
penyusutan yang hanya mungkin terjadi ketika data
Koefisien DCT host
Koefisien DCT steganogram
Data steganografi
Data steganografi Tidak Digunakan
35
steganografi bernilai 0, oleh karena itu F3 tidak efektif untuk
data steganografi yang memiliki lebih banyak nilai 0, lebih
rinci dijelaskan dalam diagram berikut :
4.
Gambar 2.25. Jumlah kemunculan koefisien DCT pada image yang disisipkan pesan dengan algoritma F3 (Westfeld, 2004)
2.6.2.2 Algoritma F4
F4 mengatasi kelemahan F3 dengan cara memetakan
koefisien DCT menjadi 4 bagian : koefisien negatif ganjil dan
positif genap memiliki data steganografi bernilai 0, sedangkan
koefisien negatif genap dan positif ganjil memiliki data
steganografi bernilai 1 (Westfeld, 2004). Lebih rinci dijelaskan
dalan diagram berikut :
Jumlah Kemunculan
Koefisien DCT
36
Gambar 2.26. Jumlah kemunculan koefisien DCT pada image yang disisipkan pesan dengan algoritma F4 (Westfeld, 2004)
Dalam diagram diatas terlihat bahwa penyusutan dapat
dikurangi karena koefisien bernilai absolut 1 tidak hanya
mengalami pengurangan oleh data steganografi 0 saja namun
dapat juga oleh data steganografi 1. Nilai koefisien genap pun
tidak lagi melonjak karena pengurangan setelah penyusutan dapat
terjadi tidak hanya pada koefisien ganjil namun terhadap koefisien
genap juga.
Gambar 2.27. Penyisipan data steganografi pada F4
(Westfeld, 2004)
Koefisien DCT steganogram
Koefisien DCT
Jumlah Kemunculan Data steganografi 0 Data steganografi 1
Koefisien DCT host
Data steganografi
Data steganografi Tidak Digunakan
37
F4 juga membentuk diagram koefisien dengan menjaga
sifat - sifat pada diagram aslinya, misalkan kita memiliki dua
variabel X,Y yang masing – masing mewakili nilai koefisien
sebelum dan sesudah F4 menyisipkan data steganografi
(Westfeld, 2004). P(X = x) untuk mewakili kofisien frekuensi
yang dihasilkan JPEG encoder, dan P(Y = y) untuk mewakili
koefisien DCT yang dihasilkan F4 (Westfeld, 2004). Kita dapat
menuliskan dua sifat berikut berdasarkan diagram :
P(X = 1) > P(X = 2) > P(X = 3) > P(X = 4) (1)
P(X = 1) - P(X = 2) > P(X = 2) - P(X = 3) > P(X = 3) - P(X = 4) (2)
Jika data steganografi disebarkan secara seragam maka
didapat :
P(Y = 1) = ½ P(X = 1) + ½ P(X = 2) (3)
P(Y = 2) = ½ P(X = 2) + ½ P(X = 3) (4)
P(Y = 3) = ½ P(X = 3) + ½ P(X = 4) (5)
Dengan pengurangan persamaan diatas maka didapat :
P(Y = 1) – P(Y = 2) = ½ P(X = 1) - ½ P(X = 3) (7)
P(Y = 2) – P(Y = 3) = ½ P(X = 2) - ½ P(X = 4) (8)
Dari persamaan (1) kita dapat simpulkan bahwa :
P(Y = 1) > P(Y = 2) > P(Y = 3) > P(Y = 4) (9)
Jika kita tambahkan P(X = 2) – P(X = 3) ke persamaan (2)
maka akan didapat :
P(X = 1) - P(X = 3) > P(X = 2) - P(X = 4) > P(X = 3) - P(X = 5) (10)
38
Sehingga :
½ P(X = 1) - ½ P(X = 3) > ½ P(X = 2) - ½ P(X = 4) (11)
P(Y = 1) – P(Y = 2) > P(Y = 2) – P(Y = 3) (12)
Dari persamaan (12) dapat terlihat bahwa sifat diagram
koefisien sebelum dan sesudah peyisipan data oleh F4 tidak
mengalami perubahan.
Diagram berikut akan menggambarkan lebih rinci
bagaimana F4 memasukkan data steganografi bernilai ”01110” :
Gambar 2.28. Penyisipan data steganografi pada F3 (per bit)
(Westfeld, 2004)
Dapat terlihat bahwa bit 5 mengalami pengurangan
menjadi 4 karena data steganografi yang disisipkan bernilai 0,
sedangkan penyisipan koefisien -1 atau 1 akan menyebabkan F4
secara otomatis mencari koefisien lain.
39
2.6.2.3 Algoritma F5
Dalam banyak kasus, data steganografi tidak menempati
seluruh kapasitas yang disediakan oleh steganogram, oleh karena
itu F4 hanya menyisipkan data di awal file dan data steganografi
terpusat hanya di awal file (Westfeld, 2004), seperti ditunjukkan
gambar berikut :
Gambar 2.29. Penyebaran Data yang disisipkan pada image dengan algoritma F4
(Westfeld, 2004)
Algoritma F5 menyisipkan data tidak dengan mengubah
LSB (Least Significant Bit) melainkan melakukan pengurangan
(decrement) terhadap koefisien DCT, hal ini dilakukan agar
steganogram (image yang disisipi oleh steganografi) tidak
merusak sifat-sifat histogram DCT.
40
Gambar 2.30. Tahapan kompresi file JPEG (Westfeld, 2004)
2.6.2.3.1 Permutative Straddling pada F5
F5 menggunakan mekanisme straddling yang
fungsinya mengacak letak semua koefisien DCT terlebih
dahulu dengan menggunakan permutasi (Westfeld, 2004).
F5 kemudian menyisipkan data steganografi menurut urutan
permutasi tersebut dan mengirimkannya kepada tahap
Huffman dalam urutan sebenarnya sesudah penyisipan
selesai, urutan permutasi itu sendiri didapat dari password
yang dimasukkan oleh user. Dengan password yang benar,
user lain akan mendapatkan urutan permutasinya dan dapat
membaca data yang tersembunyi dengan benar.
Java menyediakan kelas SecureRandom yang
memiliki kemampuan untuk menghasilkan bilangan random
antara –128 sampai 127 berdasarkan password user, namun
pada kenyataannya image JPEG berukuran relatif kecil
(16Bit, 283 x 212) saja dapat memiliki ratusan ribu koefisien
DCT, jumlah koefisien DCT ini selain ditentukan oleh
ukuran image dan rasio kompresi ditentukan juga oleh
41
jumlah kombinasi warna. Untuk mendapatkan jumlah yang
mencukupi kebutuhan aplikasi akan merandom 32 bit
bilangan, yaitu 4 bilangan yang masing-masing berjumlah 8
bit yang di-random bersamaan, sehingga menghasilkan
bilangan random antara -4.294.967.296 sampai
4.294.967.295 :
c6 = d[10] x Math.pow(2,24) + d(Wallace, 2004) x Math.pow(2,16) + d(Westfeld, 2003) x
Math.pow(2,8) + d(Westfeld, 2004);
Jumlah bilangan random diatas ternyata dapat
mencukupi kebutuhan sebagian besar image JPEG, namun
urutan koefisien DCT tidak menggunakan bilangan minus
dan pada banyak kasus nilai random diatas terlalu besar
untuk jumlah koefisien DCT pada image sehingga dapat
dikatakan tidak efisien. Oleh karena itu dilakukan operasi
modulo (%) terhadap nilai random sehingga nilainya tidak
akan melebihi jumlah koefisien DCT dan nilai random yang
lebih kecil dari nol akan ditambahkan jumlah koefisien DCT
sehingga tidak terdapat nilai minus.
c6 %= cntr; if (c6<0) c6 += cntr;
42
Proses pengacakan akan dimulai dengan membuat
array berisi indeks terlebih dulu, array ini pada awalnya
akan diisi terurut dan pada akhir proses akan berisi indeks
yang sudah teracak. Pertama-tama aplikasi akan merandom
satu bilangan antara 1 hingga posisi indeks teratas,
kemudian nilai dari posisi indeks random tersebut akan
ditukar dengan nilai pada posisi indeks teratas, lebih lanjut
dijelaskan dengan gambar berikut :
Gambar 2.31. Proses Random pada Putaran Pertama
Pada gambar diatas aplikasi menukar nilai pada
posisi random (5) dengan nilai pada posisi indeks teratas
(10), kemudian pada putaran kedua aplikasi akan
mengurangi posisi indeks teratas, yang berarti pada contoh
diatas aplikasi hanya akan merandom bilangan 1–9, oleh
karena itu array pada indeks terakhir tidak akan diikut-
sertakan dan digambarkan berwarna abu-abu, nilai pada
posisi random berikutnya kemudian akan ditukar dengan
43
nilai pada posisi indeks teratas (9), lebih lanjut dijelaskan
dengan gambar berikut :
Gambar 2.32. Proses Random pada Putaran Kedua
Proses ini akan terus berlanjut hingga indeks teratas
berada pada posisi 2, dalam keadaan ini nilai dari semua
indeks sudah teracak, lebih lanjut dijelaskan pada gambar
berikut :
Gambar 2.33. Keadaan pada Akhir Proses
Pada contoh diatas semua nilai dari setiap indeks
sudah teracak. Pengurangan posisi indeks teratas
dimaksudkan agar nilai indeks tidak akan dirandom lebih
dari satu kali, dengan memperkecil jangkauan indeks maka
proses permutasi akan berjalan lebih cepat.
44
2.6.2.3.2 Matrix Encoding pada F5
Matrix encoding pertama kali ditemukan oleh Ron
Crandall. Teknik ini memungkinkan perubahan bit host yang
minimum jika terdapat sisa kapasitas dalam steganogram
(Westfeld, 2004). Dalam contoh berikut akan dijelaskan
lebih rinci, jika kita ingin menyisipkan dua bit x1,x2 ke
dalam 3 bit host a1,a2,a3 dengan mengubah maksimal satu
bit maka terdapat 4 kemungkinan :
Dalam contoh berikut akan dijelaskan lebih rinci,
jika kita ingin menyisipkan dua bit (01) ke dalam tiga bit
host (100) maka akan dilakukan perubahan terhadap bit a3 :
Gambar 2.34. Perubahan pada bit a3
Jika kita ingin mendapatkan kembali nilai x1 maka
lakukan operasi xor terhadap a1 dan a3, dan jika kita ingin
mendapatkan nilai x2 maka lakukan operasi xor terhadap a1
dan a2.
Tidak merubah apapunMerubah a1 Merubah a2 Merubah a3
45
Pada contoh diatas kita tidak mengubah lebih dari
satu bit, pada fungsi (dmax,n ,k) n bit host akan diubah oleh
k bit data steganografi tidak lebih dari jumlah dmax. Untuk
fungsi (1,n,k) bit host mempunyai panjang n = 2k – 1, dari
persamaan panjang tersebut maka didapat persamaaan
”kerapatan perubahan” (change density)-nya yaitu :
Kerapatan perubahan dapat didefinisikan sebagai
proporsi dari bit yang sudah dirubah, bahkan teknik yang
mampu menyimpan 100% data pun memiliki kerapatan
perubahan 50% (karena diasumsikan bahwa ½ dari LSB
data host sudah sesuai dengan LSB data steganografi). Lalu
didapat juga ”tingkat penyisipan”(embedding rate) :
Menggunakan persamaan dari ”tingkat penyisipan”
dan ”kerapatan perubahan” maka didapat ”efisiensi
penyisipan” (embedding efficiency) :
”Efisiensi penyisipan” pada (1,n,k) selalu lebih besar
dari k, tabel berikut akan menjelaskan lebih rinci bahwa
semakin rendah ”tingkat penyisipan” maka semakin tinggi
46
efisiensinya, oleh karena itu penyisipan data dalam jumlah
kecil dapat dilakukan se-efisien mungkin.
Sebagai contoh, jika kita ingin menyisipkan pesan
sebesar 1000 bit ke dalam carrier dengan kapasitas 50000
bit, maka embedding rate yang dibutuhkan adalah R = 1000
: 50000 = 2%. Nilai ini berada di antara R(k = 8) dan R(k =
9) pada tabel di atas. Kita pilih k = 8, sehingga mampu
meyisipkan 50000 : 255 = 196 code words dengan nilai n =
255. Kode (1, 225, 8) dapat menyisipkan 196 x 8 = 1568 bit,
sedikit diatas 1000 bit. Tetapi jika kita memilih k = 9, maka
kita tidak dapat menyisipkan pesan dengan sempurna.
Kasus pada gambar 2 menggunakan desain (1,3,2)
yang berarti 1 perubahan pada setiap 3 bit carrier untuk
mendapatkan 2 bit data. Terdapat banyak desain lain
tergantung pada rate dan change density yang diinginkan,
desain (1,7,3) misalnya, digunakan pada 7 bit data yang
menyimpan 3 bit data sisipan dengan rate 42 % dan change
47
density 12.5 %, desain (1,31,5) memiliki rate 16 % dan
change density 3 %.
Kapasitas penyisipan dapat diperbesar dengan
memperbanyak perubahan yang dilakukan pada bit carrier,
desain (2,13,6) yang menggunakan 13 bit carrier untuk
menyimpan 6 bit data memiliki rate 46 % dan change
density 13.5 %, bandingkan dengan desain (1,7,3) dimana 14
bit carrier digunakan untuk menyimpan 6 bit data dengan
maksimum 2 perubahan pada data.
Algoritma F5 hanya menggunakan desain (1,n,k)
yang berarti membatasi hanya 1 perubahan saja, hal ini
dilakukan karena desain (1,n,k) adalah desain yang paling
baik untuk penyisipan data berkapasitas kecil atau sangat
kecil, dan pada banyak kasus, data yang disisipkan oleh
steganografi adalah pesan rahasia berukuran kecil. Desain
(1,n,k) misalnya, dapat mencapai rate 9,5% pada k = 6,
sedangkan desain (2,n,k), pada k = 6 masih memiliki rate
46%.
Jika perubahan pada bit yang menyimpan data
(change density) semakin kecil maka kapasitasnya pun
semakin kecil pula (rate), oleh karena itu pada algoritma F5
semakin kecil data yang disisipkan maka semakin kecil pula
perubahan yang dilakukan pada koefisien DCT dan semakin
sulit pula dideteksi.
48
2.6.3 Pembatasan Ukuran File Sisipan
Ukuran file yang dapat ditampung oleh steganogram sangat
bergantung jumlah koefisien DCT yang tidak bernilai nol yang dimiliki oleh
image. Jumlah koefisien DCT ini bergantung kepada kualitas kompresi jpeg,
dimensi image dan keragaman variasi warnanya, semakin besar dimensi
image, semakin tinggi kualitas kompresinya dan semakin beragam warnanya
maka semakin besar pula kapasitasnya.
Gambar 2.35. Dua image yang diamati : final.jpg dan nature.jpg
Dua image yang diamati diatas menunjukkan perbedaan yang cukup
besar, image nature.jpg memiliki 174.829 koefisien DCT yang tidak bernilai
nol sedangkan image final jpg hanya memiliki 66.922 koefisien DCT saja.
Pengamatan juga dilakukan terhadap image yang seluruhnya hanya berwarna
hitam dan putih, kedua image tersebut ternyata tidak memiliki koefisien DCT
yang tidak bernilai nol yang berarti bahwa kedua image tersebut tidak dapat
digunakan sebagai media penyisipan data.
49
Jumlah koefisien DCT tersebut menujukkan kapasitas dalam satuan
bit yang mampu ditampung oleh steganogram, jika suatu image memiliki 800
koefisien DCT yang tidak bernilai 0 berarti image tersebut mampu
menampung 800 bit atau 100 byte data. Namun kapasitas steganogram pada
algoritma F5 tidak dapat diperkirakan dengan pasti karena adanya proses
penyusutan pada saat penyisipan walaupun dalam jumlah yang kecil.
Image final.jpg diatas berukuran 196.608 byte sedangkan image
nature berukuran 409.600 byte, yang berarti bahwa final.jpg dapat
menampung sekitar 4.25% dari size-nya yaitu 8.365 byte data sedangkan
image nature.jpg dapat menampung sekitar 5.33% dari size-nya atau 21.853
byte data. Menurut Westfeld sendiri (Westfeld, 2004) algoritma F5 pada
beberapa kasus tertentu dapat memiliki kapasitas maksimum sampai 13%
dari size steganogram-nya.
2.7 Flowchart (Bagan Alir)
Flowchart adalah suatu metoda untuk menggambarkan proses kerja suatu sistem
yang terorganisir dengan menggunakan diagram. Grafik diagram tersebut digunakan
karena pada dasarnya grafik lebih mudah dimengerti oleh manusia daripada keterangan
dalam bentuk tabel ataupun serangkaian kode – kode algoritma.
Flowchart itu terdiri dari dua bagian utama yaitu bentuk (shape) dan garis (line),
dimana bentuk adalah bagian yang mewakili setiap langkah atau keputusan dalam proses
dan direpresentasikan dalam bentuk lingkaran, persegi panjang dan sebagainya,
sedangkan garis menunjukkan urutan proses dan menggambarkan langkah – langkah
yang harus diikuti. Adapun simbol-simbol dasar flowchart adalah sebagai berikut :
50
Terminator : menggambarkan awal (“Start” atau “Begin”)
atau akhir (“End” atau “Stop”) dari sebuah proses.
Process : menggambarkan beberapa aktivitas atau proses
dengan menuliskan teks di dalam simbol tersebut.
Decision : menggambarkan suatu titik percabangan dimana
keputusan harus dibuat. Terdapat dua alur garis, satu
menunjuk ke bawah dan yang lain menunjuk ke sebelahnya.
Setiap garis ditandai dengan satu jawaban yang mungkin,
seperti “Yes” dan “No”, atau “Benar” dan “Salah”.
Arrow : menunjukkan urutan langkah-langkah aktivitas (alur
proses)
Connector : menggambarkan hubungan antara bentuk-
bentuk dalam flowchart tanpa menggunakan garis. Sebuah
huruf atau nomor dalam lingkaran ini menghubungkan huruf
atau nomor yang saling berhubungan tersebut.
Data : menggambarkan data yang masuk atau keluar dari
sebuah aktivitas.
Predefined process : menggambarkan suatu proses yang
sudah didefinisikan sebelumnya, seperti modul atau
subrutin.
Preparation : menggambarkan modifikasi seperti setting
dari tombol atau inisialisasi suatu rutin.