BAB 4 IMPLEMENTAS I DAN EVALUAS I
Bab ini menjelaskan tentang komponen apa saja yang diperlukan untuk menjalankan aplikasi pengamanan pesan menggunakan kriptografi dan steganografi ini. Dalam bab ini juga terdapat modul-modul sistem dan cara kerjanya. Dan juga terdapat evaluasi dari sistem yang dibuat.
4.1
Implementasi Untuk menjalankan aplikasi pengamanan pesan menggunakan kriptografi dan
steganografi ini diperlukan beberapa komponen pendukung. Komponen-komponen pendukung itu adalah perangkat keras dan perangkat lunak yang digunakan dalam membuat program tersebut hingga selesai. 4.1.1 Implementasi Perangkat Keras Dalam perancangan program aplikasi ini, spesifikasi dari perangkat keras yang digunakan adalah sebagai berikut: a. M onitor, PC, Keyboard b. RAM minimal 512 MB c. Processor minimal Pentium 4 (2.0 GHz) d. Harddisk minimal 15 MB
48
49
4.1.2 Implementasi Perangkat Lunak Perangkat lunak yang dibutuhkan untuk menjalankan program aplikasi ini adalah perangkat lunak yang mendukung pemrograman dan perangkat lunak yang mendukung sistem operasi. Sistem operasi yang bisa digunakan dalam pemrograman ini adalah dengan menggunakan Windows XP with Service Pack 3, Windows Vista with Service Pack 2, Windows 7, Windows Server 2003 with Service Pack 2, Windows Server 2003 R2, Windows Server 2008 with Service Pack 2, atau Windows Server 2008 R2. Sedangkan untuk bahasa pemrograman menggunakan Visual Studio C# 2010 Express. Bahasa pemrograman bahasa C# dipilih untuk membuat aplikasi ini karena beberapa hal, yaitu: a. Visual Studio C# 2010 Express merupakan freeware. b. Bahasa yang digunakan dalam C# hampir sama dengan bahasa yang digunakan dalam C. c. Interface pembuatan form hampir sama dengan Visual Basic, jadi lebih mudah. d. Tidak diperlukan header library (#include.h). e. M endukung Object Oriented Programming (OOP). f. Fleksibel dalam pembuatan class.
4.2
Modul-Modul Sistem dan Cara Kerjanya Program dieksekusi mengikuti alur dari pseudocode yang telah dirancang. Berikut
adalah modul-modul dan cara kerja dari sistem aplikasi Perancangan dan Implementasi Pengamanan Pesan menggunakan Kriptografi dan Steganografi.
50
Main Program Fungsi M odul yang dipanggil
: M emanggil modul-modul : -Form Kriptografi -Form Hide -Form Extract
Di dalam main program ini yang dilakukan adalah menyusun komponenkomponen yang menyusun form main program. Jenis form yang digunakan dalam membuat form utama yaitu form M DIParent. Terdapat menu strip yang menjadi menu untuk mengakses modul-modul yang digunakan untuk menjalankan program. M enu terdiri dari ‘Cryptography’, ‘Steganography’, dan ‘Help’. M enu ‘Cryptography’ akan menjalankan modul kriptografi yang digunakan untuk menyembunyikan
pesan
dengan
metode
kriptografinya.
Sedangkan
menu
‘Steganography’ memiliki submenu, yakni submenu ‘Extract’ yang menjalankan modul Extract untuk mengekstrak data dari gambar hasil steganografi, dan juga ‘Hide’ untuk menghasilkan gambar dengan pesan rahasia di dalamnya. Untuk menu ‘Help’ terdapat 3 submenu yang masing-masing menjelaskan tentang steganografi, kriptografi dan tentang aplikasi ini. Berikut ini adalah modul-modul yang dipergunakan dalam menjalankan program:
Form Kriptografi Substitusi Modul menampilkan Form Fungsi : M enampilkan tampilan atau komponen form M odul yang memanggil : Panggil form Kriptografi Substitusi M odul yang dipanggil : -New File -Open File
51
-Save As -Exit -Encode -Decode
M odul ini adalah modul pembentuk form kriptografi dengan metode cipher substitusi. Form kriptografi sendiri terdiri dari menustrip, yakni menu ‘New File’, ‘Open File’, ‘Save As’, ‘Exit’, ‘Encode’, dan ‘Decode’. Form ‘Kriptografi Substitusi’ sendiri juga memiliki sebuah textbox yang akan digunakan untuk menulis pesan dan menampilkan hasil pesan yang telah disembunyikan.
Modul Encode S ubstitusi Fungsi : M engacak plaintext dengan metode algoritma kriptografi cipher substitusi M odul yang memanggil : Panggil form Kriptografi Substitusi M odul yang dipanggil : -Password Deklarasi : - string getData (menampung seluruh plaintext) -char[] con (mengubah tipe data string menjadi char dan menampung ke dalam array 1 dimensi) -int len, j (menampung panjang karakter dan len1 untuk didefinisikan ke dalam array 1 dimensi) -char a (menampung char sementara sebelum dan sesudah diacak) -int k = 0 (menampung char dalam bentuk ASCII) - bil = bil1 + bil2 + bil3 + bil4 (password yang diinput) Input plaintext dan memasukkan ke dalam variabel getData Input password M eng-convert tipe data inputan dari string ke char, per karakter didefinisi dalam array
52
lakukan perulangan sebanyak jumlah panjang plaintext: 1. M engambil 1 char. 2. Char ditransformasikan dalam bentuk ASCII. 3. Bilangan desimal ASCII akan dikurang sebanyak inputan bil (password). 4. ASCII yang sudah dikurang inputan password, ditransformasikan kembali ke dalam bentuk char. 5. Lakukan langkah 1-4 seterusnya hingga char habis. M eng-convert kembali ciphertext (plaintext yang sudah dienkripsi) dari char ke string menampilkan seluruh ciphertext pada GUI
M odul ini adalah modul Encode Substitusi, yaitu modul yang berfungsi mengacak plaintext dengan metode cipher substitusi. Cipher substitusi adalah penggantian setiap karakter asli dengan karakter lain. Caranya dengan mengganti atau mensubstitusi setiap karakter dengan karakter lain dalam susunan abjad. Di dalam modul ini, user akan diminta mengisi password yang berjumlah empat digit dan hanya bisa diisi dengan angka saja.
Modul Decode S ubstitusi Fungsi : M engembalikan ciphertext menjadi plaintext dengan metode algoritma kriptografi cipher substitusi M odul yang memanggil : Panggil form Kriptografi Substitusi M odul yang dipanggil : -Password Deklarasi : -string getData (menampung seluruh ciphertext) -char[] con (mengubah tipe data string menjadi char dan menampung ke dalam array 1 dimensi) -int len, j (menampung panjang karakter dan len1 untuk didefinisikan ke dalam array 1 dimensi) -char a (menampung char sementara sebelum dan sesudah diacak)
53
-int k = 0 (menampung char dalam bentuk ASCII) - bil = bil1 + bil2 + bil3 + bil4 (password yang diinput) Input ciphertext dan memasukkan ke dalam variabel getData Input password M eng-convert tipe data inputan dari string ke char, per karakter didefinisi dalam array lakukan perulangan sebanyak jumlah panjang ciphertext: 1. M engambil 1 char. 2. Char ditransformasikan dalam bentuk ASCII. 3. Bilangan desimal ASCII akan ditambah sebanyak inputan bil (password). 4. ASCII yang sudah ditambah inputan password, ditransformasikan kembali ke dalam bentuk char. 5. Lakukan langkah 1-4 seterusnya hingga char habis. M eng-convert kembali ciphertext (plaintext yang sudah didekripsi) dari char ke string menampilkan seluruh ciphertext pada GUI
M odul ini adalah modul Decode Substitusi, yaitu modul yang berfungs i mengembalikan ciphertext menjadi plaintext dengan metode algoritma kriptografi cipher subsitusi. Di dalam modul ini user akan diminta memasukkan empat digit password yang sama pada saat dienkripsi/di-encode. Jika tidak sama dengan password pada saat enkripsi, maka data yang asli tidak akan dapat terlihat.
Form Password Modul menampilkan Form Fungsi : M enampilkan tampilan atau komponen form M odul yang memanggil : Panggil form Password
54
Deklarasi
: Penampung.digit1 Convert.ToInt32(digit1.Text); Penampung.digit2 Convert.ToInt32(digit2.Text); Penampung.digit3 Convert.ToInt32(digit3.Text); Penampung.digit4 Convert.ToInt32(digit4.Text);
= = = =
M odul password ini menampilkan komponen-komponen yang ada dalam form password. Form ini sendiri terdiri atas empat textbox yang masing-masing hanya bisa diisi oleh satu karakter. Hasil dari input yang akan dicek dan bila sesuai dengan format (harus angka) input akan dikonversi ke dalam tipe integer dan ditampung ke dalam global variable digit 1 hingga digit 4 yang akan digunakan dalam proses EncodeDecode.
Form Kriptografi Transposisi Modul menampilkan form Fungsi : M enampilkan tampilan atau komponen form M odul yang memanggil : Panggil form Kriptografi transposisi M odul yang dipanggil : EncodeTransposisi DecodeTransposisi
M odul menampilkan form ini merupakan modul yang membangun segala komponen yang terdapat di dalam form kriptografi transposisi. Terdapat menu strip, yang memiliki menu ‘Encode’ dan ‘Decode’ serta richtext box yang digunakan untuk menulis pesan yang akan disembunyikan.
55
Modul Encode Transposisi Fungsi : M engacak plaintext dengan metode algoritma kriptografi subtitusi transposisi M odul yang memanggil : Panggil Form Kriptografi transposisi Deklarasi : string tulisan (menampung seluruh plaintext) int pnjg (menampung panjang dari plaintext) char[,] character (merupakan penampung sementar plaintext berupa char) kolom (menampung panjang kolom dari matrix yang diinginkan) baris(menampung baris dari kolom matrix) flag (merupakan modulus dari panjang dan kolom) 1. menentukan jumlah char yang harus disisipkan agar modulus dari panjang dan kolom = 0. 2. lakukan perulangan untuk memasukkan masing-masing character dari plaintext ke dalam character variable sesuai dengan posisi matrix (ditulis terbalik). 3. dari character variable dimasukkan ke dalam temp satu per satu dengan metode baca zig zag. 4. tampilkan temp ke dalam richtext box.
M odul ini adalah modul Encode Transposisi, yaitu modul yang berfungs i mengacak plaintext dengan metode cipher transposisi. Pada metode ini plaintext tetap sama tapi urutannya diubah, dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Berbeda dengan substitusi, transposisi dilakukan dengan cara mengacak posisi dari string plaintext.
56
Modul Decode Transposisi Fungsi : M engembalikan hasil kriptografi agar dapat terbaca M odul yang memanggil : Panggil Form Kriptografi transposisi Deklarasi : string tulisan (menampung seluruh text) int pnjg (menampung panjang dari text) char[,] character (merupakan penampung sementar plaintext berupa char) kolom (menampung panjang kolom dari matrix yang diinginkan) baris (menampung baris dari kolom matrix) 1. melakukan perulangan untuk mengambil character yang ditampung oleh tulisan ke dalam character satu persatu. 2. membaca isi dari character variable dan di tampung ke dalam temp.
M odul ini merupakan modul yang digunakan untuk mengembalikan hasil kriptografi transposisi sehingga dapat terbaca. Text yang ditampung oleh tulisan akan dimasukkan ke dalam character variable yang akan membentuk formasi matrix. Dari sana, akan dibaca secara zig zag namun kebalikan dari yang dilakukan pada metode encode. Setelah proses ini, maka text dapat terbaca dan kembali seperti semula.
Form Hide Modul menampilkan Form Fungsi : M enampilkan tampilan atau komponen form M odul yang memanggil : Panggil form Hide M odul yang dipanggil : -LoadFileImage -LoadFile -Hide
57
M odul ini berfungsi menampilkan komponen form. Komponen yang ada dalam modul ini adalah LoadFileImage, LoadFile, Hide. LoadFileImage adalah komponen yang berfungsi untuk menginput image yang akan digunakan. LoadFile adalah komponen yang berfungsi untuk menginput file yang akan disembunyikan. Hide adalah komponen yang berfungsi untuk menyembunyikan file ke dalam image.
Modul LoadFileImage Fungsi : M enginput image file yang akan digunakan M odul yang memanggil : M odul menampilkan Form Deklarasi
: -TrueNameImagePath -> lokasi dari image -height-> tinggi image -width -> lebar image
digunakan
sebagai
Isi height.text dengan tinggi dari image Isi width.text dengan lebar image Buat gambar *.bmp baru dari salinan input *.bmp get info gambar *.bmp baru size baru = image.length / 1024 lblHeight.Text = height.ToString() + " Pixel"; lblWidth.Text = width.ToString() + " Pixel"; menentukan availablesize ava = (8.0 * ((height * (width / 3) * 3) / 3 - 1)) / 1024; lblavailable.text = ava
M odul ini berfungsi menginput image file yang berbasis *.bmp. Setelah image di input maka akan keluar tampilan size yaitu ukuran dari image tersebut, height yaitu ukuran tinggi dari image tersebut, width yaitu ukuran lebar dari image tersebut, dan
58
available yaitu ukuran file yang dapat dimasukkan/disembunyikan dalam image yang telah dipilih tadi.
Modul LoadFile Fungsi : M enginput file yang akan disembunyikan M odul yang memanggil : M odul menampilkan form Deklarasi : filesize Dapatkan lokasi file M asukkan lokasi ke dalam textbox input file Dapatkan info dari file filesize = fileinfo.length Tentukan besar filename
M odul ini berfungsi menginput file yang akan disembunyikan ke dalam image berbasis *.bmp. Setelah file yang diinput dipilih, maka akan ditampung di posisi size serta besar dari nama file.
Modul justFname Fungsi : M engambil hanya filename M odul yang memanggil : LoadFile Deklarasi : i sebagai counter looping i = panjang file - 1 Perulangan selama i > 0 Perulangan berhenti setelah menemukan '\\' output = substring posisi '\\' + 1 Kembalikan hasil output
M odul ini berfungsi hanya untuk mengambil nama file saja dari lokasi lengkap yaitu dari posisi file yang ada di dalam drive disk user. Sebagai contoh:
59
"C:\Users\Levantiane\Documents\Conn\dell.t xt" maka hasil yang akan diberikan oleh modul ini adalah “dell.txt”
Modul simpan fileHide Fungsi : M enyimpan file yang telah menyembunyikan plaintext M odul yang memanggil : M odul menampilkan form Validasi apakah user telah menginput file dan file image Validasi apakah size mencukupi Lakukan proses Hide
M odul ini adalah untuk mengecek apakah file-file yang dibutuhkan telah diinput dengan benar atau tidak. Bila persyaratan yang dibutuhkan tidak terpenuhi, maka proses akan dilanjutkan ke proses Hide bila image file dan file yang akan disembunyikan telah diinput.
Modul Hide Fungsi
: M enyembunyikan file serta nama file ke dalam image M odul yang memanggil : M odul simpan fileHide Deklarasi : FNsize -> filename size 1. Ubah input filename ke dalam boolean(biner) dan tampung ke dalam variabel t[0]-t[7]. 2. M elakukan perulangan untuk mendapatkan nilai dari pixel Red, Green, dan Blue dari tiap pixel gambar input. 3. Convert nilai dari RGB menjadi boolean(biner). 4. Ambil digit terakhir dari masing-masing bentuk biner dari RGB dan ubah menjadi nilai yang ditampung t[0] sampai dengan t[7]. 5. Ubah bit gambar menjadi bit yang disusun oleh RGB yang baru. 6. Lakukan langkah nomor 1-5 untuk menyimpan isi dari file.
60
Buat gambar baru dari hasil tampilan Tentukan r baru r = ukuran file baru % 100 ukuran file / 100 g = ukuran file baru % 100 ukuran file / 100 b =ukuran file baru % 100 Tentukan kombinasi color untuk membuat image color.FromArgb(r,g,b) output gambar baru telah jadi
M odul ini berfungsi untuk menyembunyikan file yang dipilih ke dalam image file yang berbasis *.bmp. M odul ini merupakan modul yang menerapkan algoritma steganografi Least Significant Bit (LSB), dimana LSB menggunakan bit terakhir dari digit pixel gambar yang diinput sebagai media penyimpanan pesan. Bit yang digunakan adalah bit merah, hijau, dan biru dari setiap pixel gambar yang digunakan.
Form Extract Modul menampilkan Form Fungsi : M enampilkan tampilan/komponen form M odul yang memanggil : Panggil form Extract M odul yang dipanggil : -LoadFileImage -SaveFile -Extract
M odul Extract ini berfungsi menampilkan komponen form. Komponen yang ada dalam modul ini adalah LoadFileImage, LoadFile, Extract. LoadFileImage adalah komponen yang berfungsi untuk menginput image file yang akan digunakan. Sedangkan savefile sebagai lokasi yang digunakan untuk menyimpan hasil dari Extract file.
61
Modul LoadFileImage Fungsi : M enginput image file yang akan digunakan M odul yang memanggil : M odul menampilkan Form Deklarasi : -TrueNameImagePath -> digunakan sebagai lokasi dari image -height-> tinggi image -width -> lebar image Isi textbox dengan alamat dari file yang diinput Isi variabel height dan width dengan tinggi dan lebar gambar Tampilkan gambar yang akan di-extract ke dalam picture box
Di dalam modul ini berfungsi untuk menginput image file yang akan digunakan, image file yang diperbolehkan hanya yang berbasis *.bmp. Image file yang dimaksud adalah image yang sudah ada pesannya, agar kita bisa membaca pesan yang berada di dalamnya. Dan setelah modul ini dipilih, akan ada tampilan image yang sudah dipilih tersebut.
Modul saveFile Fungsi
: M enyimpan lokasi penyimpanan ekstraksi M odul yang memanggil : M odul menampilkan form
file
hasil
Jika lokasi tempat penyimpanan telah tersimpan Berikan nilai di textbox_safefile alamat penyimpanan
M odul ini adalah modul yang menampilkan suatu form. Jika modul ini dipilih, maka akan menampilkan lokasi penyimpanan file hasil ekstraksi dan kita harus memilih akan disimpan di folder apa file tersebut.
62
Modul Confirm Fungsi
: M engecek apakah kebutuhan yang dibutuhkan telah terpenuhi M odul yang memanggil : M odul menampilkan form M odul yang dipanggil : M odul ekstraksi Jika textbox_savefile dan textbox_image kosong maka operasi dibatalkan Jika tidak, jalankan modul ekstraksi
M odul ini berfungsi untuk mengecek apakah kebutuhan akan data file sudah terisi atau belum. Data yang dimaksud adalah image yang ada pesan rahasianya. Jika belum lengkap, maka sistem tidak akan berjalan atau dengan kata lain operasi dibatalkan. Namun jika sudah lengkap, maka modul ini akan memanggil modul ekstraksi untuk dijalankan.
Modul Ekstraksi Fungsi : Untuk mengekstrasi file yang disembunyikan M odul yang memanggil : M odul confirm Deklarasi : i,j sebagai int t, rb, gb, bb sebagai boolean[8] pixel fsize dan fnsize byte sebagai byte Tentukan nilai dari pixel gambar Tentukan fsize diambil dari jumlah pixel merah ditambah dengan pixel hijau * 100 dan pixel biru * 10000 Tentukan nilai baru dari pixel yang akan menampung filename dari file yang akan di-extract Lakukan perulangan berdasarkan i dan j untuk mendapatkan pixel RGB Convert menjadi boolean masing-masing R, G, dan B Simpan ke masing-masing byte terakhir dari RGB ke dalam temporary
63
Lakukan hal yang sama untuk mendapatkan hasil ekstrasi file File saving hasil ekstraksi
M odul ini adalah modul terakhir di dalam aplikasi ini, modul ini adalah modul bagian dari steganografi. M odul ini memakai steganografi metode Least Significant Bit (LSB). LSB adalah pesan disembunyikan dengan cara menyisipkannya pada bit rendah atau bit yang paling kanan pada data pixel yang menyusun file tersebut. M odul ini berfungsi untuk menjalankan ekstraksi pada file-file yang telah diinput sebelumnya.
4.3
Cara Kerja Program Aplikasi Pada dasarnya program ini adalah melakukan pengkodean dengan cara mengacak
plaintext dikombinasikan dengan steganografi. Dalam program ini yang di input adalah plaintext yang berformat *.txt pada kriptografi. Image yang berformat *.bmp dan file pada steganografi. Program ini adalah program untuk pengamanan pesan dengan menggunakan kriptografi dan steganografi. M etode yang dipakai adalah cipher substitusi dan cipher transposisi untuk kriptografi, sedangkan Least Significant Bit (LSB) untuk steganografi. M etode cipher substitusi, yaitu penggantian setiap karakter teks-asli dengan karakter lain. M etode cipher transposisi adalah dengan melakukan transpose terhadap rangkaian karakter di dalam teks. Sedangkan metode Least Significant Bit (LSB) adalah pesan disembunyikan dengan cara menyisipkannya pada bit rendah atau bit paling kanan pada data pixel yang menyusun suatu image file. Selanjutnya dapat diuraikan dalam sub-sub bab berikutnya.
64
Pada saat program pertama kali dijalankan, akan muncul form Layar Utama dengan menampilkan M enu ‘Cryptography’, ‘Steganography’, dan ‘Help’ seperti pada gambar 4.1. Dalam form ini user dapat memilih menu ‘Cryptography’, ‘Steganography’ ataupun ‘Help’.
Gambar 4.1 Tampilan layar utama
4.3.1 Menu Cryptography S ubstitusi Dari ketiga menu yang tampil pada layar utama yaitu ‘Cryptography’, ‘Steganography’, dan ‘Help’. Jika user ingin melakukan pengacakkan file dengan menggunakan kriptografi, user dapat memilih menu ‘Cryptography’. Di dalam menu ‘Cryptography’ ada dua submenu, yaitu substitusi dan transposisi. Jika user ingin melakukan pengacakkan file menggunakan menu ‘Cryptography’ dengan submenu ‘Substitusi’, maka akan tampil layar seperti gambar di bawah ini.
65
Gambar 4.2 Tampilan layar ‘Cryptography -> S ubstitusi’
Di layar ‘Cryptography -> Substitusi’ ada dua menu baru lagi yaitu menu ‘File’ dan ‘Cryptography’. User harus memilih terlebih dahulu menu ‘File’ dan di dalam menu tersebut ada beberapa submenu yaitu ‘New File’, ‘Open File’, ‘Save As’, dan ‘Exit’. User bisa membuat file baru dengan memilih submenu ‘New File’. Pada saat memilih submenu ‘File -> New’ akan tampil seperti gambar 4.3.
Gambar 4.3 Tampilan layar saat memilih ‘File -> New’
66
User juga dapat membuka file yang sudah ada dengan memilih submenu ‘Open File’(hanya bisa *.txt).
Gambar 4.4 Tampilan layar saat memilih ‘File -> Open’
Pada saat memilih submenu ‘File -> Open’ akan tampil seperti gambar 4.4. Di atas adalah tampilan layar saat memilih ‘File -> Open’, user bisa memilih dan mencari file yang diinginkan. Setelah menekan tombol ‘Open’, akan keluar dialog box yang menyatakan file berhasil dibuka, seperti gambar 4.5.
Gambar 4.5 Tampilan layar saat menekan tombol ‘Open’
67
Setelah selesai melakukan Encode/Decode, user bisa menyimpan file tersebut dengan memilih submenu ‘Save As’. User dapat menyimpannya di drive disk manapun yang ada dalam komputer tanpa terkecuali. Pada saat memilih submenu ‘File -> Save As’ akan tampil seperti gambar 4.6. Penyimpanan file tidak boleh sembarangan, karena dalam proses Encode dan decode harus dilakukan pada file yang sama. Apabila proses Encode dan Decode dilakukan pada file yang berbeda, tidak akan berbuah hasil apa-apa. Penyimpanan file sebaiknya dalam folder yang khusus, agar terdokumentasikan dengan baik. Default biasanya menunjuk pada destination folder yang umum. Agar lebih mudah mengidentifikasikan mana yang sudah di-encode atau di-decode, dan mana yang belum, folder yang dibuat tidak perlu terlalu sulit diaksesnya.
Gambar 4.6 Tampilan layar saat memilih ‘File -> Save As’
68
Submenu yang terakhir adalah submenu ‘Exit’, submenu ini digunakan saat user ingin keluar dari layar ‘Cryptography’ dan akan kembali terlihat layar utama, seperti gambar 4.1. 4.3.1.1 Encode Cryptography S ubstitusi Pada
saat
masuk
ke
menu
‘Encode’,
ini
adalah
saatnya
masuk
mengimplementasikan modul kriptografi substitusi bagian encode. Pada menu ‘Encode’ ini memakai kriptografi metode cipher substitusi. Cipher substitusi adalah penggantian setiap karakter teks-asli dengan karakter lain. Setelah file terbuka, user dapat memilih submenu ‘Encode’ yang ada dalam menu ‘Cryptography’ untuk mengacak kata-kata yang terdapat dalam file tersebut. Jika sudah memilih submenu ‘Encode’ maka user harus memasukkan password yang berjumlah 4 digit angka, seperti yang terlihat pada gambar 4.7.
Gambar 4.7 Tampilan layar saat menekan tombol ‘Encode’
69
Setelah muncul dialog box, maka user harus memasukkan 4 digit angka sebagai password untuk mengacak kata yang ada dalam file. Setelah diisi dan menekan tombol ‘OK’ pada dialog box, maka hasil dari Encode akan tampil seperti gambar 4.8.
Gambar 4.8 Hasil Encode Cryptography S ubstitusi
4.3.1.2 Decode Cryptography S ubstitusi Di dalam sini dipanggil modul kriptografi substitusi pada bagian Decode. Disini si penerima harus memilih submenu ‘Open File’ untuk membuka file yang telah di‘Encode’ sebelumnya. Setelah file terbuka, si penerima harus memilih submenu ‘Decode’ dalam menu ‘Cryptography’ untuk mengembalikan file seperti semula agar si penerima bisa membaca file tersebut. Setelah memilih submenu ‘Decode’ maka si penerima pesan harus memasukkan password yang sesuai dengan password yang ditulis pada saat enkripsi/Encode seperti pada gambar 4.9.
70
Gambar 4.9 Tampilan layar saat menekan tombol ‘Decode’
Setelah muncul dialog box, maka si penerima harus memasukkan 4 digit angka sebagai password dan harus sama seperti yang dimasukkan oleh pengirim pesan. Setelah diisi dan menekan tombol ‘OK’ pada dialog box, maka hasil dari Decode akan tampil seperti gambar 4.10.
Gambar 4.10 Hasil Decode Cryptography S ubstitusi
71
4.3.2 Menu Cryptography Transposisi Submenu selanjutnya yang ada dalam menu Cryptography adalah transposisi. Dalam submenu ini dipanggil modul Kriptografi transposisi. Jika user memilih menu cryptography dengan submenu transposisi, maka akan tampil layar seperti gambar 4.11a di bawah ini.
Gambar 4.11 Layar Cryptography Transposisi
Di dalam layar Crptography transposisi di atas hanya ada dua menu, yaitu encode dan decode. Sebelumnya user harus memasukkan teks/pesan yang ingin diacak menggunakan kriptografi ini. Berbeda dengan encode pada menu Cryptography Substitusi, di dalam menu ini tidak diminta password. Setelah teks dimasukkan dan menekan tombol encode pada layar, maka akan tampil gambar seperti di bawah ini.
72
Gambar 4.12 Hasil Encode Cryptography Transposisi
Pada saat ingin melakukan pengembalian ciphertext menjadi plaintext, user harus memasukkan ciphertext ke dalam layar Cryptography Transposisi dan setelah itu menekan tombol ‘Decode’. Hasilnya terlihat seperti gambar di bawah ini.
Gambar 4.13 Hasil Decode Cryptography Transposisi
73
Karena di dalam menu Cryptography Transposisi ini tidak ada password yang diminta, maka akan lebih baik jika dilakukan penggabungan dari kedua metode ini. 4.3.3 Menu Steganography Hide Jika user ingin melakukan penyembunyian file dengan menggunakan steganografi, user dapat memilih menu ‘Steganography’ dengan submenu ‘Hide’ . Dalam menu ini, kita memanggil modul steganografi yaitu pada bagian modul Hide. M odul ini memakai metode Least Significant Bit, yaitu menyisipkannya pada bit rendah atau bit yang paling kanan pada data pixel yang menyusun file tersebut. Setelah memilih menu ‘Steganography -> Hide’ maka akan tampil layar seperti gambar 4.11.
Gambar 4.14 Tampilan layar ‘Steganography Hide’
Di layar ‘Steganography Hide’, ada dua file yang harus diinput yaitu file image untuk media penyembunyian dan file yang akan disisipkan ke dalam file image. User dapat menekan tombol ‘Browse’ untuk memilih image yang akan dipakai untuk media
74
penyembunyian file. M edia image yang dipakai hanya bisa (*.bmp). Setelah menekan tombol ‘Browse’ untuk memilih image, maka akan tampil layar seperti gambar 4.12.
Gambar 4.15 Tampilan layar saat memilih Browse Load Image
User dapat mengambil file yang diinginkan dari drive yang ada di dalam komputer. Namun image yang dapat dipilih hanya yang berformat *.bmp saja. Setelah selesai memilih dan memasukkan image yang diinginkan, maka akan tampil layar seperti gambar 4.13 di bawah ini.
Gambar 4.16 Tampilan layar saat selesai men-load image
75
Selain tombol ‘Browse’ untuk memilih image, user juga harus memilih file yang akan disembunyikan dengan menekan tombol ‘Browse’ untuk memilih file. Setelah menekan tombol ‘Browse’ untuk memilih file, akan tampil layar seperti gambar 4.14.
Gambar 4.17 Tampilan layar saat memilih Browse Load File
Sesudah memilih image yang menjadi media untuk menyembunyikan file yang telah dipilih, maka user bisa menekan tombol ‘Hide’ untuk menyembunyikan file tersebut ke dalam image yang dipilih.
Gambar 4.18 Tampilan layar saat memilih tombol ‘Hide’
76
Setelah itu akan muncul layar yang meminta user memilih tempat dan memberi nama untuk file yang telah di-hide, seperti gambar 4.15. Setelah menyimpan file yang telah di-hide ke tempat yang diinginkan, maka akan muncul dialog box yang menyatakan operasi penyembunyian pesan telah berhasil, seperti gambar 4.16.
Gambar 4.19 Tampilan layar yang menyatakan penyembunyian pesan berhasil
4.3.4 Menu Steganography Extract Di dalam sini yang dipanggil adalah modul steganografi pada bagian Extract. M odul steganografi ini memakai metode Least Significant Bit (LSB) yaitu pesan disembunyikan dengan cara menyisipkannya pada bit rendah atau bit paling kanan pada data pixel yang menyusun suatu file image. Disini si penerima pesan harus memilih submenu ‘Extract’ pada ‘Steganography’ untuk mengekstrak file yang dikirim oleh user.
77
Setelah memilih submenu ‘Extract’ pada ‘Steganography’, maka akan tampil layar seperti gambar 4.17.
Gambar 4.20 Tampilan layar ‘Steganography Extract’
Di layar ‘Steganography Extract’ yang harus dilakukan oleh penerima pesan adalah menginput image yang akan diekstrak dan menyimpan hasil dari pengekstrakan, si penerima dapat menekan tombol ‘Browse’ untuk memilih image yang ada pesan rahasianya. Setelah menekan tombol ‘Browse’ untuk memilih image, maka akan tampil layar seperti gambar 4.18.
78
Gambar 4.21 Tampilan layar saat memilih Browse Load Image
Setelah selesai memilih dan memasukkan image yang diinginkan, maka akan tampil layar seperti gambar 4.19 di bawah ini. Di layar akan tampil image preview yang telah dipilih.
Gambar 4.22 Tampilan layar saat selesai men-load image
79
Si penerima pesan dapat menekan tombol ‘Browse’ untuk menentukan pesan yang ada dalam image disimpan dimana. Setelah itu, maka akan tampil layar seperti gambar 4.20.
Gambar 4.23 Tampilan layar saat memilih Browse Save to
Setelah selesai memilih image, menyimpan file setelah di-extract dan menekan tombol ‘Extract’, maka akan muncul dialog box yang menyatakan operasi yang dilakukan telah berhasil seperti terlihat pada gambar 4.21.
Gambar 4.24 Tampilan layar saat memilih tombol ‘Extract’
80
4.3.5 Menu Help Di dalam menu ‘Help’ ini terdapat tiga submenu, yaitu ‘You Can’t See Me’, ‘Cryptography’, ‘Steganography’. Di dalam submenu ‘You Can’t See Me’ terdapat versi aplikasi ini dan nama-nama pembuat aplikasi ini, seperti yang terlihat pada gambar 4.22.
Gambar 4.25 Tampilan layar ‘Help -> You Can’t See Me’
Selain itu, di dalam menu ‘Help’ juga terdapat submenu ‘Cryptography’ yang isinya penjelasan singkat tentang kriptografi dan metode yang dipakai, seperti yang terlihat pada gambar 4.23.
Gambar 4.26 Tampilan layar ‘Help -> Cryptography’
81
Submenu help yang terakhir adalah ‘Steganography’, submenu ini menjelaskan tentang steganografi secara singkat dan padat seperti yang terlihat pada gambar 4.24 berikut ini.
Gambar 4.27 Tampilan layar ‘Help -> Steganography’
4.3.6 Implementasi Pengiriman Hasil Proses S teganografi pada e-mail User dapat mengirimkan image (*.bmp) yang sudah disisipi pesan dengan menggunakan proses steganografi melalui e-mail, dengan melampirkan file seperti gambar di bawah ini.
82
Gambar 4.28 Tampilan layar saat pengiriman pesan melalui e-mail
File image yang disisipi file/pesan rahasia dapat dikirimkan tanpa masalah, ini terlihat seperti gambar 4.29 di bawah ini.
Gambar 4.29 Tampilan layar saat pengiriman e-mail berhasil
Pesan yang dikirim oleh user dapat diterima dan dapat di-download oleh penerima pesan seperti gambar di bawah ini.
83
Gambar 4.30 Tampilan layar saat men-download
Image yang telah sampai pada penerima pesan dapat dibuka dengan mudah. Tidak ada sesuatu yang terlihat kurang ataupun mencurigakan dari data yang diperoleh, seperti gambar di bawah ini.
Gambar 4.31 Tampilan image yang telah dikirim melalui e-mail
84
M aka dari itu, bisa disimpulkan dari percobaan di atas, pengiriman image (*.bmp) yang telah disisipi pesan dengan menggunakan proses steganografi dapat berjalan dengan baik dan tanpa masalah.
4.4
Evaluasi Program ini memakai metode System Development Life Cycle (SDLC) yang
meliputi beberapa proses yaitu; user requirement, analysis, design, coding, testing dan implementasi/maintenance. Program ini sudah dievaluasi dengan SDLC dalam proses dan pengembangannya. Program ini sudah dikatakan dievaluasi karena sudah dilakukannya testing terhadap program aplikasi ini dan jika ada kesalahan ataupun kekurangan juga sudah diperbaiki. Kesimpulan yang didapat setelah membuat bab 4 ini adalah, pembuatan program sudah selesai, program ini berguna untuk pengamanan pesan, khususnya untuk pengguna e-mail. Aplikasi ini terdiri dari empat modul utama yaitu; Encode, Decode, Hide, dan Extract. Di dalam bab 4 ini telah dilakukan testing dan implementasi. Hasil tesnya antara lain adalah sebagai berikut. 4.4.1
Cryptography Testing M etode cipher substitusi dilakukan dengan menggeser bit sebanyak yang user
inginkan. Contohnya, seperti pada screenshot di atas, dimasukkan string: “aku adalah anak gembala”. M etode ini sangat mengandalkan ASCII. Perubahan yang dilakukan pasti seragam.
85
Semua character di dalam string diubah tipe datanya menjadi char terlebih dahulu. Setelah itu diubah masing-masing char-nya ke dalam bentuk integer. Dengan demikian, bilangan ASCII-lah yang akan diproses selanjutnya. Setelah itu, dimasukkan password sebanyak 4 digit dan didapatkan hasil akhir perhitungannya, yaitu bilangan 10. Untuk semua huruf ‘a’ yang memiliki bilangan ASCII 97, dilakukan pergeseran bit sebanyak 10 (97 dikurangi 10), menjadi 87. Character yang memiliki bilangan ASCII 87 adalah ‘W’. Dengan demikian, seluruh huruf ‘a’ diganti menjadi huruf ‘W’ dan akan dicetak ke dalam jajaran ciphertext. Dalam penyusunan ciphertext, juga dilakukan pembalikan string ketika mencetak, agar lebih sulit diidentifikasi keberadaan rahasianya. Itulah proses enkripsi metode cipher substitusi. Untuk proses dekripsinya, harus memasukkan password yang sama agar muncul plaintext yang sama pula. M etode lain yang diperkenalkan dalam kriptografi metode cipher adalah transposisi. Dimulai dari memasukkan plaintext secara manual (apabila belum memiliki text file) atau membuka text file (jika sudah memilikinya). Pada testing yang kedua ini, akan dilakukan sistem pengacakan data melalui metode kriptografi cipher transposisi. Seperti pada screenshot di atas, dimasukkan string berisi: “aku adalah anak gembala”. Semua string yang dimasukkan di-convert menjadi char. M asing-masin g character memiliki address matriks 1 dimensi seperti gambar di bawah ini. Dengan demikian setiap character memiliki masing-masing satu alamat matrix. Contoh, alamat matrix pertama (alamat ke 0) adalah huruf ‘a’.
86
Gambar 4.32 Kriptografi cipher transposisi – kondisi awal
Selanjutnya, dari seluruh character yang ada akan dihitung panjang string-nya atau banyaknya character. String di atas memiliki panjang 23. Karena terdapat nilai konstan=9 untuk membagi semua character ke dalam sebuah matrix kelipatan 9, maka panjang character harus habis dibagi 9. Jika memiliki sisa hasil bagi (modulus=4), maka di belakang string ditambah character “ ” (spasi) sebanyak jumlah modulus (4 spasi ditambahkan di belakang string).
Gambar 4.33 Kriptografi cipher transposisi – tambah character
Setelah itu, dari total seluruhnya ada 27 character, akan dimasukkan ke dalam matrix 3x9. Bilangan 3 didapat dari perhitungan pembagian 27/9=3. Character akan dimasukkan mulai dari kanan bawah ke kiri bawah, kanan tengah, ke kiri tengah, dan seterusnya.
87
Gambar 4.34 Kriptografi cipher transposisi – positioning in matrix
Enkripsi transposisi akan segera dilakukan. Sistem mulai mengidentifikas i character secara zig zag dan berurutan. Caranya adalah untuk kolom genap akan dibaca dari atas ke bawah, untuk kolom ganjil dibaca dari bawah ke atas. Dimulai dari kolom genap baris pertama [0,0] sampai baris terakhir [2,0]. Karena zig zag, perjalanan pembacaan character dilanjutkan ke kolom ganjil baris terakhir [2,1] sampai baris pertama [0,1]. Begitu seterusnya hingga character yang diambil habis.
Gambar 4.35 Kriptografi cipher transposisi – penyusunan ciphertext
88
Selanjutnya, program akan menyusun string baru sesuai dengan urutan yang tadi. Dengan demikian ciphertext dapat dihasilkan.
Gambar 4.36 Kriptografi cipher transposisi – ciphertext
Untuk mengembalikannya diperlukan proses dekripsi. yang dimasukkan haruslah ciphertext. Ketika ciphertext dimasukkan ke dalam sebuah sistem decode dari kriptografi cipher transposisi, mulailah proses pemulihan. Pemeriksaan yang lebih dahulu dilakukan adalah validasi panjang string. Jika kurang dari nilai konstan=9, akan ditambah huruf spasi lagi sebanyak jumlah modulus, cara yang sama ketika memulai sistem encode. Setelah dilakukan konversi dari string ke char, dilakukan penempatan character ke dalam matrix 9x3.
89
Gambar 4.37 Kriptografi cipher transposisi – proses Decode
Penempatan character dimulai dari kanan bawah ke kiri bawah. Nilai baris dikurangi terus, dari [8,x] ke [0,x]. Jika program mengidentifikasi baris genap, maka nilai kolom akan dikurangi. Dalam hal ini identifikasi dimulai dari indeks ke [8,2] sampai indeks ke [8,0]. Jika program mengidentifikasi baris ganjil, maka nilai kolom akan ditambah. Contohnya, pada posisi indeks ke [7,0] sampai posisi indeks [7,2]. Terus mengular zig zag ke atas, berbelok ke kiri dan ke kanan. hingga semua character habis dimasukkan ke dalam matrix.
90
Kemudian, program akan menyusun kembali plaintext, dari kiri atas matrix ke kiri bawah, dari [y,0] hingga [y,8]. Hal yang sama dilakukan pada kolom lain secara berurutan. maka terbentuklah lagi plaintext. 4.4.2
Steganography Testing Proses steganografi ini menggunakan media berupa BMP image yang memiliki
pixel sebagai elemen terkecil. Diilustrasikan dalam sebuah BMP image yang mengandung rentang ukuran pixel 2 dimensi 6 x 6 (lebar x tinggi).
1 7 13 19 25 31
2 8 14 20 26 32
3 9 15 21 27 33
4 10 16 22 28 34
5 11 17 23 29 35
6 12 18 24 30 36
Gambar 4.38 Pixel
Setiap pixel memiliki color depth sebanyak 24 bits yang menampung bit warna Red, Green, Blue. Dengan demikian, masing-masing komponen warna memiliki 8 color bits (8 Red color bits, 8 Green color bits, 8 Blue color bits).
R: 00000000 G: 00000000 B: 00000000 Gambar 4.39 Color depth dalam 1 pixel
91
Data informasi yang akan disembunyikan (payload) pastinya memiliki banyak bytes. Setiap byte memiliki 8 bits. Setiap bit akan dituliskan ke dalam bit terendah (paling kanan) pada pixel dalam BMP image. Karena setiap byte membutuhkan media penyimpanan bits sebanyak 8, maka dibutuhkan pixel sebanyak 3 buah (pixel ke 1, 2, 3).
1 7 13 19 25 31
2 8 14 20 26 32
3 9 15 21 27 33
4 10 16 22 28 34
5 11 17 23 29 35
6 12 18 24 30 36
Gambar 4.40 Pixels yang digunakan untuk 1 byte
Penggantian bits secara terurut dari RGB pada pixel pertama, RGB pada pixel kedua, hingga RGB pada pixel ketiga. Sebagai contoh, ketika akan dimasukkan karakter A yang bernilai ASCII 65 (bernilai binary 01000001), maka: a. Bilangan 1 yang pertama (ASCII bit kedua dari kiri) akan mengganti bit terendah Green di pixel pertama. b. Bilangan 1 yang kedua (ASCII bit terakhir dari kiri) akan mengganti bit terendah Green di pixel ketiga.
R: 00000000 G: 00000001 B: 00000000
R: 00000000 G: 00000000 B: 00000000
R: 00000000 G: 00000001 B: 00000000
Gambar 4.41 Penggantian bits pada pixel ke 1, 2, 3
ignored
92
Bit terendah pada warna Blue di pixel ketiga akan diabaikan karena 1 byte dari payload hanya membutuhkan 8 bits. 1 byte berikutnya menggunakan 3 pixel berikutnya (pixel ke 4, 5, 6), dan seterusnya.
1 7 13 19 25 31
2 8 14 20 26 32
3 9 15 21 27 33
4 10 16 22 28 34
5 11 17 23 29 35
6 12 18 24 30 36
Gambar 4.42 Pixels berikutnya yang digunakan untuk 1 byte berikutnya
Dalam proses ekstraksi, sistem hanya membaca bits terendah saja dari setiap pixel. Dengan demikian, payload mampu terdefinisi dengan baik tanpa ada kesalahan, kecuali terjadi rekayasa lain yang terjadi pada media. Untuk melakukan steganografi, dibutuhkan aksi sesuai langkah-langkah pada subbab sebelumnya. Dengan demikian user bisa memilih submenu ‘Hide’ atau ‘Extract’.
93
Gambar 4.43 S teganografi – pilih menu
Untuk langkah-langkah proses Hide, masukkan file gambar yang akan dijadikan media dan file yang akan disembunyikan. Penulis menggunakan file “test.txt” yang di dalamnya terdapat tulisan ‘halo ini file test’.
Gambar 4.44 S teganografi – submenu ‘Hide’
94
Pada saat menekan tombol ‘Hide’, user akan diinstruksikan untuk menentukan lokasi gambar baru akan di-save. Proses akan berjalan. Tunggu beberapa saat hingga ada message box operasi berhasil.
Gambar 4.45 S teganografi – Hide sukses
Bila operasi berhasil, gambar yang baru saja dihasilkan memiliki file ‘test.txt’ yang disembunyikan. Untuk proses selanjutnya, pilih menu ‘Extract’, dan tentukan file yang akan diextract dan lokasi hasil ekstraksi akan disimpan.
Gambar 4.46 S teganografi – submenu ‘Extract’
95
Tekan tombol ‘Extract’ dan tunggu hingga ada dialog box yang berisi pesan kalau operasi telah berhasil.
Gambar 4.47 S teganografi – Extract sukses
Apabila proses sudah berhasil, maka hasil ekstraksi dapat dilihat di lokasi yang sebelumnya telah ditentukan. Berikut apa ditunjukkan pula testing dari sub program steganografinya.
a. Tahap 1 M edia yang disembunyikan: File.t xt Sebelum
Sesudah
Size: 501 kb
Size: 24.8 kb
Tabel 4.1 Perbandingan steganografi 1
96
Kondisi setelah diekstrak keadaan file mirip seperti semula.
b. Tahap 2 M edia yang disembunyikan: File.rar berukuran 11.3 kb Sebelum
Sesudah
Size: 501 kb
Size: 68.5 kb
Tabel 4.2 Perbandingan steganografi 2
Dari gambar kita dapat melihat sedikit perbedaan pada gambar setelah diekstrak. Terlihat sedikit berbeda dibandingkan sebelum disisipkan file. Hasil ekstraksi file.rar yang digunakan sama seperti semula, file dapat diekstrak dengan baik serta file yang di dalamnya tetap dapat dilihat.
97
c. Tahap 3 M edia yang disembunyikan: MP3 Sebelum
Sesudah
Size: 501 kb
Size: 166.5 kb
Tabel 4.3 Perbandingan steganografi 3
Antara hasil sebelum dan sesudah proses steganografi terlihat perbedaan yang sangat jauh. Gambar setelah proses terlihat lebih keruh dan tidak jernih. Proses ini berjalan dengan baik, akan tetapi pada saat melakukan ekstraksi, ada keanehan yang terjadi. File dapat terekstrak, namun file tidak sepenuhnya kembali seperti semula (tidak bisa di-play secara normal). File yang diekstrak tersebut menjadi corrupt. Hal ini mungkin dikarenakan keterbatasan ukuran file yang akan dipakai dalam proses Hide. makin mendekati sizefile yang diperbolehkan, makin kecil kemungkinan file tersebut dapat dikembalikan ke keadaan semula.
98
Hasil tesnya menunjukkan bahwa semuanya berjalan dengan baik dan lancar. Dengan demikian implementasi sudah dilakukan. Evaluasi pun berlangsung seirama dengan berjalannya perancangan dan pembuatan program. Hal ini membuat sistem yang dibuat menjadi semakin sempurna. Hal ini terjadi karena didukung dengan metode System Development Life Cycle (SDLC) yang sering dikenal dengan sebutan patennya Waterfall Model. Semua sistem, kriptografi dan steganografi, dapat berjalan sempurna asalkan memiliki kunci yang sama ketika di awal dan akhir. Jika tidak, data rahas ia tidak bisa diketemukan.