Perlindungan Pesan Rahasia Pada Citra Digital Menggunakan Metode Least Significant Bitsteganografi

(1)

STEGANOGRAFI

SKRIPSI

WILDAN HIDAYAT

060823006

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

WILDAN HIDAYAT 060823006

PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2010


(3)

Judul : PERLINDUNGAN PESAN RAHASIA PADA

CITRA DIGITAL MENGGUNAKAN

METODE LEAST SIGNIFICANT BIT STEGANOGRAFI

Kategori : SKRIPSI

Nama : WILDAN HIDAYAT

Nomor Induk Mahasiswa : 060823006

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 27 Januari 2010

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Syahriol Sitorus, S. Si, M. IT Drs. Suyanto, M. Kom 19710310 199703 1 004 19590813 198601 1 002

Diketahui Oleh:

Departemen Matematika FMIPA USU Ketua,

Dr. Saib Suwilo, M. Sc. NIP. 19640109 198803 1 004


(4)

PERNYATAAN

PERLINDUNGAN PESAN RAHASIA PADA CITRA DIGITAL MENGGUNAKAN METODE LEAST SIGNIFICANT BIT

STEGANOGRAFI

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 27 Januari 2010

WILDAN HIDAYAT 060823006


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa Pemurah dan Maha penyayang, dengan limpah kurnia- Nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan.

Ucapan terima kasih saya sampaikan kepada Drs. Suyanto, M. Kom dan Syahriol Sitorus, S. Si, M. IT selaku pembimbing, Drs. Sawaluddin, M. IT dan Drs. Suwarno Ariswoyo, M. Si Selaku Pembanding pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas dan padat dan profesional telah diberikan kepada saya agar penulis dapat menyelesaikan tugas ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Dr. Saib Suwilo, M. Sc dan Drs. Henri Rani Sitepu, M. Si., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua Dosen pada Departeman Matematika FMIPA USU, pegawai di FMIPA USU, dan rekan-rekan kuliah. Akhirnya tidak terlupakan kepada bapak, ibu dan semua ahli keluarga yang selama ini memberikan bantuan dan dorongan yang diperluakan. Semoga Tuhan Yang Maha Esa akan membalasnya.


(6)

ABSTRAK

Jaringan komputer dan Internet telah mengalami perkembangan yang sangat pesat. Teknologi ini mampu menyambungkan hampir semua komputer yang ada di dunia sehingga bisa saling berkomunikasi dan bertukar informasi. Bentuk informasi yang dapat ditukar berupa data teks, citra digital, video, audio. Steganografi sebagai suatu seni penyembunyian pesan ke dalam pesan lainnya yang telah ada sejak sebelum masehi dan kini seiring dengan kemajuan teknologi jaringan serta perkembangan dari teknologi digital, steganografi banyak dimanfaatkan untuk mengirim pesan melalui jaringan Internet tanpa diketahui orang lain dengan menggunakan media digital berupa file citra digital.

Pada Skripsi ini, digunakan suatu metode steganografi berbasiskan LSB (Least Significant Bit) untuk diimplementasikan pada aplikasi steganografi ini. Dimana nantinya akan berguna untuk mengirimkan data rahasia secara aman tanpa sepengetahuan orang lain. Metode LSB ini dapat membantu dalam mengirimkan pesan rahasia secara aman karena pesan yang dikirim tidak dapat dipaksa di buka atau di ganggu oleh orang lain karena akan hancur dengan sendirinya demi keamanan pesan itu sendiri.


(7)

SECRET MESSAGE PROTECTION IN DIGITAL IMAGE USING LEAST SIGNIFICANT BIT STEGANOGRAPHY

ABSTRACT

Computer Network and Internet have expand wide. This technology is able to joint most of all computer in world so it can communicate each other and changing over information. Information which can be converted such as text data, digital image, video, audio. Steganografi as an art in order to hidden message which is have been there since pre-christian and nowadays along with technological progress of network and also growth from digital technology, steganografi is used to send the message through Internet network using digital media such as digital image.

Skripsi use a method of steganografi that it bases LSB ( Least Significant Bit) to be implemented for this application steganografi. In the future it will be save for delivering secret data without interupt by others.LSB Method has good experience delivering secret message because message sent cannot be forced open by others and it cause fall to pieces by itself for security message itself.


(8)

DAFTAR ISI

Halaman

Persetujuan iii

Pernyataan iv

Penghargan v

Abstrak vi

Abstract vii

Daftar isi viii

Daftar Gambar x

Daftar Tabel xi

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 3

1.3 Pembatasan Masalah 3

1.4 Tujuan penelitian 3

1.5 Kontribusi Penelitian 4

1.6 Metode Penelitian 4

1.7 Tinjauan Pustaka 5

BAB 2 LANDASAN TEORI 6

2.1 Teori Dasar Citra Digital 7

2.2 Format Citra Digital 10

2.2.1 Bitmap Images 10

2.2.2 GIF 12

2.2.3 JPEG 12

2.3 Steganografi . 13

2.3.1 Sejarah dan Defenisi Steganografi 13

2.4 Manfaat Steganografi 15

2.5 Metode Steganografi 16

2.5.1 Metode Least-Significant Bit 19

2.6 Kriteria Steganografi yang Baik 21

BAB 3 PERANCANGAN APLIKASI 22

3.1 Gambaran Umum Program 22

3.2 Perancangan Tampilan 24

3.2.1 Antar muka form menu utama 24

3.2.2 Antar muka form encode 25

3.2.3 Antar muka form decode 25

3.2.4 Antar muka form tentang saya 26

3.2.7 Antar muka form bantuan 27

3.3 Alur Data (flow chart) 27


(9)

BAB 4 IMPLEMENTASI 40

4.1 Implementasi 40

4.2 Cara Kerja Program 43

4.2.1. Pemilihan Citra 43

4.2.2 Pemilihan Pesan Rahasia 44

4.2.3 Penulisan Pesan Rahasia 46

4.2.4 Pembacaan Pesan Rahasia 48

4.3 Uji Coba Program 51

4.3.1 Proses scaling 51

4.3.2 Proses Penambahan Noise 55

4.3.3 Proses Perputaran Citra 57

4.3.4 Proses Pemotongan Citra 58

BAB 5 KESIMPULAN DAN SARAN 61

5.1 Kesimpulan 61

5.2 Saran 61

Daftar Pustaka 62

LAMPIRAN A [LISTING PROGRAM] 63


