Sabtu, 07 Desember 2013

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