Stegonography Agust
-
Upload
benito-agus -
Category
Documents
-
view
102 -
download
21
Transcript of Stegonography Agust
KEAMANAN INFORMASI MELALUI IMAGE STEGANOGRAFI MENGGUNAKAN LEAST SIGNIFICANT BIT ALGORITHM
TEKNIK KOMPUTASI DOSEN : Dr., Ir. Nazori Az, M.T
Disusun oleh :
A.SYAIFUL BAHRI 1211600786 AGUSTINUS SIRUMAPEA 1211600687
Kelompok : XC
UNIVERSITAS BUDI LUHUR FAKULTAS TEKNOLOGI INFORMASI
JURUSAN MAGISTER ILMU KOMPUTER JAKARTA
2013
1
DAFTAR ISI
DAFTAR ISI ......................................................................................................... 1
ABSTRACT .......................................................................................................... 3
BAB I PENDAHULUAN ....................................................................................... 4
1.1 Latar Belakang ..................................................................................................... 4
1.2 Rumusan Masalah ................................................................................................ 5
1.3 Tujuan .................................................................................................................. 5
1.4 Batasan Masalah .................................................................................................. 6
1.5. Metode Penelitian ................................................................................................ 6
BAB II LANDASAN TEORI .................................................................................. 8
2.1 Definisi Steganografi ............................................................................................... 8
2.2 Sejarah Steganografi ................................................................................................ 9
2.3 Kriteria Steganografi yang Bagus ............................................................................ 9
2.4 Kriteria Steganografi yang Bagus .......................................................................... 10
2.5 Metode Steganografi Least Significant Bit (LSB) ................................................. 11
BAB III PERANCANGAN DAN IMPLEMENTASI ............................................... 16
3.1 Perancangan Umum ................................................................................................ 16
3.2 Perancangan Sistem ................................................................................................ 16
3.3 Uraian Perancangan Sistem Aplikasi ...................................................................... 17
3.4 Perancangan Graphical User Interface (GUI) ......................................................... 21
3.5 Script Program ........................................................................................................ 26
DAFTAR PUSTAKA ........................................................................................... 39
2
ABSTRAK
Pesatnya perkembangan transfer data melalui internet membuat lebih mudah
untuk mengirim data yang akurat dan lebih cepat ke tujuan. Ada banyak media
transmisi untuk mentransfer data ke tujuan seperti e-mail, pada saat yang sama
itu mungkin lebih mudah untuk memodifikasi dan menyalahgunakan informasi
berharga melalui hacking. Jadi, dalam rangka untuk mentransfer data dengan
aman ke tujuan tanpa modifikasi, ada banyak pendekatan seperti kriptografi dan
steganografi. Steganografi sebuah kata yang berasal dari bahasa Yunani yang
berarti tulisan rahasia adalah suatu metode penyembunyian pesan rahasia
dalam pesan lainnya sehingga tidak bias dideteksi oleh sembarang orang.
Steganografi juga merupakan satu metode yang popular, dimana sesuatu pesan
teks atau image boleh dirahasiakan di dalam file-file lain yang menggandung
teks, image bahkan suara tanpa menunjukan cirri-ciri perubahan yang nyata
atau terliohat dalam kualitas dan struktur dari file semula. Teknik steganography
dengan menggunakan metode LSB (Least Significant Bit) adalah teknik yang
paling sederhana. Oleh karena itu steganography dengan metode ini sangat
sesuai bagi para pemula dibidang steganography. Metode LSB melakukan
penyimpanan data dengan cara mengganti bit – bit yang tidak signifikan (least
significant pixel) pada berkas (file), wadah (cover) dengan bit – bit berkas yang
akan disimpan. Tulisan ini berkaitan dengan steganografi citra serta dengan isu-
isu keamanan yang berbeda, gambaran umum kriptografi, steganografi dan
watermarking digital dan pendekatan tentang algoritma steganografi yang
berbeda seperti Least Significant Bit (LSB) algoritma.
Kata kunci : Steganografi, LSB, Image
3
ABSTRACT
The rapid development of data transfer over the Internet makes it easier to
transmit data more quickly and accurately to the destination. There are many
transmission medium for transferring data to a destination such as e-mail, at the
same time it may be easier to modify and misuse of valuable information through
hacking. So, in order to transfer data safely to the destination without
modification, there are many approaches such as cryptography and
steganography. Steganography is a word derived from the Greek word meaning
hieroglyph is a method of hiding a secret message within another message so
that no bias was detected by anyone. Steganography is also a popular method,
which is something a text message or image may be concealed within other files
that menggandung text, image noise even without showing a characteristic or
terliohat real change in the quality and structure of the original file.
Steganography technique using LSB (Least Significant Bit) is the simplest
technique. Therefore steganography with this method is very suitable for the
beginners in the field of steganography. LSB perform data storage method by
replacing bits - the bits that are not significant (least significant pixels) on the file
(file), container (cover) by bit - bit file to be saved. This paper deals with image
steganography as well as the security issues are different, an overview of
cryptography, steganography and digital watermarking and steganography
approaches of different algorithms such as Least Significant Bit (LSB) algorithm.
Kata Kunci : Steganography , LSB, Image
4
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam tren dunia saat ini, teknologi telah maju. Sebagian besar
orang lebih suka menggunakan internet sebagai media utama untuk
mentransfer data dari satu ujung ke ujung lain di seluruh dunia. Ada
banyak cara yang mungkin untuk mengirimkan data menggunakan
internet: melalui e-mail, chatting, dll. Data transisi dibuat sangat
sederhana, cepat dan akurat menggunakan internet. Namun, salah satu
masalah utama dengan mengirim data melalui internet adalah "ancaman
keamanan" itu pose yaitu data pribadi atau rahasia dapat dicuri atau hack
dalam banyak cara. Oleh karena itu menjadi sangat penting untuk
keamanan data menjadi pertimbangan, karena merupakan salah satu
faktor yang paling penting yang perlu diperhatikan selama proses
mentransfer data.
Keamanan data pada dasarnya berarti perlindungan data dari
pengguna yang tidak sah atau hacker dan menyediakan keamanan yang
tinggi untuk mencegah modifikasi data. Keamanan data telah
mendapatkan perhatian lebih selama periode baru-baru ini karena
peningkatan besar dalam kecepatan transfer data melalui internet.
Dalam rangka meningkatkan fitur keamanan di transfer data
melalui internet, banyak teknik yang telah dikembangkan seperti:
Kriptografi, Steganografi dan watermarking digital. Kriptografi adalah
suatu metode untuk menyembunyikan informasi dengan enkripsi untuk
"cipher text" dan mengirimkannya ke penerima yang dituju menggunakan
password,.Steganografi memberikan keamanan lebih lanjut dengan
menyembunyikan teks cipher menjadi gambar tampaknya tak terlihat atau
format lainnya.
Menurut Johnson et al., (2001), "Steganografi adalah seni
menyem-bunyikan dan mengirimkan data melalui operator tampaknya
tidak berbahaya untuk menyembunyikan keberadaan data". Tingkat
visibilitas berkurang menggunakan banyak teknik bersembunyi di
5
"Gambar Modelling" seperti LSB "Manipulasi", "Masking dan
penyaringan". Teknik ini dilakukan oleh algoritma steganografi seperti F5,
LSB, Jsteg dll. Tindakan mendeteksi informasi tersembunyi melalui
algoritma ini disebut "Steganalysis". Kriptografi adalah seni ilmu yang
digunakan untuk mencapai keamanan dengan pengkodean data untuk
mengubah mereka menjadi format tidak dapat dibaca sehingga pengguna
yang tidak sah tidak dapat mendapatkan akses ke data yang dikirim[1].
Proses penyisipan pesan pada steganography membutuhkan dua
buah masukan, yaitu pesan yang ingin disembunyikan, dan media
penyisipan. Hasil dari proses ini dinamakan dengan stegoobject, yaitu
suatu media yang mirip dengan media pada masukan, yang sudah
terdapat pesan tersembunyi di dalamnya. Kebanyakan media yang
merupakan stegoobject tidak dapat dikembalikan lagi seperti semula,
karena data dari media stegoobject sudah dirubah.
Teknik steganography yang digunakan adalah LSB (Least
Significant Bit), metode ini banyak digunakan karena metode ini paling
sederhana dan mudah diimplementasikan. Media penampung yang
paling sering digunakan dalam melakukan steganography adalah citra
digital karena jumlahnya yang besar di internet. Kehandalan penggunaan
citra dibandingkan dengan media lain adalah kualitas citra yang telah
disisipi pesan rahasia tidak berbeda jauh dengan kualitas citra aslinya.
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, maka timbul suatu masalah
diantaranya bagaimana membangun suatu aplikasi steganography yang
dapat menyembunyikan pesan dengan menggunakan metode LSB (Least
Significant Bit) dimana informasi rahasia (teks) yang disembunyikan ke
dalam media digital (image) tersebut benar-benar terjaga
kerahasiaannya.
1.3 Tujuan
Tujuan yang hendak dicapai dalam pembuatan tugas ini yaitu
membuat aplikasi penyembunyian informasi yang berupa teks ke dalam
6
citra digital yaitu image, serta dapat memanipulasi citra digital yang
didalamnya terdapat informasi rahasia sehingga pesan rahasia tersebut
tidak dapat diketahui keberadaannya dan secara kasat mata tidak terjadi
perubahan pada citra digital hasil manipulasi.
1.4 Batasan Masalah
Adapun batasan pada tugas ini hanya membahas masalah-
masalah sebagai berikut :
a. Format file citra digital yang dapat digunakan untuk
menyimpan pesan rahasia adalah berformat *.jpg dan *.bmp.
b. Teknik steganography yang digunakan hanya dapat
menyimpan pesan rahasia berupa teks dan file.
c. Metode steganography yang digunakan adalah LSB (Least
Significant Bit).
d. Tidak menganalis lebih lanjut perihal karakteristik image
yang akan disisipkan.
1.5. Metode Penelitian
Metode penelitian yang digunakan untuk menyelesaikan royek
paper ini meliputi :
a. Studi pustaka meliputi :
1. Pencarian referensi semua materi yang ada sangkut
pautnya dengan tugas ini..
2. Pendalami materi tentang steganography, metode
LSB, teknik penyembunyian dan pengungkapan data serta
semua hal yang berhubungan dengan tugas ini.
b. Pembuatan aplikasi merupakan tahap pembuatan aplikasi
steganography dengan metode LSB pada citra digital.
c. Pengujian aplikasi merupakan tahap pengujian aplikasi
yang telah dibuat berjalan sesuai dengan yang diinginkan atau
tidak.
7
d. Penyusunan laporan terhadap keseluruhan kegiatan
pembuatan paper yang menjelaskan secara detail tentang tahap-
tahap penyususnan.
8
BAB II
LANDASAN TEORI
2.1 Definisi Steganografi Steganografi (steganography) adalah ilmu dan seni nyembunyikan
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). Ilustrasi mengenai perbedaan kriptography dan
steganography dapat dilihat pada gambar 1, sedangkan Ilustrasi
mengenai proses steganography dapat dilihat pada gambar dibawah ini :
Gambar 1. Ilustrasi kriptography dan steganography
9
Gambar 2. Diagram Sistem Steganography
2.2 Sejarah Steganografi
Steganografi sudah dikenal oleh bangsa Yunani. Herodatus,
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.
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.
2.3 Kriteria Steganografi yang Bagus
Steganografi yang dibahas di sini adalah penyembunyian data di
dalam citra digital saja. Meskipun demikian, penyembunyian data dapat
juga dilakukan pada wadah berupa suara digital, teks, ataupun video.
Penyembunyian data rahasia ke dalam citra digital akan mengubah
10
kualitas citra tersebut. Kriteria yang harus diperhatikan dalam
penyembunyian data antara lain sebagai berikut :
a. Fidelity. Mutu citra penampung tidak jauh berubah. Setelah
penambahan data rahasia, citra hasil steganografi masih terlihat
dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut
terdapat data rahasia.
b. Robustness. Data yang disembunyikan harus tahan terhadap
manipulasi yang dilakukan pada citra penampung (seperti
pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran
gambar, pemotongan (cropping), enkripsi, dan sebagainya). Bila pada
citra dilakukan operasi pengolahan citra, maka data yang
disembunyikan tidak rusak.
c. Recovery. Data yang disembunyikan harus dapat diungkapkan
kembali (recovery). Karena tujuan steganografi adalah data hiding,
maka sewaktu-waktu data rahasia di dalam citra penampung harus
dapat diambil kembali untuk digunakan lebih lanjut.
2.4 Teknik Steganografi
Berbagai jenis teknik steganografi yang tersedia antara lain
sebagai berikut [1]:
a. Pure steganography
b. Public key steganography
c. Secret key steganography
Pure steganography adalah proses embedding data keobjektanpa
menggunakankunci pribadi. Jenis steganografi sepenuhnya tergantung
pada kerahasiaan. Jenis steganografi menggunakang ambar coverdi
mana datayang akantersembunyi, informasi pribadi yang akan dikirim,
dan algoritma dekripsi enkripsi untuk menanamkan pesan ke dalam
gambar.
11
Gambar 1. Pure steganography process (Zaidoon, 2010). Steganografi kunci publik menggunakan dua jenis kunci
satu untuk enkripsi dan satu lagi untuk dekripsi. Kunci yang
digunakan untuk enkripsi kunci pribadi dan untuk dekripsi, itu
adalah kunci publik dan disimpan di database publik (Zaidoon,
2010).
Gambar 2. Public key steganography (Zaidoon, 2010).
Secret key steganography adalah steganografi yang
menggunakan prosedur yang sama selain menggunakan kunci
aman. Ia menggunakan kunci individu untuk menanamkan data ke
dalam obyek yang mirip dengan kunci simetris. Untuk dekripsi
menggunakan kunci yang sama yang digunakan untuk enkripsi.
Gambar 3. Secret key steganography (Zaidoon, 2010).
2.5 Metode Steganografi Least Significant Bit (LSB)
LSB merupakan sebuah cara yang sering digunakan untuk
memasukkan informasi pada coverfile. LSB termasuk kedalam teknik
Key Key
Public Key Public Key
Messege
Messege
Cover Embedding Extracting
Stego-Objek
Messege
Messege
Cover Encryption Decryption
Stego-Objek
Messege
Messege
Cover Embedding Extracting
Stego-Objek
12
image domain (karena terpengaruh jenis file dan jenis kompresinya).
Teknik steganography LSB dilakukan dengan memodifikasi bit-bit yang
tergolong LSB pada setiap byte dari sebuah file. Bit-bit LSB ini akan
dimodifikasi dengan menggantikan setiap LSB yang ada dengan bit-bit
informasi lain yang ingin disembunyikan. Setelah semua bit informasi lain
menggantikan bit LSB dalam file tersebut maka informasi telah berhasil
disembunyikan. Ketika informasi rahasia tersebut ingin dibuka kembali,
maka bit-bit LSB yang sekarang diambil satu per satu dan disatukan
kembali menjadi sebuah informasi. Dengan menggunakan teknik ini,
terkadang kualitas file yang ditumpangi akan terpengaruh [2].
Misalnya, di bawah ini terdapat 3 piksel dari image 24bit color :
(00100111 11101001 11001000) (00100111 11001000 11101001) (11001000 00100111 11101001)
jika diinginkan untuk menyembunyikan karakter A (10000001) dihasilkan :
(00100111 11101000 11001000) (00100110 11001000 11101000) (11001000 00100111 11101001)
dapat dilihat bahwa hanya 3 bit saja yang perlu diubah untuk
menyembunyikan karakter A ini. Perubahan pada LSB ini akan terlalu
kecil untuk terdeteksi oleh mata manusia sehingga pesan dapat
disembunyikan secara efektif. Jika digunakan image 8bit color sebagai
cover, hanya 1bit saja dari setiap piksel warna yang dapat dimodifikasi
sehingga pemilihan image harus dilakukan dengan sangat hatihati,
karena perubahan LSB dapat menyebabkan terjadinya perubahan warna
yang ditampilkan pada citra.
Akan lebih baik jika image berupa image grayscale karena
perubahan warnanya akan lebih sulit dideteksi oleh mata manusia.
Proses ekstraksi pesan dapat dengan mudah dilakukan dengan
mengekstrak LSB dari masingmasing piksel pada stego secara berurutan
dan menuliskannya ke output file yang akan berisi pesan tersebut.
Kekurangan dari metode LSB ini adalah bahwa metode ini membutuhkan
13
"tempat penyimpanan" yang relatif besar. Kekurangan lain adalah bahwa
stego yang dihasilkan tidak dapat dikompress dengan format lossy
compression.
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 adalah dapat di ambil 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, adapun 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).
Sistem Steganografi akan menyembunyikan sejumlah informasi
dalam suatu berkas dan akan mengembalikan informasi tersebut kepada
pengguna yang berhak. Terdapat dua langkah dalam sistem Steganografi
yaitu proses penyembunyian dan recovery data dari berkas penampung.
Penyembunyian data dilakukan dengan mengganti bit‐ bit data di dalam
segmen citra dengan bit-bit data rahasia. Metode yang paling sederhana
adalah metode modifikasi LSB (Least Significant Bit Modification). Pada
susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling
14
berarti (most significant bit atau MSB) dan bit yang paling kurang berarti
(least significant bit atau LSB).
Contoh :
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
merah, maka perubahan satu bit LSB tidak mengubah warna merah
tersebut secara berarti. Lagi pula, 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 byte yang diganti bit LSBnya dipilih secara acak,
misalkan byte nomor 36, 5, 21, 10, 18, 49.
Bilangan acak dapat dibangkitkan dengan algoritma pseudo
random number generator. Pseudo random number generator
menggunakan kunci rahasia untuk membangkitkan posisi pixel yang akan
digunakan untuk menyembunyikan bit-bit. Pseudorandom number
generator dibangun dalam sejumlah cara, salah satunya dengan
menggunakan algoritma kriptografi berbasis blok (block cipher). 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.
Ukuran data yang akan disembunyikan bergantung pada ukuran
citra penampung. Pada citra 24 bit yang berukuran 256 pixel terdapat
65536 pixel, setiap pixel berukuran 3 byte (komponen RGB), berarti
seluruhnya ada 65536 X 3 = 196608 byte. Karena setiap byte hanya bisa
menyembunyikan satu bit di LSBnya, maka ukuran data yang akan
disembunyikan di dalam citra maksimum. 196608/8 = 24576 byte. Ukuran
15
data ini harus dikurangi dengan panjang nama berkas, karena
penyembunyian data rahasia tidak hanya menyembunyikan isi data
tersebut, tetapi juga nama berkasnya. Semakin besar data
disembunyikan di dalam citra, semakin besar pula kemungkinan data
tersebut rusak akibat manipulasi pada citra penampung.
16
BAB III
PERANCANGAN DAN IMPLEMENTASI
3.1 Perancangan Umum
Perancangan umum di dalam bab ini akan dibahas mengenai
perancangan dan pembuatan perangkat lunak Proyek Akhir yang berjudul
Steganography dengan Metode LSB (Least Significant Bit) pada Citra
Digital. Citra Digital yang dimaksud di dalam Proyek Akhir ini yaitu file
image yang berfungsi sebagai wadah penampung teks yang akan
dirahasiakan di dalam image tersebut. Steganography merupakan suatu
teknik berkomunikasi dimana informasi disembunyikan pada media
pembawa seperti citra, suara atau video tanpa memberikan perubahan
yang berarti pada media tersebut. Perangkat lunak yang akan dirancang
ini meggunakan teknik image steganography dengan metode LSB yang
membutuhkan image yang berformat (.bmp) digunakan sebagai wadah
penampung pesan yang akan dirahasiakan dan pesan yang akan
diharasiakan dalam image yang berupa teks yang format filenya (.txt).
Proses modifikasi perubahan yang terjadi antara media penampung
dengan hasil modifikasi media penampung tersebut secara kasat mata
tidak ada perubahan yang mencolok. Sehingga untuk menghasilkan
sebuah objek digital yang telah dimodifikasi yang di dalamnya terdapat
suatu pesan rahasia yang sering disebut dengan istilah stego image,
membutuhkan suatu inputan yaitu media penampung berupa file image,
pesan rahasia berupa teks.
3.2 Perancangan Sistem Perancangan sistem secara umum untuk pembangunan aplikasi
data steganography dengan metode LSB pada file image ini terdiri atas
beberapa tahap, meliputi perancangan :
Output
Input
USER
APLIKASI
17
a. Perancangan Proses, perancangan proses yang
dimaksudkan adalah bagaimana sistem akan bekerja, proses-
proses yang digunakan, mulai dari user melakukan input kemudian
diproses oleh aplikasi sehingga dapat mengeluarkan output berupa
stegoimage.
b. Perancangan Antar Muka, perancangan antarmuka
mengandung penjelasan tentang desain dan implementasi sistem
yang digunakan dalam sistem yang dibuat. Dibawah ini merupakan
gambar umum diagram dari sistem aplikasi yang akan di bangun.
Gambar 4. Gambaran Umum Apilikasi
3.3 Uraian Perancangan Sistem Aplikasi
Perancangan aplikasi ini terdiri dari dua proses yaitu proses
embedded data merupakan proses penyembunyian pesan rahasia ke
dalam suatu wadah penampung yaitu file gambar yang format filenya dan
proses retrieve merupakan proses pengungkapan pesan rahasia yang
disembunyikan disuatu file gambar tersebut.
3.3.1 Proses Embedded Data
Penyembunyian data dilakukan dengan mengganti bit-bit
data di dalam segmen citra dengan bit-bit data rahasia. Hingga
saat ini sudah banyak dikemukakan oleh para ilmuwan metode-
metode penyembunyian data. Metode yang paling sederhana
adalah metode modifikasi LSB. Pada susunan bit di dalam sebuah
18
byte (1byte = 8bit), ada bit yang paling berarti (most significant bit
atau MSB) dan bit yang paling kurang berarti yaitu LSB.
Misalnya pada byte 11010010, bit 1 yang pertama (digaris
bawahi) adalah bit MSB dan bit 0 yang terakhir (digaris bawahi)
adalah bit LSB. Bit yang cocok untuk diganti adalah bit LSB, sebab
perubahan tersebut hanya mengubah nilai byte tersebut satu lebih
tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte
tersebut menyatakan warna tertentu, maka perubahan satu bit LSB
tidak mengubah warna keabuan tersebut secara berarti. Selain itu,
mata manusia tidak dapat membedakan perubahan yang kecil.
Gambar 5. Penyembunyian Data
19
Tahap embeded data merupakan tahap penyisipan atau
penyamaran suatu data teks ke dalam suatu media image yang
bertujuan untuk menyembunyikan data agar tidak terlihat oleh
orang yang tidak berhak melihatnya. Gambar di bawah ini
menunjukkan proses embeded data.
Gambar 6. Proses Embeded Data
Proses penyembunyian pesan rahasia ke dalam suatu
wadah file yaitu berupa image secara umum dapat dilihat seperti
gambar di atas yang diuraikan sebagai berikut :
a. Inputkan file image yang format filenya bertipe jpg
atau bmp. b. Inputkan pesan rahasia yang akan disisipkan pada
media gambar.
c. Proses Embedded Data dengan menggunakan
metode LSB.
Start
Input file gambar
Input pesan
Embeded data
Stego image
Stop
20
d. Dari proses Embedded tersebut akan menghasilkan
sutu outputan yaitu steogoimageyang di dalamnya terdapat
suatu pesan rahasia.
3.3.2. Proses Retrieve Data Data yang disembunyikan di dalam citra dapat dibaca
kembali dengan cara pengungkapan (reveal atau extraction).
Dengan cara mengumpulkan kembali bitbit data rahasia yang
bertaburan di dalam citra.
Gambar 7. Pengungkapan Data
Tahap Retrieve Data merupakan tahap mengungkapan
pesan rahasia dari stegoimage yang akan manampilkan pesan
harasia yang ada di dalam file image tersebut. Gambar ini
merupakan proses Retrieve Data.
21
Gambar 8. Proses Retrieve Data
Proses pengungkapan pesan rahasia dari stegoimage dapat
dilakukan seperti gambar di atas yang diuraikan sebagai berikut :
a. Ambil stegoimage dari Proses Embeddeddata yang
dilakukan. b. Proses Retrieve data dimana dilakukan proses
pengungkapan pesan rahasia. c. Dari Proses Retrieve data tersebut menghasilkan
outputan pesan.
3.4 Perancangan Graphical User Interface (GUI)
Graphical User Interface (GUI) mempunyai fungsi mempermudah
user untuk mengoperasikan programnya melalui grafis secara interaktif
terdiri dari :
3.4.1 Menu Utama
Merupakan realisasi dari rancangan antarmuka pengguna
untuk menu utama. Menu utama ini adalah tampilan utama yang
Start
Input stego image
Retrieve data
Pesan rahasia
Stop
22
muncul ketika aplikasi ini dijalankan yang terdiri dari menu image,
edit dan help.
Gambar 9. Tampilan Menu Utama Aplikasi
23
3.4.2 Sub Menu Image.
Merupakan realisasi dari rancangan antarmuka pengguna
untuk Sub menu image, sub menu image ini adalah tampilan dari
menu image yang terdiri dari Select, Extraction, Embedded, Erase
Print Setup, Print dan Exit.
Gambar 10. Tampilan Sub Menu Image
24
3.4.3 Sub Menu Edit.
Merupakan realisasi dari rancangan antarmuka pengguna
untuk Sub menu edit, sub menu edit ini adalah tampilan dari menu
edit yang terdiri dari Undo, Cut, Copy, Paste, Delete, Select All, All
to Cliboard, Clear dan Insert File.
Gambar 11. Tampilan Sub Menu Edit
25
3.4.4 Sub Menu Help.
Merupakan realisasi dari rancangan antarmuka pengguna
untuk Sub menu help, sub menu help ini adalah tampilan dari
menu help yang terdiri dari Help Topics dan About.
Gambar 12. Tampilan Sub Menu Help
26
3.5 Script Program rivate Sub mnuClearAll_Click() If gblnTextHasChanged = True Then retVal = MsgBox("The changes to the text are not saved." & vbCrLfLf & "Do you want to clear image and text anyway?", vbQuestion + vbYesNo) If retVal = vbNo Then Exit Sub End If gstrImageName = "" gstrFileName = "" gstrActiveKey = "" gblnTextHasChanged = False With Me .txtMain.Text = "" .imgPreview.Picture = Nothing .lblImageFile.Caption = "Drag and drop carrier image into the black field..." .lblImageInfo.Caption = "" .imgIcon.Picture = Nothing End With Call GetFile Call CheckMenus End Sub Private Sub mnuClearFile_Click() gstrFileName = "" Call GetFile End Sub Private Sub mnuClearImage_Click() gstrImageName = "" Call GetImage End Sub Private Sub mnuClearText_Click() If gblnTextHasChanged = True Then retVal = MsgBox("The changes to the text are not saved." & vbCrLfLf & "Do you want to clear the text anyway?", vbQuestion + vbYesNo) If retVal = vbNo Then Exit Sub End If Me.txtMain.Text = "" End Sub Private Sub mnuErase_Click() If gstrImageName = "" Then Exit Sub retVal = MsgBox("Are you sure you want to erase all data in """ & CutFilePath(gstrImageName) & """ ?", vbYesNo + vbExclamation) If retVal = vbNo Then Exit Sub Me.picProgBar.Visible = True
27
Call ControlsBlock Call EraseImage Me.picProgBar.Visible = False Call ControlsFree End Sub Private Sub mnuInsertFile_Click() Dim fName As String On Error Resume Next With frmMain.ComDlg .DialogTitle = "Insert File..." .Flags = CMDLG_FILEMUSTEXIST Or CMDLG_NOCHECK .FileName = "" .InitDir = gstrCurDir .Filter = "All Files (*.*)|*.*" .ShowOpen If Err = 32755 Then Exit Sub gstrFileName = .FileName End With Call GetFile End Sub Private Sub mnuRead_Click() If gstrImageName = "" Then Exit Sub frmRead.Show (vbModal) If gstrActiveKey = "" Or gblnCancelKey = True Then Exit Sub Me.picProgBar.Visible = True Me.lblProgress.Caption = "Reading data..." Call ControlsBlock Call LoadDataPicture Me.picProgBar.Visible = False Me.lblProgress.Caption = "" Call ControlsFree End Sub Private Sub mnuSelectImage_Click() Dim fName As String On Error Resume Next With frmMain.ComDlg .DialogTitle = "Select Carrier Image..." .Flags = CMDLG_FILEMUSTEXIST Or CMDLG_NOCHECK .FileName = "" .InitDir = gstrCurDir .Filter = "Image Files (*.bmp;*.jpg;*.gif)|*.bmp;*.jpg;*.gif" .ShowOpen If Err = 32755 Then Exit Sub gstrImageName = .FileName
28
End With Call GetImage End Sub Private Sub mnuWrite_Click() If gstrImageName = "" Then Exit Sub frmWrite.Show (vbModal) If gstrActiveKey = "" Or gblnCancelKey = True Then Exit Sub Me.picProgBar.Visible = True Me.lblProgress.Caption = "Writing data..." Call ControlsBlock Call SaveDataPicture Me.lblProgress.Caption = "" Me.picProgBar.Visible = False Call ControlsFree End Sub Private Sub mnuAbout_Click() frmAbout.Show (vbModal) End Sub Private Sub mnuExit_Click() Unload Me End Sub Private Sub mnuHelp_Click() Call ShowHelpFile("") End Sub Private Sub mnuPageSetup_Click() frmPrintSetup.Show (vbModal) End Sub Private Sub mnuPrint_Click() If gblnPrinterPresent = False Then Exit Sub frmPrintProgress.Show (vbModal) End Sub Private Sub mnuCut_Click() SendKeys "^{x}" frmMain.Refresh Exit Sub Clipboard.SetText Me.txtMain.SelText Me.txtMain.SelText = "" frmMain.Refresh Call CheckMenus End Sub
29
Private Sub mnuCopy_Click() 'SendKeys "^{c}" Clipboard.SetText Me.txtMain.SelText frmMain.Refresh Call CheckMenus End Sub Private Sub mnuPaste_Click() SendKeys "^{v}" frmMain.Refresh Call CheckMenus End Sub Private Sub mnuDelete_Click() SendKeys "{del}" frmMain.Refresh Call CheckMenus End Sub Private Sub mnuUndo_Click() SendKeys "^{z}" frmMain.Refresh Call CheckMenus End Sub Private Sub mnuSelectAll_Click() frmMain.txtMain.SelStart = 0 frmMain.txtMain.SelLength = Len(frmMain.txtMain.Text) Call CheckMenus End Sub Private Sub mnuCopyAll_Click() Clipboard.Clear Clipboard.SetText frmMain.txtMain Call CheckMenus End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 'test buttons toolbar Select Case Button.Key Case "new" mnuClearAll_Click Case "read" mnuRead_Click Case "write" mnuWrite_Click
30
Case "print" mnuPrint_Click Case "cut" mnuCut_Click Case "copy" mnuCopy_Click Case "paste" mnuPaste_Click Case "undo" SendKeys "^{z}" frmMain.Refresh End Select Call CheckMenus End Sub '------------------------------------------------------------------ Private Sub imgIcon_Click() 'run, open or start file If gstrFileName <> "" Then StartFile (gstrFileName) End Sub Private Sub picInfo_GotFocus() If Me.txtMain.Enabled = True And Me.txtMain.Visible = True Then Me.txtMain.SetFocus End Sub Private Sub picFileContainer_GotFocus() If Me.txtMain.Enabled = True And Me.txtMain.Visible = True Then Me.txtMain.SetFocus End Sub Private Sub picPreview_GotFocus() If Me.txtMain.Enabled = True And Me.txtMain.Visible = True Then Me.txtMain.SetFocus End Sub Private Sub picStatus_GotFocus() If Me.txtMain.Enabled = True And Me.txtMain.Visible = True Then Me.txtMain.SetFocus End Sub Private Sub txtMain_Change() gblnTextHasChanged = True Me.lblBytes.Caption = Format(Len(Me.txtMain), "###,##0") & " Bytes Text" End Sub
31
Private Sub txtMain_KeyDown(KeyCode As Integer, Shift As Integer) Call CheckMenus End Sub Private Sub txtMain_KeyUp(KeyCode As Integer, Shift As Integer) Call CheckMenus End Sub Private Sub txtMain_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) Call CheckMenus End Sub Private Sub txtMain_KeyPress(KeyAscii As Integer) Dim a As String 'controle input textbox Call CheckMenus If KeyAscii = 1 Then ' ctrl+A = select all frmMain.txtMain.SelStart = 0 frmMain.txtMain.SelLength = Len(frmMain.txtMain) KeyAscii = 0 End If If Len(frmMain.txtMain.Text) > 31999 Then Select Case KeyAscii Case 3, 8, 24 'allow deleting and stuff Case Else KeyAscii = 0 'Maximum lenghte text reached MsgBox "Maximum lenght of text is reached.", vbExclamation Exit Sub End Select End If End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 'cancel write or read process If KeyCode = 27 Then gblnCancelProcces = True End Sub Private Sub Form_Resize() Call ChangeWindowSize End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 'if running, cancel exit If gblnIsRunning = True Then Cancel = True: Exit Sub
32
'warn if text is changed If gblnTextHasChanged = True Then retVal = MsgBox("The changes to the text are not saved." & vbCrLfLf & "Do you want to close the program anyway?", vbQuestion + vbYesNo) If retVal = vbNo Then Cancel = True: Exit Sub End If Call SaveWindowPos Unload frmAbout Unload frmRead Unload frmWrite Unload frmPrintProgress Unload frmPrintSetup Clipboard.Clear End End Sub '------------------------ Get rnd seed values ---------------------------- Private Sub txtMain_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Call RandomFeed(x, y) End Sub Private Sub Toolbar1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Call RandomFeed(x, y) End Sub Private Sub imgPreview_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Call RandomFeed(x, y) End Sub Private Sub picFileContainer_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Call RandomFeed(x, y) End Sub Private Sub picInfo_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Call RandomFeed(x, y) End Sub '------------------------ Drag and Drop---------------------------- Private Sub imgIcon_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
33
Dim tmpFile As String If Not Data.GetFormat(vbCFFiles) Then Exit Sub gstrFileName = Data.Files(1) Call GetFile End Sub Private Sub imgIcon_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer) Dim tmp As String If Data.GetFormat(vbCFFiles) Then Effect = vbDropEffectCopy Else Effect = vbDropEffectNone End If End Sub Private Sub picFileContainer_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) Dim tmpFile As String If Not Data.GetFormat(vbCFFiles) Then Exit Sub gstrFileName = Data.Files(1) Call GetFile End Sub Private Sub picFileContainer_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer) Dim tmp As String If Data.GetFormat(vbCFFiles) Then Effect = vbDropEffectCopy Else Effect = vbDropEffectNone End If End Sub Private Sub lblFile_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) Dim tmpFile As String If Not Data.GetFormat(vbCFFiles) Then Exit Sub gstrFileName = Data.Files(1) Call GetFile End Sub Private Sub lblFile_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer) Dim tmp As String If Data.GetFormat(vbCFFiles) Then Effect = vbDropEffectCopy
34
Else Effect = vbDropEffectNone End If End Sub Private Sub lblFileInfo_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) Dim tmpFile As String If Not Data.GetFormat(vbCFFiles) Then Exit Sub gstrFileName = Data.Files(1) Call GetFile End Sub Private Sub lblFileInfo_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer) Dim tmp As String If Data.GetFormat(vbCFFiles) Then Effect = vbDropEffectCopy Else Effect = vbDropEffectNone End If End Sub Private Sub imgPreview_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) Dim tmpFile As String If Not Data.GetFormat(vbCFFiles) Then Exit Sub gstrImageName = Data.Files(1) Call GetImage End Sub Private Sub imgPreview_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer) Dim tmp As String If Data.GetFormat(vbCFFiles) Then tmp = Right(Data.Files(1), 4) If tmp = ".bmp" Or tmp = ".jpg" Or tmp = ".gif" Then Effect = vbDropEffectCopy Else Effect = vbDropEffectNone End If End Sub Private Sub picPreview_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) Dim tmpFile As String If Not Data.GetFormat(vbCFFiles) Then Exit Sub gstrImageName = Data.Files(1)
35
Call GetImage End Sub Private Sub picPreview_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer) Dim tmp As String If Data.GetFormat(vbCFFiles) Then tmp = Right(Data.Files(1), 4) If tmp = ".bmp" Or tmp = ".jpg" Or tmp = ".gif" Then Effect = vbDropEffectCopy Else Effect = vbDropEffectNone End If End Sub '------------------- Set Carrier Image Preview -------------------- Private Sub GetImage() Dim picFactor Dim x Dim y On Error GoTo errHandle Screen.MousePointer = 11 With frmMain 'set image .picStegano.AutoSize = True .picStegano.Picture = LoadPicture(gstrImageName) .picStegano.Refresh .picStegano.AutoSize = False Screen.MousePointer = 0 'warn on bmp files, larger than 1 MB DataPicX = .picStegano.ScaleWidth DataPicY = .picStegano.ScaleHeight BmpSize = (DataPicX * DataPicY * 3) / 1024 If BmpSize > 1024 And GetFileExt(gstrImageName) <> "bmp" Then MsgBox "StegaNote will save this image as bitmap (bmp)." & vbCrLfLf & _ "The new file size will be " & Format(BmpSize, "###,##0") & " Kb.", vbInformation 'set the image preview picture .imgPreview.Visible = False .imgPreview.Stretch = False .imgPreview.Picture = .picStegano.Picture picFactor = .imgPreview.Width / .imgPreview.Height x = .picPreview.Width
36
y = .picPreview.Height If Int(x / picFactor) <= y Then .imgPreview.Width = x .imgPreview.Height = Int(x / picFactor) .imgPreview.Top = (.picPreview.Height - .imgPreview.Height - 75) / 2 .imgPreview.Left = 0 Else .imgPreview.Height = y .imgPreview.Width = Int(y * picFactor) .imgPreview.Left = (.picPreview.Width - .imgPreview.Width - 75) / 2 .imgPreview.Top = 0 End If .imgPreview.Stretch = True .imgPreview.Visible = True If gstrImageName <> "" Then .lblImageFile.Caption = TrimPath(gstrImageName, Me.lblImageFile.Width) .lblImageInfo.Caption = Format(FileLen(gstrImageName) / 1024, "###,##0") & " Kb" If GetAttr(gstrImageName) And 1 Then .lblImageInfo.Caption = .lblImageInfo.Caption & " (Read-Only)" gblnReadOnly = True Else gblnReadOnly = False If Right(gstrImageName, 4) <> ".bmp" Then .lblImageInfo.Caption = Format(BmpSize, "###,##0") & " Kb when converted to bitmap" End If End If Call CheckMenus End If End With Exit Sub errHandle: Screen.MousePointer = 0 'Failed loading image MsgBox "Failed loading" & CutFilePath(gstrImageName) & vbCrLf & vbCrLf & Err.Description, vbCritical End Sub
37
BAB IV PENUTUP
5.1. Kesimpulan
Kesimpulan dari paper tentang aplikasi steganografi dengan
menggunakan metode Least Significant Bit (LSB) yang dibuat adalah
sebagai berikut :
a. Aplikasi Steganography dengan metode LSB pada paper ini
berhasil digunakan untuk menyembunyikan pesan rahasia ke
dalam image dengan format (jpg atau bmp) hal ini telah dibuktikan
melalui hasil penyisipan pesan.
b. Pesan rahasia yang disisipkan ke dalam image dapat
diungkapkan kembali sama persis dengan bentuk asli dan tidak
mengalami kerusakan sedikitpun. Hal ini telah dibuktikan melalui
proses pengungkapan pesan.
c. Dari segi kualitas image, tidak ada perbedaan antara
stegoimage dengan image asli. Hal ini telah dibuktikan
menggunakan pengujian Teknik MOS. Tetapi ketika pesan rahasia
disisipkan pada image yang berlatar belakang putih polos,
Stegoimage mengalami perubahan warna menjadi abuabu. Hal ini
dikarenakan image putih polos terdiri dari 8bit tiap pikselnya
sehingga mampu menampilkan 256 perubahan warna abuabu;
disamping itu, karena warna putih mendominasi posisi Least
Significant Bit (LSB), dibandingkan warna hitam, yang
mendominasi posisi Most Significant Bit (MSB).
d. Dari segi ukuran file tidak mengalami perubahan significant
berarti, walaupun pada beberapa kasus saat sebelum dan
sesudah proses penyisipan, selisih ukuran <1KB. Ini dikarenakan
adanya factor pembiasan dari aplikasi yang dibuat.
5.2. Saran
Akibat faktor pembiasan dari aplikasi steganography, disarankan
untuk menghasilkan suatu stegoimage yang ukurannya tidak terlalu besar
dapat dikembangkan lagi sebuah aplikasi steganography yang memiliki
38
kapabilitas untuk memperkecil ukuran file citra setelah disisipi suatu
pesan rahasia. Pesan yang dapat disisipkan ke dalam image tidak hanya
teks saja masih ada beberapa media yang dapat disisipkan ke dalam
image diantaranya yaitu image, suara dan video.
39
DAFTAR PUSTAKA
[1] Zaidoon Kh, A. Zaidan,A.A. Zaidan,B.B & Alanazi.H.O., 2010. Overview: main
fundamentals for steganography. Journal of Computing, 2(3), pp.40-43.
[2] Wen Chen. 2000. Study Of Steganalysis Methods.
[3] Munir, Rinaldi. 2004. Steganography dan Watermaking . Departeman Teknik
Informatika ITB.
[4] Ana Sapta Rindi. 2010. Steganography Dengan Metode LSB Pada Citra
Digital. Journal of Computing.