(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Citra biner 7

Gambar 2.2 Representasi citra biner 7

Gambar 2.3 Citra grayscale (abu-abu) 8

Gambar 2.4 Citra Berwarna 9

Gambar 2.5 Warna bitmap 11

Gambar 2.6 Proses Steganography 16

Gambar 2.7 Proses Cryptography 17

Gambar 2.8 SistemSteganografi 17

Gambar 2.9 Versi grafis dari sistem Steganografi 17

Gambar 3.1 Metode Steganografi 23

Gambar 3.2 Rancangan tampilan form utama 24

Gambar 3.3 Rancangan tampilan form encode 25

Gambar 3.4 Rancangan tampilan form decode 26

Gambar 3.5 Rancangan tampilan form tentang saya 26

Gambar 3.6 Rancangan tampilan form bantuan 27

Gambar 3.7 Flowchart program 30

Gambar 3.8 Lebaran.bmp 31

Gambar 3.9 Citra dalam bentuk biner 32

Gambar 3.10 Proses Penyimpanan Pesan 37

Gambar 3.11 Citra Sebelum disisipi Pesan 37

Gambar 3.11 Citra Setelah disisipi Pesan 38

Gambar 3.12 Arsitektur Rancangan Perlidungan Pesan 38

Gambar 4.1 Menu utama 40

Gambar 4.2 Pemilihan Citra 43

Gambar 4.3 Citra yang telah dipilih 44

Gambar 4.4 Pemilihan Pesan Rahasia 45

Gambar 4.5 Citra dan Pesan Rahasia sudah dipilih 46 Gambar 4.6 Proses Penggabungan Pesan rahasia dengan citra 47 Gambar 4.7 Citra yang telah disisipi pesan rahasia 48

Gambar 4.8 Proses pembacaan pesan rahasia 49

Gambar 4.9 Pesan Rahasia yang berhasil diambil. 50 Gambar 4.10 Pesan Rahasia yang berhasil diambil. 51

Gambar 4.11 Citra yang telah diperbesar2x. 52

Gambar 4.12 Citra yang telah diperkecil2x. 52

Gambar 4.13 Proses Pembacaan Pesan Rahasia. 53

Gambar 4.14 Pesan Rahasia tidak dapat dibuka . 54

Gambar 4.15 Proses Pembacaan Pesan Rahasia. 54

Gambar 4.16 Pesan Rahasia tidak dapat dibuka. 55 Gambar 4.17 Pesan Rahasia tidak dapat dibuka. 56

Gambar 4.18 Proses Pembacaan Pesan Rahasia. 57

Gambar 4.19 Pesan Rahasia tidak dapat dibuka. 58

Gambar 4.20 Proses Pembacaan Pesan Rahasia. 58


(11)

DAFTAR TABEL

Halaman

Tabel 3.1 Bagan Alir (Flowchart) 28

Tabel 3.2 Tabel ASCII 31

Tabel 3.3 Tabel Kode Biner 31

Tabel 3.4 Tabel Kode Biner 33

Tabel 3.5 Tabel Lokasi Penyimpanan pesan 36


(12)

ABSTRAK

Jaringan komputer dan Internet telah mengalami perkembangan yang sangat pesat. Teknologi ini mampu menyambungkan hampir semua komputer yang ada di dunia sehingga bisa saling berkomunikasi dan bertukar informasi. Bentuk informasi yang dapat ditukar berupa data teks, citra digital, video, audio. Steganografi sebagai suatu seni penyembunyian pesan ke dalam pesan lainnya yang telah ada sejak sebelum masehi dan kini seiring dengan kemajuan teknologi jaringan serta perkembangan dari teknologi digital, steganografi banyak dimanfaatkan untuk mengirim pesan melalui jaringan Internet tanpa diketahui orang lain dengan menggunakan media digital berupa file citra digital.

Pada Skripsi ini, digunakan suatu metode steganografi berbasiskan LSB (Least Significant Bit) untuk diimplementasikan pada aplikasi steganografi ini. Dimana nantinya akan berguna untuk mengirimkan data rahasia secara aman tanpa sepengetahuan orang lain. Metode LSB ini dapat membantu dalam mengirimkan pesan rahasia secara aman karena pesan yang dikirim tidak dapat dipaksa di buka atau di ganggu oleh orang lain karena akan hancur dengan sendirinya demi keamanan pesan itu sendiri.


(13)

SECRET MESSAGE PROTECTION IN DIGITAL IMAGE USING LEAST SIGNIFICANT BIT STEGANOGRAPHY

ABSTRACT

Computer Network and Internet have expand wide. This technology is able to joint most of all computer in world so it can communicate each other and changing over information. Information which can be converted such as text data, digital image, video, audio. Steganografi as an art in order to hidden message which is have been there since pre-christian and nowadays along with technological progress of network and also growth from digital technology, steganografi is used to send the message through Internet network using digital media such as digital image.

Skripsi use a method of steganografi that it bases LSB ( Least Significant Bit) to be implemented for this application steganografi. In the future it will be save for delivering secret data without interupt by others.LSB Method has good experience delivering secret message because message sent cannot be forced open by others and it cause fall to pieces by itself for security message itself.


(14)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Internet sudah berkembang menjadi salah satu media komunikasi data yang sangat populer. Kemudahan dalam penggunaan dan fasilitas yang lengkap merupakan keunggulan yang dimiliki oleh internet, dan bukan menjadi satu rahasia umum lagi di kalangan masyarakat pengguna internet pada saat sekarang ini. Akan tetapi, seiring dengan berkembangnya media internet dan aplikasi yang menggunakan internet semakin bertambah pula kejahatan dalam sistem informasi. Dengan berbagai teknik pengambilan informasi secara ilegal yang berkembang, banyak yang mencoba untuk mengakses informasi yang bukan haknya. Untuk itu, sejalan dengan berkembangnya media internet yang sangat cepat ini harus juga diikuti dengan perkembangan pengamanan dalam sistem informasi yang berada dalam media internet tersebut.

Berbagai macam teknik yang digunakan untuk melindungi informasi yang dirahasiakan dari orang yang tidak berhak telah banyak dilakukan dalam upaya mengamankan suatu data penting dengan menggunakan sistem kriptografi yang melakukan enkripsi sebelum data penting tersebut ditransmisikan. Tindakan pengamanan menggunakan cara tersebut ternyata dianggap belum cukup dalam mengamankan suatu data karena adanya peningkatan kemampuan komputasi. Berbeda dengan teknik kriptografi, steganografi menyembunyikan pesan rahasia agar bagi orang awam tidak menyadari keberadaan dari pesan yang disembunyikan. Teknik ini sering digunakan untuk menghindari kecurigaan orang dan menghindari keinginan orang untuk mengetahui isi pesan rahasia tersebut. Caranya dengan menyembunyikan informasi rahasia di dalam suatu wadah penampung informasi dengan sedemikian rupa sehingga keberadaan informasi rahasia yang ditempelkan


(15)

tidak dapat dilihat. Wadah penampung informasi tersebut dapat berbentuk berbagai jenis file multimedia digital seperti teks, citra, audio, video. Pada Skripsi ini difokuskan pada wadah penampung berupa citra digital. Penggunaan wadah penampung berupa citra digital karena adanya batasan kepekaan manusia dalam hal sistem visualisasi. Hasil keluaran dari steganografi ini memiliki bentuk persepsi yang sama dengan yang aslinya, tentunya persepsi disini sebatas oleh kemampuan indera manusia, tetapi tidak oleh komputer atau pengolah digital lainnya. Dengan berkembangnya dunia multimedia, maka steganografi menggunakan file-file multimedia ini sebagai kedok untuk menyembunyikan pesan. Lalu lintas file-file multimedia di internet sudah lumrah sehingga akan mengurangi kecurigaan akan adanya pesan rahasia. Teknik steganografi yang akan digunakan adalah menggunakan citra digital sebagai wadah penampung dari pesan yang akan disembunyikan.

Saat ini di dalam media internet dapat kita bayangkan lautan informasi yang dapat kita akses. Sebagian besar ada yang telah dilindungi oleh suatu teknik pengamanan informasi yang umum digunakan, salah satunya teknik pengamanan menggunakan kriptografi yang dimana masih kurang cukup mengamankan informasi yang berjalan di lalu lintas internet dikarenakan masih terus berkembangnya teknik untuk mengakses informasi oleh orang yang tidak berhak.

Berdasarkan pada asumsi bahwa keamanan data adalah tujuan dari teknologi dalam hal ini Informasi. Maka dalam Skripsi ini, steganografi merupakan solusi dari permasalahan yang telah disebutkan diatas. Dikarenakan dengan penggunaan teknik tersebut, data informasi dapat disembunyikan di dalam media digital yang kita miliki.


(16)

1.2 Perumusan Masalah

Dari uraian latar belakang diatas, maka dapat dirumuskan masalah – masalah yang timbul diantaranya :

1. Bagaimana cara mempertahankan data rahasia dari serangan – serangan atau usaha secara paksa untuk membukanya.

2. Bagaimana cara menyembunyikan data sebaik mungkin dengan menggunakan metode tertentu.

1.3 Pembatasan Masalah

Batasan masalah dalam Skripsi ini meliputi :

a. Format file citra digital yang digunakan sebagai wadah atau penampung pesan rahasia adalah *.bmp

b. Format file citra digital yang dihasilkan dari program ini adalah *.bmp.

c. Teknik Steganography yang digunakan hanya dapat menyimpan Pesan rahasia berupa teks, dan citra (*.bmp).

d. Citra yang digunakan adalah citra 24 bit.

1.4 Tujuan Penelitian

Tujuan yang hendak dicapai dalam Skripsi ini adalah :

a. Memberikan informasi bagaimana penerapan Steganography di dalam citra digital.

b. Membuat aplikasi penyembunyian pesan rahasia ke dalam citra digital.

c. Menyembunyikan pesan rahasia agar tidak jatuh ke tangan orang yang tidak berhak mengaksesnya.


(17)

1.5 Kontribusi Penelitian

Penelitian ini bermanfaat bagi para pengguna internet agar keamanan data dalam berkirim pesan rahasia dapat lebih terjamin.

1.6 Metode Penelitian

Penelitian ini dilakukan dengan langkah-langkah sebagi berikut:

a. Melakukan studi literatur mengenai Least Significant Bit Image

Steganography baik pada beberapa buku, makalah, maupun artikel-artikel

yang ada pada situs-situs internet yang berhubungan dengan Least Significant

Bit Image Steganography.

b. Menganalisa proses enkripsi dan dekripsi pada Least Significant Bit Image

Steganography.

c. Melakukan perancangan dan menerapkan Least Significant Bit Image


(18)

1.7 Tinjauan Pustaka

Dalam tulisan ini, penulis memanfaatkan buku-buku yang dapat dipergunakan untuk menjelaskan teori-teori pemecahan masalah atau dasar pemikiran untuk menjelaskan masalah yang dibahas.

(G.W. Awcock, 1996) dalam bukunya “Applied Image Processing” membahas tentang pengolahan citra.

(Hendri pandia, 2002) dalam bukunya “Visual Basic 6.0 Tingkat Lanjut”

membahas penggunaan visual basic sebagai salah satu bahasa pemrograman.

(Jonathan Cummins, 2004) dalam jurnalnya “Steganography And Digital

Watermarking” membahas proses pembentukan watermark dan penerapan

steganografi.

(Marvin Chandra Wijaya,2007) dalam bukunya “Pengolahan citra digital

menggunakan matlab” membahas proses pengolahan citra digital, model citra digital

serta operasi terhadap citra digital.

(Rian Rianto Sigit ST. A. Basuki. N. Ramadijanti. Dan D. Pramadihanto, 2005) dalam bukunya “step by step pengolahan citra digital” membahas tentang teori, langkah-langkah pemrograman dan latihan-latihan dalam melakukan pengolahan citra digital.

(Rinaldi Munir, 2005) dalam bukunya “pengolahan citra digital” membahas mengenai kualitas citra serta pengolahannya.

(Wiliam K. Pratt,1991) dalam bukunya “Digital Image Processing Second

Edition” membahas tentang pengolahan citra digital membahas penerapan


(19)

BAB 2

LANDASAN TEORI

2.1 Teori Dasar Citra Digital

Citra digital adalah gambar dua dimensi yang dapat ditampilkan pada layar monitor komputer sebagai himpunan berhingga (diskrit) nilai digital yang disebut pixel (picture elements). Pixel adalah elemen citra yang memiliki nilai yang menunjukkan intensitas warna.

Berdasarkan cara penyimpanan atau pembentukannya, citra digital dapat dibagi menjadi dua jenis. Jenis pertama adalah citra digital yang dibentuk oleh kumpulan pixel dalam array dua dimensi. Citra jenis ini disebut citra bitmap

(bitmap image) atau citra raster (raster image). Jenis citra yang kedua adalah citra

yang dibentuk oleh fungsi-fungsi geometri dan matematika. Jenis citra ini disebut grafik vektor (vector graphics). Dalam pembahasan skripsi ini, yang dimaksud citra digital adalah citra bitmap.

Citra digital (diskrit) dihasilkan dari citra analog (kontinu) melalui digitalisasi Digitalisasi citra analog terdiri atas penerokan (sampling) dan kuantisasi (quantization) Penerokan adalah pembagian citra ke dalam elemen-elemen diskrit (pixel), sedangkan kuantisasi adalah pemberian nilai intensitas warna pada setiap pixel dengan nilai yang berupa bilangan bulat (G.W. Awcock, 1996).

Banyaknya nilai yang dapat digunakan dalam kuantisasi citra bergantung kepada kedalaman pixel, yaitu banyaknya bit yang digunakan untuk


(20)

merepresentasikan intensitas warna pixel. Kedalaman pixel sering disebut juga kedalaman warna. Citra digital yang memiliki kedalaman pixel n bit disebut juga citra n-bit.

Berdasarkan warna-warna penyusunnya, citra digital dapat dibagi menjadi tiga macam (Marvin Chandra Wijaya,2007) yaitu:

a. Citra biner, yaitu citra yang hanya terdiri atas dua warna, yaitu hitam dan putih. Oleh karena itu, setiap pixel pada citra biner cukup direpresentasikan dengan 1 bit.

Gambar 2.1 citra biner

Gambar 2.2 representasi citra biner

Meskipun saat ini citra berwarna lebih disukai karena memberi kesan yang lebih kaya dari citra biner, namun tidak membuat citra biner mati. Pada beberapa aplikasi citra biner masih tetap di butuhkan, misalkan citra logo instansi ( yang hanya terdiri dari warna hitam dan putih), citra kode barang (bar code) yang tertera pada label barang, citra hasil


(21)

pemindaian dokumen teks, dan sebagainya. Seperti yang sudah disebutkan diatas, citra biner hanya mempunyai dua nilai derajat keabuan : hitam dan putih. Pixel – pixel objek bernilai 1 dan pixel – pixel latar belakang bernilai 0. pada waktu menampilkan gambar, adalah putih dan 1 adalah hitam. Jadi pada citra biner, latar belakang berwarna putih sedangkan objek berwarna hitam seperti tampak pada gambar 2.1 diatas. Meskipun komputer saat ini dapat memproses citra hitam-putih (grayscale) maupun citra berwarna, namun citra biner masih tetap di pertahankan keberadaannya.

Alasan penggunaan citra biner adalah karena citra biner memiliki sejumlah keuntungan sebagai berikut:

a. Kebutuhan memori kecil karena nilai derajat keabuan hanya membutuhkan representasi 1 bit.

b. Waktu pemrosesan lebih cepat di bandingkan dengan citra hitam-putih ataupun warna.

b. Citra grayscale, yaitu citra yang nilai pixel-nya merepresentasikan derajat keabuan atau intensitas warna putih. Nilai intensitas paling rendah merepresentasikan warna hitam dan nilai intensitas paling tinggi merepresentasikan warna putih. Pada umumnya citra grayscale memiliki kedalaman pixel 8 bit (256 derajat keabuan), tetapi ada juga citra grayscale

yang kedalaman pixel-nya bukan 8 bit, misalnya 16 bit untuk penggunaan yang memerlukan ketelitian tinggi.


(22)

Citra grayscale merupakan citra satu kanal, dimana citra f(x,y) merupakan fungsi tingkat keabuan dari hitam keputih, x menyatakan variable kolom atau posisi pixel di garis jelajah dan y menyatakan variable kolom atau posisi pixel di garis jelajah. Intensitas f dari gambar hitam putih pada titik (x,y) disebut derajat keabuan (grey level), yang dalam hal ini derajat keabuannya bergerak dari hitam keputih. Derajat keabuan memiliki rentang nilai dari Imin sampai Imax, atau Imin < f < Imax, selang (Imin, Imax) disebut skala keabuan.

Biasanya selang (Imin, Imax) sering digeser untuk alasan-alasan praktis menjadi selang [0,L], yang dalam hal ini nilai intensitas 0 meyatakan hitam, nilai intensitas L meyatakan putih, sedangkan nilai intensitas antara 0 sampai L bergeser dari hitam ke putih. Sebagai contoh citra grayscale dengan 256 level artinya mempunyai skala abu dari 0 sampai 255 atau [0,255], yang dalam hal ini intensitas 0 menyatakan hitam, intensitas 255 menyataka putih, dan nilai antara 0 sampai 255 menyatakan warna keabuan yang terletak antara hitam dan putih.

c. Citra berwarna, yaitu citra yang nilai pixel-nya merepresentasikan warna tertentu Banyaknya warna yang mungkin digunakan bergantung kepada kedalaman pixel citra yang bersangkutan. Citra berwarna direpresentasikan dalam beberapa kanal (channel) yang menyatakan komponen-komponen warna penyusunnya. Banyaknya kanal yang digunakan bergantung pada model warna yang digunakan pada citra tersebut.


(23)

Intensitas suatu pada titik pada citra berwarna merupakan kombinasi dari tiga intensitas : derajat keabuan merah (fmerah(x,y)), hijau fhijau(x,y) dan biru (fbiru(x,y)). Persepsi visual citra berwarna umumnya lebih kaya di bandingkan dengan citra hitam putih. Citra berwarna menampilkan objek seperti warna aslinya ( meskipun tidak selalu tepat demikian ). Warna-warna yang diterima oleh mata manusia merupakan hasil kombinasi cahaya dengan panjang gelombang berbeda.

2.2 Format Citra Digital

Citra digital dapat disimpan dalam berbagai macam format. Beberapa format citra digital dapat memanfaatkan metode kompresi dalam penyimpanan data citra. Kompresi yang dilakukan dapat bersifat lossy maupun lossless, bergantung kepada jenis format yang digunakan. Kompresi yang bersifat lossy menyebabkan penurunan kualitas citra, meskipun dalam beberapa kasus penurunan kualitas tersebut tidak dapat dikenali oleh mata manusia. Beberapa format citra digital yang banyak ditemui adalah BMP, JPEG, GIF, PNG, dan lain-lain.

2.2.1 Bitmap images

Kriteria yang paling penting dari citra ini adalah kedalaman warna yaitu berapa banyak bit per pixel yang didefinisikan dari sebuah warna (Rinaldi Munir, 2005). Bitmap dengan mengikuti kriteria tadi maka dapat dilihat:

a. 8 bit = 256 warna (256 gray scales). b. 24 bit = 16.777.216 warna


(24)

Gambar 2.5 warna bitmap

Secara umum dapat dikatakan semakin banyaknya warna, maka akan diperlukan keamanan yang ketat atau tinggi dikarenakan bitmap memiliki area yang sangat luas dalam sebuah warna yang seharusnya dihindarkan. Dilihat dari kedalaman atau kejelasan dari sebuah warna, bitmap dapat mengambil sejumlah data tersembunyi dengan perbandingan sebagai berikut (ukuran ratio dari bitmap dalam byte = ukuran dari data yang disembunyikan) :

1. 8 bit = 256 warna : 8 : 1

2. 24 bit = 16.777.216 warna : 8 : 1

Perbandingan tersebut diperoleh dari penentuan LSB dalam suatu byte, untuk citra 8 bit letak LSB adalah pada bit terakhir sedangkan untuk citra 24 bit letak LSB adalah pada bit ke-8, bit ke-16 dan bit ke 24 dimana masing-masing byte mewakili warna merah (red), warna hijau (green) dan warna biru (blue).

Manipulasi pada bitmap tidak dapat dikonvert atau diubah ke dalam bentuk format grafik yang lain karena data tersembunyi dalam file tersebut akan hilang. Format menggunakan metode komperesi yang lain (seperti JPEG) tidak di gunakan dalam skripsi ini. Mengurangi ukuran dari carrier file sangatlah penting untuk melakukan transmisi online, yaitu dengan menggunakan utilitas kompresi (seperti : ARZ, LZH, PKZIP, WinZip), dikarenakan kerja mereka tidak terlalu berat.


(25)

2.2.2 GIF

Graphic Interchange Format (GIF, dibaca jiff ,tetapi kebanyakan orang

menyebutnya dengan giff ) yang dibuat oleh Compuserve pada tahun 1987 untuk menyimpan berbagai gambar dengan format bitmap menjadi sebuah file yang mudah untuk diubah pada jaringan koputer. GIF adalah file format graphic yang paling tua pada Web, dan begitu dekatnya file format ini dengan web pad saat itu sehingga para Browser menggunakan format ini.

File GIF dapat disimpan dalam dua jalan yaitu secara berurutan (Dari atas ke bawah) dan pembagian dengan baris ( 8 baris, 4 baris dan 2 baris). Pembagian baris pada gambar dengan resolusi gambar yang rendah dengan cepat dimana secara gradual datangnya untuk menjadikan lebih focus , dengan expense dari penambahan kapasitas file.

Terdapat dua tipe dari GIFs, antara lain:

1. GIF87a: support dengan interlacing dan kapasitas dari beberapa file. Teknik itu dinamakan GIF87 karena pada tahun 1987 standar ini ditemukan dan dijadikan standar.

2. GIF89a: adalah kelanjutan dari spesifikasi GIF87a dan penambahan pada transparency, pemberian tulisan dan animasi dari text dan grafik.

2.2.3 JPEG

Joint Photograpic Experts (JPEG , dibaca jay-peg) di rancang untuk kompresi beberapa full-color atau gray-scale dari suatu gambar yang asli, seperti pemandangan asli di dunia ini. JPEGs bekerja dengan baik pada continous tone

images seperi photographs tetapi tidak terlalu bagus pada ketajaman gambar dan

seni pewarnaan seperti penulisan, kartun yang sederhana atau gambar yang mengunakan banyak garis. JPEG sudah mendukung untuk 24-bit colordepth atau sama dengan 16,7 juta warna (224 = 16.777.216 warna), progressive JPEGs


(26)

(p-JPEGs) adalah tipe dari beberapa persen lebih kecil dibandingkan baseline JPEGs: Tetapi keuntungan dari JPEG dan tipe-tipenya telihat pada langkah-langkahnya sama seperti interlaced GIFs.

JPEG adalah algoritma kompresi secara lossy. JPEG bekerja dengan merubah gambar spasial dan merepresentasikan kedalam pemetaan frekueunsi.

Discrete CosineTransform (DCT) dengan memisahkan antara informasi frekuensi

yang rendah dan tinggi dari sebuah gambar. Informasi frekuensi yang tinggi akan diseleksi untuk dihilangkan yang terikat pada pengaturan kualitas yang digunakan. Kompresi dengan tingkatan yang lebih baik , tingkatan yang lebih baik dari informasi yang dihilangkan. Waktu Kompresi dan dekompresi dilaksanakan dengan simetris. JPEG Group’s (IJG) decoder lebih ditingkatkan kemampuannya dibandingkan dengan encodernya. Manakala, ketika diperlihatkan 8 bits, mengurangi kuantisasi warna yang lambat. Banyak para penjual JPEG menawarkan untuk mempercepat hasil dari JPEG, kuantisasi warna dan kualitas dengan mengimplementasikan IJG.

JPEG dirancang untuk mengeksploitasi tingkatan dari mata kita yakni bahwa mata kita tidak akan dapat mebedakan perubahan yang lambat terang dan warna dibandingkan dengan perbedaan suatu jarak apakah jauh atau dekat. Untuk itu JPEG sangat baik digunkan pada fotografi dan monitor 80-bit. JPEG sebenarnya hanyalah algoritma kompresi, bukan merupakan nama format file. File yang biasa disebut JPEG pada jaringan sebenarnya adalah JFIF (JPEG File

InterchangeFormat).

2.3 Steganografi

2.3.1 Sejarah dan Defenisi Steganografi

Steganografi merupakan suatu cabang ilmu yang mempelajari tentang bagaimana menyembunyikan suatu informasi “rahasia” di dalam suatu informasi lainnya


(27)

(Jonathan Cummins, 2004). Steganografi merupakan seni penyembunyian pesan ke dalam pesan lainnya sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu di dalam pesan tersebut. Kata steganografi (steganography) berasal dari bahasa Yunani yaitu steganos yang artinya tersembunyi atau terselubung dan

graphein, yang artinya menulis, sehingga kurang lebih artinya adalah “menulis

tulisan yang tersembunyi atau terselubung” Teknik ini meliputi banyak sekali

metoda komunikasi untuk menyembunyikan pesan rahasia. Metliputi penggunaan tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar.

Catatan pertama tentang steganografi ditulis oleh seorang sejarawan Yunani, Herodotus, yaitu ketika Histaeus seorang raja kejam Yunani dipenjarakan oleh Raja Darius di Susa pada abad 5 Sebelum Masehi. Histaeus harus mengirim pesan rahasia kepada anak laki-lakinya, Aristagoras, di Militus. Histaeus menulis pesan dengan cara mentato pesan pada kulit kepala seorang budak dan ketika rambut budak itu mulai tumbuh, Histaeus mengutus budak itu ke Militus untuk mengirim pesan di kulit kepalanya tersebut kepada Aristagoras.

Cerita lain tentang steganografi datang juga dari sejarawan Yunani, Herodotus, yaitu dengan cara menulis pesan pada papan kayu yang ditutup dengan lilin. Demeratus, seorang Yunani yang akan mengabarkan berita kepada Sparta bahwa Xerxes bermaksud menyerbu Yunani. Agar tidak diketahui pihak Xerxes, Demaratus menulis pesan dengan cara mengisi tabung kayu dengan lilin dan menulis pesan dengan cara mengukirnya pada bagian bawah kayu, lalu papan kayu tersebut dimasukkan ke dalam tabung kayu, kemudian tabung kayu ditutup kembali dengan lilin.

Pada abad 20, steganografi benar-benar mengalami perkembangan. Selama berlangsung perang Boer, Lord Boden Powell (pendiri gerakan kepanduan) yang bertugas untuk membuat tanda posisi sasaran dari basis artileri tentara Boer, untuk alasan keamanan, Boden Powell menggambar peta-peta posisi musuh pada sayap kupu-kupu agar gambar - gambar peta sasaran tersebut terkamuflase.


(28)

Perang Dunia II adalah periode pengembangan teknik-teknik baru steganografi. Pada awal Perang Dunia II walaupun masih digunakan teknik tinta yang tak terlihat, namun teknik-teknik baru mulai dikembangkan seperti menulis pesan rahasia ke dalam kalimat lain yang tidak berhubungan langsung dengan isi pesan rahasia tersebut, kemudian teknik menulis pesan rahasia ke dalam pita koreksi karbon mesin ketik, dan juga teknik menggunakan pin berlubang untuk menandai kalimat terpilih yang digunakan dalam pesan, teknik terakhir adalah microdots yang dikembangkan oleh tentara Jerman pada akhir Perang Dunia II.

Dari contoh-contoh steganografi konvensional tersebut dapat dilihat bahwa semua teknik steganografi konvensional berusaha merahasiakan komunikasi dengan cara menyembunyikan pesan ataupun mengkamuflase pesan. Maka sesungguhnya prinsip dasar dalam steganografi lebih dikonsentrasikan pada kerahasian komunikasinya bukan pada datanya

Seiring dengan perkembangan teknologi terutama teknologi komputasi, steganografi merambah juga ke media digital, walaupun steganografi dapat dikatakan mempunyai hubungan erat dengan kriptografi, tetapi kedua metode ini sangat berbeda.

2.4 Manfaat Steganografi

Steganografi adalah sebuah pisau bermata dua, ia bisa digunakan untuk alasan-alasan yang baik, tetapi bisa juga digunakan sebagai sarana kejahatan. Steganografi juga dapat digunakan sebagai salah satu metode untuk menyembunyikan informasi rahasia, untuk melindunginya dari pencurian dan dari orang yang tidak berhak untuk mengetahuinya. Steganografi juga dapat digunakan oleh para teroris untuk saling berkomunikasi satu dengan yang lain.


(29)

Proses

2.5 Metode Steganografi

Steganografi merupakan salah satu cara untuk menyembunyikan suatu pesan / data rahasia di dalam data atau pesan lain yang tampak tidak mengandung apa-apa, kecuali bagi orang yang mengerti kuncinya (Jonathan Cummins, 2004). Dalam bidang keamanan komputer, steganografi digunakan untuk menyembunyikan data rahasia saat enkripsi tidak dapat dilakukan atau bersamaan dengan enkripsi. Jadi, walaupun enkripsi berhasil dipecahkan (decipher) pesan / data rahasia tetap tidak terlihat.


(30)

Proses

Steganografi mempunyai proses yang berbeda dengan kriptografi dimana pesan rahasia yang ingin dikirimkan tidak di acak melainkan disembunyikan pada penampungnya seperti pada gambar 2.6 diatas. Hal ini sangat menguntungkan karena akan mengurangi keinginan seseorang untuk memeriksa file tersebut.

Gambar 2.7 Proses Cryptography

Selain itu, pada kriptografi pesan disembunyikan dengan “diacak” sehingga pada kasus-kasus tertentu dapat dengan mudah mengundang kecurigaan seperti terlihat pasa gambar 2.7, sedangkan pada steganografi pesan “disamarkan” dalam bentuk yang relatif “aman” sehingga tidak terjadi kecurigaan itu. Steganografi dapat digunakan pada berbagai macam bentuk data, yaitu image, audio, dan video.

Gambar 2.8SistemSteganografi

fE fE-1

Cover*

emb* Stego

Cover

emb

Key Key


(31)

Gambar 2.8 menunjukkan sebuah sistem steganografi umum dimana dibagian pengirim pesan (sender), dilakukkan proses embedding (Fe) pesan yang hendak dikirim secara rahasia (emb) ke dalam data cover sebagai tempat meyimpannya (cover), dengan menggunakan kunci tertentu (key), sehingga dihasilkan data dengan pesan tersembunyi di dalamnya (stego). Di bagian penerima pesan (recipient), dilakukan proses extracting (fE-1) pada stego untuk memisahkan pesan rahasia (emb) dan data penyimpan (cover) tadi dengan menggunakan kunci yang sama seperti pada proses embedding tadi. Jadi hanya orang yang tahu kunci ini saja yang dapat mengekstrak pesan rahasia tadi. Proses tadi dapat direpresentasikan secara lebih jelas pada gambar 2.9 di bawah.

Gambar 2.9Versi grafis dari sistem Steganografi

Secara garis besar, teknik penyembunyian data dengan steganografi adalah dengan cara menyisipkan sepotong demi sepotong informasi asli pada sebuah media, sehingga informasi tersebut tampak kalah dominan dengan media pelindungnya

Dalam penulisan ini, penulis membatasi teknik yang digunakan adalah modifikasi LSB, dan teknik – teknik steganografi lainnya diberikan hanya sebagai pengantar dalam pembahasan steganografi.

Cover Image

Cover Image Embedding

Function(FE)

Extracting Function(FE-1)

Key Key

110010100011 101100011101 100001011011 100110101000 111001000111 100001101011 110010100011 101100011101 100001011011 100110101000 111001000111 100001101011


(32)

2.5.1 Metode Least-Significant Bit

Penyembunyian data dilakukan dengan mengganti bit-bit data yang tidak terlalu berpengaruh di dalam segmen citra dengan bit-bit data rahasia (Jonathan Cummins, 2004), 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). Berikut contoh sebuah susunan bit pada sebuah byte:

