Professional Documents
Culture Documents
UNIVERSITAS BUDI LUHUR FAKULTAS TEKNOLOGI INFORMASI JURUSAN MAGISTER ILMU KOMPUTER JAKARTA 2013
DAFTAR ISI
DAFTAR ISI ......................................................................................................... 1 ABSTRACT .......................................................................................................... 3 BAB I PENDAHULUAN....................................................................................... 4 1.1 1.2 1.3 1.4 1.5. Latar Belakang ..................................................................................................... 4 Rumusan Masalah ................................................................................................ 5 Tujuan .................................................................................................................. 5 Batasan Masalah .................................................................................................. 6 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
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 isuisu 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
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.
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 4
"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
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 masalahmasalah 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
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
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.
d.
Penyusunan
laporan
terhadap
keseluruhan
kegiatan
(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 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
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
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. b. c. Pure steganography Public key steganography 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.
10
Stego-Objek Extracting
Messege
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).
Messege
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.
2.5 Metode Steganografi Least Significant Bit (LSB) LSB merupakan sebuah cara yang sering digunakan untuk memasukkan informasi pada coverfile. LSB termasuk kedalam teknik
11
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 12
"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
13
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
14
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.
15
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 : 16
a.
Perancangan
Proses,
perancangan
proses
yang
dimaksudkan adalah bagaimana sistem akan bekerja, prosesproses 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 metodemetode penyembunyian data. Metode yang paling sederhana adalah metode modifikasi LSB. Pada susunan bit di dalam sebuah
17
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.
18
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. Start
Input pesan
Embeded data
Stego image
Stop
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
metode LSB. 19
d.
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.
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.
20
Start
Retrieve data
Pesan rahasia
Stop
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
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 21
muncul ketika aplikasi ini dijalankan yang terdiri dari menu image, edit dan help.
22
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.
23
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.
24
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.
25
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 26
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 27
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 28
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 29
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
30
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 31
'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) 32
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 33
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) 34
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 35
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
36
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 dengan image asli. Hal ini telah dibuktikan
stegoimage
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 37
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.
38
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.
39