Steganografi
Disusun Oleh :
Erna Rohmawati /
52410414
Vinny Rosita N.B
/ 58410385
Universitas
Gunadarma
Depok
2013
Pengertian
Steganografi
Steganografi (steganography) adalah ilmu dan
seni menyembunyikan pesan rahasia (hiding message) sedemikian sehingga
keberadaan (eksistensi) pesan tidak terdeteksi oleh indera manusia.
Kata steganorafi berasal dari Bahaya Yunani yang
berarti “tulisan tersembunyi” (covered writing). Steganografi
membutuhkan dua properti: wadah penampung dan data rahasia yang akan
disembunyikan.
Steganografi digital menggunakan media digital
sebagai wadah penampung, misalnya citra, suara, teks, dan video. Data rahasia
yang disembunyikan juga dapat berupa citra, suara, teks, atau video.
Steganografi dapat dipandang sebagai kelanjutan kriptografi. Jika pada
kriptografi, data yang telah disandikan (ciphertext) tetap tersedia,
maka dengan steganografi cipherteks dapat disembunyikan sehingga pihak ketiga
tidak mengetahui keberadaannya. Di negara-negara yang melakukan penyensoran
informasi, steganografi sering digunakan untuk menyembunyikan pesan-pesan
melalui gambar (images), video, atau suara (audio).
Aspek terpenting pada steganografi adalah tingkat
keamanan penyembunyian informasinya, yang mengacu pada seberapa besar ketidakmampuan
pihak ketiga dalam mendeteksi keberadaan informasi yang tersembunyi.
Steganografi bisa dikatakan sebagai bentuk
perkembangan dari kriptografi. Perbedaan antara kriptografi dan steganografi
ada pada hasil output-nya. Kriptografi akan menghasilkan output yang
terkesan berantakan dan sulit dimengerti. Namun steganografi menghasilkan
output yang memiliki tampilan yang nyaris sama dengan aslinya.
Pada steganografi digunakan beberapa istilah penting.
Penjelasannya adalah sebagai berikut :
1.
Message, berarti pesan yang ingin disembunyikan.
2. Cover Image,
yang berarti gambar asli.
3. Carrier Image, gambar yang sudah dimasukkan message
di dalamnya dengan algoritma tertentu.
4.
Embedding (Encrypt), yang berarti proses memasukkan message ke cover
image.
5. Extracting (Decrypt), yang berarti proses
pengambilan message dari carrier image.
Sejarah
Steganografi
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.
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.
Metode
Steganografi
Kebanyakan
algoritma steganografi menggunakan sebuah kombinasi dari bidang jenis teknik
untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah
selubung berkas. Sebuah program steganografi dibutuhkan untuk melakukan hal-hal
berikut (baik implisit melalui suatu perkiraan maupun eksplisit melalui sebuah
perhitungan), menemukan kelebihan bits dalam selubung file yang dapat digunakan
untuk menyelubungi pesan rahasia didalamnya, memilih beberapa diantaranya untuk
digunakan dalam menyelubungi data dan penyelubungan data dalam bits dipilih
sebelumnya.
Ada
empat jenis metode Steganografi, yaitu:
·
Least Significant Bit Insertion (LSB)
Metoda yang digunakan untuk menyembunyikan pesan
pada media digital tersebut berbeda-beda. Contohnya, pada berkas image pesan
dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau
bit yang paling kanan (LSB) pada data pixel yang menyusun file tersebut. Pada
berkas bitmap 24 bit, 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. Dengan demikian, pada setiap pixel berkas bitmap 24 bit kita
dapat menyisipkan 3 bit data.
Kekurangan
dari LSB Invertion: Dapat diambil kesimpulan dari contoh 8 bit pixel,
menggunakan LSB Insertion dapat secara drastis mengubah unsur pokok warna dari
pixel. 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, bagaimanapun file tersebut
sangatlah besar. Antara 8 bit dan 24 bit image mudah diserang
dalam pemrosesan image, seperti cropping (kegagalan) dan compression(pemampatan).
Keuntungan
dari LSB Insertion : Keuntungan yang paling besar dari algoritma LSB ini
adalah cepat dan mudah. Dan juga algoritma tersebut memiliki software steganografi
yang mendukung dengan bekerja di antara unsur pokok warna LSB melalui
manipulasi pallete (lukisan).
·
Algorithms and Transformation
Algoritma compression adalah metode
steganografi dengan menyembunyikan data dalam fungsi matematika. 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).
·
Redundant Pattern Encoding
Redundant Pattern Encoding adalah
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.
·
Spread Spectrum method
Spread Spectrum steganografi
terpencar-pencar sebagai pesan yang diacak (encrypted) melalui gambar
(tidak seperti dalam LSB). Untuk membaca suatu pesan, penerima memerlukan
algoritma yaitu crypto-keydan stego-key. Metode ini
juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan
proses image (gambar).
Media Steganografi
Steganografi
menggunakan sebuah berkas yang disebut dengan cover, tujuannya sebagai
kamuflase dari pesan yang sebenarnya. Banyak format berkas digital yang dapat
dijadikan media untuk menyembunyikan pesan. Pada jaman modern seperti saat ini,
steganografi biasanya dilakukan dengan melibatkan berkas-berkas seperti teks,
audio, dan gambar.
·
Steganografi pada Teks
Teknik steganografi yang
menggunakan teks sebagai cover adalah hal yang menantang. Ini dikarenakan
berkas teks memiliki ukuran data yang kecil untuk bisa digantikan dengan berkas
rahasia. Dan kekurangan lainnya adalah teks yang mengandung teknik steganografi
ini dengan mudah dapat diubah oleh pihak yang tidak diinginkan dengan cara
mengubah teks itu sendiri maupun mengubah format dari teksnya (misal .TXT
menjadi .PDF). Ada beberapa metode yang digunakan pada media teks ini yaitu,
Line-Shift Encoding, Word-shift Encoding dan Feature Coding. Ketiganya
merupakan metode encoding yang membutuhkan berkas asli dan juga format aslinya
untuk dapat didecode atau diekstrak kembali.
·
Steganografi pada Gambar
Steganografi pada
gambar adalah metode yang paling banyak digunakan secara luas didunia digital
saat ini. Hal ini dikarenakan keterbatasan kemampuan dari visual atau Human
Visual System (HVS). Format gambar yang biasanya digunakan adalah format bitmap
(bmp), gif, pcx, jpeg dan format gambar lainnya. Hampir semua plain teks,
cipher teks, gambar dan media lainnya dapat diencode kedalam aliran bit untuk
disembunyikan didalam gambar digital. Perkembangan dari metoda ini sangat
pesat, didukung dengan semakin canggihnya komputer grafik yang powerful, dan
software steganografi yang sekarang sudah banyak tersebar luas di internet.
Pendekatan yang paling sering dilakukan pada media jenis ini adalah : Least
Significant Bit Insertion, Masking and Filtering dan Algorithm and
Transformation. Sebagai catatan, masih ada banyak lagi teknik-teknik yang
digunakan untuk encoding pada media gambar ini.
·
Steganografi pada Audio
Penyembunyian data pada audio
merupakan teknik yang paling menantang pada steganografi ini. Hal ini
disebabkan Human Auditory System (HAS) memiliki jangkauan yang dinamis. HAS
memiliki kemampuan mendengar lebih dari satu sampai 1 miliar. Dan jangkauan
frekuensi lebih dari satu hingga seribu. Auditory System ini juga sangat peka
pada gangguan suara (noise) yang halus sekalipun. Sedikit saja terdapat
gangguan pada sebuah berkas audio maka dengan mudah akan terdeteksi.
Satu-satunya kelemahan yang dimiliki HAS dalam membedakan suara adalah
kenyataan bahwa suara keras bisa menenggelamkan suara pelan. Terdapat dua
konsep yang harus dipertimbangkan sebelum memilih metoda mana yang akan
dipakai. Yaitu format digital audio dan media transmisi dari audio.
Properti
Steganografi
1.
Embedded message (hiddentext): pesan yang disembunyikan.
2. Cover-object
(covertext): pesan yang digunakan untuk menyembunyikan embedded message.
3. Stego-object (stegotext):
pesan yang sudah berisi pesan embedded message.
4. Stego-key: kunci
yang digunakan untukmenyisipan pesan dan mengekstraksi pesan dari stegotext.
contoh :
#include
#include
#include
using namespace std;
using namespace cv;
void main()
{
int i,j,x;
IplImage* img=cvLoadImage("sample.jpg");
IplImage* img1=img;
CvScalar s,s1;
int h=img->height;
int w=img->width;
String mes;
cout<<"enter the message in binary format";
cin>>mes;
int n=mes.length();
//String mes1(n,'a');
if(n>(h*w))
{
n=(h*w);
}
for(x=0;x
{
j=x%w;
i=x/w;
s=cvGet2D(img,i,j);
s1.val[0]=s.val[0]+mes[x]-(int(s.val[0])%2);
s1.val[1]=s.val[1];
s1.val[2]=s.val[2];
cvSet2D(img1,i,j,s1);
}
cvSaveImage("op.png",img1);
for(x=0;x
{
j=x%w;
i=x/w;
s=cvGet2D(img1,i,j);
cout<<(int(s.val[0])%2);
}
cin>>mes;
}
HASIL ::
di dalam gambar diatas terdapat kode rahasia yang tidak dapat terlihat..