11010010

MSB = Most Siginificant Bit LSB = Least Significant Bit

Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan byte tersebut menyatakan warna merah, maka perubahan satu bit LSB tidak mengubah warna merah tersebut secara berarti. Lagi pula, mata manusia tidak dapat membedakan perubahan yang kecil.

Misalkan segmen data citra sebelum perubahan:

00110011 10100010 11100010 10101011 00100110

10010110 11001001 11111001 10001000 10100011

Segmen data citra setelah pesan ‘1110010111‘ disembunyikan:

00110011 10100011 11100011 10101010 00100110


(33)

Untuk memperkuat teknik penyembunyian data, bit-bit data rahasia tidak digunakan mengganti byte-byte yang berurutan, namun dipilih susunan byte secara acak. Misalnya jika terdapat 50 byte dan 6 bit data yang akan disembunyikan, maka maka byte yang diganti bit LSB-nya dipilih secara acak, misalkan byte nomor 36, 5, 21, 10, 18, 49.

41 42 43 44 45 46 47 48 49 50

31 32 33 34 35 36 37 38 39 40

21 22 23 24 25 26 27 28 29 30

11 12 13 14 15 16 17 18 19 20

1 2 3 4 5 6 7 8 9 10

Gambar 2.10 Proses Penempatan Bit Pesan

