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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
KEAMANAN INFORMASI MELALUI IMAGE STEGANOGRAFI MENGGUNAKAN LEAST SIGNIFICANT BIT ALGORITHM
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