Pengertian Steganografi
Steganografi didefinisikan sebagai ilmu dan seni untuk menyembunyikan pesan rahasia (hiding messege) sedemikian rupa sehiangga keberadaan (eksistensi) pesan tidak terdeteksi oleh indra manusia. Saat ini di dalam dunia digital, teknik steganografi banyak di gunakan untuk menyembunyikan informasi rahasia melalui jaringan tanpa menimbulkan kecurigaan.
Steganografi berbeda dengan kriptografi, di mana pihak ketiga dapat mendeteksi adanya data (chipertext), karena hasil dari kriptografi berupa data yang berbeda dari bentuk aslinya dan biasanya datanya seolah-olah berantakan, tetapi dapat dikembalikan ke bentuk semula. (Arryawan, E, dan SmitDev, 2010). Ilustrasi mengenai perbedaan kriptografi dan steganografi dapat dilihat
pada gambar 3.1.
Gambar 3.1 : Ilustrasi Kiptografi dan Steganografi
3.2 Sejarah Steganografi
Steganografi merupakan seni penyembunyian pesan ke dalam pesan lainnya sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu di dalam pesan tersebut. Kata steganografi (steganography) berasal dari bahasa Yunani yaitu steganos yang artinya tersembunyi atau terselubung dan graphein, yang artinya menulis, sehingga kurang lebih artinya adalah “menulis tulisan yang tersembunyi atau terselubung” (Sellars, 1996). Teknik ini meliputi banyak sekali metoda komunikasi untuk menyembunyikan pesan rahasia. Metoda ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar.
Catatan pertama tentang steganografi ditulis oleh seorang sejarawan Yunani, Herodotus, yaitu ketika Histaeus seorang raja kejam Yunani dipenjarakan oleh Raja Darius di Susa pada abad 5 Sebelum Masehi. Histaeus harus mengirim pesan rahasia kepada anak laki-lakinya, Aristagoras, di Militus.
Histaeus menulis pesan dengan cara mentato pesan pada kulit kepala seorang budak dan ketika rambut budak itu mulai tumbuh, Histaeus mengutus budak itu ke Militus untuk mengirim pesan di kulit kepalanya tersebut kepada Aristagoras.
Cerita lain tentang steganografi datang juga dari sejarawan Yunani, Herodotus, yaitu dengan cara menulis pesan pada papan kayu yang ditutup dengan lilin. Demeratus, seorang Yunani yang akan mengabarkan berita kepada Sparta bahwa Xerxes bermaksud menyerbu Yunani. Agar tidak diketahui pihak Xerxes, Demaratus menulis pesan dengan cara mengisi tabung kayu dengan lilin dan menulis pesan dengan cara mengukirnya pada bagian bawah kayu, lalu papan kayu tersebut dimasukkan ke dalam tabung kayu, kemudian tabung kayu ditutup kembali dengan lilin.
Teknik steganografi yang lain adalah tinta yang tak terlihat. Teknik ini pertama digunakan pada zaman Romawi kuno yaitu dengan menggunakan air sari buah jeruk, urine atau susu sebagai tinta untuk menulis pesan. Cara membacanya adalah dengan dipanaskan di atas nyala lilin, tinta yang sebelumnya tidak terlihat, ketika terkena panas akan berangsur-angsur menjadi gelap, sehingga pesan dapat dibaca, Teknik ini pernah juga digunakan pada Perang Dunia II.
Pada abad 20, steganografi benar-benar mengalami perkembangan. Selama berlangsung perang Boer, Lord Boden Powell (pendiri gerakan kepanduan) yang bertugas untuk membuat tanda posisi sasaran dari basis artileri tentara Boer, untuk alasan keamanan, Boden Powell menggambar peta-peta posisi musuh pada sayap kupu-kupu agar gambar-gambar peta sasaran tersebut terkamuflase.
Perang Dunia II adalah periode pengembangan teknik-teknik baru steganografi. Pada awal Perang Dunia II walaupun masih digunakan teknik tinta yang tak terlihat, namun teknik-teknik baru mulai dikembangkan seperti menulis pesan rahasia ke dalam kalimat lain yang tidak berhubungan langsung dengan isi pesan rahasia tersebut, kemudian teknik menulis pesan rahasia ke dalam pita koreksi karbon mesin ketik, dan juga teknik menggunakan pin berlubang untuk menandai kalimat terpilih yang digunakan dalam pesan, teknik terakhir adalah microdots yang dikembangkan oleh tentara Jerman pada akhir Perang Dunia II.
Dari contoh-contoh steganografi konvensional tersebut dapat dilihat bahwa semua teknik steganografi konvensional berusaha merahasiakan komunikasi dengan cara menyembunyikan pesan ataupun mengkamuflase pesan. Maka sesungguhnya prinsip dasar dalam steganografi lebih dikonsentrasikan pada kerahasian komunikasinya bukan pada datanya (Johnson, 1995).
Seiring dengan perkembangan teknologi terutama teknologi komputasi, steganografi merambah juga ke media digital, walaupun steganografi dapat dikatakan mempunyai hubungan erat dengan kriptografi, tetapi kedua metode ini sangat berbeda.
3.3 Framework Steganografi
Adapun cara kerja steganografi yangtertulis dalam buku ( Jeffrey, L. M, Jessica, F, dan Ton Kalker 2008 ) Secara umum Framework sebuah algoritma Steganografi tersusun atas tiga bagian, yaitu :
1. Pembacaan cover
Pembacaan cover ini berfungsi untuk mengetahui cover sudah berisi pesan apa belum.
2. Penyisipan Pesan
Proses penyisipan pesan di lakukan dengan cara menyisipkan pesan kedalam cover. Berikut algoritma pengekstrakan pesan seperti pada gambar 3.2.
Gambar 3.2 : Algoritma Penyisipan
3. pengekstrakan
Proses pengekstrakan pesan di lakukan dengan cara mengekstrak cover yang sudah berisi pesan, berikut algoritma pengekstrakan pesan seperti pada gambar 3.3.
Gambar 3.3 : Algoritma pengekstrakan
3.4 Komponen Dasar Steganografi
Hal utama yang harus dimiliki atau dapat disebut komponen dasar dalam steganografi yaitu sebuah wadah atau media (cover) dan Data rahasia atau informasi yang akan disembunyikan. Wadah yang digunakan pada umumnya adalah media digital, misalkan video, cd, pita data dan lain-lain. Untuk penerapan steganografi pada komputer banyak menggunakan file digital sebagai wadah penyembunyian. File tersebut dapat berupa file citra, file audio (suara), video, maupun file teks. Data rahasia dapat berupa file dengan tipe apa saja, misalnya file exe, file teks, file suara dan lain sebagainya.
Citra digital berpotensial untuk dijadikan wadah penyembunyian karena citra memiliki syarat sebagai wadah. Syarat tersebut adalah mempunyai suatu bagian file yang dapat dijadikan lahan penyembunyian dan file tersebut dapat diusahakan tetap bekerja, walaupun dengan mutu yang berbeda. Ada beberapa format citra yang banyak digunakan, misalnya GIF, JPG, PCX, BMP dan lain-lain. Semua memiliki header dan body dengan variasi yang berbeda. Namun pada umumnya bagian dari body, atau biasa disebut sebagai segmen data, berisi informasi akan intensitas pixel dalam gambar. Setelah data disembunyikan, akan terjadi perubahan terhadap mutu gambar tersebut. Perubahan mutu itu diusahakan sekecil mungkin agar tidak terlihat sama sekali.
3.5 Metode Steganografi
Berbagai macam metode steganografi telah banyak dikembangkan untuk menyembuyikan pesan pada media digital diantaranya adalah sebagai berikut:
1. Least Significant Bit Insertion (LSB)
Cara paling umum untuk menyembunyikan pesan adalah dengan memanfaatkan Least-Significant Bit (LSB). Pada citra digital pesan dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan (LSB) pada data pixel yang menyusun file tersebut. Seperti kita ketahui untuk file bitmap 24 bit maka setiap pixel (titik) pada gambar tersebut terdiri dari susunan tiga warna merah, hijau dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Walaupun banyak kekurangan pada metode ini, tetapi kemudahan implementasinya membuat metode ini tetap digunakan sampai sekarang. Metode ini membutuhkan syarat, yaitu jika dilakukan kompresi pada stego, harus digunakan format lossless compression, karena metode ini menggunakan bit-bit pada setiap pikses pada image. Jika digunakan format lossy compression, pesan rahasia yang disembunyikan dapat hilang. Jika digunakan image 24 bit color sebagai cover, sebuah bit dari masing-masing komponen Red, Green, dan Blue, dapat digunakan sehingga 3 bit dapat disimpan pada setiap piksel. Sebuah image 800 x 600 piksel dapat digunakan untuk menyembunyikan 1.440.000 bit (180.000 bytes) data rahasia. Misalnya, di bawah ini terdapat 3 piksel dari image 24 bit color :
(00100111 11101001 11001000)
(00100111 11001000 11101001)
(11001000 00100111 11101001)
Untuk menyembunyikan karakter A (10000001) akan dihasilkan :
(00100111 11101000 11001000)
(00100110 11001000 11101000)
(11001000 00100111 11101001)
Dapat dilihat bahwa hanya 3 bit saja yang perlu diubah untuk menyembunyikan karakter A. Perubahan pada LSB ini akan terlalu kecil untuk terdeteksi oleh mata manusia sehingga pesan dapat disembunyikan secara efektif. Jika digunakan image 8 bit color sebagai cover, hanya 1 bit saja dari setiap piksel warna yang dapat dimodifikasi sehingga pemilihan image harus dilakukan dengan sangat hati-hati, karena perubahan LSB dapat menyebabkan terjadinya perubahan warna yang ditampilkan pada citra. Akan lebih baik jika menggunakan image grayscale karena perubahan warnanya akan lebih sulit dideteksi oleh mata manusia. Proses ekstraksi pesan dapat dengan mudah dilakukan dengan mengekstrak LSB dari masing-masing piksel pada stego secara berurutan dan menuliskannya ke output file yang akan berisi pesan tersebut.
Meskipun metode LSB mudah diterapkan, akan tetapi steganografi dengan metode ini akan merubah unsur pokok warna dari pixel. Hal ini dapat menunjukkan perbedaan yang nyata dari cover image menjadi stego image, sehingga tanda tersebut menunjukkan keadaan dari steganografi. Variasi warna kurang jelas dengan 24-bit image, membutuhkan tempat penyimpanan yang relatif besar, stego yang dihasilkan tidak dapat dikompress dengan format lossy compression. Untuk citra 8-bit dan 24-bit image mudah diserang dalam pemrosesan image, seperti cropping dan compression. Berkas stego mudah rusak (dirusak). Dengan menggunakan metode LSB sebagai teknik steganografi, perubahan sedikit pada berkas stego sangat mungkin juga akan merusak informasi rahasia yang tersimpan di dalamnya. Disamping kemungkinan kerusakan informasi yang tersimpan dalam berkas stego akibat perubahan pada berkas stego, steganografi dengan metode LSB juga hanya mampu menyimpan informasi dengan ukuran yang sangat terbatas. Misalnya suatu citra 24-bit ( R=8-bit, G=8-bit, B=8-bit ) digunakan sebagai wadah untuk menyimpan data berukuran 100 bit, jika masing-masing komponen warnanya (RGB) digunakan satu pixel untuk menyimpan informasi rahasia tersebut, maka setiap pixelnya disimpan 3 bit informasi, sehingga setidaknya dibutuhkan citra wadah berukuran 34 pixel atau setara 34 x 3 x 8 = 816 bit (8 kali-lipat). Jadi suatu citra 24-bit jika digunakan untuk menyimpan informasi rahasia hanya mampu menampung informasi maksimum berukuran 1/8 dari ukuran citra penampung tersebut. (Dhanada, K. M, dan Ramachandranan, P.N 2004 ).
2. Algorithm and Transformations
Metode Steganografi yang lain seperti yang di tulis pada buku ( Vaclav, S, dan Platos J, 2011 ) adalah dengan menyembunyikan data dalam fungsi matematika yang disebut algoritma compression. Dua fungsi tersebut adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat spatial (spatial domain) ke tempat frekuensi (frequency domain).
Discrete Cosine Transform Dimensi Satu ( 1-D DCT)
Discrete Cosine Transform dari sederet n bilangan real s(x), x = 0, ... ,n-1, dirumuskan sebagai berikut (Watson 1994) :
Setiap element dari hasil transformasi S(u) merupakan hasil dot product atau inner product dari masukan s(x) dan basis vektor. Faktor konstanta dipilih sedemikian rupa sehingga basis vektornya orthogonal dan ternormalisasi. DCT juga dapat diperoleh dari produk vektor (masukan) dan n x n matriks orthogonal yang setiap barisnya merupakan basis vektor. Setiap basis vektor berkorespondensi dengan kurva sinusoid frekuensi tertentu.
Barisan s(x) dapat diperoleh lagi dari hasil transformasinya S(u) dengan menggunakan invers discrete cosine transform (IDCT), yang dirumuskan sebagai berikut :
Persamaan diatas menyatakan s sebagai kombinasi linier dari basis vektor. Koefisien adalah elemen transformasi S, yang mencerminkan banyaknya setiap frekuensi yang ada didalam masukan s, (Watson, 1994).
Discrete Cosine Transform Dimensi Dua ( 2-D DCT)
DCT dimensi satu berguna untuk mengolah sinyal-sinyal dimensi satu seperti bentuk gelombang suara. Sedangkan untuk citra yang merupakan sinyal dua dimensi, diperlukan versi dua dimensi dari DCT (Watson, 1994). Untuk sebuah matriks n x m, 2-D DCT dapat dihitung dengan cara: 1-D DCT diterapkan pada setiap baris dari s dan kemudian hasilnya dihitung DCT untuk setiap kolomnya.
Rumus transformasi 2-D DCT untuk s adalah sebagai berikut:
Rumus 2-D DCT diatas sering juga disebut sebagai forward discrete cosine transform (FDCT). 2-D DCT dapat dihitung dengan menerapkan transformasi 1-D secara terpisah pada baris dan kolomnya, sehingga kita dapat mengatakan bahwa 2-D DCT sparable dalam dua dimensi. Seperti pada kasus satu-dimensi, setiap elemen S(u,v) dari transformasi merupakan inner product dari masukan dan basis fungsinya, dalam kasus ini, basis fungsinya adalah matriks n x m. Setiap dua-dimensi basis matriks merupakan outer product dari dua basis vektor satu-dimensinya.
Setiap basis matriks dikarakterisasikan oleh frekuensi spasial horizontal dan vertikal. Frekuensi horizontal meningkat dari kiri ke kanan, dan dari atas ke bawah secara vertikal. Dalam konteks citra, hal ini menunjukkan tingkat signifikansi secara perseptual, artinya basis fungsi dengan frekuensi rendah memiliki sumbangan yang lebih besar bagi perubahan penampakan citra dibandingkan basis fungsi yang memiliki frekuensi tinggi. Nilai konstanta basis fungsi yang terletak di bagian kiri atas sering disebut sebagai basis fungsi DC, dan DCT koefisien yang bersesuaian dengannya disebut sebagai koefisien DC (DC coefficient).
Invers discrete cosine transform dimensi dua (2-D IDCT) dapat diperoleh dengan rumus berikut ini :
3. Redundant Pattern Encoding
Ide dari Redundant Pattern Encoding adalah untuk menggambar pesan kecil pada kebanyakan gambar. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan), kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar. ( Mariagrazia, F, dan Bellettini, C, 2004 ).
4. Spread Spectrum
Spread Spectrum merupakan pesan yang diacak (encrypt) melalui gambar. Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses image, ( Rob Walters, 2010 ).
3.6 Citra Digital
Citra digital terbentuk dari piksel-piksel yang besarnya tergantung pada besar kecilnya sampling dan nilainya (besarnya derajat keabuan) tergantung pada kuantisasi. Berdasar pengertian ini maka model citra digital dinyatakan dalam bentuk matrik yang nilainya berupa nilai derajat keabuan. Dengan kata lain bisa dinyatakan bahwa citra digital adalah citra yang didefinisikan sebagai fungsi f(x,y) dimana x menyatakan nomor baris, y menyatakan nilai kolom dan f menyatakan nilai derajat keabuan dari citra.
Citra, menurut kamus Webster adalah suatu representasi, kemiripan, atau imitasi dari suatu objek atau benda → misal :
• Foto Anda mewakili entitas diri Anda sendiri di depan kamera.
• Foto sinar-X thorax mewakili keadaan bagian dalam tubuh seseorang .
• Data dalam suatu file BMP mewakili apa yang digambarkannya .
Citra, dari sudut pandang matematis merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang 2 dimensi. Citra yang terlihat merupakan cahaya yang direfleksikan dari sebuah objek. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut dan pantulan cahaya ditangkap oleh alat-alat optik, misal mata manusia, kamera, scanner, sensor satelit, dan seterusnya kemudian direkam. Citra sebagai keluaran dari suatu sistem perekaman data dapat bersifat :
• Optik berupa foto.
• Analog berupa sinyal video seperti gambar pada monitor televisi.
• Digital yang dapat langsung disimpan pada media penyimpan magnetik.
Citra dapat dikelompokkan menjadi citra tampak dan citra tak tampak (Ahmad, 2005). Citra tampak adalah citra yang bisa dilihat dalam kehidupan sehari-hari seperti foto, lukisan, apa yang terlihat di layar monitor dan televisi, serta hologram (citra optis). Sedangkan contoh citra tak tampak seperti data gambar dalam file (digital image), dan citra yang direpresentasikan menjadi fungsi matematis. Citra digital adalah citra yang disimpan dalam format digital (dalam bentuk file). Hanya citra digital yang dapat diolah menggunakan komputer. Jenis citra lain jika akan diolah dengan komputer harus diubah dulu menjadi citra digital.
Dari sistem perekaman citra, Citra yang diperoleh tergantung dari karakteristik dari obyek yang direkam dan kondisi variabel dari sistem perekaman. Citra merupakan gambaran tentang karakteristik suatu obyek menurut kondisi variabel tertentu. Sensor Pasif merekam data obyek tanpa mengirimkan energi, sumber energi bisa dalam bentuk sinar matahari, sinar lampu, dsb . Contoh: sensor optik dari kamera foto, sensor optik pada sistem inderaja. Sensor Aktif merupakan Sistem sensor yang merekam data obyek mengirimkan dan menerima pantulan dari energi yang dikirim ke arah obyek, energi yang dikirim bisa berupa gelombang pendek, sinar X, dsb. Contoh: sensor Rontgen untuk foto thorax, sensor gelombang pendek pada sistem radar, sensor ultrasound pada sistem USG.
Citra digital merupakan fungsi intensitas cahaya f(x,y), dimana harga x dan y merupakan koordinat spasial dan harga fungsi tersebut pada setiap titik (x,y) merupakan tingkat kecemerlangan citra pada titik tersebut. Citra digital adalah citra f(x,y) dimana dilakukan diskritisasi koordinat spasial (sampling) dan diskritisasi tingkat kecemerlangannya/keabuan (kwantisasi). Citra digital merupakan suatu matriks dimana indeks baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen matriksnya (yang disebut sebagai elemen gambar / piksel / pixel / picture element / pels) menyatakan tingkat keabuan pada titik tersebut. Citra digital dinyatakan dengan matriks berukuran N x M (baris/tinggi = N, kolom/lebar = M)
N = jumlah baris 0 ≤ y ≤ N – 1
M = jumlah kolom 0 ≤ x ≤ M – 1
L = maksimal warna intensitas 0 ≤ f(x,y) ≤ L – 1
(derajat keabuan / gray level)
( Ahmad, 2005 ).
3.7 Berkas Bitmap (BMP)
Format citra yang baku di lingkungan Microsoft windows dan IBM OS/2 adalah berkas bitmap (BMP). Saat ini format BMP memang kalah populer dibandingkan dengan format JPG atau GIF. Hal ini karena berkas BMP pada umumnya tidak dimampatkan, sehingga ukuran berkasnya relative lebih besar dari pada berkas JPG maupun GIF. Hal ini juga yang menyebabkan format BMP sudah jarang digunakan. Namun format BMP mempunyai kelebihan dari segi kualitas gambar. Citra dalam format BMP lebih bagus daripada citra dengan format yang lainnya, karena citra dalam format BMP umumnya tidak dimampatkan sehingga tidak ada informasi yang hilang.
Citra dalam format BMP ada 3 macam yaitu citra biner, citra berwarna, dan citra hitam putih (greyscale). Citra biner hanya mempunyai dua nilai keabuan, 0 dan 1. Oleh karena itu, 1 bit sudah dapat mempresentasikan nilai pixel. Citra berwarna adalah citra yang lebih umum. Warna yang terlihat pada citra bitmap merupakan kombinasi dari tiga warna dasar yaitu merah, hijau dan biru. Setiap pixel disusun oleh 3 komponen warna: R (red), G (green) dan B (blue). Kombinasi dari tiga warna tersebut menghasilkan warna yang khas untuk pixel yang bersangkutan. Pada citra 256 warna, setiap pixel panjangnya 8-bit, tetapi warna komponen RGB disimpan kedalam table RGB yang disebut palet. Setiap komponen panjangnya 8-bit, jadi ada 256 nilai keabuan untuk warna merah, 256 nilai leabuan untuk warna hijau dan 256 warna keabuan untuk warna biru.
Citra yang lebih kaya warna adalah citra 24-bit. Setiap pixel panjangnya 24-bit, karena setiap pixel langsung menyatakan komponen warna merah, komponen warna hijau dan komponen warna biru. Masing-masing komponen panjangnya 8-bit. Citra 24-bit disebut juga citra 16 juta warna, Karena ia mampu menghasilkan =16.777.216 kombinasi warna.
Ada bermacam format representasi citra dalam file, seperti bmp, gif, tif, jpg, dan sebagainya. Format BMP merupakan format yang kurang efisien, karena semua informasi angka dalam baris disimpan semua. Misalkan ukuran header adalah H byte, ukuran citra 100x100 byte monokrom, maka ukuran file bmp tersebut adalah : H + data citra = H + 10000 Byte. Bagian data citra (10000 byte) sebenarnya bisa dikompresi agar ukuran file tidak terlalu besar. Salah satu cara kompresi adalah dengan terlebih dahulu mentransformasikan citra ke ruang yang berbeda (contoh: format file JPEG). Contoh: Suatu citra format BMP 8 bit berukuran 200 x 100 maka memori yang dibutuhkan untuk menyimpan data citra tersebut (tanpa header) sebesar : Memori = 200 x 100 x 8 bit = 160000 bit = 20000 byte = 19,5 KB. ( Sitepu V, 2
Baca Selengkapnya →BAB III LANDASAN TEORI