Untuk membangkitkan bilangan acak maka digunakan algoritma pembangkit bilangan acak semu (pseudo-random number generator).

(

aX c

)

p Xn+1 = 0 + mod

dimana Xn+1 , adalah bilangan acak yang dihasilkan.

p adalah jumlah pixel dikali 3 (tiga), dimana tiap pixel citra 24 bit memiliki tiga komponen warna yaitu red, green dan blue masing-masing 1 byte (8 bit).

a adalah pengali (multiplier) c adalah penambah (increment)

0

X adalah nilai awal (seed or start value)

Ukuran data yang akan disembunyikan bergantung pada ukuran citra penampung. Pada citra 24-bit yang berukuran 256 x 256 pixel terdapat 65536

pixel, setiap pixel berukuran 3 byte (komponen RGB), berarti seluruhnya ada


(34)

196608/8 = 24576 byte Ukuran data ini harus dikurangi dengan panjang nama berkas, karena penyembunyian data rahasia tidak hanya menyembunyikan isi data tersebut, tetapi juga nama berkasnya.

Untuk memperkuat keamanan, data yang akan disembunyikan dapat dienkripsi terlebih dahulu. Sedangkan untuk memperkecil ukuran data, data dimampatkan sebelum disembunyikan. Bahkan, pemampatan dan enkripsi dapat juga dikombinasikan sebelum melakukan penyembunyian data.

2.6 Kriteria Steganografi yang Baik

Steganografi yang dibahas di sini adalah penyembunyian data di dalam citra digital saja. Meskipun demikian, penyembunyian data dapat juga dilakukan pada wadah berupa suara digital, teks, ataupun video.

Penyembunyian data rahasia ke dalam citra digital akan mengubah kualitas citra tersebut (Jonathan Cummins, 2004). Kriteria yang harus diperhatikan dalam penyembunyian data adalah:

a. Fidelity. Mutu citra penampung tidak jauh berubah. Setelah penambahan

data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia.

b. Robustness. Data yang disembunyikan harus tahan terhadap manipulasi

yang dilakukan pada citra penampung (seperti pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan

(cropping), enkripsi, dan sebagainya). Bila pada citra dilakukan operasi

pengolahan citra, maka data yang disembunyikan tidak rusak.

c. Recovery. Data yang disembunyikan harus dapat diungkapkan kembali

(recovery). Karena tujuan steganografi adalah data hiding, maka

sewaktu-waktu data rahasia di dalam citra penampung harus dapat diambil kembali


(35)

BAB 3

PERANCANGAN APLIKASI

3.1 Gambaran Umum Program

Secara umum program steganografi ini mempunyai fungsi untuk menyembunyikan informasi berupa data digital dibalik data digital lainnya dalam hal ini media yang digunakan adalah citra digital dan harus menjadi perhatian bahwa dalam proses modifikasi perubahan yang terjadi antara media penampung dengan hasil modifikasi media penampung tidak boleh terlalu mencolok atau dengan kata lain secara kasat mata, perubahan pada citra penampung yang telah termodifikasi tidak terlalu terlihat.

Agar suatu kerahasiaan dari informasi yang terkandung dalam objek citra penampung digital tetap terjaga (integrity), sehingga tidak sembarang orang nantinya dapat mengambil informasi dari citra penampung, maka dibutuhkan suatu kunci yang digunakan untuk mengambil pesan rahasia yang terkandung dalam objek citra penampung yang disebut dengan istilah key. Tanpa key ini orang awam yang tidak mengetahui kata kuncinya, tidak akan bisa untuk mendapatkan informasi yang terkandung dalam image penampung tersebut. Untuk lebih jelasnya lihat pada gambar berikut.


(36)

Gambar 3.1. Metode Steganografi

Setelah menghasilkan citra yang telah disisipi pesan rahasia, file tersebut dapat disebarkan ke internet atau media elektronik lainnya dan hanya pemilik yang memiliki

