BAB II TINJAUAN PUSTAKA
II.1. Steganografi Kata steganografi (steganography) berasal dari bahasa Yunani steganos, yang artinya tersembunyi atau terselubung, dan graphia yang artinya menulis, sehingga arti steganografi adalah "menulis (tulisan) tersembunyi". Steganografi (steganography) adalah ilmu dan seni menyembunyikan pesan rahasia (hiding message) didalam pesan lain sehingga keberadaan (eksistensi) pesan rahasia tersebut tidak dapat terdeteksi oleh indera manusia. Steganografi membutuhkan dua properti yaitu media penampung dan pesan rahasia. Media penampung yang umum digunakan adalah gambar, suara, video atau teks. Pesan yang disembunyikan dapat berupa sebuah artikel, gambar, suara, teks, video atau pesan lain. II.1.1. Sejarah Steganografi Steganografi sudah dikenal oleh bangsa Yunani sejak lama. Herodatus, seorang penguasa Yunani, mengirim pesan rahasia dengan menggunakan kepala budak atau prajurit sebagai media. Dalam hal ini, rambut budak dibotaki, lalu pesan rahasia ditulis pada kulit kepala budak. Ketika rambut budak tumbuh, budak tersebut diutus untuk membawa pesan rahasia di balik rambutnya. Ditempat penerima kepala budak dibotaki kembali untuk membaca pesan yang
10
11
tersembunyi dibalik rambutnya. Pesan tersebut berisi peringatan tentang invasi dari bangsa Persia. Bangsa Romawi mengenal steganografi dengan menggunakan tinta taktampak (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. Selama Perang Dunia II, agen-agen spionase juga menggunakan steganografi untuk mengirim pesan. Caranya dengan menggunakan titik-titik yang sangat kecil sehingga keberadaannya tidak dapat dibedakan pada tulisan biasa yang diketik. Saat ini steganografi sudah banyak diimplementasikan pada media digital. Steganografi digital menggunakan media digital sebagai penampung, seperti citra digital, video digital, atau audio. Informasi yang disembunyikan juga berbentuk digital seperti teks, citra, data audio atau data video. Steganografi digital dapat dipakai di Negara-negara yang menerapkan sensor ketat terhadap informasi atau dinegara di mana enkripsi pesan terlarang. Pada Negara-negara seperti itu informasi rahasia dapat disembunyikan dengan menggunakan steganografi. II.1.2. Cara Kerja Steganografi Di dalam steganografi digital, baik hiddentext atau embedded message (pesan yang disembunyikan) maupun covertext (pesan yang digunakan untuk menyembunyikan embedded message) dapat berupa teks, citra, audio maupun video. Jadi, kita dapat menyembunyikan pesan berupa kode program di dalam
12
sebuah citra atau di dalam video, atau kita juga dapat menyembunyikan gambar rahasia di dalam citra atau di dalam sebuah berkas musik maupun video. Stegotext atau stego-object adalah pesan yang sudah berisi embedded message, dimana kita tidak dapat membedakan dengan gambar yang belum disisipi pesan rahasia. Keduanya terlihat hampir sama. Sebenarnya citra stegotext dan covertext tidak sama, citra tersebut mengalami perubahan akibat steganografi, namun mata manusia mempunyai sifat kurang peka terhadap perubahan kecil ini, sehingga manusia sukar membedakan mana gambar yang asli dan mana gambar yang sudah disisipi pesan. Penyisipan pesan ke dalam media covertext dinamakan encoding, sedangkan pembacaan pesan dari stegotext dinamakan decoding. Kedua proses ini mungkin memerlukan kunci rahasia (yang dinamakan stegokey) agar hanya pihak yang berhak saja yang dapat melakukan penyisipan pesan dan pembacaan pesan. Gambar II.1 memperlihatkan diagram penyisipan dan pembacaan pesan. Diagram semacam ini mirip dengan diagram enkripsi-dekripsi pada kriptografi.
Coverte xt
Coverte xt Hiddentex t
Stegotext Embedding
Extraction
key
key
Gambar II.1 Diagram penyisipan dan ekstraksi pesan Sumber : (Kriptografi, Munir, Rinaldi, 2006, 307)
Hiddentex t
13
II.1.3. Kriteria Steganografi Penyembunyian pesan rahsia ke dalam media penampung pasti mengubah kualitas media tersebut. Kriteria yang harus diperhatikan dalam penyembunyian pesan adalah : 1. Imperceptibility. Keberadaan pesan rahasia tidak dapat dipersepsi oleh inderawi. Misalnya, jika covertext berupa citra, maka penyisipan pesan membuat citra stegotext sukar dibedakan oleh mata dengan citra covertextnya. Jika covertext berupa audio (misalnya berkas mp3, wav, midi dan sebagainya), maka indera telinga tidak dapat mendeteksi perubahan pada audio stegotext-nya. 2. Fidelity. Mutu media penampung tidak berubah banyak akibat penyisipan. Perubahan tersebut tidak dapat dipersepsi oleh inderawi. Misalnya, jika covertext berupa citra, maka penyisipan pesan membuat citra stegotext sukar dibedakan oleh mata dengan citra covertext-nya. Jika covertext berupa audio (misalnya berkas mp3, wav, midi dan sebagainya), maka audio stegotext tidak rusak dan indera telinga tidak dapat mendeteksi perubahan tersebut. 3. Recovery. Pesan yang disembunyikan harus dapat diungkapkan kembali (reveal). Karena tujuan steganografi adalah data hiding, maka sewaktuwaktu pesan rahasia di dalam stegotext harus dapat diambil kembali untuk digunakan lebih lanjut. 4. Robustness. Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung (seperti pengubahan kontras,
14
penajaman,
pemampatan,
rotasi,
perbesaran
gambar,
pemotongan
(cropping), enkripsi, dan sebagainya). Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak. II.1.4. Teknik Penyembunyian Data Pada dasarnya terdapat bebeerapa teknik yang digunakan dalam steganografi, yaitu : 1. Injection Merupakan suatu teknik menanamkan pesan rahasia secara langsung kesuatu media. Salah satu masalah dari teknik ini adalah ukuran media yang diinjeksi menjadi lebih besar dari ukuran normalnya sehingga mudah dideteksi. Teknik ini sering juga disebut Embedding. 2. Substitusi Data normal yang digantikan dengan data rahasia. Biasanya hasil teknik ini tidak terlalu mengubah ukran data asli, tetapi tergantung pada file media dan data yang akan disembunyikan. Teknik substitusi bisa menurunkan kualitas media yang ditumpangi. 3. Transform Domain Teknik
ini
sangat
efektif.
Pada
dasarnya
transformasi
domain
menyembunyikan data pada “transform space”. Akan sangat lebih efektif teknik ini diterapkan pada file berekstensi JPG (gambar). 4. Spread Spectrum Sebuah teknik pentransmisian menggunakan pseudo – nuse code, yang independen terhadap data informasi sebagai modulator bentuk gelombang
15
untuk menyebarkan energi sinal dalam sebuah jalur komunikasi (bandwith) yang lebih besar dari pada sinyal jalur komunikasi informasi. Oleh penerima, sinyal dikumpulkan kembali menggunakan replica pseudo-noise code tersinkronisasi. 5. Statistical Method Teknik ini disebut juga skema steganografi 1 bit. Skema tersebut menanamkan 1 bbit informasi pada media tumpangan dan mengubah statistik walaupun hanya 1 bit. Perubahan statistik ditunjukan dengan indikasi 1 dan jika tidak ada perubahan, terlihat indikasi 0. System ini bekerja berdasarkan kemampuan penerima dalam memberlakukan antara informasi yang dimodifikasi dan yang belum. 6. Distortion Metode ini menciptakan perubahan atas benda yang ditumpangi oleh data rahasia. 7. Cover Generation Metode ini lebih unik dari pada metode lainnya karena cover object dipilih untuk menyembunyikan pesan. Contoh dari metode ini adalah spam mimic.
II.2. Metode EOF(End Of File) Metode EOF
(End Of File) merupakan salah satu teknik yang
menyisipkan data pada akhir file. Teknik ini dapat digunakan untuk menyisipkan data yang ukurannya sama dengan ukuran file sebelum disisipkan data ditambah
16
dengan ukuran data yang disisipkan kedalam file tersebut. Dalam teknik EOF, data yang disisipkan pada akhir file diberi tanda khusus sebagai pengenal start dari data tersebut. Dengan metode EOF, secara umum media steganografi (file yang akan disisipi data) memiliki struktur seperti ini:
Gambar II.2 Struktur Metode EOF Sumber: (http://Cenadep.org , Steganography dengan Metode EOF) Metode EOF merupakan sebuah metode yang diadaptasi dari metode penanda akhir file (end of file) yang digunakan oleh sistem operasi windows. Dalam sistem operasi windows, jika ditemukan penanda EOF pada sebuah file, maka sistem akan berhenti melakukan pembacaan pada file tersebut. Prinsip kerja EOF menggunakan karakter / simbol khusus ctrl-z yang diberikan pada setiap akhir file. EOF menggunakan
redundant bits sebagai tempat menyembunyikan
pesan pada saat dilakukan kompresi data, dan kemudian menggunakan kelemahan
17
indera manusia yang tidak sensitif sehingga seakan-akan tidak ada perbedaan yang terlihat antara sebelum atau sesudah pesan disisipkan. Sebagai contoh, akan disisipkan sebuah pesan pada sebuah citra digital dengan dimensi 120 x 160 pixel. Maka pesan akan ditempatkan pada baris ke 121 sampai selesai sesuai dengan panjang dari pesan yang disisipkan. Setiap baris akan memetakan pesan sebanyak 160 karakter (sesuai dengan ukuran citra) hingga seluruh pesan disisipkan seluruhnya. Kemudahan Melakukan Steganalysis merupakan suatu cara dalam melacak keberadaan pesan rahasia yang disisipkan melalui proses steganography. Dengan meletakkan pesan rahasia setelah tanda khusus sebagai pengenal start dari data tersebut, algoritma pelacakan pesan akan semakin mudah, karena yang perlu dilakukan adalah membaca isi data pada posisi pengenal start diletakkan. Adapun algoritma dari metode EOF ini adalah sebagai berikut : 1. Baca informasi file, tentukan dimana posisi karakter pengenal start berada. 2. Tandai posisi pengenal start sebagai awal baris penyisipan pesan. 3. Sisipkan pesan dimulai dari posisi pengenal start hingga akhir pesan. Dengan menyisipkan sebuah pesan setelah karakter pengenal start (end of file), pada saat file tersebut dieksekusi, pesan yang disisipkan tidak akan terbaca oleh sistem. Hal ini disebabkan oleh karena sistem hanya akan membaca isi dari sebuah file dimulai dari karakter awal file tersebut hingga sistem menemukan karakter pengenal start (end of file). Teknik EOF tidak akan mengubah isi awal dari file yang disisipi. Sebagai contoh, jika akan menyisipkan sebuah pesan kedalam sebuah file dokumen, isi
18
dari dokumen tersebut tidak akan berubah. Ini yang menjadi salah satu keunggulan metode EOF dibandingkan metode steganografi yang lain. Karena disisipkan pada akhir file, pesan yang disisipkan tidak akan bersinggungan dengan isi file, hal ini menyebabkan integritas data dari file yang disisipi tetap dapat terjaga.
II.3. Citra Digital Citra digital dapat didefinisikan sebagai fungsi dua variabel f(x,y), dimana x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas citra pada koordinat tersebut, hal tersebut diilustrasikan pada gambar dibawah ini. Teknologi dasar untuk menciptakan dan menampilkan warna pada citra digital berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru (Red, Green, Blue - RGB). II.3.1 Citra RGB RGB adalah suatu model warna yang terdiri dari merah, hijau, dan biru, digabungkan dalam membentuk suatu susunan warna yang luas. Setiap warna dasar, misalnya merah, dapat diberi rentang-nilai. Untuk monitor komputer, nilai rentangnya paling kecil = 0 dan paling besar = 255. Pilihan skala 256 ini didasarkan pada cara mengungkap 8 digit bilangan biner yang digunakan oleh mesin komputer. Dengan cara ini, akan diperoleh warna campuran sebanyak 256 x 256 x 256 = 1677726 jenis warna. Sebuah jenis warna, dapat dibayangkan sebagai sebuah vektor di ruang 3 dimensi yang biasanya dipakai dalam matematika, koordinatnya dinyatakan dalam bentuk tiga bilangan, yaitu komponen-x,
19
komponen-y dan komponen-z. Misalkan sebuah vektor dituliskan sebagai r = (x,y,z). Untuk warna, komponen-komponen tersebut digantikan oleh komponen R(ed), G(reen), B(lue). Jadi, sebuah jenis warna dapat dituliskan sebagai berikut: warna = RGB (30, 75, 255). Putih = RGB (255,255,255), sedangkan untuk hitam = RGB (0,0,0). Bentuk Representasi warna dari sebuah citra digitial dapat dilihat pada gambar 2.3.
Gambar II.3 Representasi Warna RGB Pada Citra Digital Sumber: (http://digilib.ittelkom.ac.id , Citra Digital) II.3.2. Format Citra Digital Citra Digital memiliki beberapa format yang memiliki karakteristk tersendiri. Format pada citra digital ini umumnya berdasarkan tipe dan cara kompresi yang digunakan pada citra digital tersebut. Ada empat format citra digital yang sering dijumpai, antara lain : 1. BMP BMP merupakan format Gambar yang paling umum dan merupakan format standard windows. Ukuran file-nya sangat besar karena bisa mencapai ukuran Megabytes. File ini merupakan format yang belum terkompresi dan menggunakan sistem warna RGB (Red, Green, Blue) di mana masing-masing
20
warna pixelnya terdiri dari 3 komponen R, G, dan B yang dicampur menjadi satu. File BMP dapat dibuka dengan berbagai macam software pembuka Gambar seperti ACDSee, Paint, Irvan View dan lain-lain. File BMP tidak bisa (sangat jarang) digunakan di web (internet) karena ukurannya yang besar. Karakteristik BMP yang penting adalah jumlah warna yang dapat disimpan dalam BMP tersebut. Ini ditentukan oleh banyaknya bit yang digunakan untuk menyimpan setiap titik dari bitmap BMP menggunakan satuan bpp (bit per pixel). Dalam Windows dikenal bitmap dengan 1, 4, 8, 16, dan 24 bit per pixel. Jumlah warna maksimum yang dapat disimpan dalam suatu bitmap adalah sebanyak 2 n, dimana n adalah banyaknya bit yang digunakan untuk menyimpan satu titik dari bitmap. 2. Joint Photographic Group (JPG) Format JPG merupakan format yang paling terkenal sampai sekarang ini. Hali ini karena sifatnya yang berukuran kecil (hanya puluhan/ratusan KB saja), dan bersifat portable. File ini bisa digunakan di web (internet). Format file ini dikembangkan oleh C-Cube Microsystems untuk memberikan sebuah metode yang efisien untuk menyimpan citra dengan jumlah warna yang sangat banyak seperti foto kamera. Perbedaan utama antara format JPG dengan format citra yang lainnya adalah bahwa file JPG menggunakan metode
lossy untuk proses pemampatannya. Pemampatan secara lossy akan
membuang sebagian data citra untuk memberikan hasil kompresi yang baik. Hasil file JPG yang didekompres tidak begitu sesuai dengan citra aslinya, tetapi perbedaan ini sangat sulit dideteksi oleh mata manusia.
21
Sebelum sebuah file gambar JPG diproses oleh komputer untuk ditampilkan, komputer memerlukan sebuah penanda (marker) sebagai penanda identitas gambar tersebut. Marker inilah yang menandakan bahwa file gambar tersebut merupakan file gambar dengan format JPG. Penanda ini disebut dengan SOI (Start Of Image) atau lebih sering disebut dengan
header JPG.
Header JPG memiliki beberapa komponen yang
merepresentasikan informasi mengenai file gambar tersebut. Komponen informasi ini terbagi menjadi dua bagian yaitu fg_jpghead dan fgi_jpghead. Kedua bagian komponen ini membentuk sebuah header JPG yang terdiri dari 7 offset. 3. Graphics Interchange Format (GIF) Format GIF ini berukuran kecil dan mendukung gambar yang terdiri dari banyak frame sehingga bisa disebut sebagai gambar animasi (gambar bergerak). Format ini sering kali digunakan di internet untuk menampilkan gambar-gambar di web. Jika suatu Gambar disimpan maka yang disimpan adalah array 2D di mana masing-masing merepresentasikan data yang berhubungan dengan pixel tersebut. Array{x,y] = warna pixel. Setiap pixel dapat mempunyai informasi tambahan yang berhubungan dengan pixel tersebut. Masing-masing Gambar juga memiliki informasi tambahan seperti lebar X panjang Gambar, kedalaman Gambar, pembuat, dan lainlain.
22
II.4. VB.net 2008 Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu. Versi ini merupakan versi terbaru yang dirilis oleh Microsoft pada tanggal 19 November 2007, bersamaan dengan dirilisnya Microsoft Visual C# 2008, Microsoft Visual C++ 2008, dan Microsoft .NET Framework 3.5. Dalam versi ini, Microsoft menambahkan banyak fitur baru, termasuk di antaranya adalah:
Operator If sekarang merupakan operator ternary (membutuhkan tiga operand), dengan sintaksis If (boolean, nilai, nilai). Ini dimaksudkan untuk mengganti fungsi IF.
Dukungan anonymous types
Dukungan terhadap Language Integrated Query (LINQ)
23
Dukungan terhadap ekspresi Lambda
Dukungan terhadap literal XML
Dukungan terhadap inferensi tipe data.
dukungan terhadap 'LINQ' Adapun objek-objek yang digunakan dalam program ini :
1. Form Form merupakan komponen VB yang memiliki sifat container, karena fungsi utama dari form adalah sebagai tempat komponen VB yang lain. Pembuatan form dalam VB dapat kita lakukan dengan menggunakan menu Project > Add Windows Form.
Gambar II.4 Contoh sebuah Form Design Sumber : (Langsung Bisa Visual Basic.Net 2008, Priyanto, Rahmat, 2009, 142)
24
Gambar II.5 Contoh sebuah Form Code Sumber : (Langsung Bisa Visual Basic.Net 2008, Priyanto, Rahmat, 2009, 142) 2. ToolBox Window ini digunakan untuk memilih kontrol-kontrol yang digunakan oleh program yang dirancang. Kontrol-kontrol yang terdapat pada window ini merupakan gabungan dari kontrol standar yang digunakan oleh aplikasi windows. Kontrol-kontrol yang terdapat pada window ini dapat ditambah, dan dapat dikurangi, sesuai dengan kebutuhan dari program.
Gambar II.6 Contoh sebuah ToolBox Sumber : (Langsung Bisa Visual Basic.Net 2008, Priyanto, Rahmat, 2009, 126)
25
Beberapa kontrol pada ToolBox : a. Button : bias digunakan untuk melakukan perintah (save, delete, submit, dll). b. CheckBox : digunakan untuk memilih item yang terdiri dari satu item. c. CheckListBox : sama dengan checkbox hanya saja dengantool ini berbentuk list dalam satu frame. d. Combobox : digunakan untuk memilih item dalam bentuk combo. e. Label : untuk memberikan label pada control yang ada. f. ListBox : untuk menampilkan beberapa item. g. PictureBox : untuk menampilkan gambar. h. RadioButton : untuk menampilkan beberapa item yang bias dipilih, tetapi hanya satu item yang bias dipilih. 3. Propertis Propertis berfungsi untuk menentukan sifat dari suatu objek. Arti sifat seperti warna, jenis huruf, gambar latar belakang, menghidupkan atau mematikan menu.
26
Gambar II.7 Contoh sebuah Propertis Sumber : (Langsung Bisa Visual Basic.Net 2008, Priyanto, Rahmat, 2009, 128) 4. Module script disimpan pada halaman terpisah dan akan dijalankan apabila dipanggil, agar mempermudah kita dalam membaca dan menggunakan sebuah listing kode VB. Salah satu cara yaitu dengan membagi penulisan script menjadi beberapa halaman dalam sebuah module. Pembuatan module dalam VB dapat kita lakukan dengan menggunakan menu Project > Add Module.
27
Gambar II.8 Contoh sebuah Module Sumber : (Langsung Bisa Visual Basic.Net 2008, Priyanto, Rahmat, 2009, 131) 5. Event Event merupakan sebuah function yang dipanggil untuk merespon kejadian/event tertentu, seperti klik mouse, penekanan tombol keyboard, perubahan nilai field pada database, dan lain-lain. Umumnya event mengirimkan dua parameter,
yaitu
objek
yang mengindikasikan
sender/pengirim event, dan objek yang menyediakan informasi pada event tersebut. contoh Event : Pada evennt dibawah terjadi ketika button1 di klik oleh user. Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.ClickEnd Sub