bab 2 landasan teori 2.1 algoritma - thesis.binus.ac.idthesis.binus.ac.id/asli/bab2/lbm2006-361-bab...

45
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)

Upload: phamkiet

Post on 30-Mar-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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)

Page 2: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 3: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 4: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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).

Page 5: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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).

Page 6: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 7: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 8: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 9: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 10: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 11: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 12: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 13: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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)

Page 14: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 15: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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 :

Page 16: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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 :

Page 17: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 18: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 19: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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)

Page 20: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 21: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 22: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 23: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 24: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 25: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 26: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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)

Page 27: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 28: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 29: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 30: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 31: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 32: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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)

Page 33: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 34: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 35: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 36: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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;

Page 37: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 38: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 39: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 40: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 41: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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

Page 42: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 43: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.

Page 44: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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 :

Page 45: BAB 2 LANDASAN TEORI 2.1 Algoritma - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab2/LBM2006-361-Bab 2.pdf• Format image: bitmap (bmp), gif, pcx, jpeg, dll. ... Gambar 2.1. Komunikasi

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.