key yang dapat mengambil pesan rahasia yang terkandung di dalam citra. Untuk mengambil label rahasia yang terkandung di dalam citra dibutuhkan proses extraction berupa algoritma pendeteksi dan key berupa password yang dimiliki oleh penerima sah.

Citra

Pesan rahasia

Embedding

Key

Citra

Stego Extraction

Pesan Rahasia


(37)

3.2 Perancangan Tampilan

Dalam pembuatan program, penulis membuat rancangan antar muka yang terdiri dari beberapa form, pembagian ke dalam beberapa form ini di maksudkan untuk mempermudah para pemakai dalam penggunaannya, sehingga pemakai tidak mengalami kesulitan ataupun kerancuan dalam proses encode maupun decode.

3.2.1 Antarmuka form menu utama

Form menu utama ini merupakan form utama dalam program Steganografi, di dalamnya terdapat menu dan toolbar yang dapat di akses untuk berbagai fungsi tertentu, pada bagian pilih foto juga terdapat image preview dan keterangan mengenai citra yang akan di akan di berilabel rahasia. Pada bagian pilih label Untuk lebih jelasnya dapat dilihat pada gambar 3.2.

Menu Toolbar

Pilih foto

Pilih label berupa file

Label teks Image preview


(38)

3.2.2 Antarmuka form encode

Form encode ini bertujuan untuk melakukan inisiasi awal dalam proses encode dan meminta sejumlah informasi yang dibutuhkan dari pemakai sebelum melakukan proses encode, informasi yang dibutuhkan antara lain : citra digital, dan Pesan rahasia.

Untuk melakukan pemilihan citra digital pemakai harus menekan tombol pilih

gambar, setelah memilih citra digital langkah selanjutnya yang harus dilakukan user

adalah dengan mengisi key (password).

Gambar 3.3 Rancangan tampilan form encode

3.2.3 Antarmuka form decode

Form decode ini bertujuan untuk melakukan inisiasi awal dalam proses decode dan meminta sejumlah informasi yang dibutuhkan dari pemakai sebelum menjalankan proses decode, informasi yang dibutuhkan antara lain : citra digital, stego key (password).

Kemudian di dalam form decode ini terdapat satu tombol navigasi, tombol tersebut adalah tombol menu utama yang menuju ke form menu utama. Desain form encode ini dapat dilihat pada gambar 3.4 yang terdapat di bawah ini.

kunci

Konfirmasi kata kunci


(39)

Gambar 3.4 Rancangan tampilan form decode

3.2.4 Antarmuka form tentang saya

Form tentang saya ini menampilkan ucapan terima kasih penulis kepada semua orang yang turut membantu pada skripsi ini dan juga semua yang ikut mendukung penulis .

Gambar 3.5 Rancangan tampilan form tentang saya Masukan kunci

Buka Batal

Tentang saya


(40)

3.2.5 Antarmuka form Bantuan

Form bantuan ini hanya menampilkan bagaimana cara menggunakan program steganografi berupa teks tanpa menutup form menu utama. Di dalam form ini terdapat satu tombol untuk menutup form bantuan, dan terdapat text box untuk menampilkan informasi tentang penggunaan program ini, dilengkap dengan scroll bar agar memudahkan pengguna dalam membacanya. Desain form bantuan ini lebih jelasnya dapat dilihat pada gambar 3.7 yang terdapat di bawah ini.

Gambar 3.6 Rancangan tampilan form bantuan

3.3 Alur Data (flow chart)

Bagan alir adalah urutan-urutan instruksi program tersebut dalam suatu diagram yang disebut dengan diagram alur atau flowchart. Sedangkan pada definisi lain disebutkan bahwa bagan alir adalah bagan yang menunjukan alir (flow) didalam program atau prosedur sistem secara logika. Hal-hal yang perlu diperhatikan pada saat pembuatan bagan alir adalah:

Bantuan


(41)

1. Sebaiknya digambarkan dari atas ke bawah dan mulai dari bagian kiri suatu halaman.

2. Kegiatan didalamnya harus ditunjukan dengan jelas.

3. Harus ditunjukan dari mana kegiatan akan dimulai dan dimana akan berakhir. 4. Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan suatu kata

yang mewakili suatu pekerjaan.

5. Masing-masing kegiatan didalam bagan alir harus didalam urutan yang semestinya.

6. Kegiatan yang terpotong dan akan disambung ke tempat lain harus ditunjukan dengan jelas menggunakan simbol penghubung

7. Gunakanlah simbol-simbol bagan alir yang sudah standar.

8. Simbol yang digunakan dalam Bagan Alir adalah sebagai berikut:

Tabel 3.1 Bagan Alir (Flowchart)

Nama Simbol Keterangan

1. Input/ Output Digunakan untuk mewakili

data input/ output.

2. Proses Digunakan untuk mewakili

suatu proses.

3. Keputusan Digunakan untuk suatu

penyeleksian kondisi.

4. Terminal Digunakan untuk

menunjukkan awal dan akhir dari suatu proses.

5. Garis Digunakan untuk

menunjukkan aliran control dari suatu proses.


(42)

Setelah pada bagian sebelumnya telah dijelaskan rancangan tampilan yang dibutuhkan untuk membuat program steganografi beserta struktur navigasinya, maka pada bagian sub bab ini akan di gambarkan dan dijelaskan diagram alur (flowchart) program yang berhubungan langsung dengan proses encode dan decode secara garis besar. Berikut adalah diagram alur secara umum dari program steganografi ini.


(43)

Mulai

Tampilan Menu Utama

Pilih Citra

Deteksi Pesan Rahasia

Ya

Tidak

Masukan Kunci

Periksa Kunci

Buka Pesan Rahasia

Stop

Pilih Pesan Rahasia yang ingin disembunyikan

Masukan Kunci

Periksa Kunci

Sisipkan Pesan Rahasia

Ya Ya

Tidak Tidak


(44)

3.4 Analisis LSB dalam Aplikasi.

Gambar 3.8 Lebaran.bmp

Gambar lebaran ini menggunakan format pewarnaan RGB, artinya tiap pixel dari gambar ini direpresentasikan dengan nilai sepanjang 24 bit. Pesan Rahasia yang dicoba untuk dimasukkan adalah “aku#“, yang jika direpresentasikan ke dalam binary kata “aku#“ini menjadi”

Tabel 3.2 Kode ASCII

character ASCII value (decimal)

a 97

k 107

u 117

# 35

Kode ASCII tersebut untuk selanjutnya diubah menjadi 8 bit kode-kode biner sehingga di dapat:

Tabel 3.3 Kode Biner

character biner

a 01100001

k 01101011

u 01110101


(45)

Konversi citra ke biner citra gambar. 3.8 di atas sebagai berikut;

11000100 00001010 01100000 10110110 01100101 00101000 … 01000011 11001000 01100101 00110010 01011010 00110010 … 00011000 10010110 00101101 11001000 01001011 00011101 … 10110001 00111000 01001100 01100101 00011001 11001000 … 01100101 00100010 11111011 00101001 01100100 00111100 … 00101100 01000010 01100010 01111101 10111110 11001000 … 11000100 00001010 01100001 10110110 01100101 00101001 … 01000010 11001000 01100101 00110011 01011010 00110011 … 00011000 10010110 00101101 11001000 01001011 00011100 … 10110000 00111000 01001101 01100101 00011001 11001000 … 01100101 00100010 11111010 00101000 01100100 00111100 … 00101100 01000010 01100011 01111101 10111110 11001000 …

… … … …

Gambar 3.9 Citra dalam bentuk Biner

Untuk selanjutnya, tiap bit kode biner pesan rahasia digunakan untuk menggantikan bit terakhir dari kode biner citra lebaran. Proses penggantian dilakukan dengan memilih byte tertentu secara acak. Proses pengacakan tersebut bergantung pada kata kunci (password) yang menjadi random seed atau titik awak dilakukannya pengacakan.

Kata kunci yang coba dimasukkan adalah “IBU” dengan asumsi citra gambar 3.8 berukuran 256 x 256 pixel dengan total byte yang dimiliki adalah 196608 byte. Berikut merupakan nilai desimal dari kata kunci yang dimasukkan.


(46)

Tabel 3.4 Tabel Biner

character ASCII value (decimal) biner

I 73 01001001

B 66 01000010

U 85 01010101

(

aX c

)

p Xn+1 = 0 + mod

dimana Xn+1 , adalah bilangan acak yang dihasilkan.

p adalah jumlah pixel dikali 3 (tiga), dimana tiap pixel citra 24 bit memiliki tiga komponen warna yaitu red, green dan blue masing-masing 1 byte (8 bit).

a adalah nilai karakter kata kunci kedua sebagai pengali (multiplier)

c adalah nilai karakter kata kunci ketiga penambah (increment)

0

X adalah nilai karakter kata kunci pertama nilai awal (seed or start value)

Maka:

X1 = ( 66 x 73 + 85 ) mod 196608

X1 = 5035

X2 = (5035 x 73 + 85) mod 196608

X2 = 171032

X3 = (171032 x73 + 85) mod 196608

X3 =99117

X4 =(99117x73+85) mod 196608

X4 =157738

X5 =(157738 x73+85) mod 196608

X5 =111695


(47)

X6 =92892

X7 =(92892 x73+85) mod 196608

X7 =96529

X8 =(96529 x73+85) mod 196608

X8 =165422

X9 =(165422 x73+85) mod 196608

X9 =82803

X10 =(82803 x73+85) mod 196608

X10 =146464

X11 =(146464 x73+85) mod 196608

X11 =75125

X12 =(75125 x73+85) mod 196608

X12 =175794

X13 =(175794 x73+85) mod 196608

X13 =53527

X14 =(53527 x73+85) mod 196608

X14 =172004

X15 =(172004 x73+85) mod 196608

X15 =170033

X16 =(170033 x73+85) mod 196608

X16 =26190

X17 =(26190 x73+85) mod 196608

X17 =142483


(48)

X19 =(177728 x73+85) mod 196608

X19 =194709

X20 =(194709 x73+85) mod 196608

X20 =58066

X21 =(58066 x73+85) mod 196608

X21 =110135

X22 =(110135 x73+85) mod 196608

X22 =175620

X23 =(175620 x73+85) mod 196608

X23 =40825

X24 =(40825 x73+85) mod 196608

X24 =31190

X25 =(31190 x73+85) mod 196608

X25 =114267

X26 =(114267 x73+85) mod 196608

X26 =84040

X27 =(84040 x73+85) mod 196608

X27 =40157

X28 =(40157 x73+85) mod 196608

X28 =179034

X29 =(179034 x73+85) mod 196608 X29 =93439

X30 =(93439 x73+85) mod 196608 X30 =136460

X31 =(136460 x73+85) mod 196608 X31 =131265


(49)

Berikut merupakan tabel lokasi penyisipan pesan pada byte citra penampung.

Tabel. 3.5 Lokasi penyisipan pesan

Bit “aku#” Lokasi Byte Penyisipan

0 5035

1 171032

1 99117

