BAB 3
PERANCANGAN APLIKASI
3.1Analisis Sistem
Analisis sistem berfungsi untuk melihat hasil kombinasi dari kedua algoritma yang digunakan yaitu algoritma Triple Transposition Vigenere Cipher dan algoritma Modified Least Significant Bit (MLSB) yang akan disisipkan dalam citra berformat png.
Secara garis besar penelitian ini terdiri dari dua proses, yaitu proses enkripsi dan proses encoding. Di mana untuk proses enkripsi penulis akan menggunakan algoritma triple transposition vigenere cipher. Sedangkan untuk proses encoding penulis akan menggunakan metode steganografi Modified Least Significant Bit (MLSB). Di samping kedua proses tersebut, penulis juga akan melengkapi penelitian ini dengan proses decoding dan dekripsi. Hal ini bertujuan agar pesan yang telah dienkripsi dan disembunyikan dapat kembali menjadi pesan awal yang dapat dimanfaatkan oleh orang yang berhak.
Gambar 3.1 (a) Flowchart Enkripsi dan Encoding; (b) Flowchart Decoding dan Dekripsi Input citra,
plainteks, kunci
Enkripsi
Encoding
Citra stego
Selesai
Mulai Mulai
Input citra stego, kunci
Dekripsi
Decoding
Plainteks
3.2Analisis Algoritma Triple Transposition Vigenere Cipher
Pada teknik Triple Transposition Vigenere Cipher, tabel bujursangkar vigenere cipher ditambahkan jumlah karakter sehingga dapat menampung printable character (karakter dengan kode ASCII 20h – 7Eh). Untuk mengacaukan pengulangan serta memanipulasi kemunculan huruf –huruf pesan, penulis memilih cara yaitu dengan perulangan transposisi kunci sebanyak tiga kali.
Berikut adalah langkah-langkah dari proses enkripsi: 1. Masukkan pesan (plainteks).
2. Masukkan kunci.
3. Dapatkan nilai panjang kunci secara acak untuk digunakan sebagai jumlah kolom pada saat proses transposisi pertama.
4. Lakukan proses transposisi.
5. Ulang kunci sepanjang plainteks hasil transposisi. 6. Ubah huruf plainteks dan kunci menjadi kode ASCII.
7. Lakukan penggantian indeks bit dari plainteks dan kata kunci dengan cara mengurangi setiap bit dengan 30 (20h-1-1).
8. Lakukan pergeseran indeks plainteks dengan cara menambahkan indeks plainteks dengan indeks kata kunci.
9. Periksa apakah nilai setiap indeks plainteks lebih besar dari 96. Jika lebih besar dari 96, maka indeks plainteks dikurangi dengan 96 sehingga akan menghasil cipherteks hasil transposisi ketiga. Jika tidak lebih besar dari 96 maka lakukan langkah selanjutnya.
10.Apabila nilai indeks berada di luar dari jumlah maksimum karakter yang tersedia maka kembalikan nilai indeksnya menjadi indeks awal (tambah kembali dengan 30).
11.Kembalikan menjadi karakter plainteks.
12.Lakukan perulangan sebanyak tiga kali dari langkah nomer 2 sampai langkah nomer 11.
13.Hasil akhir proses yaitu cipherteks.
Ya
Tidak
3 kali pengulangan
Gambar 3.2 Flowchart Proses Enkripsi
Setelah diperoleh cipherteks, dengan begitu pesan tersebut tidak akan dapat dibaca oleh pihak yang tidak berhak tanpa melalui proses deskripsi. Proses deskripsi pada modifikasi vigenere cipher ini memerlukan kunci yang sama pada saat proses enkripsi.
Langkah – langkah dari proses deskripsi adalah sebagai berikut: 1. Masukkan cipherteks
2. Masukkan kunci
3. Ulang kunci sepanjang cipherteks
5. Lakukan penggantian indeks byte dari plainteks dan kata kunci ketiga dengan cara mengurangi setiap byte dengan 30.
6. Lakukan pergeseran indeks plainteks dengan cara menambahkan indeks plainteks dengan indeks kata kunci.
7. Periksa apakah nilai setiap indeks plainteks lebih kecil 96. Jika lebih kecil dari 96, maka indeks plainteks ditambahkan dengan 96. Jika lebih besar dari 96 maka lakukan langkah selanjutnya.
8. Kembalikan nilai indeksnya menjadi indeks awal (tambah kembali dengan 30).
9. Kembalikan ke bentuk karakter semula berdasarkan kode karakter ASCII. 10.Dapatkan nilai panjang kunci secara acak untuk digunakan sebagai jumlah
kolom pada saat proses transposisi.
11.Lakukan proses transposisi hingga menghasilkan plainteks.
12.Lakukan perulangan sebanyak tiga kali dari langkah nomer 2 sampai langkah nomer 11.
13.Hasil dari ekstraksi yaitu plainteks atau pesan asli.
Gambar 3.3 merupakan flowchart dari proses deskripsi pada triple transposition vigenere cipher.
Mulai
Input cipherteks, kunci
Ulang kunci sepanjang cipherteks
1 Ubah cipherteks,
3 kali pengulangan Ya
Tidak
Gambar 3.3 Flowchart Proses Dekripsi Kurangi cipherteks
dan kunci dengan 30
Kurangi cipherteks
dan kunci
ci ki
ci ki
96Kembalikan ke plainteks awal (menambahkan dengan 30 )
Konversi kembali kode ASCII setiap
plainteks menjadi karakter
Tentukan jumlah kolom
Transposisi cipherteks
Plainteks 1
3.3Analisis Algoritma Modified Least Significant Bit (MLSB)
Strategi penyisipan pesan ke dalam citra yang digunakan adalah dengan metode Modified Least Significant Bit (MLSB). Di mana dalam penyisipan pesannya dilakukan sama persis dengan LSB (menyisipkan pada bit paling kanan), yang membedakan antara MLSB dan LSB adalah pada pesan yang ingin disisipkan. Pada LSB pesan yang disisikan masih dalam bentuk 8 bit, sementara pada MLSB, pesan dikonversi ke dalam 5 bit. Pengubahan 8 bit menjadi 5 bit dilakukan dengan menggunakan control symbol.
Berikut adalah langkah – langkah dari proses encoding:
1. Masukan pesan (cipherteks). 2. Masukkan citra.
3. Jika ukuran teks pesan lebih besar daripada ukuran citra, maka akan diminta untuk memasukan kembali citra yang lebih besar. Jika tidak, proses akan berlanjut ke langkah selanjutnya.
4. Ubah pesan menjadi kode ASCII.
5. Gabungkan semua kode karakter tersebut dan gunakan tanda spasi sebagai pemisah antar kode karakter.
6. Lakukan konversi masing-masing karakter ke dalam karakter kontrol simbol. 7. Lakukan proses pengurangan masing-masing kontrol simbol dengan nilai
terendah dari masing-masing rentang nilai dari karakter kontrol simbol.
8. Dapatkan nilai biner dari daftar kontrol simbol tersebut dengan cara melakukan konversi hexadecimal menjadi nilai biner.
9. Dapatkan nilai biner dari masing-masing nilai pixel pada citra cover. 10.Pilih lokasi pixel dari citra.
11.Lakukan penyisipan 5 bit data karakter kontrol simbol ke dalam 5 bit nilai binary dari citra cover.
12.Ubah biner citra yang telah mengandung bit pesan ke pixel.
13.Ubah pixel menjadi citra, maka akan diperoleh citra baru yang mengandung pesan (stego-image).
Ya
Tidak
Gambar 3.4 Flowchart Proses Encoding
Dari proses encoding akan dihasilkan citra baru yang telah mengandung pesan. Jika diperhatikan dengan mata manusia, tidak terdapat perbedaan antara citra tidak mengandung pesan dengan citra yang telah mengandung pesan.
1. Masukkan citra yang mengandung pesan (stego-image). 2. Ubah citra stego menjadi nilai biner.
3. Pilih lokasi pixel dari citra
4. Ambil MLSB citra sehingga menghasilkan biner pesan.
5. Ubah nilai biner ke dalam karakter simbol dengan cara mengkonversi nilai biner menjadi nilai hexadecimal.
6. Lakukan pembuangan karakter kontrol pertama dan terakhir dari daftar karakter kontrol simbol.
7. Lakukan proses penambahan masing-masing kontrol simbol dengan nilai terendah dari masing-masing rentang nilai dari karakter kontrol simbol yang berada sebelum masing-masing karakter.
8. Ubah karakter kontrol simbol menjadi nilai desimal.
9. Lakukan pengambilan nilai kode ASCII karakter dengan cara memecah pesan berdasarkan karakter spasi.
10.Ubah kode ASCII pesan menjadi karakter, sehingga menghasilkan pesan (cipherteks).
Gambar 3.5 merupakan flowchart proses decoding Mulai
Pilih lokasi pixel dari citra Ubah citra stego →
biner
Ambil MLSB citra → biner pesan
1 Input
Gambar 3.5 Flowchart Proses Decoding
3.4Analisis Means Square Error (MSE)
Mean Square Error (MSE) pada penelitian ini digunakan untuk melihat
perbandingan nilai antara citro cover dengan citra stego. Dalam analisis ini jika semakin kecil nilai Mean Square Error (MSE) yang dihasilkan, maka dapat
Pembuangan karakter control symbol
Penambahan masing-masing control symbol dengan nilai
terendah
Ubah control
symbol → desimal
Pengambilan nilai kode ASCII karakter
→ tanda spasi (pemisah) Ubah ASCII pesan
→ karakter
Cipherteks
Selesai Ubah biner → karakter control
dikatakan kualitas citra stego (setelah dilakukan penyisipan) hampir sama dengan kualitas aslinya.
Berikut adalah langkah-langkah perhitungan Means Square Error (MSE): 1. Input citra cover.
2. Hitung dimensi , . 3. Input citra stego.
4. Hitung nilai RGB setiap pixel citra cover dan stego. 5. Hitung Means Square Error (MSE).
6. Nilai Means Square Error (MSE).
Gambar 3.6 merupakan flowchart proses perhitungan Means Square Error (MSE)
Gambar 3.6 Flowchart Proses Perhitungan Means Square Error (MSE) Mulai
Input citra-stego
Hitung dimensi
X,Y
Hitung nilai RGB setiap pixel citra cover dan stego
BAB 4
IMPLEMENTASI
Pada bab ini akan diperlihatkan hasil dan pembahasan dari penelitian yang diperoleh berdasarkan penjelasan – penjelasan yang telah dipaparkan pada bab– bab sebelumnya. Hasil dan pembahasan dari penelitian ini adalah mengenai implementasi Steganografi Modified Least Significant Bit (MLSB) dengan modifikasi algoritma Triple Transposisi Vigenere Cipher pada citra digital.
4.1Kebutuhan Perangkat Lunak dan Perangkat Keras
Penelitian ini menggunakan perangkat lunak berupa: 1. Sistem operasi Windows 7 Ultimate
2. Mathlab R20016b
Spesifikasi Perangkat keras yang digunakan berupa: 1. Processor Intel® Core™ i3 CPU M350 @ 2.27 GHz 2. RAM 3 GB
3. Harddisk 320 GB 4. Monitor 14 inch
4.2Implementasi
Gambar 4.1 Menu Utama
Dari Gambar 4.1 dapat dilihat bahwa di dalam halaman utama terdapat empat buah tombol. Tombol tersebut yaitu tombol encoding, decoding dan keluar. Tombol encoding digunakan untuk memulai proses enkripsi dan encoding, tombol decoding digunakan untuk memulai proses decoding dan deskripsi, tombol hitung
MSE digunakan untuk memulai proses menghitung means square error pada citra, dan tombol keluar digunakan untuk keluar dari program.
4.2.1 Proses Enkripsi dan Encoding
Surya adalah seorang direktur di sebuah perusahaan yang bergerak di bidang property. Pada suatu hari Surya masih berada di luar kota dan baru akan kembali
pada hari Senin pukul 19:00 WIB, sementara ada meeting mendadak dengan para investor pada hari Selasa pagi. Melihat kondisi yang tidak memungkinkan bagi surya untuk pergi ke kantor mengambil dokumen dan berkas penting, maka Surya memerintahkan asistennya yang bernama Dito untuk mengirim dan mengambil
dokumen tersebut. Berikut isi pesannya “Tolong kirim dokumen itu ke saya
sekarang. Dokumen itu berada dalam map warna hijau yang ada di dalam brankas saya. Berikut pin brankasnya 34-82-69. Segera antarkan ke rumah saya tepat jam
8 malam ini karna ini sangat penting untuk meeting besok dengan para investor”.
Karena pesan bersifat rahasia, maka pesan tersebut dienkripsi dahulu oleh Surya
“SEBELAS”. Namun karena Surya merasa pesan ini belum aman jika hanya
dienkripsi saja, maka Surya memutuskan untuk menyembunyikan pesan tersebut dalam sebuah citra sehingga pesan tidak ada yang mengetahui kecuali asistennya bernama Dito. Gambar 4.2 merupakan citra yangakan digunakan Rio untuk menyembunyikan pesan.
Gambar 4.2 Bebatuan.png
Untuk memulai proses enkripsi dan encoding, tekan tombol encoding pada halaman utama, maka akan muncul halaman enkripsi dan encoding seperti pada gambar 4.3.
Gambar 4.3 Halaman Enkripsi dan Encoding 1
Gambar 4.4 Pop-up Window Pilih Gambar 1
Setelah citra dipilih akan ditampilkan pada halaman enkripsi dan encoding.
Gambar 4.5 Halaman Enkripsi dan Encoding 2
ada di dalam brankas saya. Berikut pin brankasnya 34-82-69. Segera antarkan ke rumah saya tepat jam 8 malam ini karna ini sangat penting untuk meeting besok
dengan para investor.” dengan kunci “SEMBILAN”, “GAJAH”, dan “SEBELAS”.
Gambar 4.6 Halaman Enkripsi dan Encoding 3
Langkah selanjutnya adalah memulai proses enkripsi dan encoding dengan menekan tombol Proses Penyisipan, lalu akan muncul gambar yang pertama kali
dipilih dan peringatan bahwa “Proses Penyisipan Berhasil”.
Kemudian klik tombol “Ok” dan setelah itu klik tombol “Simpan Citra Stego”, maka akan muncul pop-up window untuk menyimpan citra yang telah mengandung pesan hasil proses enkripsi dan encoding.
Gambar 4.8 Pop-up Window Simpan Gambar
Citra pada Gambar 4.9 merupakan citra yang telah mengandung pesan hasil proses enkripsi dan encoding.
Gambar 4.9 Bebatuan_Stego.png
4.2.2 Proses Decoding dan Deskripsi
decoding pada halaman utama, maka akan muncul halaman decoding dan deskripsi seperti pada Gambar 4.10
Gambar 4.10 Halaman Decoding dan Dekripsi 1
Selanjutnya yang dilakukan adalah pilih citra yang mengandung pesan dengan cara menekan tombol Pilih Citra Stego, maka akan muncul pop-up window untuk mengakses lokasi citra disimpan.
Gambar 4.11 Pop-up Window Pilih Gambar 2
Gambar 4.12 Halaman Decoding dan Dekripsi 2
Langkah selanjutnya adalah masukan kunci pada kolom yang disediakan. Kunci pada proses deskripsi dan decoding ini adalah sama dengan kunci yang digunakan pada proses enkripsi dan encoding.
Gambar 4.13 Halaman Decoding dan Dekripsi 3
Gambar 4.14 Halaman Decoding dan Dekripsi 4
4.3Analisis dalam Aplikasi
Pada tahap ini akan dijelaskan bagaimana tahapan – tahapan sistem mengamankan pesan. Gambar 4.2 akan dijadikan wadah penampung pesan. Citra ini menggunakan format pewarnaan RGB, artinya tiap piksel dari citra ini direpresentasikan dengan nilai sepanjang 24 bit. Pesan rahasia yang akan disembunyikan adalah “ Tolong kirim dokumen itu” dengan tiga buah kunci yaitu
“SEMBILAN”, “GAJAH”, dan “SEBELAS”. Sebelum pesan disembunyikan
dalam citra, terlebih dahulu pesan dienkripsi sehingga akan menghasilkan cipherteks.
Sebelum memasukkan pesan ke dalam citra cover, maka terlebih dahulu dilakukan enkripsi pesan rahasia tersebut dengan menggunakan TTVC (Triple Transposition Vigenere Cipher)
Pada proses transposisi pertama digunakan kata kunci “SEMBILAN” yang memiliki panjang 8 karakter, dengan menentukan nilai acak antara 1 sampai dengan 8 maka diasumsikan jumlah kolom pertama yang digunakan adalah 6.
Memasuki proses transposisi pertama, semua karakter akan disusun ke dalam matriks dengan jumlah kolom tertentu sesuai dengan jumlah kolom yang telah ditentukan sebelumnya. Teks pesan yang digunakan adalah masih sama
seperti pesan rahasia semula yaitu “ tolong kirim dokumen itu” dan jumlah kolom
yang digunakan adalah 7, sehingga hasil penyusunan matriksnya adalah
Tabel 4.1 Proses Memasukkan Plainteks 1
t o l o n g
k i r i m d
o k u m e n
i t u
Selanjutnya adalah melakukan transposisi pada matriks tersebut, sehingga hasilnya sebagai berikut:
Tabel 4.2 Proses Transposisi Pertama
t k o i
o i k t
l r u u
o i m
n m e
g d n
Lakukan pembacaan teks kembali secara terurut, sehingga hasil pesan
Memasuki proses substitusi pertama. Langkah pertama adalah melakukan perulangan kata kunci agar jumlah kata kunci sesuai dengan jumlah karakter pada pesan yang diproses.
Pesan : tkoioiktlruuoim[]nme[]gdn[]
Kunci pertama : SEMBILANSEMBILANSEMBILAN
Selanjutnya adalah mendapatkan kode karakter ASCII dari masing-masing karakter tersebut. Dengan melihat tabel ASCII, maka diperoleh:
Tabel 4.3 Kode ASCII Plainteks dan Kunci Pertama
i Plainteks ASCII i Kata kunci ASCII
1 t 116 1 S 83
2 k 107 2 E 69
3 o 111 3 M 77
4 i 105 4 B 66
5 o 111 5 I 73
6 i 105 6 L 76
7 k 107 7 A 65
8 t 116 8 N 78
9 l 108 9 S 83
10 r 114 10 E 69
11 u 117 11 M 77
12 u 117 12 B 66
13 o 111 13 I 73
14 i 105 14 L 76
15 m 109 15 A 65
16 [] 10 16 N 78
17 n 110 17 S 83
18 m 109 18 E 69
19 e 101 19 M 77
20 [] 10 20 B 66
21 g 103 21 I 73
22 d 100 22 L 76
23 n 110 23 A 65
Langkah berikutnya adalah mendapatkan indeks karakter secara terurut dari angka 1 sampai dengan jumlah karakter ASCII yang dapat dicetak. Rentang urutan karakter ASCII dalam bentuk hexadecimal adalah 20h – 7E, yang jika dikonversi dalam bentuk desimal adalah dengan kode 32 - 126.
Indeks 1 adalah indeks untuk kode karakter 10, indeks 2 adalah indeks untuk kode karakter 32, indeks 3 adalah indeks untuk kode karakter 33, demikian seterusnya sampai, indeks 96 adalah indeks untuk kode karakter 126
Dengan tata cara pengurutan indeks di atas, maka hasil konversinya adalah
Tabel 4.4 Hasil Konversi Plainteks dan Kata Kunci Pertama
i Plainteks Kata Kunci i Plainteks Kata Kunci
Selanjutnya akan dilakukan penjumlahan indeks kata kunci pertama dan indeks plainteks.
Tabel 4.5 Hasil Penjumlahan Plainteks dan Kata Kunci Pertama
10 123 22 116
11 134 23 115
12 123 24 58
Tetapi perlu diingat bahwa jumlah indeks maksimal adalah 96, sehingga untuk semua indeks yang nilainya lebih dari 96 akan mengalami pengurangan dengan angka 96 untuk memastikan nilai indeks tetap berada dalam rentang
Tabel 4.6 Hasil Pengurangan Plainteks pada Proses Pertama
i Plainteks i Plainteks
Selanjutnya adalah mengembalikan nilai kode karakter ASCII dari indeks karakter tersebut. Cara pengembalian adalah sama seperti penjelasan sebelumnya, yaitu indeks 1 adalah indeks untuk kode karakter 10, indeks 2 adalah indeks untuk kode karakter 32, indeks 3 adalah indeks untuk kode karakter 33 demikian seterusnya sampai indeks 96 adalah indeks untuk kode karakter 126.
Tabel 4.7 Pengembalian Plainteks ke Bentuk Semula pada Proses Pertama
8 68 20 10
9 65 21 50
10 57 22 50
11 68 23 49
12 57 24 10
Kembalikan hasil plainteks pada tabel ke bentuk karakter semula berdasarkan kode karakter ASCII dari masing-masing karakter tersebut.
Tabel 4.8 Hasil Proses Enkripsi pada Transposisi Pertama i Plainteks i Plainteks
1 I 13 :
2 2 14 7
3 > 15 0
4 − 16 []
5 : 17 C
6 7 18 4
7 . 19 4
8 D 20 []
9 A 21 2
10 9 22 2
11 D 23 1
12 9 24 []
Diperoleh cipherteks sementara hasil transposisi pertama adalah
“I2>−:7.DA9D9:70[]C44[]221[]”
Memasuki proses transposisi kedua. Pada proses ini digunakan kata kunci
“GAJAH” yang memiliki panjang 5 karakter. Sama halnya dengan proses
transposisi pertama, dengan menentukan nilai acak antara 1 sampai dengan 5, maka dapat diasumsikan jumlah kolom yang dapat digunakan pada proses transposisi kedua adalah 4. Selanjutnya cipherteks hasil transposisi pertama akan dimasukkan pada kolom yang telah ditentukan.
Tabel 4.9 Proses Memasukkan Plainteks 2 I 2 > −
A 9 D 9 : 7 0 C 4 4 2 2 1
Selanjutnya adalah melakukan transposisi kedua.
Tabel 4.10 Proses Transposisi Kedua
I : A : C 2
2 7 9 7 4 2
> . D 0 4 1
− D 9
Lakukan pembacaan teks kembali secara terurut, sehingga hasil pesan sementara
adalah “I:A:C2279742>.D041−D9[][][]”.
Memasuki proses substitusi kedua. Dengan menggunakan cara yang sama seperti sebelumnya, maka
Pesan : I:A:C2279742>.D041−D9[][][]
Kata kunci : GAJAHGAJAHGAJAHGAJAHGAJA
Selanjutnya adalah mendapatkan kode karakter ASCII dari masing-masing karakter tersebut. Dengan melihat tabel ASCII, maka diperoleh:
Tabel 4.11 Kode ASCII Plainteks dan Kunci Kedua
I Plainteks ASCII i Kata Kunci ASCII
1 I 73 1 G 71
2 : 58 2 A 65
3 A 65 3 J 74
4 : 58 4 A 65
5 C 67 5 H 72
6 2 50 6 G 71
7 2 50 7 A 65
9 9 57 9 A 65
Berikutnya adalah mendapatkan indeks karakter secara terurut dari angka 1 sampai dengan jumlah karakter ASCII yang dapat dicetak. Rentang urutan karakter ASCII dalam bentuk hexadecimal adalah 20h – 7E, yang jika dikonversi dalam bentuk desimal adalah dengan kode 32 - 126. Tetapi perlu diingat bahwa akan terdapat karakter kosong dengan kode karakter 10, sehingga urutan indeks yang diinginkan adalah indeks 1 adalah indeks untuk kode karakter 10, indeks 2 adalah indeks untuk kode karakter 32, indeks 3 adalah indeks untuk kode karakter 33 demikian seterusnya sampai indeks 96 adalah indeks untuk kode karakter 126. Dengan tata cara pengurutan indeks di atas, maka hasil urutan indeks adalah:
Tabel 4.12 Hasil Konversi Plainteks dan Kata Kunci Kedua
11 22 41 23 10 44
12 20 35 24 10 35
Selanjutnya akan dilakukan penjumlahan indeks kata kunci kedua dan indeks plainteks.
Tabel 4.13 Hasil Penjumlahan Plainteks dengan Kata Kunci Kedua
i Plainteks i Plainteks
1 84 13 76
2 63 14 51
3 79 15 80
4 63 16 59
5 79 17 57
6 61 18 63
7 55 19 50
8 69 20 80
9 62 21 68
10 67 22 45
11 63 23 54
12 55 24 45
Tetapi perlu diingat bahwa jumlah indeks maksimal adalah 96, sehingga untuk semua indeks yang nilainya lebih dari 96 akan mengalami pengurangan dengan angka 96 untuk memastikan nilai indeks tetap berada dalam rentang.
Karena nilai indeks tidak lebih besar dari 96, maka tidak dilakukan pengurangan dengan nilai rentang yang telah ditetapkan. Dalam hal ini langsung saja mengembalikan plainteks awal dengan melakukan penjumlahan pada indeks terkecil.
Tabel 4.14 Pengembalian Plainteks ke Bentuk Semula pada Proses Kedua
i Plainteks i Plainteks
1 114 13 106
2 93 14 81
3 109 15 110
4 93 16 89
6 91 18 93
7 85 19 80
8 99 20 110
9 92 21 98
10 97 22 10
11 93 23 10
12 85 24 10
Kembalikan hasil plainteks pada tabel ke bentuk karakter semula berdasarkan kode karakter ASCII dari masing-masing karakter tersebut.
Tabel 4.15 Hasil Proses Enkripsi pada Transposisi Kedua
i plainteks i plainteks
1 r 13 j
2 ] 14 Q
3 m 15 n
4 ] 16 Y
5 m 17 W
6 [ 18 ]
7 U 19 P
8 c 20 n
9 \ 21 b
10 a 22 []
11 ] 23 []
12 U 24 []
Sehingga diperoleh cipherteks sementara hasil transposisi kedua adalah
“r]m]m[Uc\a]UjQnYW]Pnb[][][]”
Memasuki proses transposisi ketiga. Pada proses ini digunakan kata kunci
“SEBELAS” yang memiliki panjang 7 karakter. Sama halnya dengan proses
Tabel 4.16 Proses Memasukkan Plainteks 3
Selanjutnya adalah melakukan transposisi kedua.
Tabel 4.17 Proses Transposisi Ketiga r m m U \ ] j n W P b ] ] [ c a U Q Y ] n
Lakukan pembacaan teks kembali secara terurut, sehingga hasil pesan sementara
adalah “rmmU\]jnWPb]][caUQY]n”
Memasuki proses substitusi ketiga. Dengan menggunakan cara yang sama seperti sebelumnya, maka
Pesan : rmmU\]jnWPb]][caUQY]n
Kata kunci : SEBELASSEBELASSEBELASSEB
Selanjutnya adalah mendapatkan kode karakter ASCII dari masing-masing karakter tersebut. Dengan melihat tabel ASCII, maka diperoleh:
r ] m ] m [ U c \ a ] U j Q n Y W ]
Tabel 4.18 Kode ASCII Plainteks dan Kunci Ketiga
Selanjutnya konversi ke dalam urutan indeks sesuai aturan sebelumnya.
Tabel 4.19 Hasil Konversi Plainteks dan Kata Kunci Ketiga
11 68 39 23 10 39
12 10 46 24 10 36
Selanjutnya akan dilakukan penjumlahan indeks kata kunci dan indeks plainteks.
Tabel 4.20 Hasil Penjumlahan Plainteks dengan Kata Kunci Ketiga
i Plainteks i Plainteks angka 96 untuk memastikan nilai indeks tetap berada dalam rentang.
Tabel 4.21 Hasil Pengurangan Plainteks pada Proses Ketiga
Selanjutnya adalah mengembalikan plainteks awal dengan melakukan penjumlahan pada indeks terkecil sesuai aturan yang telah dijelaskan sebelumnya pada transposisi pertama dan kedua.
Tabel 4.22 Pengembalian Plainteks ke Bentuk Semula pada Proses Ketiga
i Plainteks i Plainteks
Kembalikan hasil plainteks pada tabel ke bentuk karakter semula berdasarkan kode karakter ASCII dari masing-masing karakter tersebut.
Tabel 4.23 Hasil Proses Enkripsi pada Transposisi Ketiga
i Plainteks i Plainteks
Sehingga Cipherteks yang dihasilkan dari proses enkripsi adalah
Setelah proses enkripsi selesai, selanjutnya adalah melakukan proses penyisipan pesan enkripsi (encoding) pada citra cover.
Hal pertama yang akan dilakukan dalam proses encoding ini adalah dapatkan kembali kode karakter ASCII dari masing-masing karakter pesan tersebut.
Pesan : 71 52 49 124 42 32 63 67 126 116 41 10 32 50 48 42 37 124 31 124 50 67 10 10
Gabungkan semua kode karakter tersebut dan gunakan tanda spasi sebagai pemisah antar kode karakter, sehingga hasil pesan adalah
Pesan : 71 52 49 124 42 32 63 67 126 116 41 10 32 50 48 42 37 124 31 124 50 67 10 10
Selanjutnya lakukan konversi masing-masing karakter ke dalam karakter kontrol simbol dengan aturan 1Bh (huruf kecil), 1Ch (huruf besar), 1Dh (spasi), dan 1Fh (akhir pesan)
Dengan aturan di atas, maka hasil konversi adalah sebagai berikut:
7 = 37h 3 = 33h Space = 20h 4 = 34h Space = 20h 1 = 31h 2 = 32h 4 = 34h 2 = 32h 5 = 35h Space = 20h Space = 20h 1 = 31h Space = 20h 0 = 30h
5 = 35h 6 = 36h Space = 20h 3 = 33h Space = 20h 2 = 32h 3 = 33h 1 = 31h 7 = 37h 6 = 37h Space = 20h Space = 20h 0 = 30 Space = 20h 7 = 37h
4 = 34h 6 = 36h Space = 20h 1 = 31h Space = 20h 9 = 39h 7 = 37h 3 = 33h 2 = 32h 1 = 31h Space = 20h Space = 20h 2 = 32h 4 = 34h 0 = 30h
1 = 31h 1 = 31h Space = 20h Space = 20h Space = 20h 2 = 32h 2 = 32h 5 = 35h 3 = 33h 1 = 31h 4 = 34h 6 = 36h 0 = 30h 1 = 31h 0 = 30h Space = 20h Space = 20h Space = 20h Space = 20h
Hasil daftar kontrol simbol sementara adalah
37h 31h 20h 35h 32h 20h 34h 39h 20h 31h 32h 34h 20h 34h 32h 20h 33h 32h 20h 36h 33h 20h 36h 37h 20h 31h 32h 36h 20h 31h 31h 36h 20h 34h 31h 20h 31h 30h 20h 33h 32h 20h 35h 30h 20h 34h 38h 20h 35h 30h 20h 33h 37h 20h 31h 32h 34h 20h 33h 31h 20h 31h 32h 34h 20h 35h 30h 20h 36h 37h 20h 31h 30h 20h 31h 30h
Lakukan proses pengurangan masing-masing kontrol simbol dengan nilai terendah dari masing-masing rentang nilai dari karakter kontrol simbol yang berada sebelum masing-masing karakter, dan lakukan konversi untuk setiap karakter spasi (kontrol simbol 20h) menjadi sesuai dengan aturan di atas. Karena nilai terendah pada masing-masing karakter adalah 30, maka semua karakter akan dikurangi dengan nilai 30. Setelah dilakukan pengurangan nilai terendah untuk setiap kelompok, data-data tersebut ditambahi dengan keterangan control symbol 1Dh (keterangan spasi), 1Eh (keterangan nomor) dan 1Fh (keterangan akhir pesan). Maka akan diperoleh data embed sebagai berikut:
1Eh 07h 01h 1Dh 05h 02h 1Dh 04h 09h 1Dh 01h 02h 04h 1Dh 04h 02h 1Dh 03h 02h 1Dh 06h 03h 1Dh 06h 07h 1Dh 01h 02h 06h 1Dh 01h 01h 06h 1Dh 04h 01h 1Dh 01h 00h 1Dh 03h 02h 1Dh 05h 00h 1Dh 04h 08h 1Dh 04h 02h 1Dh 03h 07h 1Dh 01h 02h 04h 1Dh 03h 01h 1Dh 01h 02h 04h 1Dh 05h 00h 1Dh 06h 07h 1Dh 01h 00h 1Dh 01h 00h 1Fh
Data embed di atas lalu diubah menjadi bentuk biner seperti di bawah ini:
00010 11101 00011 00111 11101 00001 00010 00100 11101 00100 00001 11101 00001 00010 00100 11101 00101 00000 11101 00110 00111 11101 00001 00000 11101 00001 00000 11111
Selanjutnya lakukan konversi nilai piksel dari citra cover menjadi nilai biner.
Gambar 4.15 Citra Cover
Adapun nilai piksel citra cover adalah sebagai berikut:
Tabel 4.24 Nilai RGB Citra Cover
Tabel 4.25 Citra Cover dalam Bentuk Biner
Komponen Merah Komponen Hijau Komponen Biru 10000100 10000111 01111000 10000110 01110000 01100011 01111011 01010011 01000111 01011011 01011101 01011100 01111001 01110000 01100111 10001001 10100001 10000001
… … …
01110100 01110110 01110101
Langkah selanjutnya adalah melakukan penyisipan 5 bit data karakter kontrol simbol ke dalam 5 bit nilai binary dari citra cover. Cara penyisipan adalah secara terurut dari kiri ke kanan, atas ke bawah. Maka hasil penyisipan adalah sebagai berikut:
Tabel 4.26 Biner Citra Setelah Disisipkan Pesan Komponen Merah Komponen Hijau Komponen Biru
10011101 10000111 01100001 10011101 01100100 01100010 01111101 01000100 01001001 01011101 01000001 01000010 01100100 01111101 01100100 10000000 10111101 10000011
… … …
01100001 01100000 01111111
Tabel 4.27. Nilai Piksel Citra Stego
Berikut ini adalah hasil bentuk citra cover setelah dilakukan penyisipan.
Gambar 4.16 Citra Stego
Untuk proses ekstraksi pesan dapat dengan mudah dilakukan dengan cara sebaliknya.
Pertama kali yang harus dilakukan adalah konversi nilai pixel dari citra stego menjadi nilai biner.
Tabel 4.28 Hasil ekstraksi citra stego
Komponen Merah Komponen Hijau Komponen Biru 10011101 10000111 01100001 10011101 01100100 01100010 01111101 01000100 01001001 01011101 01000001 01000010 01100100 01111101 01100100 10000000 10111101 10000011
… … …
01100001 01100000 01111111
Selanjutnya lakukan pembacaan terurut dari kiri ke kanan, atas ke bawah, 5 bit terakhir dari semua nilai biner sampai ditemukan karakter kontrol simbol terakhir. Dalam kasus di atas, karakter kontrol simbol terakhir ditemukan pada kolom ketiga (komponen biru) pada baris ke-26 dengan nilai 5 bit terakhir adalah 11111. Berikut adalah tabel 4.29 pengambilan karakter control symbol dari komponen RGB.
Tabel 4.29 Pengambilan Karakter Control Symbol dari Komponen RGB Komponen Merah Komponen Hijau Komponen Biru
11101 00111 00001
11101 00100 00010
11101 00100 01001
11101 00001 00010
00100 11101 00100
00000 11101 00011
… … …
00001 00000 11111
Lakukan konversi nilai biner ke dalam karakter simbol dengan cara mengkonversi nilai binary menjadi nilai hexadecimal. Perlu diingat bahwa cara pembacaan nilai biner pada tabel diatas adalah dengan cara pembacaan kiri ke kanan, atas ke bawah.
11101 = 1Dh 00100 = 04h 01001 = 09h 11101 = 1Dh 00001 = 01h 00010 = 02h 00100 = 04h 11101 = 1Dh 00100 = 04h 00000 = 00h 11101 = 1Dh 00011 = 03h
… … …
00001 = 01h 00000 = 00h 11111 = 1Fh
Hasil pesan sementara adalah
1Eh 07h 01h 1Dh 05h 02h 1Dh 04h 09h 1Dh 01h 02h 04h 1Dh 04h 02h 1Dh 03h 02h 1Dh 06h 03h 1Dh 06h 07h 1Dh 01h 02h 06h 1Dh 01h 01h 06h 1Dh 04h 01h 1Dh 01h 00h 1Dh 03h 02h 1Dh 05h 00h 1Dh 04h 08h 1Dh 04h 02h 1Dh 03h 07h 1Dh 01h 02h 04h 1Dh 03h 01h 1Dh 01h 02h 04h 1Dh 05h 00h 1Dh 06h 07h 1Dh 01h 00h 1Dh 01h 00h 1Fh
Lakukan pembuangan karakter kontrol pertama dan terakhir dari daftar karakter kontrol simbol, kemudian lakukan proses penambahan masing-masing kontrol simbol dengan nilai terendah dari masing-masing rentang nilai dari karakter kontrol simbol yang berada sebelum masing-masing karakter, dan lakukan konversi untuk setiap kontrol simbol 1Dh menjadi karakter spasi (kontrol simbol 20h). Selanjutnya setiap karakter (kecuali karakter spasi) akan ditambahkan dengan nilai 30.
Lakukan proses konversi karakter kontrol simbol dengan cara melakukan konversi hexadecimal menjadi nilai desimal.
7 = 37h 3 = 33h Space = 20h 4 = 34h Space = 20h 1 = 31h 2 = 32h 4 = 34h 2 = 32h 5 = 35h Space = 20h Space = 20h 1 = 31h Space = 20h 0 = 30h
5 = 35h 6 = 36h Space = 20h 3 = 33h Space = 20h 2 = 32h 3 = 33h 1 = 31h 7 = 37h 6 = 37h Space = 20h Space = 20h 0 = 30 Space = 20h 7 = 37h
4 = 34h 6 = 36h Space = 20h 1 = 31h Space = 20h 9 = 39h 7 = 37h 3 = 33h 2 = 32h 1 = 31h Space = 20h Space = 20h 2 = 32h 4 = 34h 0 = 30h
1 = 31h 1 = 31h Space = 20h Space = 20h Space = 20h 2 = 32h 2 = 32h 5 = 35h 3 = 33h 1 = 31h 4 = 34h 6 = 36h 0 = 30h 1 = 31h 0 = 30h Space = 20h Space = 20h Space = 20h Space = 20h
4 = 34h 1 = 31h 4 = 34h 1 = 31h 2 = 32h 1 = 31h 8 = 38h 2 = 32h Space = 20h 6 = 36h Space = 20h 4 = 32h
Maka hasil pesan sementara adalah 71 52 49 124 42 32 63 67 126 116 41 10 32 50 48 42 37 124 31 124 50 67 10 10
Kemudian pengambilan nilai kode ASCII karakter dengan cara memecah pesan berdasarkan karakter spasi.
Pesan : 71 52 49 124 42 32 63 67 126 116 41 10 32 50 48 42 37 124 31 124 50 67 10 10
Dapatkan nilai karakter dari masing-masing kode karakter ASCII. Dengan melihat tabel ASCII, maka diperoleh hasil plainteks adalah
“G41|*space?C~t)[]space20*%|enter|2C[][]”.
Tabel 4.31 Hasil Proses Dekripsi pada Substitusi Ketiga proses enkripsi, dan nantinya akan dibuang karena sudah tidak diperlukan lagi.
Selanjutnya adalah mendapatkan kode karakter ASCII dari masing-masing karakter tersebut. Dengan melihat tabel ASCII, maka diperoleh:
Tabel 4.32 Proses Dekripsi pada Proses Substitusi Ketiga
i Plainteks Kunci i Plainteks Kunci
dikonversi dalam bentuk desimal adalah dengan kode 32 - 126. Tetapi perlu diingat bahwa akan terdapat karakter kosong dengan kode karakter 10, sehingga urutan indeks yang diinginkan adalah indeks 1 adalah indeks untuk kode karakter 10, indeks 2 adalah indeks untuk kode karakter 32, indeks 3 adalah indeks untuk kode karakter 33, indeks 4 adalah indeks untuk kode karakter 34 demikian seterusnya sampai, indeks 96 adalah indeks untuk kode karakter 126
Dengan tata cara pengurutan indeks di atas, maka hasil urutan indeks adalah sebagai berikut.
Tabel 4.33 Pengurangan Plainteks dan Kunci pada Proses Dekripsi Ketiga
i Plainteks Kunci i Plainteks Kunci
Langkah selanjutnya adalah melakukan pengurangan indeks pesan dengan indeks kata kunci.
8 -16 20 59 dengan angka 96 sebagai indeks maksimal karakter untuk memastikan nilai indeks tetap berada dalam rentang.
Tabel 4.35 Pengembalian Indeks pada Rentang dalam Dekripsi Ketiga i Plainteks i Plainteks
Langkah berikutnya adalah mengembalikan nilai kode karakter ASCII ke dalam bentuk semula dengan menambahkan setiap indeks dengan angka 30.
7 106 19 81
Jika ASCII dalam tabel 4.35 dikembalikan menjadi karakter, akan menghasilkan
pesan “rmmU\]jnWPb]][caUQY]n”.
Begitulah seterusnya sampai hasil akhir akan diperoleh pesan aslinya yaitu
“tolongkirimdokumenitu”.
4.4 Means Square Error (MSE)
Perhitungan nilai MSE dilakukan untuk mengukur besar citra yang rusak akibat penyisipan menggunakan metode MLSB. Perhitungan nilai MSE dilakukan antara citra cover dengan citra stego menggunakan persamaan di bawah ini.
Gambar 4.17 Pixel Citra Cover dan Citra Stego
625 529 4 4 16 400 1 676 289 676 144
40 1 MSE
Karena hasil yang ditunjukkan pada Means Square Error (MSE) pada citra bernilai kecil yaitu sebesar 3,9126, maka dapat disimpulkan bahwa citra yang telah melakukan proses penyisipan pesan hampir sama dengan kualitas aslinya.
4.5 Hasil Pengujian
4.5.1 Hasil Kriptografi
Hasil dari proses kriptografi adalah cipherteks. Dalam penelitian ini, cipherteks yang dihasilkan tidak ditampilkan. Penulis menggunakan metode Triple Transposition Vigenere Cipher untuk melakukan proses enkripsi dengan tujuan
untuk menghasilkan cipherteks yang lebih kuat.
Berikut ini merupakan cipherteks hasil dari vigenere cipher biasa dan triple transposition vigenere cipher.
Vigenere cipher biasa
Pesan : TOLONG KIRIM DOKUMEN ITU KE SAYA SEKARANG
Kunci : SEMBILAN
Cipherteks : LSXPVR KVJMY EWVUZWR UUC VE FSCM TMVAESRS
Triple transposition vigenere cipher
Pesan : TOLONG KIRIM DOKUMEN ITU KE SAYA SEKARANG Kunci : SEMBILAN
Cipherteks : G−0sp; )B1&w +*+.5/9 ,v7 −! x%) 4|v{“%|0[] 9126
. 3
Dari kedua versi tersebut, cipherteks vigenere cipher biasa dapat dipecahkan dengan mencoba kemungkinan kunci sebanyak 26 kunci sedangkan 8 cipherteks dari Triple Transposition Vigenere Cipher dapat dipecahkan dengan mencoba kemungkinan kunci sebanyak 96 kunci. Itu artinya cipherteks hasil 8 Triple Transposition Vigenere Cipher akan lebih sulit dipecahkan disbanding
dengan cipherteks hasil Vigenere Cipher biasa.
4.5.2 Hasil Steganografi
Hasil dari pengujian steganorafi adalah berupa file gambar yang telah disisipkan pesan (citra-cover). Pada penyisipan citra embed berukuran 5x8 pixel yang menghasilkan citra stego bebatuan.png, kemudian dilakukan perhitungan nilai MSE antara citra cover dengan citra stego-nya menghasilkan nilai MSE sebesar 3.9126. Nilai MSE yang dihasilkan bernilai kecil. Untuk melihat perbedaan antara citra yang belum disisipi pesan (citra cover) dengan citra yang telah disisipi oleh pesan (citra stego), berikut ini akan ditampilkan tabel perbandingannya.
Tabel 4.37 Perbandingan antara Citra Cover dan Citra Stego
Detail Tampilan Citra
5 x 8 piksel
gambar1.png gambar1_stego.png Terdapat 24 karakter
plainteks di dalamnya Means Square Error
(MSE) sebesar 3,9126
153 x 255 piksel Terdapat 266 karakter plainteks di
Means Square Error (MSE) sebesar
0,0137
Bebatuan.png Bebatuan_Stego.png 1200 x 630 pixel
1200x630.png
1200x630_Stego24.png Terdapat 25.925
karakter plainteks di dalamnya Means Square Error
(MSE) sebesar 0,0056
Walaupun penyisipan menggunakan metode Modified Least significant bit mengganti 5 bit LSB cover-nya dengan 5 bit dari embed, yang menimbulkan perubahan nilai piksel dari citra aslinya, namun pada citra stego tidak menunjukkan perbedaan signifikan dari citra aslinya yang dapat dideteksi oleh mata manusia. Hal ini dapat dilihat dari nilai Means Square Error (MSE) yang tergolong bernilai rendah. Artinya citra stego hasil penyisipan tergolong sebagai citra yang baik.
dalam proses ini adalah tidak semua citra bisa dipakai dalam proses penyisipan pesan menggunakan MLSB ini. Pilihlah citra yang aman untuk menyisipkan pesan. Dalam proses ini, perlu juga diperhatikan berapa besar kapasitas karakter yang mampu di tampung untuk menghindari kerusakan pada citra cover.
Adapun besar kapasitas karakter yang mampu di tampung dari berberapa ukuran citra tanpa merusak citra cover adalah sebagai berikut.
Tabel 4.38 Kapasitas Maksimum Karakter yang Mampu Ditampung Tanpa Merusak Citra Cover
Detail Tampilan Citra
5 x 8 piksel
Gambar1.png gambar1_Stego.png Maksimum
plainteks yang dapat disembunyikan sebanyak 5 karakter
153 x 255 piksel
Bebatuan.png Bebatuan_Stego.png Maksimum
plainteks yang dapat disembunyikan
sebanyak 35 karakter
Maksimum plainteks yang dapat
disembunyikan sebanyak 1167
karakter
1200x630.png
1200x630_Stego1.png
Dalam pengujian ini juga dilihat berapa besar kapasitas maksimum plainteks yang dapat disembunyikan pada citra dengan ukuran yang berbeda-beda. Hasil pengujian ditampilkan pada tabel 4.39.
Tabel 4.39 Kapasitas Maksimum Citra Ukuran Citra
(Pixel)
Maksimum Plainteks yang Dapat Disembunyikan (Karakter)
5 x 8 37
20 x 20 375
153 x 255 36.576
480 x 437 196.650
1200 x 630 708.750
maka jumlah nilai pixel yang tersedia adalah 20x20x31200 pixel. Masing-masing pixel akan menampung 5 bit pesan sehingga dapat menampung
6000 5
1200x bit pesan. Karena 1 karakter terdiri dari 8 bit, maka 3000
2
6000 karakter. Tetapi tiap karakter dikonversi menjadi karakter control symbol, sehingga 1 karakter memerlukan 2 karakter angka, kecuali karakter spasi
yang hanya memerlukan 1 karakter saja maka 375 8
BAB 5
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Dari hasil pengujian yang telah dilakukan, maka dapat diambil kesimpulan sebagai berikut:
1. Walaupun penyisipan menggunakan metode Modified Least significant bit mengganti 5 bit LSB cover-nya dengan 5 bit dari embed, yang menimbulkan perubahan nilai piksel dari citra aslinya, namun pada citra stego tidak menunjukkan perbedaan signifikan dari citra aslinya yang dapat dideteksi oleh mata manusia. Hal ini dapat dilihat dari nilai Means Square Error (MSE) yang tergolong bernilai rendah yaitu sebesar 3.9. Artinya citra stego hasil penyisipan tergolong sebagai citra yang baik.
2. Algoritma Triple Transposition Vigenere Cipher menghasilkan cipherteks yang lebih kuat dibandingkan dengan algoritma vigenere cipher biasa karena mengalami tiga kali proses enkripsi dan dekripsi yang setiap prosesnya menggunakan kunci berbeda-beda.
3. Triple Transposition Vigenere Cipher memiliki keuntungan dapat mengenkripsi karakter lebih banyak, yaitu 26 huruf kapital (A-Z), 26 huruf kecil (a-z), 10 karakter angka (0-9), dan 34 karakter simbol lainnya.
4. Pada proses ekstraksi, pesan yang disisipkan pada citra dapat diperoleh kembali secara utuh dengan menggunakan kunci yang sama.
5.2 SARAN
Adapun saran yang dapat diberikan untuk pengembangan sistem lebih lanjut adalah sebagai berikut:
2. Menambahkan teknik enkripsi lainnya yang tingkat kesulitan dalam memecahkan kunci lebih rumit dari metode Triple Transposition Vigenere Cipher, sehingga pesan yang disisipkan memiliki tingkat keamanan yang lebih
baik.
3. Agar keamanan citra embed lebih baik lagi dapat dilakukan penyisipan embed secara random (tidak berurutan).