implementasi metode rc4 -...
TRANSCRIPT
APLIKASI KEAMANAN INFORMASI MENGGUNAKAN TEKNIK
STEGANOGRAFI DENGAN METODE LEAST SIGNIFICANT BIT (LSB)
INSERTION DAN RC4
JAMALUDIN
101091123281
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2010
APLIKASI KEAMANAN INFORMASI MENGGUNAKAN TEKNIK
STEGANOGRAFI DENGAN METODE LEAST SIGNIFICANT BIT (LSB)
INSERTION DAN RC4
Oleh:
JAMALUDIN
101091123281
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI
SYARIF HIDAYATULLAH
JAKARTA
2010 M/1430 H
ii
APLIKASI KEAMANAN INFORMASI MENGGUNAKAN TEKNIK
STEGANOGRAFI DENGAN METODE LEAST SIGNIFICANT BIT (LSB)
INSERTION DAN RC4
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar
Sarjana Komputer
Pada Fakultas Sains dan Teknologi UIN Jakarta
Oleh :
JAMALUDIN
101091123281
Menyetujui,
Pembimbing I Pembimbing II
Herlino Nanang, MT Zulfiandri, S.Kom, MMSI
NIP. 19731209 200501 1 002 NIP. 150 368 821
Mengetahui,
Ketua Prodi Teknik Informatika
Yusuf Durachman, MIT
NIP. 19710522 200604 1 002
iii
PENGESAHAN UJIAN
Skripsi yang berjudul “Aplikasi Keamanan Informasi Menggunakan Teknik
Steganografi Dengan Metode Least Significant Bit (LSB) Insertion Dan
RC4”. Telah diuji dan dinyatakan lulus dalam sidang munaqosyah Fakultas Sains
dan Teknologi UIN Syarif Hidayatullah Jakarta, pada hari Kamis 14 Januari 2010.
skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar sarjana
strata satu (S1) pada jurusan Teknik Informatika.
Menyetujui,
Penguji I Penguji II
Arini, MT Dr. Agus Salim M. Si
NIP. 19760131 200901 2 001 NIP. 19720816 199903 1 003
Pembimbing I Pembimbing II
Herlino Nanang, MT Zulfiandri, S.Kom, MMSI
NIP. 19731209 200501 1 002 NIP. 150 368 821
Mengetahui,
Dekan Fakultas Sains dan Teknologi Ketua Prodi Teknik Informatika
Dr. Syopiansyah Jaya Putra, M.Sis Yusuf Durachman, MIT
NIP. 19681701 200112 1 001 NIP. 19710522 200604 1 002
iv
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-
BENAR ASLI HASIL KARYA SENDIRI YANG BELUM PERNAH
DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA
PERGURUAN TINGGI ATAU LEMBAGA MANAPUN.
Jakarta, Januari 2010
Jamaludin
101091123281
v
ABSTRAK
JAMALUDIN (101091123281), Aplikasi Keamanan Informasi Menggunakan Teknik Steganografi Dengan Metode Least Significant Bit (LSB) Insertion Dan RC4. (Di bawah bimbingan Herlino Nanang dan Zulfiandri).
Steganografi merupakan ilmu dan seni yang mempelajari cara
penyembunyian pesan rahasia ke dalam suatu media sedemikian sehingga pihak ketiga tidak menyadari keberadaan pesan tersebut. Walaupun steganografi dapat dikatakan mempunyai hubungan yang erat dengan kriptografi, tapi metode ini sangat berbeda dengan kriptografi. Kriptografi mengacak pesan sehingga tidak dimengerti, sedangkan steganografi menyembunyikan pesan sehingga tidak terlihat. Dalam tugas akhir ini penulis menguraikan tentang teknik steganografi menggunakan metode Least Significant Bit Insertion (LSB Insertion) dimana data sebelumnya dienkripsi menggunakan metode RC4 dan proses pengembalian data tersebut seperti semula. Dari penelitian ini dihasilkan sebuah aplikasi yang dapat digunakan untuk menyembunyikan data dengan fomat (*.xls, *.doc, *.txt, *.pdf, dan *.ppt) dengan media gambar penyembunyi bitmap (*.bmp) serta dilakukan juga pengujian terhadap file yang disembunyikan atau media penyembunyi sebelum dan sesudah di encode/decode untuk mengetahui apakah terjadi perubahan pada file tersebut. Tujuan dari penelitian ini adalah penulis ingin membuat sebuah aplikasi yang dapat digunakan untuk melindungi keamanan suatu data dengan cara menyembunyikannya dibalik media gambar agar tidak menimbulkan kecurigaan, sehingga informasi atau data tersebut tidak mudah untuk diketahui orang lain/user yang tidak berhak, dan untuk lebih memperkenalkan teknik steganografi sebagai salah satu teknik pengamanan data Kata kunci : Steganografi, Kriptografi, RC4 5 bab, 162 halaman, 40 gambar, 5 tabel, 22 lampiran
vi
KATA PENGANTAR
Assalamu’alaikum wa rahmatullahi wa barakatuh
Segala puji bagi Allah SWT yang telah melimpahkan hidayah, rahmah dan
maghfirah-Nya sehingga penulis dapat menyelesaikan pembuatan skripsi ini.
Selanjutnya shalawat serta salam penulis haturkan kepada Rasulullah SAW, yang
telah membawa amanah Islam dan membawa umatnya dari zaman kebodohan
yang gelap gulita menuju zaman yang penuh dengan cahaya hidayah Allah SWT.
Penulis mengucapkan terima kasih kepada pihak-pihak yang memberikan
bimbingan, bantuan, dan dukungan selama penyusunan dan pembuatan skripsi ini
berlangsung. Secara khusus saya ucapkan terima kasih kepada:
1. Bapak Bapak Herlino Nanang, MT dan Bapak Zulfiandri, S. Kom,
MMSI selaku pembimbing skripsi yang secara kooperatif, penuh
kesabaran dan keramahan, memberi nasihat dan saran-saran berharga
yang secara bijak membantu dan membimbing penulis dalam
penyelesaian skripsi ini.
2. Bapak DR. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas
Sains dan Teknologi.
3. Ayahanda dan Ibunda serta adik-adikku yang sangat penulis cintai dan
sayangi yang telah sekian lama membantu dan membimbing penulis
baik secara moril maupun materil dalam menjalani hidup ini.
4. Abdul Gofur ‘Opung’, Ajang Sofandi ’Zangse’, Umar Hayam Al-
Awali ‘Bulet’, Maway, Ruslan, Widi, dan Ahmad Farisi ‘Faransico’
vii
selaku sahabat kost yang senantiasa memberikan masukan dan
dukungannya, terima kasih sahabat
5. Keluarga besar penulis yang yang telah turut memotivasi untuk
menyelesaikan kuliah di UIN Jakarta.
6. Teman-teman Teknik Informatika UIN Jakarta Angkatan 2001 kelas B
dan A yang tak bisa penulis sebutkan satu persatu yang telah penulis
anggap sebagai Keluarga besar kedua bagi penulis. Terima kasih atas
bantuan, dukungan moril, nasihat, curhat, kejahilan, serta menemani
dan menyemangati penulis dalam menjalani masa-masa kuliah di UIN
Jakarta ini. Semuanya sangat berkesan dan insya Allah tak terlupakan
sampai akhir nanti. Amien.
Pengalaman adalah guru yag paling bijak, sebagaimana kesalahan adalah
awal dari kesempurnaan, diiringi keteguhan, keyakinan, dan ketabahan untuk
terus memperjuangkan apa yang kita impikan. Itulah gambaran keseluruhan dari
apa yang saya dapatkan dalam penyusunan tugas akhir ini. Skripsi yang jauh dari
sempurna ini telah memberikan begitu banyak manfaat dan hikmat yang bisa saya
petik. Dan hal itu juga yang saya harapkan akan diperoleh dari siapapun yang
membacanya. Amin. Billahi taufik wal hidayah. Wassalamu’alaikum wa
rahmatullahi wa barakatuh.
Jakarta, Januari 2010
Penulis
viii
DAFTAR ISI
Halaman
Halaman Sampul ........................................................................................ i
Halaman Judul ............................................................................................ ii
Halaman Persetujuan Pembimbing ............................................................ iii
Halaman Pengesahan ................................................................................. iv
Halaman Pernyataan ................................................................................... v
Abstraksi .................................................................................................... vi
Kata Pengantar ........................................................................................... vii
Daftar Isi .................................................................................................... ix
Daftar Tabel ............................................................................................... xvi
Daftar Gambar ............................................................................................ xvii
BAB I PENDAHULUAN ....................................................................... 1
1.1 Latar Belakang Masalah ....................................................... 1
1.2 Perumusan Masalah .............................................................. 2
1.3 Batasan Masalah ................................................................... 2
1.4 Tujuan Penulisan ................................................................... 3
1.5 Manfaat Penelitian ................................................................ 3
1.6 Metodelogi Penelitian .......................................................... 3
1.7 Sistematika Penulisan ........................................................... 4
ix
BAB II LANDASAN TEORI .................................................................. 6
2.1 Keamanan data .................................................................... 6
1. Privacy / Confidentiality ..................................... 6
2. Integrity................................................................. 7
3. Authenticity........................................................... 7
4. Availability............................................................. 7
5. Access Control ....................................................... 8
2.2 Kriptografi ........................................................................... 8
2.2.1 Dasar matematis ........................................................ 10
2.2.2 Operasi Biner ............................................................ 11
2.2.3 RC4 ........................................................................... 12
2.3 Steganografi.......................................................................... 12
2.3.1 Kriteria Steganografi ................................................... 15
2.3.2 Teknik Penyembunyian Data ..................................... 16
2.3.2.1 Metode Least Significant Bit Insertion ......... 16
2.4 Perbedaaan Steganografi dan Kriptografi ........................... 18
2.5 Aplikasi, informasi dan aplikasi keamanan informasi ......... 19
2.6 File gambar........................................................................... 21
2.6.1 Bitmap........................................................................ 21
2.6.2 JPEG........................................................................... 22
2.6.3 GIF............................................................................... 22
2.7 Metode RAD........................................................................... 23
x
2.8 Algoritma Program.................................................................. 24
2.8.1 Pseudoceode ................................................................ 24
2.8.2 Flow Chart .................................................................. 25
2.8.3 STD (State Transition Diagram)................................. 27
a. Modul .................................................................... 28
b. Tampilan Kondisi.................................................. 28
c. Tindakan (state transition)...................................... 29
2.9 Pengenalan Microsoft Visual Basic 6.0................................... 29
2.9.1 Mengenal Integrated Development Environment (IDE)
Microsoft Visual Basic 6.0....................................... 30
BAB III METODELOGI PENELITIAN .................................................. 34
3.1 Metode Pengumpulan Data ................................................. 34
a. Studi Pustaka ................................................................. 34
b. Literatur ......................................................................... 34
c. Diskusi ........................................................................... 35
3.2 Metode Pengembangan Sistem ............................................ 36
a. Fase Perencanaan Syarat-syarat .................................... 38
b. Fase Workshop Design ................................................. 38
c. Fase Implementasi ......................................................... 38
xi
BAB IV ANALISIS PERANCANGAN PROGRAM
DAN IMPLEMENTASI............................................................. 39
4.1 Fase Perencanaan Syarat-Syarat ........................................ 39
4.2 Fase Workshop Design ...................................................... 40
4.2.1 Perancangan Algoritma.............................................. 40
1. Algoritma RC4 stream cipher ................................ 41
2. Algoritma Steganografi.......................................... 43
4.2.2 Perancangan Flowchart .............................................. 45
a. Flowchart layar login ............................................. 45
b. Flowchart layar menu utama.................................. 46
c. Flowchart layar menu encode................................. 47
d. Flowchart layar menu decode ................................ 51
e. Flowchart layar about............................................. 55
f. Flowchart layar help ............................................... 56
4.2.3 Perancangaan Antarmuka.......................................... 57
1. Form Login ....................................................... 57
2. Form utama ....................................................... 57
3. Form encode...................................................... 58
4. Form decode...................................................... 61
5. Form about ........................................................ 64
6. Form help .......................................................... 65
4.2.4 State Transition Diagram (STD) ............................... 67
4.3 Fase Implementasi.............................................................. 67
xii
4.3.1 Sarana pendukung aplikasi......................................... 67
1. Perangkat Keras (Hardware) ........................... 67
2. Perangkat Lunak (Software) ............................. 68
4.3.2 Pengujian aplikasi stegSECURE ............................... 68
4.3.2.1 Format file dengan extention *.xls.................. 68
1. Proses encode file *.xls .................................... 70
2. Proses decode file *.xls .................................... 77
4.3.2.2 Format file dengan extention *.doc ................ 85
1. Proses encode file *.doc ................................... 87
2. Proses decode file *.doc ................................... 94
4.3.2.3 Format file dengan extention *.txt .................. 102
1. Proses encode file *.txt .................................... 104
2. Proses decode file *.txt .................................... 111
4.3.2.4 Format file dengan extention *.pdf ................. 119
1. Proses encode file *.pdf .................................... 121
2. Proses decode file *.pdf .................................... 128
4.3.2.5 Format file dengan extention *.ppt ................. 136
1. Proses encode file *.ppt .................................... 138
2. Proses decode file *.ppt .................................... 145
4.3.3 Analisis uji coba program .......................................... 153
BAB V PENUTUP
5.1 Kesimpulan .......................................................................... 159
xiii
5.2 Saran ………………………………………………………. 159
DAFTAR PUSTAKA ................................................................................. 161
LAMPIRAN................................................................................................ 163
xiv
DAFTAR TABEL
Halaman
2.1 Perbedaan steganografi dan kriptografi ............................................... 19
2.2 Simbol-simbol Flowchart ..................................................................... 26
3.1 Referensi literatur ................................................................................. 35
4.1 Gambar bitmap yang digunakan .......................................................... 68
4.2 Hasil proses encode/decode ................................................................. 158
xv
DAFTAR GAMBAR
Halaman
2.1 Kunci simetris ……………………………………….…………….. 9
2.2 Kunci asimetris ……………………………………….……………. 10
2.3 Proses steganografi ……………………………………….………… 14
2.4 Perbedaan steganografi dan kriptografi …………………………….. 18
2.5 Contoh perubahan state …………………………….......................... 28
2.6 Notasi Modul ……………………………......................................... 28
2.7 Notasi Tampilan …………………………….................................... 28
2.8 Notasi Tindakan ……………………………..................................... 29
2.9 Pilih stantard pengembangan dengan bahasa VB ………………...... 31
2.10 Tampilan form aplikasi pemrograman VB 6.0 ……………….......... 32
2.11 Tools menu ………………................................................................ 33
2.12 Tampilan component ………………................................................. 33
3.1 Siklus pengembangan sistem model RAD ………………................ 37
4.1 Proses encode dan decode ………………......................................... 40
4.2 Flowchart layar login ………………................................................. 45
4.3 Flowchart layar utama ………………............................................... 46
4.4 Flowchart layar encode langkah1 ……………….............................. 47
4.5 Flowchart layar encode langkah2 ……………….............................. 48
4.6 Flowchart layar encode langkah3 ……………….............................. 49
4.7 Flowchart layar encode langkah4 ……………….............................. 50
xvi
xvii
4.8 Flowchart layar decode langkah1 ……………….............................. 51
4.9 Flowchart layar decode langkah2 ……………….............................. 52
4.10 Flowchart layar decode langkah3 ……………….............................. 53
4.11 Flowchart layar decode langkah3 ……………….............................. 54
4.12 Flowchart layar about ………………................................................ 55
4.13 Flowchart layar help ……………….................................................. 56
4.14 Form login ………………................................................................. 57
4.15 Form utama ………………................................................................ 58
4.16 Form encode langkah1 ………………............................................... 59
4.17 Form encode langkah2 ………………............................................... 60
4.18 Form encode langkah3 ………………............................................... 60
4.19 Form encode langkah4 ………………............................................... 61
4.20 Form decode langkah1 ………………............................................... 62
4.21 Form decode langkah2 ………………............................................... 63
4.22 Form decode langkah3 ………………............................................... 63
4.23 Form decode langkah4 ………………............................................... 63
4.24 Form about ………………................................................................. 64
4.25 Form help ………………................................................................... 66
4.26 STD rancangan program ………………............................................. 67
4.27 Konfirmasi salah user name atau password ………………................ 69
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Perkembangan teknologi informasi di era modern ini terasa begitu
pesat, hal ini dikarenakan adanya alat bantu (komputer) yang dapat
digunakan untuk memproses dan mengolah data. Kini komputer telah
dijadikan teknologi pokok dalam pengolahan dan penyajian informasi.
Sebuah perusahaan atau lembaga dapat membuat suatu keputusan yang tepat
dengan ditunjang aspek teknologi informasi yang diharapkan dapat
menangani permasalahan dengan cepat, akurat dan efisien.
Keamanan suatu informasi pada jaman global ini makin menjadi
sebuah kebutuhan vital dalam berbagai aspek kehidupan. Suatu informasi
akan memiliki nilai lebih tinggi apabila menyangkut tentang aspek-aspek
keputusan bisnis, keamanan, ataupun kepentingan umum. Dimana
informasi-informasi tersebut tentunya akan banyak diminati oleh berbagai
pihak yang juga memiliki kepentingan di dalamnya.
Untuk itu, salah satu cara pengamanan yang dapat dilakukan adalah
dengan mengunakan teknik steganografi, yang merupakan suatu teknik
menyembunyikan informasi dibalik cover media seperti teks, gambar, audio,
dan video sehingga informasi atau data yang sesungguhnya tidak terlihat dan
tidak menimbulkan kecurigaan bagi orang lain. Keamanan informasi akan
menjadi lebih tangguh dengan memadukan teknik steganografi dan
1
kriptografi, dimana apabila informasi rahasia yang telah disembunyikan
dapat terdeteksi oleh pihak yang tidak bertanggung jawab, maka informasi
rahasia tersebut masih terlindungi oleh suatu metode kriptografi.
1.2. Perumusan Masalah
Dalam pelaksanaan tugas akhir ini terdapat beberapa permasalahan
yang menjadi titik utama pembahasan, diantaranya adalah sebagai berikut :
a. Bagaimana mekanisme pengamanan informasi menggunakan
teknik steganografi yang digabungkan dengan suatu metode
kriptografi.
b. Apakah terjadi perubahan dalam file, baik itu ukuran maupun
kualitas dengan dilakukan proses encoding dan decoding dalam
penyisipan informasi rahasia.
1.3. Batasan Masalah
Ada banyak cara yang dapat dilakukan untuk memproteksi informasi
atau data, tetapi dalam penulisan skripsi ini penulis membatasi hanya pada
seputar cara pengamanan informasi berupa dokumen dengan format (*.xls,
*.doc, *.txt, *.pdf, dan *.ppt) dengan menyembunyikannya pada suatu file
gambar bitmap (*.bmp) menggunakan teknik steganografi yang sebelumnya
telah dienkripsi dengan metode RC4 dan prosedur pengembalian data
tersebut ke bentuk aslinya.
2
1.4. Tujuan dan Manfaat Penulisan
1.4.1. Tujuan
Tujuan dari penulisan skripsi ini adalah bahwa penulis ingin
membuat sebuah aplikasi yang dapat digunakan untuk melindungi
keamanan suatu data dengan cara menyembunyikannya dibalik
media gambar agar tidak menimbulkan kecurigaan, sehingga
informasi atau data tersebut tidak mudah untuk diketahui orang
lain/user yang tidak berhak, dan untuk lebih memperkenalkan teknik
steganografi sebagai salah satu teknik pengamanan data.
1.4.2. Manfaat
Adapun manfaat dari penyusunan skripsi ini adalah sebagai berikut :
1. Penulis lebih memahami tentang konsep keamanan data
menggunakan teknik steganografi dan kriptografi.
2. Memberikan sumbangan ilmiah bagi pengembangan keamanan
data dengan mengabungkan metode steganografi dan kriptografi.
1.5. Metodelogi Penelitian
Adapun metode penelitian untuk mengumpulkan data-data yang
diperlukan adalah sebagai berikut :
1. Studi Pustaka
3
Dilakukan dengan cara membaca dan mempelajari
buku-buku dan artikel yang berhubungan dengan keamanan data
khususnya tentang steganografi, serta buku-buku yang
mendukung dengan topik yang akan dibahas dalam penyusunan
skripsi ini.
2. Literatur
Mempelajari jurnal dan skripsi yang terkait dengan
keamanan data khususnya steganografi dan kriptografi.
3. Diskusi
Melakukan diskusi dengan dosen pembimbing dan
teman-teman serta orang-orang yang mengerti terhadap materi
bahasan agar mendapatkan bahan masukan untuk penyusunan
skripsi ini.
Setelah pengumpulan data, selanjutnya dilakukan pengembangan
aplikasi menggunakan metode RAD (Rapid Aplication Development) yang
terdiri dari beberapa fase yaitu fase perencanaan syarat, fase workshop
desain (perancangan dan konstruksi), dan fase implementasi.
1.6. Sistematika Penulisan
Dalam penyusunan skripsi ini, pembahasan yang penulis sajikan
terbagi dalam lima bab, yang secara singkat akan diuraikan sebagai berikut :
4
5
BAB I PENDAHULUAN
Pada bab ini akan dijelaskan tentang latar belakang
permasalahan, perumusan masalah, ruang lingkup dan batasan
masalah, tujuan dan manfaat penulisan, metodologi penelitian,
serta sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi teori-teori yang digunakan dalam
penyusunan skripsi ini, keamanan data, kriptografi,
steganografi.
BAB III METODE PENELITIAN
Pada bab ini berisi mengenai metodologi perancangan
yang digunakan dalam membangun sistem ini.
BAB IV ANALISIS DAN PERANCANGAN PROGRAM
Pada bab ini berisi tentang analisa dan pembahasan
konsep pengembangan aplikasi, spesifikasi sistem yang
digunakan baik software maupun hardware, serta implementasi
dari program.
BAB V PENUTUP
Bab ini berisi kesimpulan dari apa yang sudah
diterangkan pada bab-bab sebelumnya, dan juga berisi saran-
saran perbaikan yang berhubungan dengan masalah yang
dibahas oleh penulis.
BAB II
LANDASAN TEORI
2.1. Keamanan Data
Kemampuan untuk mengakses dan menyediakan informasi secara
cepat dan akurat menjadi sangat esensial bagi sebuah organisasi, baik yang
berupa organisasi komersial (perusahaan), perguruan tinggi, lembaga
pemerintahan maupun individual (pribadi). Masalah keamanan dan
kerahasiaan data merupakan salah satu aspek penting dari suatu informasi.
Dalam hal ini sangat terkait dengan betapa pentingnya informasi tersebut
dikirim dan diterima oleh orang yang berkepentingan. Informasi akan tidak
berguna lagi apabila ditengah jalan informasi itu disadap atau dibajak oleh
orang yang tidak berhak.
Dengan membuat sistem keamanan komputer maka kita akan
melindungi data agar tidak dapat dibaca oleh orang yang tidak berhak dan
mencegah agar orang yang tidak berhak tidak menyisipkan atau menghapus
data. Kita dapat memberikan batasan terhadap sistem dari orang yang tidak
berhak.
Secara umum keamanan komputer mencakup beberapa aspek
(Stiawan 2005:47-49), yaitu :
1. Privacy / Confidentiality
Inti utama aspek ini adalah usaha untuk menjaga informasi dari
orang yang tidak berhak mengakses. Privacy lebih kearah data-
6
data yang sifatnya privat, sedangkan confidentiality biasanya
berhubungan dengan data yang diberikan ke pihak lain untuk
keperluan tertentu (misalnya sebagai bagian dari pendaftaran
sebuah servis) dan hanya diperbolehkan untuk keperluan tertentu.
2. Integrity
Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa
seizin pemilik informasi. Informasi yang diterima harus sesuai
dan sama persis seperti saat informasi dikirimkan. Jika terdapat
perbedaan antara informasi atau data yang dikirim dengan yang
diterima maka aspek integrity tidak tercapai.
3. Authenticity
Aspek ini berhubungan dengan metode atau cara untuk
menyatakan bahwa informasi betul-betul asli, orang yang
mengakses atau memberikan informasi adalah betul-betul orang
yang dimaksud. Saat ini dengan perkembangan teknologi
informasi, terdapat beberapa metode authentication yang lebih
canggih dan aman seperti menggunakan retina mata, pengenalan
suara, dan telapak tangan pengguna.
4. Availability
Aspek ini behubungan dengan ketersediaan data dan informasi.
Data dan informasi yang berbeda dalam suatu sistem komputer
tersedia dan dapat dimanfaatkan oleh orang yang berhak.
7
5. Access Control
Aspek ini berhubungan dengan cara pengaturan akses kepada
informasi. Hal ini biasanya berhubungan dengan klasifikasi data
(public, private, confidential, top secret) dan user (guest, admin,
top manager, dsb), mekanisme authentication dan juga privacy.
Access control seringkali dilakukan dengan menggunakan
kombinasi user id/password atau dengan menggunakan
mekanisme lain (seperti kartu, biometrics). Dengan cara ini maka
setiap user akan dibatasi sesuai dengan tingkat kebutuhannya.
2.2. Kriptografi
Kriptografi (Cryptography) berasal dari bahasa Yunani yaitu
“Cryptos” artinya “secret” (rahasia) dan “graphein” artinya “writing”
(tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Definisi
yang dikemukakan dalam [SCH96] :
Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan.
(Cryptography is the art and sience of keeping message secure).
terdapat pula definisi yang di kemukakan di dalam [MEN96] :
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika
yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan,
integritas data, serta otentikasi.
Munir (2006:3) dalam bukunya menjelaskan, data atau informasi
yang dapat dibaca dan dimengerti maknanya disebut plaintext. Plaintext
8
yang tersandi disebut ciphertext. Ciphertext harus dapat ditransformasikan
kembali menjadi plaintext semula agar pesan yang diterima bisa dibaca.
Proses menyandikan plaintext menjadi ciphertext disebut enkripsi disebut
enkripsi (encryption) atau enciphering (standard nama menurut ISO 7498-
2). Sedangkan proses mengembalikan ciphertext menjadi plaintext semula
dinamakan dekripsi (decryption) atau deciphering (standard nama menurut
ISO 7498-2).
Algoritma kriptografi (cipher) dapat dibedakan menjadi dua macam,
yaitu : simetrik dan asimetrik. Algoritma simetrik (model enkripsi
konvensional) adalah algoritma yang menggunakan satu kunci untuk proses
enkripsi dan dekripsi data, contohnya adalah DES, Blowfish, GOST, AES
dan lain-lain. Sedangkan algoritma asimetrik (model enkripsi kunci publik)
menggunakan kunci yang berbeda dalam proses enkripsi dan dekripsi pesan,
contoh dari algoritma ini adalah RSA, El Gamal.
Dekripsi
Enkripsi
Plaintext Ciphertext
Kunci
Plaintext
Gambar 2.1 Kunci simetris
Sumber : Munir (2006:3)
9
Plaintext Ci
Kunci privat
Plaintext phertext
Kunci publik
Dekripsi
2.2.1. Dasar matematis
Konsep matematis yang mendasari proses enkripsi dan
dekripsi adalah relasi antara dua himpunan yaitu himpunan berisi
elemen plaintext dan himpunan berisi elemen ciphertext (Munir
2006:5-6). Enkripsi dan dekripsi merupakan fungsi yang memetakan
elemen-elemen antara kedua himpunan tersebut. Misalkan P
menyatakan plaintext dan C menyatakan ciphertext, maka fungsi
enkripsi E memetakan P ke C,
E(P) = C
Dan fungsi dekripsi D memetakan C ke P,
D(C) = P
Karena proses enkripsi-dekripsi bertujuan memperoleh
kembali data asal, maka :
D(E(P)) = P
Enkripsi
Gamb
Sumber
ar 2.2 Kunci asimetris
Munir (2006:3)
10
Kunci (key) adalah parameter yang digunakan untuk
transformasi enciphering dan deciphering. Kunci biasanya berupa
string atau deretan bilangan. Degan menggunakan kunci K, maka
fungsi enkripsi dan dekripsi dapat ditulis sebagai
Ek(P) = C dan
Dk (C) = P
Dan kedua fungsi ini memenuhi
Dk(Ek(P)) = P
2.2.2. Operasi Biner
Operator biner yang sering digunakan dalam cipher yang
beroperasi dalam mode bit adalah XOR atau exlusive-or. Notasi
matematis untuk operator XOR adalah ⊕ (dalam bahasa C, operator
XOR dilambangkan dengan ^). Operator XOR dioperasikan pada dua
bit dengan aturan sebagai berikut (Munir 2006:99) :
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 0 = 1
1 ⊕ 1 = 0
Misalkan a, b, c adalah peubah Boolean. Hukum-hukum yang
terkait dengan operator XOR :
1) a ⊕ a = 0
2) a ⊕ b = b ⊕ a
11
3) a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c
2.2.3. RC4
RC4 dibuat oleh Ron Rivest, penemu RSA, RC2, RC5, RC6,
MD2 dan MD5 pada tahun 1987 untuk perusahaannya, RSA Data
Security Inc. RC4 ini merupakan jenis stream cipher. Artinya operasi
enkripsi dilakukan per karakter 1 byte untuk sekali operasi.
Bandingkan dengan block cipher yang beroperasi pada data 1 blok (8
byte atau 16 byte) per operasi enkripsi. RC4 merupakan cipher OFB
(Output-Feedback Cipher). RC4 merupakan salah satu cipher yang
paling banyak digunakan di internet untuk pengamanan SSL. Secara
resmi, RC4 tidak pernah dipublikasikan. Namun pada bulan
September tahun 1994 seseorang yang tidak menyebutkan namanya
mengirimkannya ke internet algoritma detilnya sehingga menjadi
diketahui umum (Kurniawan 2004:93).
2.3. Steganografi
Steganografi berasal dari bahasa Yunani, “stegos” yang berati roof
(atap) atau covered (terlindungi) dan “graphia” yang berarti tulisan, jadi
steganografi berarti “tulisan tersembunyi”.Steganografi adalah ilmu dan seni
menyembunyikan data atau pesan didalam media lain sehingga keberadaan
pesan rahasia tersebut tidak dapat diketahui (Munir 2006:301-306).
12
Secara garis besar, teknik Steganografi adalah dengan cara
menyisipkan sepotong demi sepotong informasi pada sebuah media,
sehingga informasi tersebut tampak kalah dominan dengan media
pelindungnya.
Steganografi membutuhkan dua properti yaitu media penampung dan
pesan rahasia. Media penampung yang umum digunakan adalah gambar,
suara, atau video. Informasi yang disembunyikan dapat berupa sebuah
artikel, gambar, kode program, atau pesan lainnya.
Keuntungan steganografi dibandingkan dengan kriptografi adalah
bahwa informasi yang dikirim tidak menarik perhatian sehingga media
penampung yang membawa informasi tidak menimbulkan kecurigaan bagi
pihak ketiga. Ini berbeda dengan kriptografi dimana ciphertext menimbulkan
kecurigaan bahwa pesan tersebut merupakan pesan rahasia.
Terdapat beberapa istilah yang berkaitan dengan steganografi :
1) Hiddentext atau embed message : pesan yang disembunyikan.
2) Covertext atau cover-object : media yang digunakan untuk
menyembunyikan embed message..
3) Stegotext atu stego-object : media yang sudah berisi embed
message.
Penyisipan pesan ke dalam media covertext dinamakan encoding,
sedangkan ekstraksi pesan dari stegotext dinamakan decoding. Kedua proses
ini mungkin memerlukan kunci rahasia (yang dinamakan stegokey) agar
13
hanya pihak yang berhak saja yang dapat melakukan penyisipan dan
ekstraksi pesan. memperlihatkan diagram penyisipan dan ekstraksi pesan.
(sumber : http://www.jjtc.com/, diakses bulan Juni 2006)
Zaman dahulu kegiatan ini sering dilakukan untuk menyampaikan
pesan-pesan rahasia. Misalnya pada aplikasi pertama bangsa Yunani yaitu
dengan cara mentato pesan rahasia dikulit kepala para pembawa pesan.
Sebelumnya kepala pembawa pesan tersebut digunduli terlebih dahulu
kemudian di tato. Setelah rambutnya tumbuh, maka pesan tadi tertutup oleh
rambut. Kemudian si pembawa pesan dilengkapi dengan pesan palsu
ditangannya sebagai umpan.
Pada abad 20, tinta yang tidak kelihatan telah digunakan secara luas.
Pada perang dunia II, orang-orang menggunakan susu, cuka, jus buah dan
urine untuk menulis pesan rahasia. Ketika dipanaskan, cairan ini menjadi
lebih gelap dan pesan dapat terbaca.
Gambar 2.3 Proses steganografi
14
Dengan Steganografi, informasi rahasia dapat disembunyikan
didalam potongan gambar yang tidak mencurigakan dan mengirimnya tanpa
seseorang mengetahui keberadaan dari informasi rahasia tersebut.
2.3.1. Kriteria Steganografi
Penyembunyian data rahasia ke dalam citra digital akan
mengubah kualitas citra tersebut. Kriteria yang harus diperhatikan
dalam penyembunyian data adalah (Munir 2006:307) :
1. Imperceptibility. Keberadaan pesan rahasia tidak dapat dipersepsi
oleh inderawi. Misalnya jika convertext berupa citra, maka
penyisipan pesan membuat citra stegotext sukar dibedakan oleh
mata dengan citra covertext-nya. Jika covertext berupa audio
(misalnya berkas mp3, wav, midi, dan sebagainya), maka indera
telinga tidak dapat mendeteksi perubahan pada audio stegotext-
nya.
2. Fidelity. Mutu media penampung tidak berubah banyak akibat
penyisipan. Perubahan tersebut tidak dapat dipersepsi oleh
inderawi. Misalnya, jika convertext berupa citra, maka
penyisipan pesan membuat citra stegotext sukar dibedakan oleh
mata dengan citra covertext-nya. Jika covertext berupa audio
(misalnya berkas mp3, wav, midi, dan sebagainya), maka audio
stegotext tidak rusak dan indera telinga tidak dapat mendeteksi
perubahan tersebut.
15
3. Recovery. Data yang disembunyikan harus dapat diungkapkan
kembali (reveal). Karena tujuan steganografi adalah data hiding,
maka sewaktu-waktu pesan rahasia di dalam stegotext harus
dapat diambil kembali untuk digunakan lebih lanjut.
2.3.2. Teknik Penyembunyian Data
Teknik penyisipan data ke dalam covertext dapat dilakukan
dalam dua macam ranah :
1. Ranah spasial (waktu) (spatial/time domain)
Teknik ini memodifikasi langsung nilai byte dai covertext
(nilai byte dapat merepresentasikan intensitas/warna pixel
atau amplitudo). Contoh metode yang tergolong ke dalam
teknik ranah spasial adalah metode LSB.
2. Ranah transform (transform domain)
Teknik ini memodifikasi langsung hasil transformasi
frekuensi sinyal. Contoh metode yang tergolong ke dalam
teknik ranah frekuensi adalah spread spectrum.
2.3.2.1. Metode Least significant bit insertion (LSB insertion).
Metode LSB (Least significant bit) merupakan metode
steganografi yang paling mudah diimplementasikan. Untuk
menjelaskan metode ini kita menggunakan citra sebagai
covertext. Setiap pixel di dalam citra berukuran 1 sampai 3
byte. Pada susunan bit di dalam sebuah byte (1 byte = 8
bit), ada bit yang paling berarti (most significant bit atau
16
MSB) dan bit yang paling kurang berarti (Least significant
bit atau 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 dengan bit pesan adalah bit LSB, sebab
modifikasi hanya mengubah nilai byte tersebut satu lebih
tinggi atau satu lebih rendah dari nilai sebelumnya.
Misalkan byte tersebut di dalam gambar memberikan
persepsi warna merah, maka perubahan satu bit LSB hanya
mengubah persepsi warna merah tidak terlalu berarti. Mata
manusia tidak dapat membedakan perubahan yang kecil ini.
Sebagai ilustrasi, misalkan segmen pixel-pixel citra
sebelum penambahan bit-bit watermark adalah
00110011 10100010 11100010 01101111
dan misalkan pesan rahasia (yang telah dikonversi ke
sistem biner) adalah 0111. setiap bit dari watermark
menggantikan posisi LSB dari segmen pixel-pixel citra
menjadi :
00110010 10100011 11100011 01101111
untuk membuat hiddentext tidak dapat dilacak, bit-bit pesan
tidak mengganti byte-byte yang berurutan, namundipilih
susunan byte secara acak. Misalkan jika terdapat 50 byte
dan 6 bit data yang akan disembunyikan, maka byte yang
17
diganti bit LSB-nya dipilih secara acak, misalkan byte
nomor 36, 5, 21, 10, 18, 49.
2.4. Perbedaaan Steganografi dan Kriptografi
Steganografi sangat kontras dengan kriptografi. Jika kriptografi
merahasiakan makna pesan sementara eksistensi pesan tetap ada, maka
steganografi menutupi keberadaan pesan. Steganografi dapat dipandang
sebagai kelanjutan kriptografi dan dalam prakteknya pesan rahasia
dienkripsi telebih dahulu, kemudian ciphertext disembunyikan didalam
media lain sehingga pihak ketiga tidak menyadari keberadannya. Pesan
rahasia yang disembunyikan dapat diekstraksi kembali persis sama seperti
aslinya (Munir 2006:301). Hasil dari kriptografi biasanya berupa informasi
yang berbeda dari bentuk aslinya dan biasanya informasi seolah-olah
berantakan atau acak, sedangkan hasil keluaran steganografi memiliki
bentuk persepsi yang sama dengan bentuk aslinya.
(Sumber : http://www.jjtc.com/, diakses bulan Juni 2006)
Gambar 2.4 Perbedaan steganografi dan kriptografi
18
Dalam beberapa situasi, mengirimkan informasi yang dienkripsi
akan menimbulkan kecurigaan, sedangkan informasi yang tidak kelihatan
tidak menimbulkan kecurigaan.
(Sumber : http://www.infosecwriters.com, diakses bulan Juli 2006).
Tabel 2.1 Perbedaan steganografi dan kriptografi
Steganografi Kriptografi Keberadaan data atau informasi
tidak diketahui
Keberadaan data atau informasi
diketahui
Steganografi menyembunyikan
keberadaan komunikasi
Enkripsi mencegah pihak yang tidak
berhak melihat/merubah isi dari
komunikasi
Teknik yang belum banyak
digunakan Teknik sudah umum digunakan
Tekniknya masih terus
dikembangkan untuk beberapa
format data tertentu
Kebanyakan algoritma yang
digunakan sudah diketahui oleh
umum
Ketika informasi atau data
terdeteksi maka akan mudah untuk
diketahui
Algoritma yang tangguh akan sulit
untuk ditembus, harus mengeluarkan
biaya yang cukup mahal untuk dapat
menghancurkannya
Steganografi tidak merubah
struktur informasi rahasia
Kriptografi merubah struktur
informasi rahasia
2.5. Aplikasi, informasi dan aplikasi keamanan informasi
Perangkat lunak aplikasi adalah suatu subkelas perangkat lunak
komputer yang memanfaatkan kemampuan komputer langsung untuk
melakukan suatu tugas yang diinginkan pengguna.
19
Informasi adalah data yang telah diolah menjadi suatu bentuk yang
penting bagi si penerima dan mempunyai nilai yang nyata yang dapat
dirasakan dalam keputusan-keputusan yang sekarang atau keputusan-
keputusan yang akan datang.
Kebanyakan orang mungkin akan bertanya, mengapa “keamanan
informasi” dan bukan “keamanan teknologi informasi” atau IT Security.
Kedua istilah ini sebenarnya sangat terkait, namun mengacu pada dua hal
yang sama sekali berbeda. “Keamanan teknologi informasi” atau IT Security
mengacu pada usaha-usaha mengamankan infrastruktur teknologi informasi
dari tentunya, gangguan- gangguan berupa akses terlarang serta utilisasi
jaringan yang tidak diizinkan. Berbeda dengan “keamanan informasi” yang
fokusnya justru pada data dan informasi, yang dalam hal ini tentunya data
serta informasi milik perusahaan Pada konsep ini, usaha-usaha yang
dilakukan adalah merencanakan, mengembangkan serta mengawasi semua
kegiatan yang terkait dengan bagaimana data dan informasi bisnis dapat
digunakan serta diutilisasi sesuai dengan fungsinya serta tidak
disalahgunakan atau bahkan dibocorkan ke pihak-pihak yang tidak
berkepentingan. Berdasarkan penjelasan di atas, ‘kemananan teknologi
informasi’ merupakan bagian dari keseluruhan aspek ‘keamanan informasi’.
Karena teknologi informasi merupakan salah satu alat atau tool penting yang
digunakan untuk mengamankan akses serta penggunaan dari data dan
informasi perusahaan. Dari pemahaman ini pula, kita akan mengetahui
20
bahwa teknologi informasi bukanlah satu-satunya aspek yang
memungkinkan terwujudnya konsep keamanan informasi di perusahaan.
2.6. File gambar
Pada komputer, gambar yang tampil di layar monitor merupakan
kumpulan array yang merepresentasikan intensitas cahaya yang bervariasi
pada pixel. Pixel adalah titik di layar monitor yang dapat diatur untuk
menampilkan warna tertentu. Pixel disusun di layar monitor dalam susunan
baris dan kolom. Susunan pixel dalam baris dan kolom ini yang dinamakan
resolusi monitor. Resolusi monitor yang sering dijumpai adalah 640x480,
800x600, 1024x768. Resolusi 640x480 akan menampilkan pixel sejumlah
640 baris dan 480 kolom, sehingga total pixel yang digunakan 640x480 =
307.200 pixel. Melalui pixel inilah suatu gambar dapat dimanipulasi untuk
menyimpan informasi yang akan digunakan sebagai salah satu
pengimplementasian steganografi. Steganografi pada media digital file
gambar digunakan untuk mengeksploitasi keterbatasan kekuatan sistem
penglihatan manusia dengan cara menurunkan kualitas warna pada file
gambar yang belum disisipi pesan rahasia. Sehingga dengan keterbatasan
tersebut manusia sulit menemukan gradasi penurunan kualitas warna pada
file gambar yang telah disisipi pesan rahasia.
2.6.1. Bitmap
Suyanto (2003 : 263) menjelaskan, gambar bitmap adalah
gambar yang tersimpan sebagai rangkaian pixel (titik-titik) yang
21
memenuhi bidang titik-titik di layar komputer. Seluruh informasi
gambar dinyatakan dalam pixel. Untuk menampilkan gambar,
komputer akan mengatur tiap titik di layar sesuai dengan detil warna
bitmap. Kelemahannya, kita tidak dapat memperbesar atau
memperkecil resolusinya. Resolusinya bergantung pada gambar asli.
Ukuran file relatif besar, karena tersimpan dalam pixel, bukan dalam
instruksi untuk membuat gambar. Meskipun demikian gambar
bitmap mempunyai beberapa kelebihan, antara lain pengolahannya
minimal dan lebih cepat ditampilkan, karena gambar bitmap dapat
ditransfer secara langsung dari file ke layar monitor.
2.6.2. JPEG
Joint Photographic Experts Group (JPEG) adalah format
gambar yang banyak digunakan untuk menyimpan gambar-gambar
dengan ukuran lebih kecil. Beberapa karakteristik gambar JPEG :
• Memiliki ekstensi .jpg atau .jpeg.
• Mampu menayangkan warna dengan kedalaman 24-bit true color.
• Mengkompresi gambar dengan sifat lossy.
• Umumnya digunakan untuk menyimpan gambar-gambar hasil
foto.
2.6.3. GIF
Miano (1999:171), Graphics Interchange Format (GIF)
pertama kali diperkenalkan oleh CompuServe pada tahun 1987 dan
versi yang pertama disebut GIF87a. Spesifikasi ini didistibusikan
22
secara cuma-cuma dan formatnya diadopsi secara bertahap pada
setiap aplikasi pengolah gambar. CompuServe kemudian merilis GIF
versi berikutnya yaitu GIF89a yang digunakan sebagai standar. Akan
tetapi kebanyakan gambar GIF yang digunakan adalah fitur GIF87a.
Karakteristik format gambar GIF adalah :
o Mampu menayangkan maksimum sebanyak 256 warna karena
menggunakan 8-bit untuk setiap pixel-nya.
o Mendukung berbagai macam gambar tiap file.
2.7. Metode RAD
Rapid Application Development (RAD) adalah salah satu metode
pengembangan suatu sistem informasi dengan waktu yang relatif singkat.
Sebagai contoh untuk pengembangan suatu sistem informasi yang normal
membutuhkan waktu minimal 180 hari, akan tetapi dengan menggunakan
metode RAD suatu sistem dapat diselesaikan hanya dalam waktu 30-90 hari.
Tahapan-tahapan pada RAD :
a. Fase Perencanaan Syarat-Syarat
Pada tahap ini dilakukan pengidentifikasian tujuan-tujuan aplikasi
atau sistem serta untuk mengidentifikasi syarat-syarat informasi yang
ditimbulkan dari tujuan-tujuan tersebut. Hal ini penulis uraikan sebagai
analisa terhadap sistem yang berjalan dan sistem yang akan diterapkan.
23
b. Fase Workshop Design
Pada tahapan ini dilakukan perancangan proses yaitu perancangan
proses-proses yang akan terjadi di dalam aplikasi, perancangan alur
program, perancangan antarmuka yaitu perancangan antarmuka program,
serta dilakukan pengkodean terhadap rancangan-rancangan yang telah
didefinisikan.
c. Fase Implementasi
Setelah desain dari sistem yang akan dibuat sudah disetujui baik itu
oleh user dan analyst, maka pada tahap ini programmer
mengembangkan desain menjadi suatu program. Setelah program selesai
baik itu sebagian maupun secara keseluruhan, maka dilakukan proses
pengujian terhadap program tersebut apakah terdapat kesalahan atau
tidak sebelum diaplikasikan pada suatu organisasi. Pada saat ini maka
user bisa memberikan tanggapan akan sistem yang sudah dibuat serta
persetujuan mengenai sistem tersebut.
2.8. Algoritma Program
Algoritma program terdiri dari dua macam, yaitu pseudocode dan
flow chart (diagram alur).
2.8.1. Pseudoceode
Pseudo berarti imitasi dan code dihubungkan dengan
instruksi yang ditulis dalam bahasa komputer. Pseudocode
digunakan untuk menjembatani jurang antara bahasa sehari-hari
24
programmer dengan bahasa komputer. Pseudocode merupkan suatu
bahasa yang memungkinkan programmer untuk berpikir terhadap
permasalahan yang harus dipecahkan tanpa harus memikirkan syntax
dari bahasa pemrograman tertentu. Tidak ada aturan penulisan syntax
di dalam Pseudocode. Jadi Pseudocode digunakan untuk
mengambarkan logika urutan dari program tanpa memandang
bagaimana bahasa pemrogramannya.
Setelah kode program dirancang dalam Pseudocode dan telah
diperiksa dan diteliti, baru dibuat program yang sebenarnya.
Biasanya kata-kata kunci (keywords) atau kata-kata cadangan
(reserved words) ditulis dengan huruf tebal (Hartono 1999:669).
2.8.2. Flow Chart
Hartono (1999:662) dalam bukunya menjelaskan, Bagan alir
program (program flowchart) adalah suatu bagan yang
menggambarkan arus logika dari data yang akan diproses dalam
suatu program dari awal sampai akhir. Bagan alir program
merupakan alat yang berguna bagi programmer untuk
mempersiapkan program yang rumit. Bagan alir terdiri dari simbol-
simbol yang mewakili fungsi-fungsi langkah program dan garis alir
(flowlines) menunjukkan urutan dari simbol-simbol yang akan
dikerjakan.
Berikut ini adalah simbol-simbol program flowchart
menurut ANSI (American National Standard Institute).
25
Tabel 2.2 Simbol-simbol Flowchart
SIMBOL KEGUNAAN
Simbol yang menunjukkan pengolahan
yang dilakukan oleh komputer
Simbol yang menyatakan proses input
dan output tanpa tergantung dengan
jenis peralatannya.
Simbol untuk kondisi yang akan
menghasilkan beberapa kemungkinan
jawaban/aksi.
Simbol untuk permulaan atau akhir dari
suatu program.
Simbol untuk keluar atau masuk
prosedur atau proses dalam lembar yang
sama.
Menunjukkan bagan instruksi
selanjutnya
Simbol untuk menyatakan input berasal
Simbol proses
Simbol input-output
Simbol decision
Simbol terminal
Simbol connector
26
dari dokumen dalam bentuk kertas atau
output dicetak di kertas.
Berisi catatan supaya mudah dimengerti
isi/tujuan algoritma atau uraian data
yang akan diproses.
Tanda hubung antara simbol flowchart
yang berbeda halaman.
Simbol document
Simbol catatan/keterangan
2.8.3. STD (State Transition Diagram)
State Transition Diagram merupakan suatu diagram yang
menggambarkan bagaimana state yang lain pada satu waktu. State
Transition Diagram menggambarkan suatu state yang mempunyai
kondisi dimana dapat menyebabkan perubahan satu state ke state
yang lain (Hoffer 1996:364).
State Transition Diagram pada dasarnya merupakan sebuah
diagram yang terdiri dari state dan transisi atau perpindahan state.
Transisi atau perpindahan state. Transisi atau perpindahan state
terdiri dari kondisi dan aksi. Transisi di antara kedua keadaan pada
umumnya disebabkan oleh suatu kondisi. Kondisi adalah suatu
kejadian yang dapat diketahui oleh sistem. Sedangkan aksi adalah
tindakan yang dilakukan oleh sistem apabila terjadi perubahan state
atau merupakan reaksi dari sistem.
27
Adapun perubahan atau simbol yang digunakan dalam
diagram ini adalah :
State 2
State 1
Aksi
Gambar 2.5 Contoh perubahan state
a. Modul
Menggunakan simbol lingkaran kecil (Gambar 2.6) yang
mewakili modul yang dipanggil apabila terjadi tindakan.
Gambar 2.6 Notasi Modul
b. Tampilan Kondisi
Merupakan layer yang ditampilkan menurut keadaan atau atribut,
untuk memenuhi suatu tindakan pada waktu tertentu yang
mewakili suatu bentuk keberadaan atau kondisi tertentu,
disimbolkan dengan gambar kotak (Gambar 2.7).
Gambar 2.7 Notasi Tampilan
28
c. Tindakan (state transition)
Menggunakan simbol anak panah (Gambar 2.8) disertai
keterangan tindakan yang dilakukan.
Gambar 2.8 Notasi Tindakan
2.9. Pengenalan Microsoft Visual Basic 6.0
Microsoft Visual Basic adalah salah satu bahasa pemrograman
komputer. Bahasa pemrograman Visual Basic, yang dikembangkan oleh
Microsoft sejak tahun 1991, merupakan pengembangan dari pendahulunya
yaitu bahasa pemrograman BASIC (Beginner’s All-purpose Simbolic
Instruction Code) yang dikembangkan pada era 1950-an. Visual Basic
merupakan salah satu Development Tool yaitu alat bantu untuk membuat
berbagai macam program komputer, khususnya yang menggunakan sistem
operasi Windows. Visual Basic merupakan salah satu bahasa pemrograman
komputer yang mendukung object (Object Oriented Programming = OOP).
Salah satu kelebihan dari VB adalah kemampuannya untuk
mengkompilasi program dalam bentuk Native Code, yaitu pada saat
processor mengkompilasi dan menjalankan program tersebut. Keuntungan
yang didapat dari native code adalah kecepatannya dalam mengakses
program, dimana hal ini hanya dapat kita temui pada aplikasi yang
dikompilasi dengan bahasa pemrograman C++.
29
Selain itu juga VB mempunyai kemanpuan menyediakan fasilitas
antar muka penulisan kode program yang lebih mudah dimengerti dan
dipakai sehingga berbagai tipe program dapat dikembangkan didalamnya,
misalnya EXE, DLL, OCX, bahkan program-program yang berbasis
internet.
2.9.1. Mengenal Integrated Development Environment (IDE) Microsoft
Visual Basic 6.0
Semua fasilitas VB ditampilkan dalam bentuk Integrated
Development Environment (IDE). Beberapa kelebihan IDE VB
adalah sebagai berikut:
1. Dapat mengembangkan beberapa project sekaligus.
2. Memanajemen project dalam bentuk form, module, dan class.
3. Fasilitas informasi lengkap seperti; property, informasi dan tip
singkat.
4. Editor code program dengan fasilitas klik kanan untuk
melengkapi kode program yang ditulis sehingga memperkecil
kemungkinan terjadinya kesalahan dalam penulisan kode
program.
Dalam proses pengembangan program dengan bahasa VB
kita akan diminta untuk memilih New Project. Ada 3 tap pada New
Project, yaitu sebagai berikut:
1. New, kita dapat memilih tipe proyek yang akan kita bangun. Ada
beberapa tipe proyek yang dapat kita pilih, yaitu; (Stkitard EXE,
30
Active EXE, Active DLL, ActiveX Control, VB Application
Wizard, VB Wizard Manager, Data Project, ISS Application,
Addin, VB Enterprise Edition Control)
2. Existing, Kita memilih proyek yang sudah kita kerjakan
sebelumnya dan sudah tersimpan dalam komputer.
3. Recent VB menampilkan proyek-proyek yang paling sering kita
gunakan.
Aktifkan VB 6.0 melalui tombol Start > Programs >
Microsoft Visual Studio 6.0 > Microsoft Visual Basic 6.0. Tunggulah
beberapa saat hingga muncul tampilan berikut :
Gambar 2.9 Pilih stantard pengembangan dengan bahasa VB
Pilih Statard EXE dan klik tombol Open. Kita akan melihat
tampilan area kerja atau IDE VB 6. Kenali bagian-bagian utama di
dalam IDE VB 6 berikut ini :
31
Gambar 2.10 Tampilan form aplikasi pemrograman VB 6.0
1. Menubar
2. Toolbar
3. Toolbox. Bila Toolbox tidak muncul klik tombol Toolbox ( )
pada bagian Toolbar atau klik menu View > Toolbox.
4. Jendela Form. Bila Jendela Form tidak muncul klik tombol
View Object ( ) pada bagian Project Explorer atau klik menu
View > Object.
5. Jendela Code. Bila Jendela Code tidak muncul klik tombol View
Code ( ) di pada bagian Project Explorer atau klik menu View
> Code.
6. Project Explorer. Bila Project Explorer tidak muncul klik
tombol Project Explorer ( ) pada bagian. Toolbar atau klik
menu View > Project Explorer.
32
7. Jendela Properties. Bila Jendela Properties tidak muncul klik
tombol Properties Window ( ) pada bagian Toolbar atau
klik menu View > Properties Window.
Gambar 2.11 Tools menu
Untuk menambah control tambahan dalam VB, gunakan kombinasi
tombol Ctrl+T.
Gambar 2.12 Tampilan component
33
BAB III
METODE PENELITIAN
Seperti yang telah dibahas pada bab 1, dalam pembuatan aplikasi keamanan data
ini, ada beberapa tahapan yang dilakukan di antaranya :
3.1. Metode Pengumpulan Data
1. Studi Pustaka
Dilakukan dengan cara membaca dan mempelajari buku-buku dan
artikel yang berhubungan dengan keamanan data khususnya tentang
steganografi, serta buku-buku yang mendukung dengan topik yang akan
dibahas dalam penyusunan skripsi ini.
2. Literatur
Menggunakan beberapa jurnal dan skripsi yang terkait dengan
keamanan data khususnya steganografi dan kriptografi sebagai referensi
bagi penulis. Berikut list skripsi yang digunakan sebagai bahan referensi:
34
3.1 Tabel referensi literatur
No Nama penulis Judul skripsi Tahun Fakultas
1 Chandra Wirawan Keamanan Data
Mengunakan Metode
Block Cipher (Des) Dan
Stream Cipher (Rc4)
2005 FST – UIN Jakarta
2 Yuni Dwi Astuti Teknik Pengamanan
Data Steganografi
Menggunakan Metode
Modifikasi Least
Significant Bit (LSB)
2005 FTI - Gunadarma
3 Dwi Intan Pertiwi Implemetasi Metode
Least Significant Bit
Pada Stegnografi
2006 FTI - Gunadarma
Berdasarkan beberapa referensi literatur diatas, penulis mencoba
untuk melakukan pengembangan dengan menggabungkan 2 metode
pengamanan data yaitu kriptografi (metode RC4) dan steganografi
(metode LSB Insertion).
3. Diskusi
Melakukan diskusi dengan dosen pembimbing dan teman-teman
serta orang-orang yang mengerti terhadap materi bahasan agar
mendapatkan bahan masukan untuk penyusunan skripsi ini.
35
3.2. Metode Pengembangan Sistem
Pengembangan sistem dalam penelitian ini penulis lakukan
menggunakan tiga tahap siklus pengembangan model RAD (Rapid Aplication
Development), yaitu fase perencanaan syarat, fase workshop desain
(perancangan dan konstruksi), dan fase implementasi. Model RAD adalah
suatu pendekatan berorientasi objek terhadap pengembangan sistem yang
mencakup suatu metode pengembangan perangkat-perangkat lunak.
Tujuannya adalah mempersingkat waktu pengerjaan aplikasi serta proses
yang dihasilkan didapatkan secara cepat dan tepat. Syarat-syarat
menggunakan RAD adalah pihak perekayasa perangkat lunak telah
mengetahui dengan jelas kebutuhan user (pengguna) dengan tepat,
mengetahui proses-proses apa saja yang ada dalam perangkat lunak yang
dibuat, dan input-output yang dihasilkan.
Kendall (2003: 327), mengilustrasikan model RAD seperti pada (Gambar
3.1 ).
36
Fase Perencanaan Syarat-syarat
Menentukan
Tujuan dan syarat-syarat Informasi
Gambar 3.1 Siklus pengembangan sistem model RAD
Sumber : Kendall (2003: 327)
Membangun
Sistem
Fase Implementasi
Memperkenalkan
Sistem
Bekerja dengan Pengguna untuk
Sistem Perancangan
Fase KontruksiFase Perancangan
Umpan Balik Pengguna
Menggunakan masukkan dari
pengguna
37
38
a. Fase Perencanaan Syarat-Syarat
Pada tahap ini dilakukan pengidentifikasian tujuan-tujuan
aplikasi atau sistem serta untuk mengidentifikasi syarat-syarat
informasi yang ditimbulkan dari tujuan-tujuan tersebut. Hal ini penulis
uraikan sebagai analisa terhadap sistem yang berjalan dan sistem yang
akan diterapkan.
b. Fase Workshop Design
Pada tahapan ini dilakukan perancangan proses yaitu
perancangan proses-proses yang akan terjadi di dalam aplikasi,
perancangan alur program, perancangan antarmuka yaitu perancangan
antarmuka program, serta dilakukan pengkodean terhadap rancangan-
rancangan yang telah didefinisikan.
c. Fase Implementasi
Pada tahap ini dilakukan pengujian terhadap sistem dan
melakukan pengenalan terhadap sistem kepada pengguna.
BAB IV
ANALISIS PERANCANGAN PROGRAM DAN IMPLEMENTASI
Dalam perancangan dan pengembangan aplikasi keamanan data ini penulis
menggunakan metode RAD (Rapid Application Development), yang terdiri dari
Tiga tahap yaitu: Fase perencanaan syarat-syarat, Fase workshop desain, dan Fase
implementasi.
4.1. Fase Perencanaan Syarat-Syarat
Keamanan merupakan salah satu aspek yang penting dalam sebuah
sistem informasi. Suatu informasi akan memiliki nilai lebih tinggi apabila
menyangkut tentang aspek-aspek keputusan bisnis, keamanan, ataupun
kepentingan umum. Banyak orang menyiasati bagaimana cara
mengamankan informasi yang dikomunikasikan agar tidak mudah di akses
oleh pihak yang tidak berwenang. Untuk mengantisipasi hal yang tidak
diinginkan tersebut maka perlu di buat suatu aplikasi yang dapat digunakan
untuk tujuan tersebut, yaitu dengan menggabungkan metode steganografi
dan kriptografi sebagai salah satu alternatif pengaman data yang lebih baik.
Syarat-syarat informasi yang diperlukan agar tujuan pengembangan
aplikasi ini bisa tercapai.
a. Pengetahuan metode steganografi (LSB insertion).
b. Pengetahuan metode kriptografi (RC4 stream cipher).
c. Pengetahuan bahasa pemrograman yang akan digunakan.
39
4.2. Fase workshop desain
4.2.1. Perancangan Algoritma
Algoritma yang penulis kembangkan adalah menggabungkan metode
steganografi (LSB insertion) dan metode kriptogafi (RC4 strem cipher)
dalam mengencode dan mendecode file. Proses encode dan decode dapat
dilihat melalui gambar 4.1 di bawah ini :
40
1. Algoritma RC4 stream cipher
Algoritma kriptografi RC4 merupakan salah satu algoritma
berjenis stream cipher. Algoritma ini akan memproses data dalam
ukuran byte demi byte (1 byte = 8 bit). Algoritma ini dapat melakukan
enkripsi dan dekripsi pada panjang data yang variabel atau dinamis tanpa
perlu adanya penambahan byte (padding).
Kunci utama RC4 maksimal sepanjang 2048 bit (256 byte),
namun yang biasa digunakan hanya sepanjang 40 bit atau 128 bit.
Sisanya (2048 – 40 = 2008 bit atau 2048 – 128 = 1920 bit) diisi dengan
perulangan kunci tersebut. Jadi jika kuncinya berupa 16 byte (128 bit) K
= 0123456789abcdef dimana setiap angka merupakan bilangan
hexadesimal maka byte ke-17 sampai byte ke-256 berisi K tersebut
secara berulang.
RC4 mempunyai sebuah S-Box, S0, S1, ... , S255, yang berisi
permutasi dari bilangan 0 sampai 255, dan permutasi merupakan fungsi
dari kunci K dengan panjang yang variabel. Langkah – langkah
algoritma kriptografi RC4 sebagai berikut :
1. Inisialisasi S-Box
• Isi S-Box secara berurutan, yaitu S0=0, S1=1, ... , S255=255.
• Lakukan padding kunci K sehingga panjang kunci K = 256.
• Lakukan pertukaran dan pengisian pada S-Boxdengan kunci K,
sebagai berikut :
j = 0
41
for i = 0 to 255
j = (j + Si + Ki) mod 256
swap Si dan Sj
Fungsi swap merupakan fungsi yang menukarkan nilai S ke-i
dengan nilai S ke-j
2. Proses enkripsi atau dekripsi RC4 :
i = 0
j = 0
for idx = 0 to len-1
i = (i + 1) mod 256
j = (j + Si) mod 256
swap Si dan Sj
t = (Si + Sj) mod 256
k = St
buffidx = k XOR buffidx
Keterangan:
• buff merupakan pesan yang akan dienkripsi atau dekripsi
• len merupakan panjang dari buff
Hasil akhir dari proses di atas ialah buff yang berisi pesan yang telah
dienkripsi atau dekripsi.
42
2. Algoritma Steganografi
Pada file gambar BMP 24 bit setiap pixel pada gambar terdiri
dari susunan tiga warna yaitu merah, hijau, biru ( RGB ) yang
masing-masing disusun oleh bilangan 8 bit ( 1 byte ) dari 0 sampai
255 atau dengan format biner 00000000 sampai 11111111. Informasi
dari warna biru berada pada bit pertama sampai bit delapan, dan
informasi warna hijau berada pada bit sembilan sampai dengan bit
16, sedangkan informasi warna merah berada pada bit 17 sampai
dengan bit 24. Metode penyisipan LSB (least significant bit) ini
adalah menyisipi pesan dengan cara mengganti bit ke 8, 16 dan 24
pada representasi biner file gambar dengan representasi biner pesan
rahasia yang akan disembunyikan. Dengan demikian pada setiap
pixel file gambar BMP 24 bit dapat disisipkan 3 bit pesan, misalnya
terdapat data raster original file gambar adalah sebagai berikut :
(00100111 11101001 11001000)
(00100111 11001000 11101001)
(11001000 00100111 11101001)
Dan nilai biner untuk A adalah 10000011. Sisipan nilai biner untuk
A dalam tiga pixel tersebut akan menghasilkan :
(00100111 11101000 11001000)
(00100110 11001000 11101000)
(11001000 00100111 11101001)
43
Bit-bit yang digaris bawahi hanya tiga perubahan secara
aktual dalam 8 byte yang digunakan. Secara rata-rata, LSB
membutuhkan hanya setengah bit dalam suatu perubahan gambar.
Kita dapat menyembunyikan data dalam least dan second least
significant bit dan mata manusia masih belum dapat
membedakannya.
Berikut algoritma steganografi LSB insertion :
1. Sepanjang jumlah huruf, lakukan langkah 2 sampai 4
2. Konversi huruf dalam pesan yang akan disisipkan menjadi biner
3. Baca informasi warna dari tiap pixel (pecah menjadi 3 : R, G ,B).
4. Tukar biner terakhir yang didapat dari pixel-pixel tersebut sesuai
dengan biner huruf yang akan disisipkan disisipkan.
Ukuran data yang akan disembunyikan bergantung pada
ukuran citra penampung. Pada citra 8-bit yang berukuran 256 × 256
pixel terdapat 65536 pixel, setiap pixel berukuran 1 byte. Setelah
diubah menajdi citra 24-bit, ukuran data bitmap menjadi 65536 × 3 =
196608 bit. Karena setiap byte hanya bisa menyembunyikan satu bit
di LSB-nya, maka ukuran data yang akan disembunyikan di dalam
citra adalah 196608/8 = 24576 byte. Semakin besar data
disembunyikan di dalam citra, semakin besar pula kemungkinan data
tersebut rusak akibat manipulasi pada citra penampung.
44
4.2.2. Perancangan Flowchart
a. Flowchart layar login
Flowchart layar login yang terdapat di dalam aplikasi ini
diperlihatkan dalam gambar 4.2 berikut ini.
45
b. Flowchart layar menu utama
Flowchart layar menu utama yang terdapat dalam system ini
diperlihatkan pada gambar 4.3 berikut ini.
46
c. Flowchart layar menu encode
Flowchart layar menu encode yang terdapat dalam system ini
diperlihatkan pada gambar-gambar berikut ini.
47
48
49
50
d. Flowchart layar menu decode
Flowchart layar menu decode yang terdapat dalam system ini
diperlihatkan pada gambar-gambar berikut ini.
51
52
53
54
e. Flowchart layar about
Flowchart layar menu about yang terdapat dalam system ini
diperlihatkan pada gambar 4.12 berikut ini.
55
f. Flowchart layar help
Flowchart layar menu help yang terdapat dalam system ini
diperlihatkan pada gambar 4.13 berikut ini.
56
4.2.3. Perancangan Antarmuka
1. Form login
Form login berfungsi untuk verifikasi user yang berhak
mengakses aplikasi. Form ini menampilkan nama dari program
yang dibuat, User Name, Password, tombol Login, tombol Batal
dan juga berisi teks-teks keterangan.
Masukan nama user dan password
Password :
User :
LOGIN
Login Batal
Gambar 4.14 Form login
2. Form utama
Form Menu utama merupakan tampilan utama pada aplikasi
stegSECURE 1.0. Pada form ini terdapat 5 tombol utama yang
masing-masing mempuyai fungsi sebagai berikut :
• Tombol Encode : berfungsi untuk menampilkan form encode
• Tombol Decode : berfungsi untuk menampilkan form decode
• Tombol About : berfungsi untuk menampilkan form about
• Tombol Help : berfungsi untuk menampilkan form help
57
• Tombol Exit : berfungsi untuk keluar dari form menu utama.
Untuk memperjelas rancangan Form Menu Utama dapat dilihat
pada gambar 4.15
x
Decode
Help
Exit
About
Encode
Gambar
Gambar 4.15 Form utama
3. Form encode
Form encode berfungsi untuk menginput gambar penyembunyi,
file yang akan diencode, password, serta menjalankan proses
encode. Tampilan yang menyerupai wizard memudahkan dalam
menjalankan aplikasi langkah demi langkah.
Form encode ini dilengkapi dengan 5 tombol yang mempunyai
fungsi sebagai berikut :
• Tombol Cari : berfungsi untuk menampilkan form lokasi file
• Tambol Batal : berfungsi untuk kembali ke form menu utama
58
• Tombol Kembali : berfungsi untuk kembali ke menu
sebelumnya
• Tombol Lanjut : berfungsi untuk melanjutkan ke menu
berikutnya
• Tombol Encode : berfungsi untuk menjalankan proses encode
Untuk memperjelas rancangan Form Encode dapat dilihat pada
gambar-gambar berikut.
rjelas rancangan Form Encode dapat dilihat pada
gambar-gambar berikut.
xStegSECURE 1.0
Image Preview
Kembali Batal Lanjut Encode
Cari
File info File info File info File info
Pilih Gambar Penyembunyi (*.bmp) Langkah 1
Gambar 4.16 Form encode langkah1
59
xStegSECURE 1.0
Gambar 4.18 Form encode langkah3
Kembali Batal Lanjut Encode
Masukan Password :
StegSECURE 1.0
Langkah 3
x
Password Min 6 Karakter, Max 8 Karakter
Gambar 4.17 Form encode langkah2
Kembali Batal Lanjut Encode
Cari
File info File info File info
Pilih File Yang Akan Disembunyikan : Langkah 2
60
xStegSECURE 1.0
Langkah 4
Text info
Batal Kembali Lanjut Encode
Gambar 4.19 Form encode langkah4
4. Form decode
Form decode berfungsi untuk menginput gambar yang akan di
decode, gambar original sebagai stego key, password, serta
menjalankan proses decode. Tampilan yang menyerupai wizard
memudahkan dalam menjalankan aplikasi langkah demi langkah.
Form decode ini dilengkapi dengan 5 tombol yang mempunyai
fungsi sebagai berikut :
• Tombol Cari : berfungsi untuk menampilkan form lokasi file
• Tambol Batal : berfungsi untuk kembali ke form menu utama
• Tombol Kembali : berfungsi untuk kembali ke menu
sebelumnya
61
• Tombol Lanjut : berfungsi untuk melanjutkan ke menu
berikutnya
• Tombol decode : berfungsi untuk menjalankan proses decode
Untuk memperjelas rancangan Form decode dapat dilihat pada
gambar-gambar berikut.
Image Preview
Kembali Batal Lanjut Decode
Cari
File info File info File info
Pilih Gambar Yang Akan Di Decode (*.bmp)
StegSECURE 1.0
Langkah 1
x
Gambar 4.20 Form decode langkah1
62
xStegSECURE 1.0
Pilih Gambar Asli (Image Key) : Langkah 2
File info File info File info
Cari
Decode Lanjut Batal Kembali
Image Preview
Gambar 4.21 Form decode langkah2
xStegSECURE 1.0
Gambar 4.22 Form decode langkah3
Kembali Batal Lanjut Decode
Masukan Password : Langkah 3
63
xStegSECURE 1.0
Langkah 4
Text info
Batal Kembali Lanjut Decode
Gambar 4.23 Form decode langkah4
5. Form about
Form about berisi tentang untuk apa program ini dibuat. Form
about ini dilengkapi dengan 1 tombol (Tombol OK) yang
mempunyai fungsi untuk menutup Form about.
stegSECURE 10
Text
Copyright @ 2008 UIN
OK
Gambar 4.24 Form about
64
6. Form help
Form help berfungsi sebagai menu bantuan bagi pemakai yang
belum mengerti atau memahami cara mengunakan aplikasi
stegSECURE.
Form help ini dilengkapi dengan 6 tombol yang mempunyai fungsi
sebagai berikut:
• Tombol Hide : berfungsi untuk menyembuyikan tab Contens
dan Index
• Tambol Back : berfungsi untuk menampilkan kembali
halaman yang telah dibuka sebelumnya
• Tombol Print : berfungsi untuk mencetak halaman bantuan
yang ditampilkan
• Tombol Options
Memiliki beberapa fungsi, yaitu :
o Menampilkan dan menyembuyikan Tab
o Menampilkan halaman yang sebelumnya telah dibuka
(Back)
o Menampilkan halaman yang sesudah dibuka (Forword)
o Kembali kehalaman utama (Home)
o Menghentikan Proses (Stop)
o Merefresh program Help (Refresh)
o Menampilkan Internet Options
65
• Tombol Contens : berfungsi untuk menampilkan Topik
bantuan
• Tombol Index : berfungsi untuk menampilkan Indek kata
yang biasa digunakan
Untuk memperjelas rancangan Form Help dapat dilihat pada
gambar 4.25
Gambar 4.25 Form help
Hide Back Options Print
Contents Index
66
4.2.4. State Transition Diagram (STD)
4.3. Fase implementasi
4.3.1 Sarana pendukung aplikasi
1. Perangkat Keras (Hardware)
Perangkat keras untuk menjalankan aplikasi keamanan data ini
adalah suatu unit komputer dengan konfigurasi sebagai berikut:
a. Prosessor setara Pentium III ke atas.
b. Memori minimal 128 MB.
67
c. Monitor dengan resolusi 1024 x 768 pixel
d. VGA minimal 8 MB.
e. Keyboard dan mouse.
2. Perangkat Lunak (Software)
Spesifikasi perangkat lunak dan sistem operasi yang digunakan
adalah sebagai berikut:
a. Sistem Operasi Windows 98/2000/NT/XP.
b. Microsoft Office 98/2000/XP/2003.
4.3.2 Pengujian aplikasi stegSECURE
Berikut pengujian aplikasi stegSECURE dengan menggunakan 3 file
gambar penyembunyi dengan ukuran dan dimensi yang berbeda.
Tabel 4.1 Gambar bitmap yang digunakan
Gambar Ukuran Dimensi
Thundercats 1.37 MB 800 x 600
Superman15 2.25 MB 1024 x 768
Gaya 7.88 MB 1913 x 1441
4.3.2.1. Format file dengan extention *.xls
Untuk menjalankan aplikasi stegSECURE dapat dilakukan dengan
beberapa cara yaitu :
a. Klik tombol Start pada menu Windows, lalu pilih All programs
kemudian plih stegSECURE
68
b. Dengan cara mengklik dua kali pada shortcut stegSECURE
Setelah Executable file dipanggil dengan salah satu cara diatas, maka
akan ditampilkan pertama kali adalah layar login dari program.
Pada tampilan Login ini user terlebih dahulu harus memasukkan User
Name dan Password, bila syarat terpenuhi maka user akan ditampilkan
pada menu utama, sedangkan bila syarat tidak terpenuhi maka user
akan diberikan peringatan bahwa user name dan password anda salah.
Adapun syarat pengisisan dari User adalah “user” sedangkan untuk
Password adalah “masuk#”.
Gambar 4.27 Konfirmasi salah user name atau password
Setelah syarat terpenuhi maka tampilan layar Login akan ditutup dan
kemudian dilanjutkan dengan menampilkan layar Utama.
69
1. Proses encode file *.xls
Untuk dapat masuk ke menu encode, hal yang harus dilakukan
adalah menekan tombol Encode pada menu utama. Berikut
tampilan form encode langkah1
70
Setelah menu encode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan digunakan sebagai media
penyembunyi dengan menekan tombol Cari. Setelah itu tampil
kotak menu open dialog sebagai berikut :
71
Pada menu open dialog di atas, tentukan file bitmap yang akan
jadikan media penyembunyi dengan cara pilih dan klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
pada file yang sudah dipilih, sehingga tampilan form encode
langkah1 menjadi seperti berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form encode langkah2
seperti gambar dibawah ini.
72
Tentukan file yang ingin disembunyikan dengan menekan tombol
Cari atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
Pilih file yang akan disembunyikan dengan cara klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
73
pada file yang sudah dipilih, sehingga tampilan form encode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form encode langkah3 seperti gambar
berikut :
74
Kemudian isikan password sesuai dengan ketentuan (password
karakter minimal 6 karakter, maksimal 8 karakter), lalu tekan
tombol Lanjut. Maka muncul form encode langkah4.
Pilih tombol Encode untuk melakukan proses encode sehingga
tampilannya menjadi seperti gambar berikut :
75
Setelah proses encode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil encode.
Gunakan nama default pada File name yang muncul di kotak
dialog untuk mempermudah pada saat proses decode.
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK
76
Selanjutnya klik tombol Keluar untuk keluar dari form encode dan
kembali ke menu utama.
2. Proses decode file *.xls
Untuk dapat masuk ke menu decode, hal yang harus dilakukan
adalah menekan tombol Decode pada menu utama. Berikut
tampilan form encode langkah1.
77
Setelah menu Decode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan di decode dengan menekan
tombol Cari. Setelah itu tampil kotak menu open dialog sebagai
berikut :
78
Pada menu open dialog di atas, tentukan file bitmap yang akan di
decode dengan cara pilih dan klik pada salah satu file tersebut,
kemudian klik tombol Open atau klik dua kali pada file yang sudah
dipilih, sehingga tampilan form encode langkah1 menjadi seperti
berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form decode langkah2
seperti gambar dibawah ini.
79
Pilih gambar asli (gambar original) dengan menekan tombol Cari
atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
80
Pada menu open dialog di atas, pilih gambar original sebagai stego
key agar proses dapat dilanjutkan dengan cara pilih dan klik pada
salah satu file tersebut, kemudian klik tombol Open atau klik dua
kali pada file yang sudah dipilih, sehingga tampilan form decode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form decode langkah3 seperti gambar
berikut :
81
Kemudian isikan password, sama seperti password yang diinput
pada saat proses encode. Jika password yang diinput tidak sama
seperti pada saat proses encode, maka file hasil decode tidak dapat
buka secara utuh (masih ter-enkripsi). Tekan tombol Lanjut, maka
muncul form encode langkah4
82
Pilih tombol Decode untuk melakukan proses decode sehingga
tampilannya menjadi seperti gambar berikut :
Setelah proses decode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil decode.
Gunakan nama default pada File name yang muncul di kotak
dialog.
83
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK, maka file hasil decode akan di simpan
sesuai dengan direktori yang tercantum di kotak dialog konfirmasi.
84
Selanjutnya klik tombol Keluar untuk keluar dari form decode dan
kembali ke menu utama.
4.3.2.2. Format file dengan extention *.doc
Untuk menjalankan aplikasi stegSECURE dapat dilakukan dengan
beberapa cara yaitu :
a. Klik tombol Start pada menu Windows, lalu pilih All programs
kemudian plih stegSECURE
b. Dengan cara mengklik dua kali pada shortcut stegSECURE
Setelah Executable file dipanggil dengan salah satu cara diatas, maka
akan ditampilkan pertama kali adalah layar login dari program.
85
Pada tampilan Login ini user terlebih dahulu harus memasukkan User
Name dan Password, bila syarat terpenuhi maka user akan ditampilkan
pada menu utama, sedangkan bila syarat tidak terpenuhi maka user
akan diberikan peringatan bahwa user name dan password anda salah.
Adapun syarat pengisisan dari User adalah “user” sedangkan untuk
Password adalah “masuk#”.
Gambar 4.27 Konfirmasi salah user name atau password
Setelah syarat terpenuhi maka tampilan layar Login akan ditutup dan
kemudian dilanjutkan dengan menampilkan layar Utama.
86
1. Proses encode file *.doc
Untuk dapat masuk ke menu encode, hal yang harus dilakukan
adalah menekan tombol Encode pada menu utama. Berikut
tampilan form encode langkah1
87
Setelah menu encode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan digunakan sebagai media
penyembunyi dengan menekan tombol Cari. Setelah itu tampil
kotak menu open dialog sebagai berikut :
88
Pada menu open dialog di atas, tentukan file bitmap yang akan
jadikan media penyembunyi dengan cara pilih dan klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
pada file yang sudah dipilih, sehingga tampilan form encode
langkah1 menjadi seperti berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form encode langkah2
seperti gambar dibawah ini.
89
Tentukan file yang ingin disembunyikan dengan menekan tombol
Cari atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
Pilih file yang akan disembunyikan dengan cara klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
90
pada file yang sudah dipilih, sehingga tampilan form encode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form encode langkah3 seperti gambar
berikut :
91
Kemudian isikan password sesuai dengan ketentuan (password
karakter minimal 6 karakter, maksimal 8 karakter), lalu tekan
tombol Lanjut. Maka muncul form encode langkah4.
Pilih tombol Encode untuk melakukan proses encode sehingga
tampilannya menjadi seperti gambar berikut :
92
Setelah proses encode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil encode.
Gunakan nama default pada File name yang muncul di kotak
dialog untuk mempermudah pada saat proses decode.
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK
93
Selanjutnya klik tombol Keluar untuk keluar dari form encode dan
kembali ke menu utama.
2. Proses decode file *.doc
Untuk dapat masuk ke menu decode, hal yang harus dilakukan
adalah menekan tombol Decode pada menu utama. Berikut
tampilan form encode langkah1.
94
Setelah menu Decode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan di decode dengan menekan
tombol Cari. Setelah itu tampil kotak menu open dialog sebagai
berikut :
95
Pada menu open dialog di atas, tentukan file bitmap yang akan di
decode dengan cara pilih dan klik pada salah satu file tersebut,
kemudian klik tombol Open atau klik dua kali pada file yang sudah
dipilih, sehingga tampilan form encode langkah1 menjadi seperti
berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form decode langkah2
seperti gambar dibawah ini.
96
Pilih gambar asli (gambar original) dengan menekan tombol Cari
atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
97
Pada menu open dialog di atas, pilih gambar original sebagai stego
key agar proses dapat dilanjutkan dengan cara pilih dan klik pada
salah satu file tersebut, kemudian klik tombol Open atau klik dua
kali pada file yang sudah dipilih, sehingga tampilan form decode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form decode langkah3 seperti gambar
berikut :
98
Kemudian isikan password, sama seperti password yang diinput
pada saat proses encode. Jika password yang diinput tidak sama
seperti pada saat proses encode, maka file hasil decode tidak dapat
buka secara utuh (masih ter-enkripsi). Tekan tombol Lanjut, maka
muncul form encode langkah4
99
Pilih tombol Decode untuk melakukan proses decode sehingga
tampilannya menjadi seperti gambar berikut :
Setelah proses decode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil decode.
Gunakan nama default pada File name yang muncul di kotak
dialog.
100
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK, maka file hasil decode akan di simpan
sesuai dengan direktori yang tercantum di kotak dialog konfirmasi.
101
Selanjutnya klik tombol Keluar untuk keluar dari form decode dan
kembali ke menu utama.
4.3.2.3. Format file dengan extention *.txt
Untuk menjalankan aplikasi stegSECURE dapat dilakukan dengan
beberapa cara yaitu :
a. Klik tombol Start pada menu Windows, lalu pilih All programs
kemudian plih stegSECURE
b. Dengan cara mengklik dua kali pada shortcut stegSECURE
Setelah Executable file dipanggil dengan salah satu cara diatas, maka
akan ditampilkan pertama kali adalah layar login dari program.
102
Pada tampilan Login ini user terlebih dahulu harus memasukkan User
Name dan Password, bila syarat terpenuhi maka user akan ditampilkan
pada menu utama, sedangkan bila syarat tidak terpenuhi maka user
akan diberikan peringatan bahwa user name dan password anda salah.
Adapun syarat pengisisan dari User adalah “user” sedangkan untuk
Password adalah “masuk#”.
Gambar 4.27 Konfirmasi salah user name atau password
Setelah syarat terpenuhi maka tampilan layar Login akan ditutup dan
kemudian dilanjutkan dengan menampilkan layar Utama.
103
1. Proses encode file *.txt
Untuk dapat masuk ke menu encode, hal yang harus dilakukan
adalah menekan tombol Encode pada menu utama. Berikut
tampilan form encode langkah1
104
Setelah menu encode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan digunakan sebagai media
penyembunyi dengan menekan tombol Cari. Setelah itu tampil
kotak menu open dialog sebagai berikut :
105
Pada menu open dialog di atas, tentukan file bitmap yang akan
jadikan media penyembunyi dengan cara pilih dan klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
pada file yang sudah dipilih, sehingga tampilan form encode
langkah1 menjadi seperti berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form encode langkah2
seperti gambar dibawah ini.
106
Tentukan file yang ingin disembunyikan dengan menekan tombol
Cari atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
Pilih file yang akan disembunyikan dengan cara klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
107
pada file yang sudah dipilih, sehingga tampilan form encode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form encode langkah3 seperti gambar
berikut :
108
Kemudian isikan password sesuai dengan ketentuan (password
karakter minimal 6 karakter, maksimal 8 karakter), lalu tekan
tombol Lanjut. Maka muncul form encode langkah4.
Pilih tombol Encode untuk melakukan proses encode sehingga
tampilannya menjadi seperti gambar berikut :
109
Setelah proses encode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil encode.
Gunakan nama default pada File name yang muncul di kotak
dialog untuk mempermudah pada saat proses decode.
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK
110
Selanjutnya klik tombol Keluar untuk keluar dari form encode dan
kembali ke menu utama.
2. Proses decode file *.txt
Untuk dapat masuk ke menu decode, hal yang harus dilakukan
adalah menekan tombol Decode pada menu utama. Berikut
tampilan form encode langkah1.
111
Setelah menu Decode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan di decode dengan menekan
tombol Cari. Setelah itu tampil kotak menu open dialog sebagai
berikut :
112
Pada menu open dialog di atas, tentukan file bitmap yang akan di
decode dengan cara pilih dan klik pada salah satu file tersebut,
kemudian klik tombol Open atau klik dua kali pada file yang sudah
dipilih, sehingga tampilan form encode langkah1 menjadi seperti
berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form decode langkah2
seperti gambar dibawah ini.
113
Pilih gambar asli (gambar original) dengan menekan tombol Cari
atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
114
Pada menu open dialog di atas, pilih gambar original sebagai stego
key agar proses dapat dilanjutkan dengan cara pilih dan klik pada
salah satu file tersebut, kemudian klik tombol Open atau klik dua
kali pada file yang sudah dipilih, sehingga tampilan form decode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form decode langkah3 seperti gambar
berikut :
115
Kemudian isikan password, sama seperti password yang diinput
pada saat proses encode. Jika password yang diinput tidak sama
seperti pada saat proses encode, maka file hasil decode tidak dapat
buka secara utuh (masih ter-enkripsi). Tekan tombol Lanjut, maka
muncul form encode langkah4
116
Pilih tombol Decode untuk melakukan proses decode sehingga
tampilannya menjadi seperti gambar berikut :
Setelah proses decode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil decode.
Gunakan nama default pada File name yang muncul di kotak
dialog.
117
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK, maka file hasil decode akan di simpan
sesuai dengan direktori yang tercantum di kotak dialog konfirmasi.
118
Selanjutnya klik tombol Keluar untuk keluar dari form decode dan
kembali ke menu utama.
4.3.2.4. Format file dengan extention *.pdf
Untuk menjalankan aplikasi stegSECURE dapat dilakukan dengan
beberapa cara yaitu :
a. Klik tombol Start pada menu Windows, lalu pilih All programs
kemudian plih stegSECURE
b. Dengan cara mengklik dua kali pada shortcut stegSECURE
Setelah Executable file dipanggil dengan salah satu cara diatas, maka
akan ditampilkan pertama kali adalah layar login dari program.
119
Pada tampilan Login ini user terlebih dahulu harus memasukkan User
Name dan Password, bila syarat terpenuhi maka user akan ditampilkan
pada menu utama, sedangkan bila syarat tidak terpenuhi maka user
akan diberikan peringatan bahwa user name dan password anda salah.
Adapun syarat pengisisan dari User adalah “user” sedangkan untuk
Password adalah “masuk#”.
Gambar 4.27 Konfirmasi salah user name atau password
Setelah syarat terpenuhi maka tampilan layar Login akan ditutup dan
kemudian dilanjutkan dengan menampilkan layar Utama.
120
1. Proses encode file *.pdf
Untuk dapat masuk ke menu encode, hal yang harus dilakukan
adalah menekan tombol Encode pada menu utama. Berikut
tampilan form encode langkah1
121
Setelah menu encode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan digunakan sebagai media
penyembunyi dengan menekan tombol Cari. Setelah itu tampil
kotak menu open dialog sebagai berikut :
122
Pada menu open dialog di atas, tentukan file bitmap yang akan
jadikan media penyembunyi dengan cara pilih dan klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
pada file yang sudah dipilih, sehingga tampilan form encode
langkah1 menjadi seperti berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form encode langkah2
seperti gambar dibawah ini.
123
Tentukan file yang ingin disembunyikan dengan menekan tombol
Cari atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
Pilih file yang akan disembunyikan dengan cara klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
124
pada file yang sudah dipilih, sehingga tampilan form encode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form encode langkah3 seperti gambar
berikut :
125
Kemudian isikan password sesuai dengan ketentuan (password
karakter minimal 6 karakter, maksimal 8 karakter), lalu tekan
tombol Lanjut. Maka muncul form encode langkah4.
Pilih tombol Encode untuk melakukan proses encode sehingga
tampilannya menjadi seperti gambar berikut :
126
Setelah proses encode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil encode.
Gunakan nama default pada File name yang muncul di kotak
dialog untuk mempermudah pada saat proses decode.
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK
127
Selanjutnya klik tombol Keluar untuk keluar dari form encode dan
kembali ke menu utama.
2. Proses decode file *.pdf
Untuk dapat masuk ke menu decode, hal yang harus dilakukan
adalah menekan tombol Decode pada menu utama. Berikut
tampilan form encode langkah1.
128
Setelah menu Decode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan di decode dengan menekan
tombol Cari. Setelah itu tampil kotak menu open dialog sebagai
berikut :
129
Pada menu open dialog di atas, tentukan file bitmap yang akan di
decode dengan cara pilih dan klik pada salah satu file tersebut,
kemudian klik tombol Open atau klik dua kali pada file yang sudah
dipilih, sehingga tampilan form encode langkah1 menjadi seperti
berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form decode langkah2
seperti gambar dibawah ini.
130
Pilih gambar asli (gambar original) dengan menekan tombol Cari
atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
131
Pada menu open dialog di atas, pilih gambar original sebagai stego
key agar proses dapat dilanjutkan dengan cara pilih dan klik pada
salah satu file tersebut, kemudian klik tombol Open atau klik dua
kali pada file yang sudah dipilih, sehingga tampilan form decode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form decode langkah3 seperti gambar
berikut :
132
Kemudian isikan password, sama seperti password yang diinput
pada saat proses encode. Jika password yang diinput tidak sama
seperti pada saat proses encode, maka file hasil decode tidak dapat
buka secara utuh (masih ter-enkripsi). Tekan tombol Lanjut, maka
muncul form encode langkah4
133
Pilih tombol Decode untuk melakukan proses decode sehingga
tampilannya menjadi seperti gambar berikut :
Setelah proses decode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil decode.
Gunakan nama default pada File name yang muncul di kotak
dialog.
134
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK, maka file hasil decode akan di simpan
sesuai dengan direktori yang tercantum di kotak dialog konfirmasi.
135
Selanjutnya klik tombol Keluar untuk keluar dari form decode dan
kembali ke menu utama.
4.3.2.5. Format file dengan extention *.ppt
Untuk menjalankan aplikasi stegSECURE dapat dilakukan dengan
beberapa cara yaitu :
a. Klik tombol Start pada menu Windows, lalu pilih All programs
kemudian plih stegSECURE
b. Dengan cara mengklik dua kali pada shortcut stegSECURE
Setelah Executable file dipanggil dengan salah satu cara diatas, maka
akan ditampilkan pertama kali adalah layar login dari program.
136
Pada tampilan Login ini user terlebih dahulu harus memasukkan User
Name dan Password, bila syarat terpenuhi maka user akan ditampilkan
pada menu utama, sedangkan bila syarat tidak terpenuhi maka user
akan diberikan peringatan bahwa user name dan password anda salah.
Adapun syarat pengisisan dari User adalah “user” sedangkan untuk
Password adalah “masuk#”.
Gambar 4.27 Konfirmasi salah user name atau password
Setelah syarat terpenuhi maka tampilan layar Login akan ditutup dan
kemudian dilanjutkan dengan menampilkan layar Utama.
137
1. Proses encode file *.ppt
Untuk dapat masuk ke menu encode, hal yang harus dilakukan
adalah menekan tombol Encode pada menu utama. Berikut
tampilan form encode langkah1
138
Setelah menu encode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan digunakan sebagai media
penyembunyi dengan menekan tombol Cari. Setelah itu tampil
kotak menu open dialog sebagai berikut :
139
Pada menu open dialog di atas, tentukan file bitmap yang akan
jadikan media penyembunyi dengan cara pilih dan klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
pada file yang sudah dipilih, sehingga tampilan form encode
langkah1 menjadi seperti berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form encode langkah2
seperti gambar dibawah ini.
140
Tentukan file yang ingin disembunyikan dengan menekan tombol
Cari atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
Pilih file yang akan disembunyikan dengan cara klik pada salah
satu file tersebut, kemudian klik tombol Open atau klik dua kali
141
pada file yang sudah dipilih, sehingga tampilan form encode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form encode langkah3 seperti gambar
berikut :
142
Kemudian isikan password sesuai dengan ketentuan (password
karakter minimal 6 karakter, maksimal 8 karakter), lalu tekan
tombol Lanjut. Maka muncul form encode langkah4.
Pilih tombol Encode untuk melakukan proses encode sehingga
tampilannya menjadi seperti gambar berikut :
143
Setelah proses encode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil encode.
Gunakan nama default pada File name yang muncul di kotak
dialog untuk mempermudah pada saat proses decode.
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK
144
Selanjutnya klik tombol Keluar untuk keluar dari form encode dan
kembali ke menu utama.
2. Proses decode file *.ppt
Untuk dapat masuk ke menu decode, hal yang harus dilakukan
adalah menekan tombol Decode pada menu utama. Berikut
tampilan form encode langkah1.
145
Setelah menu Decode ditampilkan, maka yang harus dilakukan
adalah mencari gambar yang akan di decode dengan menekan
tombol Cari. Setelah itu tampil kotak menu open dialog sebagai
berikut :
146
Pada menu open dialog di atas, tentukan file bitmap yang akan di
decode dengan cara pilih dan klik pada salah satu file tersebut,
kemudian klik tombol Open atau klik dua kali pada file yang sudah
dipilih, sehingga tampilan form encode langkah1 menjadi seperti
berikut :
Tekan tombol Lanjut untuk meneruskan langkah berikutnya atau
tekan tombol Batal untuk kembali ke menu utama. Setelah
menekan tombol Lanjut, maka muncul form decode langkah2
seperti gambar dibawah ini.
147
Pilih gambar asli (gambar original) dengan menekan tombol Cari
atau tekan tombol Kembali jika ingin ke menu sebelumnya.
Setelah menekan tombol Cari, maka tampil kotak menu open
dialog sebagai berikut :
148
Pada menu open dialog di atas, pilih gambar original sebagai stego
key agar proses dapat dilanjutkan dengan cara pilih dan klik pada
salah satu file tersebut, kemudian klik tombol Open atau klik dua
kali pada file yang sudah dipilih, sehingga tampilan form decode
langkah2 menjadi seperti berikut :
Berikutnya tekan tombol Lanjut untuk meneruskan ke langkah
berikutnya sehingga tampil form decode langkah3 seperti gambar
berikut :
149
Kemudian isikan password, sama seperti password yang diinput
pada saat proses encode. Jika password yang diinput tidak sama
seperti pada saat proses encode, maka file hasil decode tidak dapat
buka secara utuh (masih ter-enkripsi). Tekan tombol Lanjut, maka
muncul form encode langkah4
150
Pilih tombol Decode untuk melakukan proses decode sehingga
tampilannya menjadi seperti gambar berikut :
Setelah proses decode selesai, maka akan muncul kotak dialog save
yang meminta user untuk menyimpan gambar hasil decode.
Gunakan nama default pada File name yang muncul di kotak
dialog.
151
Tekan tombol save, maka akan muncul kotak dialog konfirmasi
seperti gambar dibawah ini :
Kemudian klik tombol OK, maka file hasil decode akan di simpan
sesuai dengan direktori yang tercantum di kotak dialog konfirmasi.
152
Selanjutnya klik tombol Keluar untuk keluar dari form decode dan
kembali ke menu utama
4.3.3 Analisis uji coba program
Dari hasil uji coba dan implementasi yang telah dilakukan
maka hasil yang didapatkan sesuai dengan yang diharapkan, yaitu
dapat menyembunyikan file berformat (*.xls, *.doc, *.txt, *.pdf, dan
*.ppt). Format gambar yang digunakan sebagai media penyembunyi
dan gambar output (stego image) yang dihasilkan dari program
steganografi ini hanya berupa format *.BMP (bitmap) karena penulis
telah melakukan perbandingan menggunakan format gambar lain
(JPEG & GIF) sebagai media penyembunyi dan dengan
menyembunyikan file yang sama. Dari perbandingan tersebut dapat di
153
ketahui bahwa format BMP memiliki kualitas yang lebih baik dari
gambar JPEG & GIF.
Menggunakan BMP : Sebelum encode
Sesudah encode
154
Menggunakan JPEG :
Sebelum encode
Sesudah encode
155
Menggunakan GIF :
Sebelum encode
Sesudah encode
156
Ukuran file penyembunyi dan file yang disembunyikan tidak
mengalami perubahan sebelum maupun setelah dilakukan proses
encode atau decode, sedangkan kualitas dari gambar penyembunyi
tergantung dari besarnya ukuran file yang akan disembunyikan,
semakin kecil ukurannya maka kualitas gambarnya akan semakin baik
tidak jauh berbeda dengan file aslinya. Berikut adalah tabelnya :
157
158
Tabel 4.2 Hasil proses encode/decode
Sebelum proses encode Setelah proses encode/decode Gambar No
Nama file Ukuran Nama file Ukuran
1 USER PROD.txt 5 Kb decode.txt 5 Kb
2 Loading ATM.doc 80 Kb decode.doc 80 Kb
3 SEMINAR.ppt 90 Kb decode.ppt 90 Kb
4 ATM-PRINTER.xls 95 Kb decode.xls 95 Kb
Thundercats
1.37 MB
5 HARGA BAN.pdf 96 Kb decode.pdf 96 Kb
1 USER PROD.txt 5 Kb decode.txt 5 Kb
2 Loading ATM.doc 80 Kb decode.doc 80 Kb
3 SEMINAR.ppt 90 Kb decode.ppt 90 Kb
4 ATM-PRINTER.xls 95 Kb decode.xls 95 Kb
Superman15
2.25 MB
5 HARGA BAN.pdf 96 Kb decode.pdf 96 Kb
1 USER PROD.txt 5 Kb decode.txt 5 Kb
2 Loading ATM.doc 80 Kb decode.doc 80 Kb
3 SEMINAR.ppt 90 Kb decode.ppt 90 Kb
4 ATM-PRINTER.xls 95 Kb decode.xls 95 Kb
Gaya
7.88 MB
5 HARGA BAN.pdf 96 Kb decode.pdf 96 Kb
Secara umum dapat dikatakan bahwa program steganografi ini
dapat memenuhi standar penulis, yaitu dapat menyembunyikan file
dalam citra digital tanpa diketahui keberadaaannya oleh mata manusia
secara kasat mata.
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan pembahasan pada Bab-bab sebelumnya maka dapat
diperoleh kesimpulan sebagai berikut:
1. Mekanisme pengamanan informasi pada aplikasi ini adalah penyisipan
informasi dibalik media gambar dengan menggunakan metode LSB
insertion yang sebelumnya telah di enkrip menggunakan metode RC4,
dapat dilihat pada gambar 4.1.
2. User yang menggunakan aplikasi steganografi ini dapat
menyembuyikan pesan rahasia berupa file teks berformat (*.xls, *.doc,
*.txt, *.pdf, dan *.ppt) ke dalam file citra digital, dapat dilihat pada
tabel 4.2.
3. Ukuran file penyembunyi dan file yang disembunyikan tidak
mengalami perubahan sebelum maupun setelah dilakukan proses
encode atau decode, sedangkan kualitas dari gambar penyembunyi
tergantung dari besarnya ukuran file yang akan disembunyikan, dapat
dilihat pada tabel 4.2.
5.2 Saran
Berdasarkan pembahasan dan kesimpulan yang didapat dari
penjelasan di atas maka saran-saran yang dianjurkan seperti berikut ini:
159
160
1. User dapat mengganti nama default pada file name yang muncul di
kotak dialog untuk mempermudah pada saat proses encode atau
decode.
2. Untuk meningkatkan keamanan atas program ini disarankan
mengembangkan program ini dengan cara menggabungkan metode
yang penulis pakai dengan metode enkripsi lainnya.
DAFTAR PUSTAKA
Astuti, Yuni, Teknik Pengamanan Data Steganografi Menggunakan Metode
Modifikasi Least Significant Bit (LSB), 2005
Cole, Eric, Hiding in Plain Sight: Steganography and the Art of Covert
Communication, (Wiley Publishing, inc, 2003)
Hartono, Jogiyanto, MBA, Pengenalan Komputer, Ed. 3, Cet. 1. (Yogyakarta:
ANDI, 1999).
Kendal & Kendal, Analisis dan Perancangan Sistem, Jilid-1, Ed. Bahasa
Indonesia (Jakarta : Pearson Education Asia Pte. Ltd. Dan PT.
Prenhallindo, 2003)
Kurniawan, Yusuf, MT, KRIPTOGRAFI Keamanan Internet dan Jaringan
Komunikasi, Cetakan-1 (Bandung : Informatika, 2004)
Miano, John, Compressed image file formats : JPEG, PNG, GIF, XBM, BMP,
(Addison Wesley Longman, Inc, 1999)
Munir, Rinaldi, Kriptografi, Cetakan-1 (Bandung : Informatika, 2006)
Pertiwi, Dwi, Implemetasi Metode Least Significant Bit Pada Stegnografi, 2006
Ramadhan , Arief, Seri Penuntun Praktis Microsoft Visual Basic 6.0, (Jakarta :
Elex Media Komputindo, 2004)
Stiawan, Deris, Sistem Keamanan Komputer (Jakarta : Elex Media Komputindo,
2005)
Wirawan, Chandra, Keamanan Data Mengunakan Metode Block Cipher (Des)
Dan Stream Cipher (Rc4), 2005
161
162
[1] id.wikipedia.org/wiki/Aplikasi
[2] http://blog.re.or.id/definisi-informasi-2.htm
[3] http://www.pcmedia.co.id/detail.asp?Id=1914&Cid=22&Eid=49
[4] http://www.ilmukomputer.com
APLIKASI KEAMANAN INFORMASI MENGGUNAKAN TEKNIK
STEGANOGRAFI DENGAN METODE LEAST SIGNIFICANT BIT
(LSB) INSERTION DAN RC4
Jamaludin
Program Studi Teknik Informatika Fakultas Sains Dan Teknologi UIN Jakarta
Email : [email protected]
Abstrak
Steganografi merupakan ilmu dan seni yang mempelajari cara penyembunyian pesan rahasia ke dalam suatu media sedemikian sehingga pihak ketiga tidak menyadari keberadaan pesan tersebut. Walaupun steganografi dapat dikatakan mempunyai hubungan yang erat dengan kriptografi, tapi metode ini sangat berbeda dengan kriptografi. Kriptografi mengacak pesan sehingga tidak dimengerti, sedangkan steganografi menyembunyikan pesan sehingga tidak terlihat. Dalam tugas akhir ini penulis menguraikan tentang teknik steganografi menggunakan metode Least Significant Bit Insertion (LSB Insertion) dimana data sebelumnya dienkripsi menggunakan metode RC4 dan proses pengembalian data tersebut seperti semula. Dari penelitian ini dihasilkan sebuah aplikasi yang dapat digunakan untuk menyembunyikan data dengan fomat (*.xls, *.doc, *.txt, *.pdf, dan *.ppt) dengan media gambar penyembunyi bitmap (*.bmp) serta dilakukan juga pengujian terhadap file yang disembunyikan atau media penyembunyi sebelum dan sesudah di encode/decode untuk mengetahui apakah terjadi perubahan pada file tersebut. Tujuan dari penelitian ini adalah penulis ingin membuat sebuah aplikasi yang dapat digunakan untuk melindungi keamanan suatu data dengan cara menyembunyikannya dibalik media gambar agar tidak menimbulkan kecurigaan, sehingga informasi atau data tersebut tidak mudah untuk diketahui orang lain/user yang tidak berhak, dan untuk lebih memperkenalkan teknik steganografi sebagai salah satu teknik pengamanan data Kata kunci : Steganografi, Kriptografi, RC4
1. Pendahuluan
1.1. Latar belakang
Perkembangan teknologi informasi di era modern ini terasa begitu pesat, hal ini
dikarenakan adanya alat bantu (komputer) yang dapat digunakan untuk memproses dan
mengolah data. Kini komputer telah dijadikan teknologi pokok dalam pengolahan dan
penyajian informasi. Sebuah perusahaan atau lembaga dapat membuat suatu keputusan
yang tepat dengan ditunjang aspek teknologi informasi yang diharapkan dapat menangani
permasalahan dengan cepat, akurat dan efisien.
Keamanan suatu informasi pada jaman global ini makin menjadi sebuah kebutuhan
vital dalam berbagai aspek kehidupan. Suatu informasi akan memiliki nilai lebih tinggi
apabila menyangkut tentang aspek-aspek keputusan bisnis, keamanan, ataupun
kepentingan umum. Dimana informasi-informasi tersebut tentunya akan banyak diminati
oleh berbagai pihak yang juga memiliki kepentingan di dalamnya.
Untuk itu, salah satu cara pengamanan yang dapat dilakukan adalah dengan
mengunakan teknik steganografi, yang merupakan suatu teknik menyembunyikan
informasi dibalik cover media seperti teks, gambar, audio, dan video sehingga informasi
atau data yang sesungguhnya tidak terlihat dan tidak menimbulkan kecurigaan bagi orang
lain. Keamanan informasi akan menjadi lebih tangguh dengan memadukan teknik
steganografi dan kriptografi, dimana apabila informasi rahasia yang telah disembunyikan
dapat terdeteksi oleh pihak yang tidak bertanggung jawab, maka informasi rahasia
tersebut masih terlindungi oleh suatu metode kriptografi.
1.2. Perumusan Masalah
Dalam pelaksanaan tugas akhir ini terdapat beberapa permasalahan yang menjadi
titik utama pembahasan, diantaranya adalah sebagai berikut :
a. Bagaimana mekanisme pengamanan informasi menggunakan teknik
steganografi yang digabungkan dengan suatu metode kriptografi.
b. Apakah terjadi perubahan dalam file, baik itu ukuran maupun kualitas dengan
dilakukan proses encoding dan decoding dalam penyisipan informasi rahasia.
1.3. Batasan Masalah
Ada banyak cara yang dapat dilakukan untuk memproteksi informasi atau data,
tetapi dalam penulisan skripsi ini penulis membatasi hanya pada seputar cara
pengamanan informasi berupa dokumen dengan format (*.xls, *.doc, *.txt, *.pdf, dan
*.ppt) dengan menyembunyikannya pada suatu file gambar bitmap (*.bmp)
menggunakan teknik steganografi yang sebelumnya telah dienkripsi dengan metode RC4
dan prosedur pengembalian data tersebut ke bentuk aslinya.
1.4. Tujuan
Tujuan dari penulisan skripsi ini adalah bahwa penulis ingin membuat sebuah
aplikasi yang dapat digunakan untuk melindungi keamanan suatu data dengan cara
menyembunyikannya dibalik media gambar agar tidak menimbulkan kecurigaan,
sehingga informasi atau data tersebut tidak mudah untuk diketahui orang lain/user yang
tidak berhak, dan untuk lebih memperkenalkan teknik steganografi sebagai salah satu
teknik pengamanan data
2. Landasan Teori
2.1. Kriptorafi
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta
otentikasi.
Munir (2006:3) dalam bukunya menjelaskan, data atau informasi yang dapat dibaca
dan dimengerti maknanya disebut plaintext. Plaintext yang tersandi disebut ciphertext.
Ciphertext harus dapat ditransformasikan kembali menjadi plaintext semula agar pesan
yang diterima bisa dibaca. Proses menyandikan plaintext menjadi ciphertext disebut
enkripsi disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO
7498-2). Sedangkan proses mengembalikan ciphertext menjadi plaintext semula
dinamakan dekripsi (decryption) atau deciphering (standard nama menurut ISO 7498-2).
Algoritma kriptografi (cipher) dapat dibedakan menjadi dua macam, yaitu : simetrik
dan asimetrik. Algoritma simetrik (model enkripsi konvensional) adalah algoritma yang
menggunakan satu kunci untuk proses enkripsi dan dekripsi data, contohnya adalah DES,
Blowfish, GOST, AES dan lain-lain. Sedangkan algoritma asimetrik (model enkripsi
kunci publik) menggunakan kunci yang berbeda dalam proses enkripsi dan dekripsi
pesan, contoh dari algoritma ini adalah RSA, El Gamal.
Kunci privat Kunci publik
Plaintext Ciphertext Plaintext
Dekripsi
Enkripsi
Gambar 2.2 Kunci asimetris
Sumber Munir (2006:3)
Dekripsi
Enkripsi
Plaintext Ciphertext
Kunci
Plaintext
Gambar 2.1 Kunci simetris
Sumber : Munir (2006:3)
2.2. RC4
RC4 dibuat oleh Ron Rivest, penemu RSA, RC2, RC5, RC6, MD2 dan MD5 pada
tahun 1987 untuk perusahaannya, RSA Data Security Inc. RC4 ini merupakan jenis
stream cipher. Artinya operasi enkripsi dilakukan per karakter 1 byte untuk sekali
operasi. Bandingkan dengan block cipher yang beroperasi pada data 1 blok (8 byte atau
16 byte) per operasi enkripsi. RC4 merupakan cipher OFB (Output-Feedback Cipher).
RC4 merupakan salah satu cipher yang paling banyak digunakan di internet untuk
pengamanan SSL. Secara resmi, RC4 tidak pernah dipublikasikan. Namun pada bulan
September tahun 1994 seseorang yang tidak menyebutkan namanya mengirimkannya ke
internet algoritma detilnya sehingga menjadi diketahui umum (Kurniawan 2004:93).
2.3. Steganografi
Steganografi berasal dari bahasa Yunani, “stegos” yang berati roof (atap) atau
covered (terlindungi) dan “graphia” yang berarti tulisan, jadi steganografi berarti “tulisan
tersembunyi”.Steganografi adalah ilmu dan seni menyembunyikan data atau pesan
didalam media lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui
(Munir 2006:301-306).
Secara garis besar, teknik Steganografi adalah dengan cara menyisipkan sepotong
demi sepotong informasi pada sebuah media, sehingga informasi tersebut tampak kalah
dominan dengan media pelindungnya.
Steganografi membutuhkan dua properti yaitu media penampung dan pesan rahasia.
Media penampung yang umum digunakan adalah gambar, suara, atau video. Informasi
yang disembunyikan dapat berupa sebuah artikel, gambar, kode program, atau pesan
lainnya.
Keuntungan steganografi dibandingkan dengan kriptografi adalah bahwa informasi
yang dikirim tidak menarik perhatian sehingga media penampung yang membawa
informasi tidak menimbulkan kecurigaan bagi pihak ketiga. Ini berbeda dengan
kriptografi dimana ciphertext menimbulkan kecurigaan bahwa pesan tersebut merupakan
pesan rahasia.
Terdapat beberapa istilah yang berkaitan dengan steganografi :
1) Hiddentext atau embed message : pesan yang disembunyikan.
2) Covertext atau cover-object : media yang digunakan untuk menyembunyikan
embed message..
3) Stegotext atu stego-object : media yang sudah berisi embed message.
Penyisipan pesan ke dalam media covertext dinamakan encoding, sedangkan
ekstraksi pesan dari stegotext dinamakan decoding. Kedua proses ini mungkin
memerlukan kunci rahasia (yang dinamakan stegokey) agar hanya pihak yang berhak saja
yang dapat melakukan penyisipan dan ekstraksi pesan. memperlihatkan diagram
penyisipan dan ekstraksi pesan.
Gambar 2.3 Proses steganografi
(sumber : http://www.jjtc.com/, diakses bulan Juni 2006)
2.4. Metode Least Significant Bit Insertion (LSB Insertion)
Metode LSB (Least significant bit) merupakan metode steganografi yang paling
mudah diimplementasikan. Untuk menjelaskan metode ini kita menggunakan citra
sebagai covertext. Setiap pixel di dalam citra berukuran 1 sampai 3 byte. Pada susunan bit
di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (most significant bit atau
MSB) dan bit yang paling kurang berarti (Least significant bit atau 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 dengan bit pesan
adalah bit LSB, sebab modifikasi hanya mengubah nilai byte tersebut satu lebih tinggi
atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut di dalam gambar
memberikan persepsi warna merah, maka perubahan satu bit LSB hanya mengubah
persepsi warna merah tidak terlalu berarti. Mata manusia tidak dapat membedakan
perubahan yang kecil ini.
Sebagai ilustrasi, misalkan segmen pixel-pixel citra sebelum penambahan bit-bit
watermark adalah
00110011 10100010 11100010 01101111
dan misalkan pesan rahasia (yang telah dikonversi ke sistem biner) adalah 0111. setiap bit
dari watermark menggantikan posisi LSB dari segmen pixel-pixel citra menjadi :
00110010 10100011 11100011 01101111
untuk membuat hiddentext tidak dapat dilacak, bit-bit pesan tidak mengganti byte-byte
yang berurutan, namundipilih susunan byte secara acak. Misalkan jika terdapat 50 byte
dan 6 bit data yang akan disembunyikan, maka byte yang diganti bit LSB-nya dipilih
secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49.
2.5. Perbedaaan Steganografi dan Kriptografi
Steganografi sangat kontras dengan kriptografi. Jika kriptografi merahasiakan
makna pesan sementara eksistensi pesan tetap ada, maka steganografi menutupi
keberadaan pesan. Steganografi dapat dipandang sebagai kelanjutan kriptografi dan
dalam prakteknya pesan rahasia dienkripsi telebih dahulu, kemudian ciphertext
disembunyikan didalam media lain sehingga pihak ketiga tidak menyadari keberadannya.
Pesan rahasia yang disembunyikan dapat diekstraksi kembali persis sama seperti aslinya
(Munir 2006:301). Hasil dari kriptografi biasanya berupa informasi yang berbeda dari
bentuk aslinya dan biasanya informasi seolah-olah berantakan atau acak, sedangkan hasil
keluaran steganografi memiliki bentuk persepsi yang sama dengan bentuk aslinya.
(Sumber : http://www.jjtc.com/, diakses bulan Juni 2006)
Dalam beberapa situasi, mengirimkan informasi yang dienkripsi akan
menimbulkan kecurigaan, sedangkan informasi yang tidak kelihatan tidak menimbulkan
kecurigaan.
Gambar 2.4 Perbedaan steganografi dan kriptografi
(Sumber : http://www.infosecwriters.com, diakses bulan Juli 2006).
Tabel 2.1 Perbedaan steganografi dan kriptografi
Steganografi Kriptografi Keberadaan data atau informasi
tidak diketahui
Keberadaan data atau informasi
diketahui
Steganografi menyembunyikan
keberadaan komunikasi
Enkripsi mencegah pihak yang tidak
berhak melihat/merubah isi dari
komunikasi
Teknik yang belum banyak
digunakan Teknik sudah umum digunakan
Tekniknya masih terus
dikembangkan untuk beberapa
format data tertentu
Kebanyakan algoritma yang
digunakan sudah diketahui oleh
umum
Ketika informasi atau data
terdeteksi maka akan mudah untuk
diketahui
Algoritma yang tangguh akan sulit
untuk ditembus, harus mengeluarkan
biaya yang cukup mahal untuk dapat
menghancurkannya
Steganografi tidak merubah
struktur informasi rahasia
Kriptografi merubah struktur
informasi rahasia
3. Metode Pengembangan Sistem
Pengembangan sistem dalam penelitian ini penulis lakukan menggunakan tiga tahap
siklus pengembangan model RAD (Rapid Aplication Development), yaitu fase
perencanaan syarat, fase workshop desain (perancangan dan konstruksi), dan fase
implementasi. Model RAD adalah suatu pendekatan berorientasi objek terhadap
pengembangan sistem yang mencakup suatu metode pengembangan perangkat-perangkat
lunak. Tujuannya adalah mempersingkat waktu pengerjaan aplikasi serta proses yang
dihasilkan didapatkan secara cepat dan tepat. Syarat-syarat menggunakan RAD adalah
pihak perekayasa perangkat lunak telah mengetahui dengan jelas kebutuhan user
(pengguna) dengan tepat, mengetahui proses-proses apa saja yang ada dalam perangkat
lunak yang dibuat, dan input-output yang dihasilkan.
Kendall (2003: 327), mengilustrasikan model RAD seperti pada (Gambar 3.1 )
Gambar 3.1 Siklus pengembangan sistem model RAD
Membangun
Sistem
Fase Implementasi
Memperkenalkan
Sistem
Fase Perencanaan Syarat-syarat
Menentukan Tujuan dan syarat-syarat
Informasi
Bekerja dengan Pengguna untuk
Sistem Perancangan
Fase KontruksiFase Perancangan
Umpan Balik Pengguna
Menggunakan masukkan dari
pengguna
Sumber : Kendall (2003: 327)
4. Analisis Dan Implementasi
Algoritma yang penulis kembangkan adalah menggabungkan metode steganografi
(LSB insertion) dan metode kriptogafi (RC4 strem cipher) dalam mengencode dan
mendecode file. Proses encode dan decode dapat dilihat melalui gambar 4.1 di bawah ini
:
4.1. Algoritma RC4 stream cipher
Algoritma kriptografi RC4 merupakan salah satu algoritma berjenis stream cipher.
Algoritma ini akan memproses data dalam ukuran byte demi byte (1 byte = 8 bit).
Algoritma ini dapat melakukan enkripsi dan dekripsi pada panjang data yang variabel
atau dinamis tanpa perlu adanya penambahan byte (padding).
Kunci utama RC4 maksimal sepanjang 2048 bit (256 byte), namun yang biasa
digunakan hanya sepanjang 40 bit atau 128 bit. Sisanya (2048 – 40 = 2008 bit atau 2048
– 128 = 1920 bit) diisi dengan perulangan kunci tersebut. Jadi jika kuncinya berupa 16
byte (128 bit) K = 0123456789abcdef dimana setiap angka merupakan bilangan
hexadesimal maka byte ke-17 sampai byte ke-256 berisi K tersebut secara berulang.
RC4 mempunyai sebuah S-Box, S0, S1, ... , S255, yang berisi permutasi dari
bilangan 0 sampai 255, dan permutasi merupakan fungsi dari kunci K dengan panjang
yang variabel. Langkah – langkah algoritma kriptografi RC4 sebagai berikut :
1. Inisialisasi S-Box
• Isi S-Box secara berurutan, yaitu S0=0, S1=1, ... , S255=255.
• Lakukan padding kunci K sehingga panjang kunci K = 256.
• Lakukan pertukaran dan pengisian pada S-Boxdengan kunci K, sebagai
berikut :
j = 0
for i = 0 to 255
j = (j + Si + Ki) mod 256
swap Si dan Sj
Fungsi swap merupakan fungsi yang menukarkan nilai S ke-i dengan nilai
S ke-j
2. Proses enkripsi atau dekripsi RC4 :
i = 0
j = 0
for idx = 0 to len-1
i = (i + 1) mod 256
j = (j + Si) mod 256
swap Si dan Sj
t = (Si + Sj) mod 256
k = St
buffidx = k XOR buffidx
Keterangan:
• buff merupakan pesan yang akan dienkripsi atau dekripsi
• len merupakan panjang dari buff
Hasil akhir dari proses di atas ialah buff yang berisi pesan yang telah dienkripsi atau
dekripsi.
4.2. Algoritma Steganografi
Pada file gambar BMP 24 bit setiap pixel pada gambar terdiri dari susunan tiga
warna yaitu merah, hijau, biru ( RGB ) yang masing-masing disusun oleh bilangan 8 bit (
1 byte ) dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111.
Informasi dari warna biru berada pada bit pertama sampai bit delapan, dan informasi
warna hijau berada pada bit sembilan sampai dengan bit 16, sedangkan informasi warna
merah berada pada bit 17 sampai dengan bit 24. Metode penyisipan LSB (least
significant bit) ini adalah menyisipi pesan dengan cara mengganti bit ke 8, 16 dan 24
pada representasi biner file gambar dengan representasi biner pesan rahasia yang akan
disembunyikan. Dengan demikian pada setiap pixel file gambar BMP 24 bit dapat
disisipkan 3 bit pesan, misalnya terdapat data raster original file gambar adalah sebagai
berikut :
(00100111 11101001 11001000)
(00100111 11001000 11101001)
(11001000 00100111 11101001)
Dan nilai biner untuk A adalah 10000011. Sisipan nilai biner untuk A dalam tiga pixel
tersebut akan menghasilkan :
(00100111 11101000 11001000)
(00100110 11001000 11101000)
(11001000 00100111 11101001)
Bit-bit yang digaris bawahi hanya tiga perubahan secara aktual dalam 8 byte yang
digunakan. Secara rata-rata, LSB membutuhkan hanya setengah bit dalam suatu
perubahan gambar. Kita dapat menyembunyikan data dalam least dan second least
significant bit dan mata manusia masih belum dapat membedakannya.
Berikut algoritma steganografi LSB insertion :
1. Sepanjang jumlah huruf, lakukan langkah 2 sampai 4
2. Konversi huruf dalam pesan yang akan disisipkan menjadi biner
3. Baca informasi warna dari tiap pixel (pecah menjadi 3 : R, G ,B).
4. Tukar biner terakhir yang didapat dari pixel-pixel tersebut sesuai dengan biner
huruf yang akan disisipkan disisipkan.
Ukuran data yang akan disembunyikan bergantung pada ukuran citra penampung.
Pada citra 8-bit yang berukuran 256 × 256 pixel terdapat 65536 pixel, setiap pixel
berukuran 1 byte. Setelah diubah menajdi citra 24-bit, ukuran data bitmap menjadi 65536
× 3 = 196608 bit. Karena setiap byte hanya bisa menyembunyikan satu bit di LSB-nya,
maka ukuran data yang akan disembunyikan di dalam citra adalah 196608/8 = 24576
byte. Semakin besar data disembunyikan di dalam citra, semakin besar pula kemungkinan
data tersebut rusak akibat manipulasi pada citra penampung.
Berikut adalah screen shoot proses encode dari aplikasi stegSECURE
Berikut pengujian aplikasi stegSECURE dengan menggunakan 3 file gambar
penyembunyi dengan ukuran dan dimensi yang berbeda.
Tabel 4.1 Gambar bitmap yang digunakan
Gambar Ukuran Dimensi
Thundercats 1.37 MB 800 x 600
Superman15 2.25 MB 1024 x 768
Gaya 7.88 MB 1913 x 1441
Dari hasil uji coba dan implementasi yang telah dilakukan maka hasil yang
didapatkan sesuai dengan yang diharapkan, yaitu dapat menyembunyikan file berformat
(*.xls, *.doc, *.txt, *.pdf, dan *.ppt). Format gambar yang digunakan sebagai media
penyembunyi dan gambar output (stego image) yang dihasilkan dari program
steganografi ini hanya berupa format *.BMP (bitmap) karena penulis telah melakukan
perbandingan menggunakan format gambar lain (JPEG & GIF) sebagai media
penyembunyi dan dengan menyembunyikan file yang sama. Dari perbandingan tersebut
dapat di ketahui bahwa format BMP memiliki kualitas yang lebih baik dari gambar JPEG
& GIF.
Menggunakan BMP :
Sebelum encode
Sesudah encode
Menggunakan JPEG :
Sebelum encode
Sesudah encode
Menggunakan GIF :
Sebelum encode
Sesudah encode
Ukuran file penyembunyi dan file yang disembunyikan tidak mengalami perubahan
sebelum maupun setelah dilakukan proses encode atau decode, sedangkan kualitas dari
gambar penyembunyi tergantung dari besarnya ukuran file yang akan disembunyikan,
semakin kecil ukurannya maka kualitas gambarnya akan semakin baik tidak jauh berbeda
dengan file aslinya. Berikut adalah tabelnya :
Tabel 4.2 Hasil proses encode/decode
Sebelum proses encode Setelah proses encode/decode Gambar No
Nama file Ukuran Nama file Ukuran
1 USER PROD.txt 5 Kb decode.txt 5 Kb
2 Loading ATM.doc 80 Kb decode.doc 80 Kb
3 SEMINAR.ppt 90 Kb decode.ppt 90 Kb
4 ATM-PRINTER.xls 95 Kb decode.xls 95 Kb
Thundercats
1.37 MB
5 HARGA BAN.pdf 96 Kb decode.pdf 96 Kb
1 USER PROD.txt 5 Kb decode.txt 5 Kb
2 Loading ATM.doc 80 Kb decode.doc 80 Kb
3 SEMINAR.ppt 90 Kb decode.ppt 90 Kb
4 ATM-PRINTER.xls 95 Kb decode.xls 95 Kb
Superman15
2.25 MB
5 HARGA BAN.pdf 96 Kb decode.pdf 96 Kb
1 USER PROD.txt 5 Kb decode.txt 5 Kb
2 Loading ATM.doc 80 Kb decode.doc 80 Kb
3 SEMINAR.ppt 90 Kb decode.ppt 90 Kb
4 ATM-PRINTER.xls 95 Kb decode.xls 95 Kb
Gaya
7.88 MB
5 HARGA BAN.pdf 96 Kb decode.pdf 96 Kb
5. Kesimpulan
Berdasarkan pembahasan pada Bab-bab sebelumnya maka dapat diperoleh
kesimpulan sebagai berikut:
1. Mekanisme pengamanan informasi pada aplikasi ini adalah penyisipan
informasi dibalik media gambar dengan menggunakan metode LSB insertion
yang sebelumnya telah di enkrip menggunakan metode RC4, dapat dilihat pada
gambar 4.1.
2. User yang menggunakan aplikasi steganografi ini dapat menyembuyikan pesan
rahasia berupa file teks berformat (*.xls, *.doc, *.txt, *.pdf, dan *.ppt) ke dalam
file citra digital, dapat dilihat pada tabel 4.2.
3. Ukuran file penyembunyi dan file yang disembunyikan tidak mengalami
perubahan sebelum maupun setelah dilakukan proses encode atau decode,
sedangkan kualitas dari gambar penyembunyi tergantung dari besarnya ukuran
file yang akan disembunyikan, dapat dilihat pada tabel 4.2
6. Saran
Berdasarkan pembahasan dan kesimpulan yang didapat dari penjelasan di atas maka
saran-saran yang dianjurkan seperti berikut ini:
1. User dapat mengganti nama default pada file name yang muncul di kotak dialog
untuk mempermudah pada saat proses encode atau decode.
2. Untuk meningkatkan keamanan atas program ini disarankan mengembangkan
program ini dengan cara menggabungkan metode yang penulis pakai dengan
metode enkripsi lainnya.
ENCODE Option Explicit 'Deklarasi API Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long Private Declare Function GetTickCount Lib "kernel32" () As Long 'Class RC4 Private WithEvents RC4 As clsRC4 'Fungsi Mematikan aplikasi Dim Halt As Boolean 'Ukuran file maksimum dalam byte Dim UkuranMax As Double Dim UkuranFile As Double 'Banyak pixel yang digunakan per karakter Dim BykPixel As Double 'Fungsi untuk memilih halaman Dim Page As Integer 'Nilai progress bar Dim PosAwal As Long Dim PosMax As Long 'Menampilkan halaman awal Private Sub Form_Load() Call Show_Page(0) Halt = False End Sub 'Menampilkan halaman berikutnya Public Sub Show_Page(NewPage As Integer) Dim a As Integer Page = NewPage For a = picPage.LBound To picPage.UBound If a = NewPage Then picPage(a).Visible = True Else picPage(a).Visible = False End If Next a End Sub Private Sub cmdLanjut_Click() Select Case Page Case 0: Call Show_Page(1)
163
cmdLanjut.Enabled = False cmdKembali.Enabled = True Case 1: Call Show_Page(2) cmdLanjut.Enabled = False cmdKembali.Enabled = True txtPassword.SetFocus Case 2: Call Show_Page(3) cmdEncode.Enabled = True cmdLanjut.Enabled = False cmdKembali.Enabled = True End Select End Sub Private Sub txtPassword_Change() If Trim(txtPassword.Text) = "" Or (Len(txtPassword.Text) < 6) Or (Len(txtPassword.Text) > 8) Then cmdLanjut.Enabled = False Else cmdLanjut.Enabled = True End If End Sub Private Sub cmdKembali_Click() Select Case Page Case 1: Call Show_Page(0) cmdKembali.Enabled = False txtGambar1.Text = "" txtFile.Text = "" If txtGambar1.Text = "" Then Gmbr1.Visible = False End If lbUkuran1.Caption = "0 KB" lbUkuran3.Caption = "0 KB" lbDimensi1.Caption = "0 x 0" lbMaximum1.Caption = "0 KB" lbRekomendasi1.Caption = "0 KB" lbPixel3 = "0 Pixels" If txtFile.Text = "" Then cmdLanjut.Enabled = False End If Case 2: Call Show_Page(1) cmdEncode.Enabled = False txtFile.Text = "" txtPassword.Text = "" lbUkuran3.Caption = "0 KB" lbPixel3 = "0 Pixels" If txtFile.Text = "" Then cmdLanjut.Enabled = False End If Case 3: Call Show_Page(2) cmdEncode.Enabled = False
164
txtPassword.Text = "" txtPassword.SetFocus If txtFile.Text = "" Then cmdLanjut.Enabled = False End If End Select End Sub Private Sub cmdBatal_Click() Dim Pesan As Integer Pesan = MsgBox("Anda yakin ingin batal?", vbYesNo, "Konfirmasi") If Pesan = vbYes Then frmUtama.Show Unload Me End If End Sub Private Sub cmdCari1_Click() On Error GoTo Cari1Skip CD.Filter = "Bitmap (*.bmp)|*.bmp" CD.DialogTitle = "Pilih gambar" CD.ShowOpen txtGambar1.Text = CD.Filename Gmbr1.Visible = True Gmbr1.Picture = LoadPicture(txtGambar1.Text) Call cmdLoad1_Click Cari1Skip: On Error GoTo 0 End Sub Private Sub cmdCari2_Click() On Error GoTo Cari2Skip CD.Filter = "All File (*.*)|*.*" CD.DialogTitle = "Pilih file yang akan disembunyikan" CD.ShowOpen txtFile.Text = CD.Filename Call cmdLoad2_Click Cari2Skip: On Error GoTo 0 End Sub Private Sub cmdLoad1_Click() Dim Max As Single, Rek As Single, Ukuran As Single cmdLanjut.Enabled = False lbDimensi1.Caption = "0 x 0" lbMaximum1.Caption = "0 KB" lbRekomendasi1.Caption = "0 KB" lbUkuran1.Caption = "0 KB" lbUkuran1.ForeColor = vbBlack Open txtGambar1.Text For Binary As #1 Close #1
165
Ukuran = FileLen(txtGambar1.Text) UkuranFile = Ukuran lbUkuran1.Caption = Round(Ukuran / 1024, 2) & " KB" If (Ukuran < 1024) Then lbUkuran1.Caption = Ukuran & " B" If ((Ukuran / 1024) > 1024) Then lbUkuran1.Caption = Round((Ukuran / 1024) / 1024, 2) & " MB" On Error GoTo Fail1: picTmp1.Picture = LoadPicture("") picTmp1.Picture = LoadPicture(txtGambar1.Text) If Trim(txtGambar1.Text) = "" Then GoTo Fail1 UkuranMax = ((picTmp1.ScaleWidth * picTmp1.ScaleHeight) - 2) Max = Round(((picTmp1.ScaleWidth * picTmp1.ScaleHeight) - 2) / 1024 / 5, 2) Rek = Round((((picTmp1.ScaleWidth * picTmp1.ScaleHeight) - 2) / 10) / 1024, 2) lbDimensi1.Caption = picTmp1.ScaleWidth & " x " & picTmp1.ScaleHeight lbMaximum1.Caption = Max & " KB" lbRekomendasi1.Caption = Rek & " KB" lbMaximum2.Caption = lbMaximum1.Caption lbRekomendasi2.Caption = lbRekomendasi1.Caption cmdLanjut.Enabled = True Fail1: On Error GoTo 0 End Sub Private Sub cmdLoad2_Click() Dim Ukuran As Single cmdLanjut.Enabled = False lbUkuran3.Caption = "0 KB" lbUkuran3.ForeColor = vbBlack On Error GoTo Fail3: If Trim(txtFile.Text) = "" Then GoTo Fail3 Open txtFile.Text For Binary As #1 Close #1 Ukuran = FileLen(txtFile.Text) UkuranFile = Ukuran lbUkuran3.Caption = Round(Ukuran / 1024, 2) & " KB" If (Ukuran < 1024) Then lbUkuran3.Caption = Ukuran & " B" If ((Ukuran / 1024) > 1024) Then lbUkuran3.Caption = Round((Ukuran / 1024) / 1024, 2) & " MB" BykPixel = UkuranMax / Ukuran If (BykPixel * Ukuran) > UkuranMax Then BykPixel = BykPixel - 1 If BykPixel > 20 Then BykPixel = 20 If BykPixel > 15 And BykPixel <= 20 Then BykPixel = 20
166
If BykPixel > 10 And BykPixel <= 15 Then BykPixel = 15 If BykPixel > 5 And BykPixel <= 10 Then BykPixel = 10 If BykPixel >= 1 And BykPixel <= 5 Then BykPixel = 2 If BykPixel < 1 Then BykPixel = 0 lbPixel3.Caption = BykPixel & " Pixels" If BykPixel >= 10 Then lbKet.Caption = "Kualitas tinggi (10-20 Pixels)" If BykPixel >= 15 Then lbDesk.Caption = "Kualitas sempurna (15-20 Pixels)" lbKet.ForeColor = &HC000& lbDesk.Caption = "Akan dihasilkan " & BykPixel & " pixels per karakter dan output yang bagus. Gunakan file berukuran lebih kecil dan gambar yang berukuran lebih besar untuk hasil yang lebih baik." Else lbKet.Caption = "Kualitas rendah (1-5 Pixels)" If BykPixel >= 5 Then lbKet.Caption = "Kualitas menengah (5-10 Pixels)" lbKet.ForeColor = vbRed lbDesk.Caption = "Hanya dihasilkan " & BykPixel & " pixels per karakter dan output yang buruk. Untuk hasil yang lebih baik, gunakan file berukuran lebih kecil dan gambar yang berukuran lebih besar." End If If Ukuran < UkuranMax And Ukuran > 0 Then cmdLanjut.Enabled = True Else lbUkuran3.ForeColor = vbRed End If Fail3: On Error GoTo 0 End Sub Private Sub cmdEncode_Click() Dim FF As Integer, Pesan As Integer, a0 As String, Source As String If cmdEncode.Caption = "&Keluar" Then PosAwal = 0 frmUtama.Show Unload Me Exit Sub End If Halt = False cmdEncode.Enabled = False cmdKembali.Enabled = False cmdBatal.Enabled = False If Right(txtFile.Text, 3) = "doc" Then a0 = "q11" End If If Right(txtFile.Text, 3) = "xls" Then a0 = "q12" End If If Right(txtFile.Text, 3) = "pdf" Then a0 = "q13"
167
End If If Right(txtFile.Text, 3) = "txt" Then a0 = "q14" End If If Right(txtFile.Text, 3) = "rtf" Then a0 = "q15" End If If Right(txtFile.Text, 3) = "ppt" Then a0 = "q16" End If If Right(txtFile.Text, 3) = "vsd" Then a0 = "q17" End If If Right(txtFile.Text, 3) = "jpg" Then a0 = "q18" End If If Right(txtFile.Text, 3) = "gif" Then a0 = "q19" End If If Right(txtFile.Text, 3) = "bmp" Then a0 = "q20" End If If Page = 3 Then 'Mulai Encoding Call Encode Kill (txtFile.Text) 'Simpan File If Halt = False Then On Error GoTo Skip4 Retry4: CD.Filename = BaseName(txtGambar1.Text) & a0 CD.Filter = "Bitmap Files (*.bmp)|*.bmp" CD.DialogTitle = "Simpan gambar hasil encode" CD.ShowSave Pesan = vbYes If Exists(CD.Filename) Then Pesan = MsgBox("Nama file sudah ada! Overwrite?", vbYesNo + vbExclamation, "Konfirmasi") End If If Pesan = vbYes Then Call SavePicture(picTmp2.Image, CD.Filename) Call MsgBox("Gambar di simpan ke " & CD.Filename, vbInformation + vbOKOnly, "Konfirmasi") cmdEncode.Caption = "&Keluar" End If Skip4: On Error GoTo 0
168
End If If Halt Then PosAwal = 0 lbStatus1.Caption = "Proses gagal." End If cmdEncode.Enabled = True End If End Sub Public Function BaseName(ByVal Msg As String) As String Dim tPos As Integer BaseName = App.Path & "" tPos = InStr(1, Msg, ".") If tPos > 1 Then BaseName = Mid(Msg, 1, tPos - 1) End If End Function Public Function Exists(FName As String) As Boolean Dim FF As Integer Exists = False On Error GoTo DoesNotExist FF = FreeFile Open FName For Input As #FF Close #FF Exists = True DoesNotExist: On Error GoTo 0 End Function Public Function Hexa(ByVal Num As Long) As String Hexa = Hex(Num) Do If Len(Hexa) >= 6 Then Exit Do Hexa = "0" & Hexa Loop End Function Private Sub tmrBars_Timer() If PosMax <= 0 Then PosMax = 1 If Bar1.Max <> PosMax Then Bar1.Max = PosMax Bar1.Value = PosAwal End Sub Public Sub Encode() Dim Slot(1 To 60) As Integer Dim tX As Integer, tY As Integer
169
Dim X As Integer, Y As Integer Dim a As Long, b As Long Dim Warna As Long, sCnt As Integer, Pref As Integer Dim Dat As Integer, Tmp As String, Perc As Integer Dim tVal As Integer Dim FF As Integer Dim tR As Long, tG As Long, tB As Long, tStr As String picTmp2.Picture = LoadPicture(txtGambar1.Text) picTmp2.Refresh X = 1 Y = 0 'Bit kunci Warna = GetPixel(picTmp1.hdc, 0, 0) If Warna <= 0 Then tR = 0: tG = 0: tB = 0 Else tStr = Hexa(Warna) tR = CLng("&H" + (Mid(tStr, 5, 2))) tG = CLng("&H" + (Mid(tStr, 3, 2))) tB = CLng("&H" + (Mid(tStr, 1, 2))) End If If tB + BykPixel > 255 Then tB = tB - BykPixel Else tB = tB + BykPixel End If Call SetPixel(picTmp2.hdc, 0, 0, RGB(tR, tG, tB)) 'Begin Encoding! Tmp = BykPixel * UkuranFile Perc = Int((Tmp / (picTmp1.ScaleWidth * picTmp1.ScaleHeight) * 100)) PosMax = UkuranFile + 1 Bar1.Value = 0 Set RC4 = New clsRC4 'Debug.Print txtSource4.Text Call RC4.EncryptFile(txtFile.Text, txtTemp.Text, txtPassword.Text) FF = FreeFile Open txtTemp.Text For Binary As FF For a = 1 To UkuranFile + 1 PosAwal = a If a = UkuranFile + 1 Then Dat = 256 'Proses thd data dihentikan Else 'Baca karakter dari file Dat = Asc(Input(1, FF))
170
End If 'Simpan Pixel di Memori tX = X: tY = Y: sCnt = 1 For b = 1 To BykPixel Warna = GetPixel(picTmp1.hdc, tX, tY) If Warna <= 0 Then tR = 0: tG = 0: tB = 0 Else tStr = Hexa(Warna) Do If Len(tStr) >= 6 Then Exit Do tStr = "0" & tStr Loop tR = CLng("&H" + (Mid(tStr, 5, 2))) tG = CLng("&H" + (Mid(tStr, 3, 2))) tB = CLng("&H" + (Mid(tStr, 1, 2))) End If Slot(sCnt + 0) = tR Slot(sCnt + 1) = tG Slot(sCnt + 2) = tB sCnt = sCnt + 3 tX = tX + 1 If tX >= picTmp1.ScaleWidth Then tX = 0: tY = tY + 1 Next b If Halt Then Exit Sub 'Encoding Do Pref = Int(Dat / (sCnt - 1)) If Dat Mod (sCnt - 1) <> 0 Then Pref = Pref + 1 For b = 1 To (sCnt - 1) tVal = Dat If tVal > Pref Then tVal = Pref If Slot(b) + tVal > 255 Then If Slot(b) - tVal > 0 Then Slot(b) = Slot(b) - tVal Dat = Dat - tVal End If Else Slot(b) = Slot(b) + tVal Dat = Dat - tVal End If Next b Loop Until Dat <= 0 If Halt Then Exit Sub 'Tukar Pixel sCnt = 1
171
For b = 1 To BykPixel Call SetPixel(picTmp2.hdc, X, Y, RGB(Slot(sCnt + 0), Slot(sCnt + 1), Slot(sCnt + 2))) X = X + 1 If X >= picTmp1.ScaleWidth Then X = 0: Y = Y + 1 sCnt = sCnt + 3 Next b If Halt Then Exit Sub DoEvents Next a Close FF picTmp2.Refresh End Sub DECODE Option Explicit 'Deklarasi API Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long Private Declare Function GetTickCount Lib "kernel32" () As Long 'class RC4 Private WithEvents RC4 As clsRC4 'Fungsi mematikan aplikasi Dim Halt As Boolean 'Ukuran file maksimum dalam byte Dim UkuranMax As Double Dim UkuranFile As Double 'Ukuran pixel yang digunakan per karakter Dim BykPixel As Integer 'Fungsi untuk memilih halaman Dim Page As Integer 'Nilai progress bar Dim PosAwal As Long Dim PosMax As Long Dim Data As String 'Menampilkan halaman awal Private Sub Form_Load()
172
Call Show_Page(0) Halt = False End Sub 'Menampilkan halaman berikutnya Public Sub Show_Page(NewPage As Integer) Dim a As Integer Page = NewPage For a = picPage.LBound To picPage.UBound If a = NewPage Then picPage(a).Visible = True Else picPage(a).Visible = False End If Next a End Sub Private Sub cmdLanjut_Click() Select Case Page Case 0: Call Show_Page(1) cmdLanjut.Enabled = False cmdKembali.Enabled = True Case 1: Call Show_Page(2) cmdLanjut.Enabled = False cmdKembali.Enabled = True txtPassword.SetFocus Case 2: Call Show_Page(3) cmdDecode.Enabled = True cmdLanjut.Enabled = False cmdKembali.Enabled = True End Select End Sub Private Sub txtPassword_Change() If Trim(txtPassword.Text) = "" Then cmdLanjut.Enabled = False Else cmdLanjut.Enabled = True End If End Sub Private Sub cmdKembali_Click() Select Case Page Case 1: Call Show_Page(0) cmdKembali.Enabled = False txtGambar2.Text = "" txtGambar3.Text = "" lbUkuran3.Caption = "0 KB" lbUkuran4.Caption = "0 KB" lbDimensi2.Caption = "0 x 0"
173
lbDimensi3.Caption = "0 x 0" lbPixel2.Caption = "0 Pixels" lbMaximum2.Caption = "0 KB" lbMatch.Visible = False lbWarn.Visible = True If txtGambar3.Text = "" Then cmdLanjut.Enabled = False Gmbr1.Visible = False Gmbr2.Visible = False End If Case 2: Call Show_Page(1) cmdDecode.Enabled = False txtGambar3.Text = "" txtPassword.Text = "" lbUkuran4.Caption = "0 KB" lbDimensi3.Caption = "0 x 0" lbPixel2.Caption = "0 Pixels" If txtGambar3.Text = "" Then cmdLanjut.Enabled = False Gmbr2.Visible = False lbMatch.Visible = False lbWarn.Visible = True End If Case 3: Call Show_Page(2) cmdDecode.Enabled = False txtPassword.Text = "" txtPassword.SetFocus If txtGambar3.Text = "" Then cmdLanjut.Enabled = False End If End Select End Sub Private Sub cmdBatal_Click() Dim Rtn As Integer Rtn = MsgBox("Anda yakin ingin batal?", vbYesNo, "Konfirmasi") If Rtn = vbYes Then frmUtama.Show Unload Me End If End Sub Private Sub cmdCari3_Click() On Error GoTo Cari3Skip CD.Filter = "Bitmap (*.bmp)|*.bmp" CD.DialogTitle = "Pilih gambar" CD.ShowOpen txtGambar2.Text = CD.Filename Gmbr1.Visible = True Gmbr1.Picture = LoadPicture(txtGambar2.Text) Call cmdLoad3_Click Cari3Skip: On Error GoTo 0
174
End Sub Private Sub cmdCari4_Click() On Error GoTo Cari4Skip CD.Filter = "Bitmap (*.bmp)|*.bmp" CD.DialogTitle = "Pilih gambar" CD.ShowOpen txtGambar3.Text = CD.Filename Gmbr2.Visible = True Gmbr2.Picture = LoadPicture(txtGambar3.Text) Call cmdLoad4_Click Cari4Skip: On Error GoTo 0 End Sub Private Sub cmdLoad3_Click() Dim Max As Single, Ukuran As Single cmdLanjut.Enabled = False lbDimensi2.Caption = "0 x 0" lbMaximum2.Caption = "0 KB" lbUkuran3.Caption = "0 KB" lbUkuran3.ForeColor = vbBlack Open txtGambar2.Text For Binary As #1 Close #1 Ukuran = FileLen(txtGambar2.Text) UkuranFile = Ukuran lbUkuran3.Caption = Round(Ukuran / 1024, 2) & " KB" If (Ukuran < 1024) Then lbUkuran3.Caption = Ukuran & " B" If ((Ukuran / 1024) > 1024) Then lbUkuran3.Caption = Round((Ukuran / 1024) / 1024, 2) & " MB" On Error GoTo Fail2: picTmp3.Picture = LoadPicture("") picTmp3.Picture = LoadPicture(txtGambar2.Text) If Trim(txtGambar2.Text) = "" Then GoTo Fail2 UkuranMax = ((picTmp3.ScaleWidth * picTmp3.ScaleHeight) - 2) Max = Round(((picTmp3.ScaleWidth * picTmp3.ScaleHeight) - 2) / 1024 / 5, 2) lbDimensi2.Caption = picTmp3.ScaleWidth & " x " & picTmp3.ScaleHeight lbMaximum2.Caption = Max & " KB" cmdLanjut.Enabled = True Fail2: On Error GoTo 0 End Sub Private Sub cmdLoad4_Click() Dim Ukuran As Single
175
cmdLanjut.Enabled = False lbDimensi3.Caption = "0 x 0" lbPixel2.Caption = "0 Pixels" lbMatch.Visible = False lbWarn.Visible = True lbUkuran4.Caption = "0 KB" lbUkuran4.ForeColor = vbBlack Open txtGambar3.Text For Binary As #1 Close #1 Ukuran = FileLen(txtGambar3.Text) UkuranFile = Ukuran lbUkuran4.Caption = Round(Ukuran / 1024, 2) & " KB" If (Ukuran < 1024) Then lbUkuran4.Caption = Ukuran & " B" If ((Ukuran / 1024) > 1024) Then lbUkuran4.Caption = Round((Ukuran / 1024) / 1024, 2) & " MB" On Error GoTo Fail5: PicTmp4.Picture = LoadPicture("") PicTmp4.Picture = LoadPicture(txtGambar3.Text) If Trim(txtGambar3.Text) = "" Then GoTo Fail5 lbDimensi3.Caption = PicTmp4.ScaleWidth & " x " & PicTmp4.ScaleHeight BykPixel = Compare() If PicTmp4.ScaleHeight = picTmp3.ScaleHeight And PicTmp4.ScaleWidth = picTmp3.ScaleWidth And BykPixel > 0 Then lbPixel2.Caption = BykPixel & " Pixels" lbWarn.Visible = False lbMatch.Visible = True cmdLanjut.Enabled = True End If Fail5: On Error GoTo 0 End Sub Private Sub cmdDecode_Click() Dim FF As Integer, Rtn As Integer, eData As String, a As String, b As String, c As String If cmdDecode.Caption = "&Keluar" Then PosAwal = 0 frmUtama.Show Unload Me Exit Sub End If Halt = False Loading.Visible = True cmdDecode.Enabled = False
176
cmdKembali.Enabled = False cmdBatal.Enabled = False If Page = 3 Then 'Mulai Decoding Call Decode Kill (txtGambar2.Text) 'Simpan File If Halt = False Then On Error GoTo Skip6 Retry6: Set RC4 = New clsRC4 Call RC4.DecryptFile(Data, eData, txtPassword.Text) eData = RC4.DecryptString(Data, txtPassword.Text) a = Right(txtGambar2.Text, 7) b = Left(a, 3) If b = "q11" Then b = "doc" If b = "q12" Then b = "xls" If b = "q13" Then b = "pdf" If b = "q14" Then b = "txt" If b = "q15" Then b = "rtf" If b = "q16" Then b = "ppt" If b = "q17" Then b = "vsd" If b = "q18" Then b = "jpg" If b = "q19" Then b = "gif" If b = "q20" Then b = "bmp" CD.Filename = "decode" & "." & b CD.Filter = "All Files (*.*)|*.*" CD.DialogTitle = "Simpan hasil decode" CD.ShowSave Rtn = vbYes If Exists(CD.Filename) Then Rtn = MsgBox("Nama file sudah ada! Overwrite?", vbYesNo + vbExclamation, "Konfirmasi") End If If Rtn = vbYes Then FF = FreeFile Open CD.Filename For Binary Access Write As #FF Put #FF, , eData Close #FF Call MsgBox("Data di simpan ke " & CD.Filename, vbInformation + vbOKOnly, "Konfirmasi") cmdDecode.Caption = "&Keluar" End If PosAwal = PosMax
177
If PosAwal = PosMax Then Loading.Caption = "Selesai ^_^" Skip6: On Error GoTo 0 End If End If If Halt Then PosAwal = 0 lbStatus2.Caption = "Proses gagal." End If cmdDecode.Enabled = True End Sub Public Function Compare() As Integer Dim WarnaA As Long, WarnaB As Long Dim aR As Long, aG As Long, aB As Long, aStr As String Dim bR As Long, bG As Long, bB As Long, bStr As String Compare = 0 WarnaA = PicTmp4.Point(0, 0) 'Gambar Key WarnaB = picTmp3.Point(0, 0) 'Gambar Encoded If WarnaA <= 0 Then aR = 0: aG = 0: aB = 0 If WarnaB <= 0 Then bR = 0: bG = 0: bB = 0 If WarnaA > 0 Then aStr = Hexa(WarnaA) aR = CLng("&H" + (Mid(aStr, 5, 2))) aG = CLng("&H" + (Mid(aStr, 3, 2))) aB = CLng("&H" + (Mid(aStr, 1, 2))) End If If WarnaB > 0 Then bStr = Hexa(WarnaB) bR = CLng("&H" + (Mid(bStr, 5, 2))) bG = CLng("&H" + (Mid(bStr, 3, 2))) bB = CLng("&H" + (Mid(bStr, 1, 2))) End If Compare = Abs(bB - aB) If Compare < 1 Or Compare > 20 Then Compare = 0 If aG <> bG Then Compare = 0 If aR <> bR Then Compare = 0 End Function Public Function Hexa(ByVal Num As Long) As String Hexa = Hex(Num) Do If Len(Hexa) >= 6 Then Exit Do Hexa = "0" & Hexa
178
Loop End Function Private Sub tmrBars_Timer() If PosMax <= 0 Then PosMax = 1 If Bar2.Max <> PosMax Then Bar2.Max = PosMax Bar2.Value = PosAwal End Sub Public Function BaseName(ByVal Msg As String) As String Dim tPos As Integer BaseName = App.Path & "" tPos = InStr(1, Msg, ".") If tPos > 1 Then BaseName = Mid(Msg, 1, tPos - 1) End If End Function Public Function Exists(FName As String) As Boolean Dim FF As Integer Exists = False On Error GoTo DoesNotExist FF = FreeFile Open FName For Input As #FF Close #FF Exists = True DoesNotExist: On Error GoTo 0 End Function Public Sub Decode() Dim X As Integer, Y As Integer Dim WarnaA As Long, WarnaB As Long Dim Dat As Double, Cnt As Integer Dim Sum As Integer, Diff As Integer, FF As Integer Dim Bar As Long, BCnt As Long, tStr As String Dim aR As Long, aG As Long, aB As Long Dim bR As Long, bG As Long, bB As Long Dim tData As String, eData As String Data = "" Cnt = 0 Sum = 0 PosAwal = 0 Bar = ((PicTmp4.ScaleWidth * PicTmp4.ScaleHeight) / BykPixel) / 100 PosMax = 100 Bar2.Value = 0 BCnt = 0
179
For Y = 0 To PicTmp4.ScaleHeight - 1 For X = 0 To PicTmp4.ScaleWidth - 1 If Y = 0 And X = 0 Then X = 1 'Ambil pixel dari 2 gambar WarnaA = GetPixel(PicTmp4.hdc, X, Y) 'Gambar Key WarnaB = GetPixel(picTmp3.hdc, X, Y) 'Gambar Encoded 'Ubah dalam kode RGB If WarnaA <= 0 Then aR = 0: aG = 0: aB = 0 Else tStr = Hexa(WarnaA) aR = CLng("&H" + (Mid(tStr, 5, 2))) aG = CLng("&H" + (Mid(tStr, 3, 2))) aB = CLng("&H" + (Mid(tStr, 1, 2))) End If If WarnaB <= 0 Then bR = 0: bG = 0: bB = 0 Else tStr = Hexa(WarnaB) bR = CLng("&H" + (Mid(tStr, 5, 2))) bG = CLng("&H" + (Mid(tStr, 3, 2))) bB = CLng("&H" + (Mid(tStr, 1, 2))) End If 'Lihat perbedaan isi Diff = 0 Diff = Diff + Abs(bR - aR) Diff = Diff + Abs(bG - aG) Diff = Diff + Abs(bB - aB) Sum = Sum + Diff 'Proses baca pixel selanjutnya Cnt = Cnt + 1 If Cnt = BykPixel Then BCnt = BCnt + 1 If BCnt = Bar Then BCnt = 0 If PosAwal < PosMax Then PosAwal = PosAwal + 1 End If If Sum > 256 Then Call MsgBox("Fatal Error! Proses dibatalkan." & Chr(10) & "(Pixel " & X & ", " & Y & ")", vbCritical + vbOKOnly, "Konfirmasi") Halt = True Exit Sub ElseIf Sum = 256 Then 'Akhir dari proses data Data = Data & tData
180
PosAwal = PosMax Exit Sub Else tData = tData & Chr(Sum) If Len(tData) > 1000 Then Data = Data & tData tData = "" End If End If Sum = 0 Cnt = 0 DoEvents If Halt Then Exit Sub End If Next X Next Y Data = Data & tData PosAwal = PosMax End Sub RC4 Option Explicit Event Progress(Percent As Long) Private m_Key As String Private m_sBox(0 To 255) As Integer Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Public Sub EncryptFile(SourceFile As String, DestFile As String, Optional Key As String) Dim FF As Integer Dim ByteArray() As Byte If (Not FileExist(SourceFile)) Then Call MsgBox("Error source file tidak ada", vbCritical + vbOKOnly, "Konfirmasi") Exit Sub End If FF = FreeFile Open SourceFile For Binary As #FF ReDim ByteArray(0 To LOF(FF) - 1)
181
Get #FF, , ByteArray() Close #FF 'Enkrip byte array Call EncryptByte(ByteArray(), Key) If (FileExist(DestFile)) Then Kill DestFile 'Simpan data yang sudah di enkrip FF = FreeFile Open DestFile For Binary As #FF Put #FF, , ByteArray() Close #FF End Sub Public Sub DecryptFile(SourceFile As String, DestFile As String, Optional Key As String) Dim FF As Integer Dim ByteArray() As Byte If (Not FileExist(SourceFile)) Then Exit Sub End If FF = FreeFile Open SourceFile For Binary As #FF ReDim ByteArray(0 To LOF(FF) - 1) Get #FF, , ByteArray() Close #FF 'Dekrip byte array Call DecryptByte(ByteArray(), Key) If (FileExist(DestFile)) Then Kill DestFile 'Simpan data yang sudah di dekrip FF = FreeFile Open DestFile For Binary As #FF Put #FF, , ByteArray() Close #FF End Sub Public Sub DecryptByte(ByteArray() As Byte, Optional Key As String) Call EncryptByte(ByteArray(), Key) End Sub Public Function EncryptString(Text As String, Optional Key As String) As String Dim ByteArray() As Byte 'Konvert data menjadi byte array
182
ByteArray() = StrConv(Text, vbFromUnicode) 'Enkrip byte array Call EncryptByte(ByteArray(), Key) 'Konvert byte array menjadi string EncryptString = StrConv(ByteArray(), vbUnicode) End Function Public Function DecryptString(Text As String, Optional Key As String) As String Dim ByteArray() As Byte 'Konvert data menjadi byte array ByteArray() = StrConv(Text, vbFromUnicode) 'Dekrip byte array Call DecryptByte(ByteArray(), Key) 'Konvert byte array menjadi string DecryptString = StrConv(ByteArray(), vbUnicode) End Function Public Sub EncryptByte(ByteArray() As Byte, Optional Key As String) Dim i As Long Dim j As Long Dim Temp As Byte Dim Offset As Long Dim OrigLen As Long Dim CipherLen As Long Dim CurrPercent As Long Dim NextPercent As Long Dim sBox(0 To 255) As Integer If (Len(Key) > 0) Then Me.Key = Key Call CopyMem(sBox(0), m_sBox(0), 512) 'Ambil panjang array dari source OrigLen = UBound(ByteArray) + 1 CipherLen = OrigLen 'Enkrip data For Offset = 0 To (OrigLen - 1) i = (i + 1) Mod 256 j = (j + sBox(i)) Mod 256 Temp = sBox(i) sBox(i) = sBox(j) sBox(j) = Temp ByteArray(Offset) = ByteArray(Offset) Xor (sBox((sBox(i) + sBox(j)) Mod 256))
183
184
'progress If (Offset >= NextPercent) Then CurrPercent = Int((Offset / CipherLen) * 100) NextPercent = (CipherLen * ((CurrPercent + 1) / 100)) + 1 RaiseEvent Progress(CurrPercent) End If Next If (CurrPercent <> 100) Then RaiseEvent Progress(100) End Sub Public Property Let Key(New_Value As String) Dim a As Long Dim b As Long Dim Temp As Byte Dim Key() As Byte Dim KeyLen As Long If (m_Key = New_Value) Then Exit Property 'Simpan key baru m_Key = New_Value 'Simpan password dalam byte array Key() = StrConv(m_Key, vbFromUnicode) KeyLen = Len(m_Key) 'Inisialisasi s-box For a = 0 To 255 m_sBox(a) = a Next a For a = 0 To 255 b = (b + m_sBox(a) + Key(a Mod KeyLen)) Mod 256 Temp = m_sBox(a) m_sBox(a) = m_sBox(b) m_sBox(b) = Temp Next End Property Public Function FileExist(Filename As String) As Boolean On Error GoTo NotExist Call FileLen(Filename) FileExist = True Exit Function NotExist: End Function