0 157738

0 111695

0 92892

0 96529

1 165422

0 82803

1 146464

1 75125

0 175794

1 53527

0 172004

1 170033

1 26190

0 142483

1 177728

1 194709

1 58066

0 110135

1 175620

0 40825

1 31190

0 114267

0 84040

1 40157

0 179034

0 93439

0 136460

1 131265


(50)

Proses penempatan bit citra rahasia pada citra sebagai berikut.

11000100 00001010 01100000 10110110 01100101 00101000 … 01000011 11001000 01100101 00110010 01011010 00110010 … 00011000 10010110 00101101 11001000 01001011 00011101 … 10110001 00111000 01001100 01100101 00011001 11001000 … 01100101 00100010 11111011 00101001 01100100 00111100 … 00101100 01000010 01100010 01111101 10111110 11001000 … 11000100 00001010 01100001 10110110 01100101 00101001 … 01000010 11001000 01100101 00110011 01011010 00110011 … 00011000 10010110 00101101 11001000 01001011 00011100 … 10110000 00111000 01001101 01100101 00011001 11001000 … 01100101 00100010 11111010 00101000 01100100 00111100 … 00101100 01000010 01100011 01111101 10111110 11001000 …

… … … …

Gambar 3.10 Proses Penyisipan Pesan

Citra dalam bentuk biner ini akan dipetakan kembali ke bentuk citra. Ekstraksi pesan dapat dengan mudah dilakukan dengan mengambil bit terakhir dari kode biner citra. Jika diperhatikan, penggantian bit terakhir tersebut tidak terlalu berpengaruh terhadap perubahan warna citra.


(51)

Gambar 3.12 Citra sesudah disisipi pesan

pengirim

Pesan rahasia Citra Penampung

Key Berupa Pasword

Biner Biner

Proses enkripsi pesan rahasia

Proses Deskripsi pesan rahasia Key Berupa

Pasword

Biner Biner

Pesan rahasia Citra Penampung


(52)

Proses pengiriman pesan rahasia dari pengirim hingga sampai kepada orang yang menerima sebagai berikut.

a. Tentukan pesan yang akan dikirimkan dan juga kata kunci (password) untuk melindungi pesan rahasia tersebut.

b.Tentukan citra penampung yang akan digunakan

c. Citra penampung dan pesan rahasia yang akan dikirimkan diubah kedalam bentuk biner.

d.Lakukan proses penempatan pesan rahasia pada byte citra penampung secara acak dimana bilangan acak diperoleh dari pembangkitan acak semu dimana kata kunci berperan sebagai titik awal pengacakan.

e. Proses pegambilan pesan rahasia di mulai dengan memasukan kata kunci yang digunakan, selanjutnya kata kunci tersebut akan membangkitkan bilangan acak yang sama dengan sewaktu proses penempatan pesan rahasia, pembacaan bit-bit pesan rahasia dilkukan sesuai dengan urutan byte yang telah ditentukan secara acak.

f. Pesan rahasia yang telah berhasil di baca bit-bitnya kemudian akan diubah kembali kepada bentuk asalnya.


(53)

BAB 4

IMPLEMENTASI

4.1 Implementasi

Implementasi Pembuatan program pesan rahasia dibuat menggunakan Microsoft Visual Basic 6.0. Aplikasi terdiri dari beberapa form dan satu form sebagai form utama.

Gambar 4.1 Menu utama

Menu utama seperti pada gambar 4.1 di buat agar mudah untuk digunakan, form ini dilengkapi dengan seluruh menu yang dapat diakses langsung ke citra penampungnnya maupun pesan rahasia.


(54)

Pada form utama di sediakan berbagai macam menu yang dapat diakses untuk keperluan tertentu sehingga pengguna dapat memilih dengan leluasa proses yang akan di lakukan terlebih dahulu, berikut keterangan beberapa menu yang terdapat pada menu bar

a. Menu Citra

Menu ini adalah menu pertama sekaligus menu yang paling penting karena seluruh proses akan di mulai melalui menu ini, menu ini sendiri terdiri dari dua pilihan yaitu “pilih citra” dan “ keluar”, sesuai dengan namanya menu ini berguna untuk memilih citra yang akan di jadikan media penampung yang akan digunakan untuk melekatkan pesan rahasia yang bisa menjadi titik awal pengamanan pesan rahasia yang nantinya akan melalui proses pengiriman. Di sisi lain menu tersebut juga dapat mengakhiri program pesan rahasia ini.


(55)

Menu ini berfungsi dalam proses pesan rahasia yang nantinya akan di sisipkan pada citra menjadi satu kesatuan yang nantinya dapat di pisahkan kembali dengan cara yang tepat dan orang yang berhak menerimanya sehingga nantinya diharapkan pesan rahasia tersebut tidak sampai jatuh ke tangan yang salah. Selain fungsi diatas menu ini juga berfungsi dalam membersihkan layar dari segala proses yang sebelumnya telah berlangsung.

c. Menu Tentang Saya

Form berisikan informasi tentang pembuat program dan juga berisikan informasi tentang program itu sendiri baik manfaat maupun kegunaannya.


(56)

4.2 Cara Kerja Program

4.2.1 Pemilihan Citra

Citra yang dipilih adalah citra 24 bit dan proses pemilihannya seperti tampak pada gambar 4.2 dengan memilih menu cira diikuti dengan pilih citra.

Gambar 4.2 Pemilihan Citra

Citra yang terpilih ini merupakan wadah penampung bagi pesan rahasia yang nantinya akan disisipkan. Citra penampung yang dipilih agar disesuaikan dengan dengan ukuran pesan rahasia yang akan disisipkan sehingga pesan tersebut


(57)

dapat dimuat ke dalam citra. Ukuran citra penampung sendiri setidaknya minimal 8 kali dari ukuran pesan rahasia yang akan dikirimkan.

Gambar 4.3 Citra yang telah dipilih

Citra yang telah dipilih siap untuk dijadikan wadah atau penampung pesan rahasia yang akan dikirimkan. Proses berikutnya adalah menentukan pesan rahasia yang akan dikirimkan.

4.2.2 Pemilihan Pesan Rahasia

Pesan Rahasia dapat di pilih dengan menggunakan menu Pesan Rahasia dan kemudian pilih masukan pesan rahasia.


(58)

Gambar 4.4 Pemilihan Pesan Rahasia

Pesan rahasia yang akan dikirimkan harus diketahui ukurannya agar dapat disesuaikan dengan citra penampungnya sehingga pesan dapat disisipkan di dalam citra penampung.


(59)

Gambar 4.5 Citra dan Pesan Rahasia sudah dipilih

Citra dan pesan rahasia yang sebelumnya telah di pilih atau di tentukan kini siap untuk di gabungkan.. Pesan rahasia juga dapat berupa teks sehingga pengirim dapat juga mengetikkan langsung pada kolom yang disediakan.

4.2.3 Penulisan Pesan Rahasia

Citra Penampung dan pesan rahasia baik berupa file maupun teks yang telah dipilih sebelumnya akan di gabungkan pada proses ini. Sehingga nantinya akan tercipta file baru yang bentuk fisiknya hampir sama sehingga tidak menimbulkan kecurigaan akan adanya informasi rahasia di dalam citra tersebut.


(60)

Gambar 4.6 Proses Penggabungan Pesan rahasia dengan citra

Proses penggabungan pesan rahasia dengan citra seperti pada gambar 4.6 diperlihatkan bahwa dalam penggabungan pesan rahasia dilengkapi dengan pengaman dimana pesan yang disembunyikan di beri pengaman berupa kata kunci sehingga keamanan akan lebih terjamin sehingga pesan yang dikirim tidak langsung dapat dibuka tanpa adanya kata kunci tersebut.


(61)

Pada tahap ini penulisan pesan rahasia ke dalam citra penampung dilakukan, sebagai langkah pengamanan dilakukan pemasukan kunci rahasia minimal 5 karakter untuk memberikan keamanan dan ada proses perulangan untuk konfirmasi agar tidak terjadi kesalahan dalam pengetikan kunci. Berikut merupakan hasil dari proses penggabungan pesan rahasia dan citra.

Gambar 4.7 Citra yang telah disisipi pesan rahasia.

4.2.4 Pembacaan (pengungkapan) Pesan Rahasia

Citra yang sudah disisipi pesan rahasia dipilih untuk di pisahkan kembali agar pesan rahasia dapat dibaca oleh orang yang berhak. Untuk proses ini di perlukan kunci yang menjadi syarat untuk membuka kembali pesan rahasia yang tersembunyi.


(62)

Gambar 4.8 Proses pembacaan pesan rahasia

Proses pembacaan pesan rahasia seperti pada gambar 4.8 akan diminta kata kunci. Kata kunci yang dimasukan harus sesuai dengan kata kunci sewaktu pengiriman agar pesan yang dikirimkan dapat dibuka.


(63)

Gambar 4.9 Pesan Rahasia yang berhasil diambil

Proses pengambilan pesan rahasia seperti gambar 4.9 diperlihatkan bahwa citra penampung yang pada awalnya hanya terdiri dari satu file namun setelah proses ekstraksi akan terdapat file lain didalamnya. Hal ini menunjukkan bahwa citra tersebut mempunyai pesan rahasia.


(64)

Gambar 4.10 Pesan Rahasia yang berhasil diambil

4.3 Uji coba program

Uji coba program dimaksudkan untuk mengetahui sejauh mana tingkat keberhasilan program steganografi ini dalam memodifikasi citra digital sehingga program ini dapat berfungsi sesuai dengan tujuan dari pembuatan program ini yakni dapat efektif dalam menyembunyikan pesan rahasia.

4.3.1 Proses scaling (Penskalaan, memperbesar atau memperkecil citra)

Cara pertama untuk menguji keamanan pesan rahasia yang dikirimkan bersama citra adalah dengan cara scaling atau penskalaan. Penskalaan citra disebut juga


(65)

image zooming, yaitu pengubahan ukuran citra (memperbesar/zoom out atau memperkecil zoom in). gambar dibawah menunjukan citra yang telah diperbesar dan diperkecil.

Gambar 4.11 Citra yang telah diperbesar2x


(66)

Untuk pengujian pertama dilakukan perbesaran citra yang telah di sisipi pesan rahasia. Citra yang telah mengalami perbesaran 2x tersebut kemudian di coba untuk dibaca pesan rahasianya dengan menggunakan program.


(67)

Gambar 4.14 Pesan Rahasia tidak dapat dibuka

Untuk pengujian berikutnya dilakukan perkecilan citra yang telah di sisipi pesan rahasia. Citra yang telah mengalami perkecilan 2x tersebut kemudian di coba untuk dibaca pesan rahasianya dengan menggunakan program.


(68)

Gambar 4.16 Pesan Rahasia tidak dapat dibuka

4.3.2 Proses Penambahan Noise

Cara lainnya untuk menguji tingkat keamanan pesan rahasia yang dikirimkan adalah dengan menambahkan noise. Citra yang telah disisipi pesan rahasia di beri noise sehingga tampak secara kasat mata ada bercak-bercak putih.


(69)

Gambar 4.17 Pesan Rahasia tidak dapat dibuka

Pesan rahasia pada gambar 4.17 tidak dapat dibuka. Hal ini diakibatkan adanya ganguan berupa noise sehingga mengakibatkan perubahan pada byte citra penampung sehingga terjadi perubahan pada LSB citra penampung. Gangguan ini akan menyebabkan tidak dapat dibacanya pesan rahasia.


(70)

4.3.3 Proses Perputaran (rotasi) Citra

Untuk pengujian berikutnya dilakukan Perputaran (rotasi) Citra yang telah di sisipi pesan rahasia. Citra yang telah mengalami Perputaran (rotasi) tersebut kemudian di coba untuk dibaca pesan rahasianya dengan menggunakan program.


(71)

Gambar 4.19 Pesan Rahasia tidak dapat dibuka

4.3.4 Proses pemotongan (cropping) Citra

Untuk pengujian berikutnya dilakukan pemotongan (cropping) citra yang telah di sisipi pesan rahasia. Citra yang telah mengalami pemotongan tersebut kemudian di coba untuk dibaca pesan rahasianya dengan menggunakan program.


(72)

(73)

Tabel 4.1 Hasil Uji Coba Program

Keamanan Pesan Rahasia

No Citra Uji Aman

(Tidak dapat di buka)

Tidak Aman (Dapat Di buka)

1. Lebaran.bmp Perbesaran 2x 2. Lebaran.bmp Perkecilan 2x 3. Lebaran.bmp Gausian Noise 4. Lebaran.bmp Rotasi 90’ CW 5. Lebaran.bmp Cropping 6. Selamat.bmp Perbesaran 2x 7. Selamat.bmp Perkecilan 2x 8. Selamat.bmp Gausian Noise 9. Selamat.bmp Rotasi 90’ CW 10. Selamat.bmp Cropping 11. Kartu.bmp Perbesaran 2x 12. Kartu.bmp Perkecilan 2x 13. Kartu.bmp Gausian Noise 14. Kartu.bmp Rotasi 90’ CW 15. Kartu.bmp Cropping

Dari hasil uji program tersebut di atas di peroleh gambaran keamanan pesan rahasia yang di kirimkan kepada penerima cukup aman, ini dilihat dari beberapa kali percobaan atau eksperimen untuk melakukan perubahan atau menambahkan gangguan atau noise pada citra namun tidak dapat mengungkap pesan rahasia yang ada dalam citra tersebut.


(74)

BAB 5

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Dari analisis dan hasil implementasi Perlindungan Pesan Rahasia Pada Citra Digital Menggunakan Metode Least Significant Bit Steganografi dapat disimpulkan bahwa Metode Least Significant Bit mempunyai sifat Fragile (mudah rusak) oleh gangguan dari luar seperti perbesaran, rotasi, cropping, dan gangguan noise sehingga pesan rahasia akan lebih terjamin keamanannya dari orang yang tidak berhak yang berusaha secara paksa membuka pesan rahasia tersebut.

4.2 Saran

a. Sifat LSB yang fragile membuat pesan rahasia yang mengalami serangan akan hilang untuk itu metode ini agar dapat kombinasikan kedepannya dengan metode lain agar pesan yang mengalami serangan tetap dapat di baca oleh penerima.

b. Penelitian ini agar dapat di kembangkan lebih lanjut dengan menggunakan metode-metode yang lainnya seperti metode DCT


(75)

DAFTAR PUSTAKA

Awcock, G.W. 1996. Applied Image Processing.Singapore. McGraw-Hill Book. Cancelli, G. 2008. Improved LSB Matching Steganalysis based on amplitude of

Local Extrema. IEEE International Conference on Image Processing.

Chandra, Marvin. 2007. Pengolahan citra digital menggunakan matlab.Bandung. Penerbit Informatika Bandung.

Chang, J .2007. Steganalysis for LSB matching in images with high freqeuncy

noise. IEEE Workshop on Multimedia Signal Processing.

Cummins, Jonathan. 2004. Steganography And Digital Watermarking.

Birmingham. School of Computer Science, The University of Birmingham. Doerr, G 2007. Image Database for Steganalysis Studies. Adastral Online.

Ker, AD. 2005. Steganalysis of LSB Matching in grayscale images. Vol. 12. No. 6.

New York. IEEE Signal Processing Letter.

Munir, Rinaldi. 2005.Pengolahan Citra Digital. Bandung. Penerbit Informatika Bandung

Pratt, William K. 1991. Digital Image Processing. Singapore. A Wiley Interscience Publication John wiley and Sons, Inc. Singapore.

Rianto, Sigit ST. 2005.Step by Step Pengolahan Citra Digital. Yogyakarta. Penerbit ANDI

Tsun-Li, Chang. 2004 Digital Watermarking for Multimedia Security

Management. United Kingdom.. Department of Computer Science

University of Warwick Coventry.

www.adastral.ucl.ac.uk/gwendoer/steganalysis di akses oktober 2008

www.cs.bham.ac.uk/~mdr/teaching/modules/students/SS5/Steganography.pdf di

akses agustus 2008

www.dcs.warwick.ac.uk/~ctli/papers/Chapter4.pff di akses oktober 2008


(76)

LAMPIRAN A [LISTING PROGRAM]

Private Sub chkHide_Click() If Me.chkHide.Value = 1 Then Me.txtKey.PasswordChar = "*" Me.txtConfirm.PasswordChar = "*" Else

Me.txtKey.PasswordChar = "" Me.txtConfirm.PasswordChar = "" End If

End Sub

Private Sub cmdCancel_Click() gblnCancelKey = True

Me.Hide End Sub

Private Sub cmdSave_Click()

If KeyQuality(Me.txtKey.Text) < 20 Then

MsgBox "Kata Kunci terlalu pendek.", vbCritical Exit Sub

End If

If Me.txtConfirm.Text <> Me.txtKey.Text Then

MsgBox "Kata Kunci dan Konfirmasinya tidak cocok.", vbCritical Exit Sub

End If

If gstrImageName = "Unsaved" Then

MsgBox "Pilih Foto untuk menyimpan label.", vbCritical Exit Sub

End If

gstrActiveKey = Me.txtKey.Text Me.Hide

End Sub

Private Sub Form_Activate() gblnCancelKey = False

If gstrActiveKey <> "" Then

Me.txtKey.Text = gstrActiveKey Me.txtConfirm.Text = gstrActiveKey If Me.cmdSave.Enabled = True Then Me.cmdSave.SetFocus

Else

Me.txtKey.SetFocus End If

Else

Me.txtKey.Text = "" Me.txtConfirm.Text = "" Me.txtKey.SetFocus End If

End Sub

Private Sub txtKey_Change()


(77)

If Len(Me.txtKey.Text) < 5 Then Me.cmdSave.Enabled = False Else

Me.cmdSave.Enabled = True End If

End Sub

Private Sub txtKey_GotFocus() Me.txtKey.SelStart = 0

Me.txtKey.SelLength = Len(Me.txtKey.Text) End Sub

Private Sub txtKey_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then KeyAscii = 0: Me.txtConfirm.SetFocus End Sub

Private Sub txtConfirm_GotFocus() Me.txtConfirm.SelStart = 0

Me.txtConfirm.SelLength = Len(Me.txtConfirm.Text) End Sub

Private Sub txtConfirm_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then

KeyAscii = 0

If Me.cmdSave.Enabled = True Then Me.cmdSave.SetFocus End If

End Sub

Private Sub mnuClearAll_Click() If gblnTextHasChanged = True Then

retVal = MsgBox("Teks yang anda edit belum tersimpan." & vbCrLfLf & "Apakah ingin di hapus?", vbQuestion + vbYesNo)

If retVal = vbNo Then Exit Sub End If

gstrImageName = "" gstrFileName = "" gstrActiveKey = ""

gblnTextHasChanged = False With Me

.txtMain.Text = ""

.imgPreview.Picture = Nothing .lblImageFile.Caption = "" .lblImageInfo.Caption = "" .imgIcon.Picture = Nothing End With

Call GetFile Call CheckMenus End Sub

Private Sub mnuClearFile_Click() gstrFileName = ""

Call GetFile End Sub

Private Sub mnuClearImage_Click() gstrImageName = ""

Call GetImage End Sub


(78)

If gblnTextHasChanged = True Then

retVal = MsgBox("Teks yang anda edit belum tersimpan." & vbCrLfLf & "Apakah ingin di hapus?", vbQuestion + vbYesNo)

If retVal = vbNo Then Exit Sub End If

Me.txtMain.Text = "" End Sub

Private Sub mnuErase_Click()

If gstrImageName = "" Then Exit Sub

retVal = MsgBox("Anda yakin ingin menghapus seluruh data di """ & CutFilePath(gstrImageName) & """ ?", vbYesNo + vbExclamation) If retVal = vbNo Then Exit Sub

Me.picProgBar.Visible = True Call ControlsBlock

Call EraseImage

Me.picProgBar.Visible = False Call ControlsFree

End Sub

Private Sub mnuInsertFile_Click() Dim fName As String

On Error Resume Next With frmUtama.ComDlg

.DialogTitle = "Masukan Label.."

.Flags = CMDLG_FILEMUSTEXIST Or CMDLG_NOCHECK .FileName = ""

.InitDir = gstrCurDir

.Filter = "All Files (*.*)|*.*" .ShowOpen

If Err = 32755 Then Exit Sub gstrFileName = .FileName End With

Call GetFile End Sub

Private Sub mnuRead_Click()

If gstrImageName = "" Then Exit Sub frmBukakunci.Show (vbModal)

If gstrActiveKey = "" Or gblnCancelKey = True Then Exit Sub Me.picProgBar.Visible = True

Me.lblProgress.Caption = "Sedang di proses..." Call ControlsBlock

Call LoadDataPicture

Me.picProgBar.Visible = False Me.lblProgress.Caption = "" Call ControlsFree

End Sub

Private Sub mnuSelectImage_Click() Dim fName As String

On Error Resume Next With frmUtama.ComDlg

.DialogTitle = "Pilih Foto yang anda inginkan.." .Flags = CMDLG_FILEMUSTEXIST Or CMDLG_NOCHECK .FileName = ""

.InitDir = gstrCurDir

.Filter = "Image Files (*.bmp;*.jpg;*.gif)|*.bmp;*.jpg;*.gif" .ShowOpen


(79)

gstrImageName = .FileName End With

Call GetImage End Sub

Private Sub mnuWrite_Click()

If gstrImageName = "" Then Exit Sub frmKunci.Show (vbModal)

If gstrActiveKey = "" Or gblnCancelKey = True Then Exit Sub Me.picProgBar.Visible = True

Me.lblProgress.Caption = "Sedang di proses.." Call ControlsBlock

Call SaveDataPicture

Me.lblProgress.Caption = "" Me.picProgBar.Visible = False Call ControlsFree

End Sub

Private Sub mnuAbout_Click() frmttgWildan.Show (vbModal) End Sub

Private Sub mnuDelete_Click() SendKeys "{del}"

frmUtama.Refresh Call CheckMenus End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key

Case "new" mnuClearAll_Click Case "read" mnuRead_Click Case "write" mnuWrite_Click End Select Call CheckMenus End Sub

Private Sub imgIcon_Click()

If gstrFileName <> "" Then StartFile (gstrFileName) End Sub

Private Sub picInfo_GotFocus()

If Me.txtMain.Enabled = True And Me.txtMain.Visible = True Then Me.txtMain.SetFocus

End Sub

Private Sub picFileContainer_GotFocus()

If Me.txtMain.Enabled = True And Me.txtMain.Visible = True Then Me.txtMain.SetFocus

End Sub

Private Sub picPreview_GotFocus()


(1)

Private Function RandomDummy() As String dummylenght

Dim rndKey As String Dim i As Integer Dim j As Integer Dim k As Integer Dim q As Byte

Dim SizeDummy As Integer RandomDummy = ""

Randomize

SizeDummy = Int(224 * Rnd) + 32 If Len(SeedString) > 0 Then For k = 1 To Len(SeedString)

SizeDummy = SizeDummy Xor Asc(Mid(SeedString, k, 1)) Next

End If

Do While SizeDummy > 255

SizeDummy = SizeDummy - 224 Loop

If SizeDummy < 32 Then SizeDummy = SizeDummy + 224 For k = 1 To SizeDummy - 1

RandomDummy = RandomDummy & Chr(Int((256 * Rnd))) Next

j = 1

For k = 1 To 16 rndKey = "" For i = 1 To 16

q = Int((256 * Rnd))

If Len(SeedString) > 0 Then q = q Xor Asc(Mid(SeedString, j, 1))

j = j + 1: If j > Len(SeedString) Then j = 1 rndKey = rndKey & Chr(q)

Next i

Call SetKey(rndKey)

For i = 1 To Len(RandomDummy)

q = Asc(Mid(RandomDummy, i, 1)) If k Mod 3 = 0 Then

q = DecodeByte(q) Else

q = EncodeByte(q) End If

Mid(RandomDummy, i, 1) = Chr(q) Next i

Next k

RandomDummy = Chr(SizeDummy) & RandomDummy End Function

Public Sub RandomFeed(ByVal x As Single, ByVal y As Single) Static Xp As Single

Static Yp As Single

If x = Xp And y = Yp Then Exit Sub Xp = x: Yp = y

SeedString = SeedString & Chr((x Xor y) And 255)

If Len(SeedString) > 251 Then SeedString = Mid(SeedString, 2): Exit Sub

frmUtama.lblRND.Caption = "RND " & Trim(Int(Len(SeedString) / 251 * 100)) & "%"


(2)

Call CopyMem(ResultLen, byteArray(CurrPos - 1), 4) CurrPos = CurrPos + 4

lResultLen = ResultLen

If (ResultLen = 0) Then Exit Sub ReDim Result(0 To ResultLen - 1)

Call CopyMem(Count, byteArray(CurrPos - 1), 2) CurrPos = CurrPos + 2

For i = 1 To Count

With CharValue(byteArray(CurrPos - 1)) CurrPos = CurrPos + 1

.Count = byteArray(CurrPos - 1) CurrPos = CurrPos + 1

ReDim .Data(0 To .Count - 1) End With

Next

BitValue(0) = 2 ^ 0 BitValue(1) = 2 ^ 1 BitValue(2) = 2 ^ 2 BitValue(3) = 2 ^ 3 BitValue(4) = 2 ^ 4 BitValue(5) = 2 ^ 5 BitValue(6) = 2 ^ 6 BitValue(7) = 2 ^ 7

ByteValue = byteArray(CurrPos - 1) CurrPos = CurrPos + 1

BitPos = 0

For i = 0 To 255 With CharValue(i)

If (.Count > 0) Then

For j = 0 To (.Count - 1)

If (ByteValue And BitValue(BitPos)) Then .Data(j) = 1 BitPos = BitPos + 1

If (BitPos = 8) Then

ByteValue = byteArray(CurrPos - 1) CurrPos = CurrPos + 1

BitPos = 0 End If

Next End If End With Next

If (BitPos = 0) Then CurrPos = CurrPos - 1

NodesCount = 1

Nodes(0).LeftNode = -1 Nodes(0).RightNode = -1 Nodes(0).ParentNode = -1 Nodes(0).Value = -1 For i = 0 To 255

Call CreateTree(Nodes(), NodesCount, i, CharValue(i)) Next


(3)

For CurrPos = CurrPos To ByteLen

ByteValue = byteArray(CurrPos - 1) For BitPos = 0 To 7

If (ByteValue And BitValue(BitPos)) Then NodeIndex = Nodes(NodeIndex).RightNode Else NodeIndex = Nodes(NodeIndex).LeftNode If (Nodes(NodeIndex).Value > -1) Then

Result(ResultLen) = Nodes(NodeIndex).Value ResultLen = ResultLen + 1

If (ResultLen = lResultLen) Then GoTo DecodeFinished NodeIndex = 0

End If Next

Next

DecodeFinished: Char = 0

For i = 0 To (ResultLen - 1) Char = Char Xor Result(i) Next

ReDim byteArray(0 To ResultLen - 1)

Call CopyMem(byteArray(0), Result(0), ResultLen) End Sub

Private Sub CreateBitSequences(Nodes() As HUFFMANTREE, ByVal

NodeIndex As Integer, bytes As byteArray, CharValue() As byteArray) Dim NewBytes As byteArray

If (Nodes(NodeIndex).Value > -1) Then

CharValue(Nodes(NodeIndex).Value) = bytes Exit Sub

End If

If (Nodes(NodeIndex).LeftNode > -1) Then NewBytes = bytes

NewBytes.Data(NewBytes.Count) = 0 NewBytes.Count = NewBytes.Count + 1

Call CreateBitSequences(Nodes(), Nodes(NodeIndex).LeftNode, NewBytes, CharValue)

End If

If (Nodes(NodeIndex).RightNode > -1) Then NewBytes = bytes

NewBytes.Data(NewBytes.Count) = 1 NewBytes.Count = NewBytes.Count + 1

Call CreateBitSequences(Nodes(), Nodes(NodeIndex).RightNode, NewBytes, CharValue)

End If End Sub

Private Function PadString(strData As String) As String Dim nLen As Long

Dim sPad As String Dim nPad As Integer nLen = Len(strData)

nPad = ((nLen \ 8) + 1) * 8 - nLen sPad = String(nPad, Chr(nPad)) PadString = strData & sPad End Function

Private Function UnpadString(strData As String) As String Dim nLen As Long

Dim nPad As Long nLen = Len(strData)


(4)

If nLen = 0 Then Exit Function nPad = Asc(Right(strData, 1)) If nPad > 8 Then nPad = 0

UnpadString = Left(strData, nLen - nPad) End Function

Private Function EncodeStr64(encString As String, ByVal MaxPerLine As Integer) As String

Dim abOutput() As Byte Dim sLast As String Dim B(3) As Byte Dim j As Integer Dim CharCount As Integer Dim iIndex As Long Dim Umax As Long

Dim i As Long, nLen As Long, nQuants As Long EncodeStr64 = ""

nLen = Len(encString) nQuants = nLen \ 3 iIndex = 0

If MaxPerLine < 10 Then MaxPerLine = 10 Umax = nQuants + 1

Call MakeEncTab

If (nQuants > 0) Then

ReDim abOutput(nQuants * 4 - 1) For i = 0 To nQuants - 1

For j = 0 To 2

B(j) = Asc(Mid(encString, (i * 3) + j + 1, 1)) Next

Call EncodeQuantumB(B) abOutput(iIndex) = B(0) abOutput(iIndex + 1) = B(1) abOutput(iIndex + 2) = B(2) abOutput(iIndex + 3) = B(3) CharCount = CharCount + 4

If CharCount >= MaxPerLine Then

ReDim Preserve abOutput(UBound(abOutput) + 2) CharCount = 0

abOutput(iIndex + 4) = 13 abOutput(iIndex + 5) = 10 iIndex = iIndex + 6

Else

iIndex = iIndex + 4 End If

Next

EncodeStr64 = StrConv(abOutput, vbUnicode) End If

Select Case nLen Mod 3 Case 0

sLast = "" Case 1

B(0) = Asc(Mid(encString, nLen, 1)) B(1) = 0

B(2) = 0

Call EncodeQuantumB(B)

sLast = StrConv(B(), vbUnicode) sLast = Left(sLast, 2) & "==" Case 2

B(0) = Asc(Mid(encString, nLen - 1, 1)) B(1) = Asc(Mid(encString, nLen, 1))


(5)

B(2) = 0

Call EncodeQuantumB(B)

sLast = Left(sLast, 3) & "=" End Select

EncodeStr64 = EncodeStr64 & sLast End Function

Private Function DecodeStr64(decString As String) As String Dim abDecoded() As Byte

Dim d(3) As Byte Dim c As Integer Dim di As Integer Dim i As Long Dim nLen As Long Dim iIndex As Long Dim Umax As Long nLen = Len(decString) If nLen < 4 Then Exit Function End If

ReDim abDecoded(((nLen \ 4) * 3) - 1) Umax = nLen

iIndex = 0 di = 0

Call MakeDecTab

For i = 1 To Len(decString)

c = CByte(Asc(Mid(decString, i, 1))) c = aDecTab(c)

If c >= 0 Then

d(di) = CByte(c) di = di + 1 If di = 4 Then

abDecoded(iIndex) = SHL2(d(0)) Or (SHR4(d(1)) And &H3) iIndex = iIndex + 1

abDecoded(iIndex) = SHL4(d(1) And &HF) Or (SHR2(d(2)) And &HF)

iIndex = iIndex + 1

abDecoded(iIndex) = SHL6(d(2) And &H3) Or d(3) iIndex = iIndex + 1

If d(3) = 64 Then

iIndex = iIndex - 1 abDecoded(iIndex) = 0 End If

If d(2) = 64 Then

iIndex = iIndex - 1 abDecoded(iIndex) = 0 End If

di = 0 End If End If Next i

DecodeStr64 = StrConv(abDecoded(), vbUnicode) DecodeStr64 = Left(DecodeStr64, iIndex)

End Function

Private Sub EncodeQuantumB(B() As Byte)

Dim b0 As Byte, B1 As Byte, B2 As Byte, B3 As Byte b0 = SHR2(B(0)) And &H3F

B1 = SHL4(B(0) And &H3) Or (SHR4(B(1)) And &HF) B2 = SHL2(B(1) And &HF) Or (SHR6(B(2)) And &H3)


(6)

B3 = B(2) And &H3F B(0) = aEncTab(b0) B(1) = aEncTab(B1) B(2) = aEncTab(B2) B(3) = aEncTab(B3) End Sub

Public Sub SetSteganoKey(ByVal KeyString As String) Call SetKey(KeyString)

SteganoByte = 0 End Sub