TESIS
ALGORITMA MEoF (MODIFIKASI END of FILE) UNTUK STEGANOGRAFI PADA CITRA BITMAP 24 BIT
THOMAS EDYSON TARIGAN 11/324230/PPA/03667
PROGRAM STUDI S2 ILMU KOMPUTER JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA YOGYAKARTA
TESIS
ALGORITMA MEoF (MODIFIKASI END of FILE) UNTUK STEGANOGRAFI PADA CITRA BITMAP 24 BIT
Diajukan untuk memenuhi salah satu syarat memperoleh derajat Master of Computer Science
THOMAS EDYSON TARIGAN
11/324230/PPA/03667
PROGRAM STUDI S2 ILMU KOMPUTER JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA YOGYAKARTA
A
iv
PERNYATAAN
Dengan ini saya menyatakan bahwa dalam Tesis ini tidak terdapat karya yang pernah diajukan untuk memperoleh gelar Master di suatu Perguruan Tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat yang ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Yogyakarta, Juli 2015
v
HALAMAN PERSEMBAHAN
vi
PRAKATA
Puji syukur penulis panjatkan pada Tuhan YME, atas rahmat dan kasih karuniaNya, sehingga saya dapat menyelesaikan tesis ini dengan baik dan lancar.
Penulis sadar bahwa selesainya tesis ini tidak terlepas dari arahan, bantuan dan dukungan dari berbagai pihak. Oleh karena itu pada kesempatan ini penulis mengucapkan terima kasih kepada :
1. Kedua orang tua saya, terima kasih untuk semua hal yang sampai kapanpun tidak akan pernah terbalaskan.
2. Dekan Fakultas MIPA UGM, Bapak Drs. Pekik Nurwantoro, M.S., Ph. D. 3. Ketua Program Studi Ilmu Komputer S2 UGM, Ibu Prof. Dra. Sri Hartati,
M. Sc.,Ph. D.
4. Bapak Drs. Edi Winarko, M. Sc, Ph. D., selaku dosen pembimbing utama penulis. Terima kasih telah meluangkan waktu, tenaga dan pikiran dalam membimbing, mengarahkan dan mendorong penulis untuk menyusun dan menyelesaikan tesis ini.
5. Seluruh staff pengajar di Program Studi Magister Ilmu Komputer UGM. Terima kasih atas ilmu, pengetahuan dan pengalaman yang telah diberikan selama penulis menempuh pendidikan di Program Ilmu Komputer FMIPA UGM.
6. Bapak Sugeng, Ibu Rini, Bapak Kuncoro dan Bapak Nanang. Terima kasih atas pelayanan dan kerjasama yang telah diberikan kepada penulis selama menempuh kuliah.
7. Keluarga kecilku, Nio dan Kean semua senyum, tawa dan tangis kalian berdua telah menjadi penyemangat untuk menyelesaikan tulisan ini.
8. Semua teman – teman Pra-S2 angkatan genap 2010 dan mahasiswa S2 Program Ilmu Komputer FMIPA UGM, terima kasih untuk semua kebersamaannya.
9. Teman – teman di STMIK Akakom, terima kasih atas dukungan dan pengertian yang telah diberikan selama ini.
vii
10. Semua teman – teman yang telah memberikan dukungan selama penulis menempuh studi, yang tidak mungkin penulis sebutkan satu per satu disini. Terima kasih untuk doa dan perhatian yang telah diberikan selama ini.
Penulis sadar bahwa tesis ini tidak lepas dari kekurangan dan kelemahan. Oleh karena itu, kritik dan saran yang bersifat membangun guna kesempurnaan tesis ini sangat penulis harapkan. Semoga tesis ini dapat bermanfaat bagi kita semua terutama bagi perkembangan ilmu komputer.
Yogyakarta, Juli 2015
viii
DAFTAR ISI
PERNYATAAN ... iv
HALAMAN PERSEMBAHAN ... v
PRAKATA ... vi
DAFTAR ISI ... viii
DAFTAR TABEL ... xi
DAFTAR GAMBAR ... xii
INTISARI ... xiv ABSTRACT ... xv BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 4 1.3 Batasan Masalah ... 4 1.4 Tujuan Penelitian ... 4 1.5 Manfaat Penelitian ... 4 1.6 Metodologi Penelitian ... 5 1.7 Sistematika Penulisan ... 6
BAB II TINJAUAN PUSTAKA ... 7
BAB III LANDASAN TEORI ... 15
3.1 Steganografi ... 15
3.2 File Bitmap ... 17
3.2.1 Format file bitmap 24 bit ... 17
3.2.2 Header dan struktur file bitmap ... 18
3.2.3 Data piksel ... 19
3.2.4 Metode lockbits / unlockbits untuk akses data citra ... 20
3.3 Algoritma End of File (EoF) ... 21
3.3.1 Penyisipan pesan dengan algoritma EoF ... 22
3.3.2 Ekstraksi pesan dengan algoritma EoF ... 24
3.4 Algoritma MEoF (Modifikasi End of File) ... 27
3.5 Algoritma Modifikasi Least Significant Bit (MLSB) ... 29
3.5.1 Penyisipan pesan dengan algoritma MLSB ... 29
3.5.2 Ekstraksi algoritma MLSB (Modifikasi Least Significant Bit) ... 32
3.6 Peak Signal to Noise Ratio (PSNR) ... 35
3.7 Algoritma Rijndael ... 36
3.7.1 Enkripsi Rijndael ... 36
3.7.2 Dekripsi Rijndael ... 37
BAB IV ANALISIS DAN RANCANGAN SISTEM ... 39
ix
4.2 Perancangan Algoritma MEoF (Modifikasi End of File) ... 40
4.2.1 Penyisipan pesan dengan algoritma MEoF ... 40
4.2.2 Ekstraksi pesan dengan algoritma MEoF (Modifikasi End of File) . 43 4.3 Metode Pengujian Steganografi ... 45
4.3.1 Pengujian kualitatif ... 46
4.3.2 Pengujian kuantitatif ... 47
4.4 Perancangan Antarmuka Penyisipan dan Ekstraksi Pesan ... 47
BAB V IMPLEMENTASI ... 51
5.1 Lingkungan Implementasi ... 51
5.2 Algoritma MEoF (Modifikasi End of File) ... 51
5.2.1 Kalkulasi lokasi penyisipan pesan ... 51
5.2.2 Lockbit data citra bitmap ... 52
5.2.3 Pengambilan header pesan ... 53
5.2.4 Pengukuran panjang pesan ... 54
5.2.5 Enkripsi pesan ... 55
5.2.6 Membuat citra hasil ... 56
5.2.7 Penyisipan pesan ... 57
5.2.8 Proses stegano ... 59
5.3 Ekstraksi Pesan ... 60
5.3.1 Ekstraksi header pesan ... 60
5.3.2 Konversi hasil header pesan ... 61
5.3.3 Ekstraksi pesan ... 62
5.4 Algoritma End of File (EoF) ... 63
5.4.1 Inisialisasi algoritma EoF ... 63
5.4.2 Citra hasil ... 64
5.4.3 Kalkulasi kapasitas pesan ... 65
5.4.4 Salin byte citra dan sisip pesan ... 65
5.4.5 Ekstraksi pesan ... 67
5.5 Algoritma Modifikasi Least Significant Bit (MLSB) ... 68
5.5.1 Mencacah jumlah byte citra yang mampu disisipi pesan ... 69
5.5.2 Sisip penanda pesan ... 70
5.5.3 Sisip panjang pesan ... 71
5.5.4 Sisip pesan ... 72
5.6 Ekstraksi Algoritma MLSB ... 73
5.6.1 Pengambilan byte citra untuk ekstraksi bit penanda pesan ... 74
5.6.2 Ekstraksi panjang pesan ... 75
5.6.3 Ekstraksi pesan ... 76
5.7 Algoritma Rijndael ... 77
5.7.1 Implementasi enkripsi ... 77
5.7.2 Implementasi dekripsi ... 78
5.8 Mengukur Kualitas Citra ... 79
BAB VI HASIL DAN PEMBAHASAN ... 81
6.1 Hasil Penelitian ... 81
6.1.1 Pengujian kualitatif ... 81
x
6.2 Pembahasan ... 93
6.2.1 Perbandingan dengan algoritma EoF ... 93
6.2.2 Perbandingan dengan algoritma MLSB ... 94
BAB VII KESIMPULAN DAN SARAN ... 96
7.1 Kesimpulan ... 96
7.2 Saran ... 97
xi
DAFTAR TABEL
Tabel 2.1 Perbandingan penelitian yang sebelumnya ... 12
Tabel 3.1 Informasi header bitmap ... 19
Tabel 3.2 Struktur header bitmap ... 19
Tabel 3.3 S-Box algoritma Rijndael ... 36
Tabel 3.4 Invers S-Box algoritma Rijndael ... 37
Tabel 3.5 Perbandingan jumlah iterasi algoritma Rijndael ... 38
Tabel 6.1 Hasil pengujian kualitatif ... 83
Tabel 6.2 Hasil pengukuran kuantitatif berdasarkan ukuran citra bitmap ... 89
xii
DAFTAR GAMBAR
Gambar 3.1 Penggolongan steganografi berdasarkan tujuan ... 16
Gambar 3.2 Diagram sistem steganografi ... 16
Gambar 3.3 Tabel warna RGB pada bitmap 24 bit/piksel ... 17
Gambar 3.4 Hubungan scan0 dan stride ke array dalam memori ... 20
Gambar 3.5 Struktur file bitmap untuk steganografi pada algoritma EoF ... 22
Gambar 3.6 Flowchart penyisipan pesan untuk algoritma EoF ... 23
Gambar 3.7 Flowchart ekstraksi pesan untuk algoritma EoF... 25
Gambar 3.8 Flowchart penyisipan pesan dengan algoritma MLSB ... 31
Gambar 3.9 Flowchart ekstraksi pesan dengan algoritma MLSB ... 33
Gambar 4.1 Flowchart penyisipan pesan pada algoritma MEoF ... 42
Gambar 4.2 Flowchart ekstraksi pesan dengan algoritma MEoF ... 44
Gambar 4.3 Rancangan antarmuka penyisipan/ekstraksi pesan ... 48
Gambar 5.1 Kalkulasi lokasi penyisipan untuk ukuran width modulo 4 = 0 ... 51
Gambar 5.2 Lockbit nilai byte citra ... 52
Gambar 5.3 Pengambilan header pesan ... 53
Gambar 5.4 Pengukuran panjang pesan ... 54
Gambar 5.5 Enkripsi pesan dengan Rijndael ... 55
Gambar 5.6 Citra tanpa padding ... 56
Gambar 5.7 Penyisipan pesan ... 58
Gambar 5.8 Proses stegano ... 59
Gambar 5.9 Ekstraksi penanda pesan... 61
Gambar 5.10 Konversi hasil header pesan ... 62
Gambar 5.11 Ekstraksi pesan ... 62
Gambar 5.12 Pembuatan citra hasil ... 64
Gambar 5.13 Citra hasil ... 64
Gambar 5.14 Kalkulasi kapasitas pesan ... 65
Gambar 5.15 Salin byte citra dan sisip pesan ... 66
Gambar 5.16 Ekstraksi pesan algoritma EoF ... 67
Gambar 5.17 Mencacah jumlah byte citra yang mampu disisipi pesan ... 69
Gambar 5.18 Sisip penanda pesan ... 70
Gambar 5.19 Sisip panjang pesan ... 71
Gambar 5.20 Sisip pesan ... 73
Gambar 5.21 Pengambilan byte stego untuk ekstraksi bit penanda pesan ... 75
Gambar 5.22 Ekstraksi panjang pesan ... 76
Gambar 5.23 Ekstraksi pesan ... 77
Gambar 5.24 Enkripsi plaintext ... 78
xiii
Gambar 5.26 Perhitungan MSE dan PSNR ... 80
Gambar 6.1 Pengujian kualitatif dengan pengamatan visual manusia ... 82
Gambar 6.2 Pengujian kualitatif ekstrak nilai byte citra ... 82
xiv
INTISARI
ALGORITMA MEoF (MODIFIKASI END of FILE) UNTUK STEGANOGRAFI PADA CITRA BITMAP 24 BIT
Oleh
THOMAS EDYSON TARIGAN 11/324230/PPA/03667
Informasi berupa pesan tidak hanya disandikan, tetapi dapat juga disisipkan kedalam media digital. Teknik menyembunyikan atau menyisipkan pesan disebut steganografi. Steganografi sebagai ilmu dan seni untuk menyembunyikan informasi sehingga informasi yang bersifat rahasia tidak dapat diketahui oleh orang lain, kecuali pengirim dan penerima.
Banyak cara telah dilakukan untuk mengamankan informasi dari pihak yang tidak bertanggung jawab, salah satunya melakukan stegano menggunakan algoritma End of File (EoF) memanfaatkan citra bitmap sebagai penampung pesan. Penyisipan pesan dengan algoritma EoF dilakukan setelah akhir Byte citra bitmap, tetapi file stego yang dihasilkan masih memiliki kelemahan, adapun kelemahan yang dihasilkan yaitu terjadinya peningkatan ukuran file dan munculnya garis – garis tambahan pada baris paling bawah citra stego.
Kelemahan file stego yang dihasilkan dari algoritma EoF secara visual manusia kualitas citra sangat jelas terlihat mengalami perubahan sehingga dapat mencurigakan bagi pengguna lain. Penelitian ini bermaksud memodifikasi penyisipan pesan pada algoritma EoF memanfaatkan citra bitmap 24 bit sebagai media digital untuk memanpung pesan. Modifikasi terletak pada teknik menyisipkan pesan, modifikasi ini dilakukan dengan menyisipkan pesan pada padding citra bitmap. Padding adalah Byte kosong pada perangkat penyimpanan yang sudah dipakai oleh file namun ruang Byte penyimpanan tersebut tidak digunakan seluruhnya untuk menyimpan data citra. Pesan yang akan disisipkan adalah karakter ASCII yang telah dienkripsi menggunakan algoritma Rijndael. Hasil modifikasi algoritma EoF selanjutnya disebut dengan algoritma MEoF (Modifikasi End of File).
Hasil pengujian kualitatif menunjukkan penyisipan pesan dengan algoritma MEoF dan MLSB secara visual manusia kualitas citra stego masih tampak seperti citra aslinya. Sedangkan dengan algoritma EoF kualitas citra mengalami perubahan. Hasil pengujian kuantitatif noise yang dihasilkan algoritma MEoF lebih baik dibandingkan dengan algoritma EoF, tetapi tidak selalu lebih baik dari MLSB. Selain itu dengan kondisi Byte citra tidak dominan algoritma MEoF kemampuan penyisipan pesan lebih besar dibandingkan MLSB.
xv
ABSTRACT
MEoF ALGORITHM (MODIFICATION END of FILE) FOR STEGANOGRAPHY ON 24-BIT BITMAP IMAGE
By
THOMAS EDYSON TARIGAN 11/324230/PPA/03667
Information in the form of messages, can be encoded and inserted into digital media. Techniques to hide or insert the message is called steganography. Steganography is the art and science of hiding information so that confidential information can not be known by others, except the sender and the recipient. Many ways have been made to secure information from parties who are not responsible, one of which did stegano using End of File (EoF) algorithms utilize bitmap image as a container for messages. EoF message insertion algorithm made after the end Byte of bitmap image, but the resulting stego file using EoF algorithm still has weaknesses, which is the increase in file size and appearance of an extra line on the bottom line stego image.
Visually downside of stego file generated by using EoF algorithms is on the quality of the visible image. This study aims to modify the EoF algorithm message insertion utilizes a 24-bit bitmap image as a digital media to accommodate the message. Modification of the technique lies in the insert message, modifications carried out by inserting the message on the bitmap image padding. Padding is empty Byte storage device that has been used by the file yet Byte storage space is not used entirely for storing image data. The message that will be inserted is the ASCII character that has been encrypted using the Rijndael algorithm. Results EoF algorithm modifications hereinafter referred to MEoF algorithm (Modification End of File).
Qualitative test results showed the insertion of messages with MEoF and MLSB algorithms visualy the image quality still looks like the original image. While the image quality using EoF algorithm changes. Quantitative test results showed that the noise generated by MEoF algorithm is better than the algorithm EoF, but not always better than MLSB. In addition to the condition that not dominant image Byte MEoF algorithm capable of inserting a message bigger than MLSB.
1
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Sejak zaman dahulu, pentingnya kerahasiaan suatu informasi telah menjadi suatu perhatian tersendiri. Manusia berusaha mencari cara bagaimana merahasiakan informasi terhadap pihak yang dianggap tidak berhak untuk mengetahuinya. Berbagai cara telah dilakukan oleh bangsa – bangsa kuno untuk merahasiakan informasi, karena informasi yang jatuh ke orang yang tidak berhak akan menimbulkan kerugian. Sebagai contoh Julius Caesar, kaisar romawi, telah menggunakan suatu metode untuk mengacak pesan sebelum pesan itu dikirimkan kepada penerimanya. Tujuannya adalah agar orang yang tidak berhak menerima pesan tersebut tidak dapat membacanya (Ariyus, 2006). Teknik penyandian ini dikenal dengan istilah kriptografi (Rafiudin, 2002).
Rafiudin (2002) memaparkan kriptografi dapat diartikan sebagai ilmu dan seni penulisan rahasia terhadap informasi-informasi. Kriptografi disebut ilmu (science) karena menggunakan matematika aljabar dan disebut seni (art) karena dalam aplikasinya memiliki pola – pola tertentu dalam proses penyandian yang unik (Setiawan, 2009). Hingga era digital saat ini, kriptografi sangat dibutuhkan dan merupakan bagian penting dari sistem komunikasi modern.
Zaman sekarang informasi tidak hanya dapat disandikan, tetapi dapat juga disisipkan kedalam media digital. Teknik menyisipkan pesan dikenal dengan nama steganografi. Atoum dan Ibrahim (2012) memaparkan steganografi sebagai ilmu dan seni untuk menyembunyikan informasi sehingga informasi yang bersifat rahasia tidak dapat diketahui oleh orang lain, kecuali pengirim dan penerima. Proses steganografi biasanya melibatkan penyandian atau kriptografi. Proses yang dilakukan yaitu dengan enkripsi plaintext terlebih dahulu menjadi Byte cipher atau pesan rahasia. Kemudian Byte cipher disisipkan pada media digital berupa teks, audio, citra atau protokol.
2
Media digital yang akan diangkat sebagai penampung pesan pada penelitian ini yaitu berupa citra digital dengan format bitmap 24 bit. Penelitian ini berasumsi bahwa pada citra digital berformat bitmap 24 bit terdapat Byte kosong pada perangkat penyimpanan yang sudah dipakai oleh file namun ruang Byte penyimpanan tersebut tidak digunakan seluruhnya untuk menyimpan data citra. Byte tersebut dikenal juga dengan istilah padding.
Salah satu algoritma yang digunakan untuk menyisipkan pesan pada citra adalah algoritma End of File (EoF). Wasino et al. (2012), menyatakan algoritma End of File dilakukan dengan cara menambahkan pesan pada bagian akhir Byte data citra yang menjadi media penampung. Karakteristik dari algoritma EoF adalah terjadinya perubahan ukuran file pada citra stego karena ukuran file citra asli akan ditambahkan dengan panjang pesan, selain itu juga memunculkan garis – garis tambahan pada baris paling bawah dari citra stego. Citra yang telah disisipi pesan disebut dengan citra stego.
Selain algoritma EoF, ada beberapa algoritma lain yang dapat digunakan untuk steganografi, yaitu Least Significant Bit Insertion (LSB), Redundant Pattern Encoding, Spread Spectrum dan Transformation, keunggulan algoritma lain dibandingkan EoF yaitu, ukuran file citra stego yang dihasilkan dari algoritma LSB tidak mengalami perubahan, begitu juga dengan modifikasi LSB kualitas citra stego tidak jauh berubah dari citra asli, tetapi LSB mudah diserang dalam pemrosesan citra, seperti cropping dan compression. Berbeda dengan LSB, algoritma Redundant Pattern Encoding memiliki keunggulan pada ketahanan terhadap cropping pada file stego, tetapi kemampuan menyisipkan pesan lebih sedikit. Jika dibandingkan dengan algoritma Spread Spectrum maka keunggulan algoritma ini ada pada teknik penyisipan pesan, teknik menyisipkan pesan pada Byte media digital dilakukan secara terpencar sehingga untuk ekstraksi membutuhkan crypto-key dan stego-key, sehingga keamanan pesan lebih aman dan sulit terdeteksi karena informasi yang disembunyikan disebarkan dalam seluruh gambar tanpa mengganti properti statistik dari gambar yang disisipi informasi rahasia (Vembrina, 2006), sedangkan kompleksitas dalam proses perhitungan menjadi kelemahan algoritma ini. Selanjutnya jika dibandingkan
3
dengan algoritma Transformation maka pesan disisipkan ke media penampung menggunakan fungsi matematika, fungsi tersebut adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat spatial (spatial domain) ke tempat frekuensi (frequency domain).
Dari beberapa algoritma yang dibandingkan diatas maka algoritma EoF dianggap perlu diteliti lebih lanjut, karena algoritma ini mampu menyisipkan pesan dengan kapasitas cukup besar, tetapi kemampuan tersebut dapat menjadi kelemahan dibandingkan dengan algoritma lainnya, karena citra stego yang dihasilkan mengalami peningkatan ukuran file yang berdampak terhadap perubahan kualitas citra stego yang dihasilkan. Untuk mengatasi kelemahan ini maka perlu suatu modifikasi terhadap algoritma EoF yang bertujuan memperbaiki teknik menyisipkan pesan. Teknik yang digunakan dalam modifikasi ini adalah memanfaatkan padding pada citra bitmap 24 bit untuk menyisipkan pesan, sehingga dengan teknik ini maka peningkatan ukuran file dan kualitas citra stego yang dihasilkan tidak jauh berubah dengan citra asli.
Berdasarkan pemaparan diatas, penelitian ini berusaha memodifikasi algoritma End of File (Modifikasi End of File / MEoF) yang diterapkan pada citra bitmap 24 bit sebagai media penampung pesan. Hasil dari pengujian algoritma MEoF dibandingkan dengan dengan pengujian dari algoritma EoF dan MLSB, untuk mengetahui kelemahan dan kelebihan dari algoritma MEoF. Adapun yang akan dibandingkan adalah kualitas citra stego, panjang pesan yang mampu disisipkan dan perubahan ukuran file citra stego dari masing – masing algoritma. Algoritma End of File (EoF) dan Modifikasi Least Significant Bit (MLSB) dipilih sebagai perbandingan algoritma MEoF karena algoritma ini merupakan perbaikan dari algoritma End of File (EoF) dan algoritma EoF sendiri merupakan pengembangan dari algoritma LSB, sementara menurut Jhoni et al. (2012), bahwa steganografi dengan algoritma Least Significant Bit (LSB) paling umum dilakukan.
4
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas, maka rumusan masalah dalam penelitian ini adalah :
Apakah dengan citra bitmap 24 bit dan algoritma MEoF (Modifikasi End of File) kelemahan dari algoritma End of File (EoF) yaitu peningkatan ukuran file yang berdampak terhadap perubahan kualitas citra stego jika dibandingkan dengan citra asli dapat teratasi.
1.3 Batasan Masalah
Untuk mendapatkan hasil seperti yang diharapkan dan penelitian yang lebih terarah, maka perlu ada batasan permasalahan dalam penelitian ini, adapun batasannya sebagai berikut,
1. Pesan yang disembunyikan adalah karakter ASCII yang dienkripsi menggunakan algoritma Rijndael.
2. Media digital untuk penyisipan pesan menggunakan citra bitmap 24 bit dengan satuan piksel.
1.4 Tujuan Penelitian
Adapun tujuan dari penelitan ini yaitu melakukan penyisipan pesan menggunakan algoritma MEoF pada citra 24 bit, kemudian hasil citra stego diuji secara kualitatif dan kuantitatif kemudian dibandingkan dengan hasil pengujian citra stego dari algoritma EoF dan MLSB untuk mengetahui kelebihan dan kekurangan algoritma MEoF.
1.5 Manfaat Penelitian
Manfaat dari penelitian ini yaitu :
1. Menghasilkan algoritma alternatif dalam steganografi yang memanfaatkan citra bitmap 24 bit sebagai media penampung pesan.
2. Algoritma yang dihasilkan dapat dijadikan sebagai acuan untuk pengembangan teknik steganografi.
5
1.6 Metodologi Penelitian
Langkah-langkah untuk melakukan penelitian ini : 1. Studi literatur dan pengumpulan data
a. Studi kepustakaan
Pada tahap ini mempelajari sumber yang tertulis seperti buku teks, jurnal, dan karya ilmiah, e-book, tugas akhir dan media online yang berkaitan dengan steganografi khususnya yang berkaitan dengan algoritma MEoF (Modifikasi End of File) dan algoritma MLSB (Modifikasi Least Significant Bit) sehingga dapat menunjang penelitian ini.
b. Pengumpulan data
Mengumpulkan data yang dibutuhkan berupa algoritma End of File (EoF) dan algoritma Least Significant Bit (LSB) serta citra bitmap yang digunakan untuk pengujian.
2. Perancangan sistem
Pada tahap ini memodelkan algoritma MEoF (Modifikasi End of File) dalam bentuk flowchart untuk menggambarkan proses yang terjadi.
3. Implementasi
Hasil rancangan diimplementasikan ke dalam aplikasi steganografi yang memiliki kemampuan menyisipkan pesan pada padding citra bitmap. Algoritma EoF memiliki kemampuan menyisipkan pesan pada akhir Byte citra dan algoritma MLSB memiliki kemampuan untuk menyisipkan bit – bit pesan pada Byte citra bitmap yang bernilai 254 atau 255. Selain itu memiliki kemampuan untuk ekstraksi pesan dari citra stego masing – masing algoritma. 4. Pengujian
Tahap ini akan membahas hasil pengujian penyisipan dan ekstraksi pesan pada citra menggunakan algoritma MEoF (Modifikasi End of File), algoritma End of File (EoF) dan algoritma Modifikasi Least Signification Bit (MLSB). Pengujian dilakukan dengan kualitatif untuk melihat perubahan kualitas citra pada citra stego pesan. Selain itu juga dilakukan pengujian kuantitatif yang berfungsi untuk menguji perubahan kualitas citra stego, ukuran file untuk kapasitas sisip citra bitmap.
6
1.7 Sistematika Penulisan
Penelitian ini disusun berdasarkan sistematika penulisan sebagai berikut : BAB I PENDAHULUAN
Membahas tentang latar belakang penelitian, perumusan masalah, batasan masalah, tujuan dan manfaat penelitian, metodologi penelitian, dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Bab ini membahas penelitian – penelitian yang sebelumnya pernah dilakukan dan mengusulkan penelitian yang akan dilakukan.
BAB III LANDASAN TEORI
Membahas landasan teori yang digunakan dalam pembahasan. BAB IV ANALISIS DAN RANCANGAN SISTEM
Bab ini membahas gambaran dari analisis dan rancangan sistem. BAB V IMPLEMENTASI
Bab ini membahas implementasi dari rancangan aplikasi yang diuraikan pada bab sebelumnya yang mencakup implementasi proses.
BAB VI HASIL DAN PEMBAHASAN
Bab ini berisi pemaparan dan membahas hasil - hasil penelitian dan implementasi sistem yang telah dirancang.
BAB VII. KESIMPULAN DAN SARAN
Membahas kesimpulan dari penelitian dan saran untuk penelitian selanjutnya.
7
2
BAB II
TINJAUAN PUSTAKA
Penelitian tentang steganografi memanfaatkan media digital dengan berbagai algoritma sebelumnya telah banyak dilakukan. Edisuryana et al. (2013) pada penelitiannya menggunakan algoritma End of File (EoF) dan kriptografi untuk steganografi dan citra bitmap sebagai media penanpung pesan yang ter-enkripsi. Sebelumnya Wasino et al. (2012) dan Cruz et. al. (2012) juga melakukan penelitian tentang steganografi dengan algoritma EoF, tetapi memanfaatkan media digital video yang berekstensi FLV sebagai penampung pesan. Hasil dari penelitian menunjukkan bahwa file stego dijalankan kembali akan tetap mempertahankan kualitas audio dan video seperti awal tanpa ada distorsi, tetapi secara signifikan akan meningkatkan ukuran file stego, peningkatan ukuran file tergantung pada besarnya panjang pesan yang disisipkan. Sebelumnya dalam penelitian Sejati (2010) dengan algoritma yang sama, melakukan penyisipan pesan pada DOS. Pembacaan file berbasiskan DOS dilakukan dengan membaca file hingga karakter Ctrl-Z yang dapat disebut elemen dari EoF. Prinsip penggunaan Ctrl-Z ini adalah pembatas antara covertext (media sampul) dengan pesan rahasia yang disisipkan. Jadi apabila membuka file teks dengan binary pada DOS kemudian kita gabungkan dengan sebuah teks secara eksplisit setelah Ctrl-Z, maka pesan tersebut akan tersembunyi dibelakang EoF. Steganografi pada DOS ini akan membaca seluruh karakter file di sampul media kemudian menulis karakter EoF setelah Ctrl-Z.
Dari hasil penelitian yang telah dilakukan sebelumnya bahwa algoritma EoF dapat digunakan untuk menyisipkan pesan pada media digital, tetapi hasil pada baris paling bawah file stego akan muncul garis – garis baru. Semakin banyak pesan yang disisipkan maka semakin tampak jelas garis pada akhir citra stego, secara visual ini berdampak terhadap kualitas akhir citra stego dan ukuran citra stego karena ukuran file mengalami peningkatan dari ukuran file citra asli,
8
selain itu algoritma EoF menggunakan penanda pada akhir file sehingga dapat dengan mudah dideteksi.
Selain End of File (EoF) algoritma lain yang digunakan untuk steganografi yaitu algoritma Least Significant Bit (LSB). Pada algoritma LSB, kelemahan algoritma EoF berupa garis – garis baru pada akhir citra stego tidak terjadi. Proses menyisipkan pesan dengan algoritma Least Significant Bit (LSB) dilakukan dengan cara bit pesan disisipkan pada setiap bit terendah setiap Byte media penampung. Warsito et al. (2012) dalam penelitiannya melakukan perbandingan algoritma End of File (EoF) dan Least Significant Bit (LSB) untuk menyisipkan data dalam berbagai format data dengan ekstensi yang berbeda. Data yang disisipkan berupa pesan atau kode untuk melakukan verifikasi keaslian dari sebuah sertifikat online yang disisipkan pada file sertifikatnya. Penelitian ini menggunakan teknik kriptografi untuk melakukan enkripsi file sertifikat kemudian hasil enkripsi berupa file cipher disimpan dalam media penampung. Adapun hasil dari penelitian ini bahwa algoritma Least Significant Bit (LSB) memiliki kelebihan pada ukuran file stego yang tidak mengalami perubahan sedangkan End of File (EoF) panjang pesan sangat berpengaruh terhadap peningkatan ukuran file stego. Sehingga dapat disimpulkan dari kedua algoritma ini jika ditinjau berdasarkan ukuran file stego maka Least Significant Bit (LSB) lebih baik karena tidak mengalami peningkatan.
Penelitian perbandingan algoritma LSB dan EoF untuk steganografi sebelumnya juga telah dilakukan oleh Aditya et al. (2010) penelitian yang dilakukan dengan studi pustaka pada beberapa algoritma di antaranya algoritma Least significant Bit (LSB) dan End of File (EoF) menghasilkan kesimpulan bahwa penyisipan pesan ke media penampung dengan algoritma Least Significant Bit (LSB) dapat dilakukan dengan kondisi ukuran file pesan harus lebih kecil dari ukuran file media penampung sedangkan penyisipan pesan dengan algoritma End of File (EoF) ukuran file pesan dapat lebih besar dari ukuran file media penampung. Selain itu dengan algoritma LSB media penampung yang telah disisipi pesan (hidden text) ukuran file stego tidak mengalami perubahan tetapi berpengaruh terhadap kualitas file stego. Sedangkan algoritma EoF, kualitas file
9
stego setelah di sisipi pesan tidak berubah, tetapi akan mengubah ukuran file stego. Dengan demikian algoritma LSB maupun EoF keduanya memiliki kelebihan dan kelemahan tersendiri.
Beberapa peneliti melakukan modifikasi terhadap algoritma Least Significant Bit (LSB) untuk mengurangi kelemahan algoritma ini. Gupta et al. (2012) melakukan modifikasi Least Significant Bit (LSB) untuk meningkat kompleksitas waktu proses secara keseluruhan, skema yang digunakan dengan enkripsi pesan sebelum disisipkan ke dalam citra. Modifikasi yang dilakukan pada sejumlah bit yang akan disisipi pesan mulai dari bit ke 1, 2, 3 dan 4. Kemudian hasilnya dibandingkan dengan citra dari algoritma kriptografi RSA dan Diffie Hellman. Perbandingan dilakukan dilakukan dengan mengukur perubahan ukuran file dan kualitas file citra stego. Hasil dari penelitian menyatakan bahwa algoritma LSB memiliki kemudahaan untuk menyisipkan pesan dan hasil ekstraksi citra stego juga mudah untuk di deskripsi. Selain itu algoritma LSB juga meningkatkan kompleksitas waktu secara keseluruahan untuk melakukan enkripsi pesan yang akan disisipkan.
Penelitian yang dilakukan oleh Edisuryana et al. (2013), Wasino et al. (2012), Warsito et al. (2012) dan Gupta et al. (2012) semuanya dilakukan terhadap media citra sebagai penampung pesan. Menurut penelitian Joshi et al. (2013), yang melakukan steganografi menggunakan algoritma LSB mengatakan bahwa citra bitmap 24 bit merupakan media penampung yang terbaik untuk menyisipkan pesan, karena citra bitmap 24 bit berkualitas dan beresolusi tinggi sehingga lebih mudah untuk menyisipkan pesan. Meskipun ukuran file citra bitmap 24 bit berukuran lebih besar dan dapat menimbulkan kecurigaan bagi pengguna lain, tetapi dengan ukuran file yang besar maka semakin banyak pesan yang dapat disisipkan. Proses yang dilakukan bit - bit pesan akan disisipi pada tiap – tiap bit terendah dari Byte piksel citra, setiap piksel akan menyimpan 3 bit pesan.
Begitu juga penelitian yang telah dilakukan oleh Poornima dan Iswarya (2013) menggunakan citra digital untuk steganografi dengan algoritma Least Significant Bit (LSB). Hasil dari penelitiannya disimpulkan bahwa algoritma LSB
10
sangat sensitif terhadap filtering, perubahan ukuran, dan pemotongan citra karena dapat merusak pesan. Dalam penelitiannya Poornima dan Iswarya (2013) juga menyatakan bahwa format citra bitmap cocok dan efisien sebagai media steganografi karena gambar bitmap sudah berkualitas baik dan resolusi tinggi sehingga informasi yang tersembunyi tidak terlalu rentan terhadap mata manusia. Saat ini ukuran citra 800 x 600 piksel dapat digunakan untuk menyimpan hingga 1,440,000 bit atau 180.000 Byte informasi. Penggunaan LSB pada citra dengan resolusi tinggi ini membuat hasil dari citra stego hampir sama dengan citra aslinya dan tidak dapat terdeteksi oleh mata manusia.
Untuk mengukur kualitas citra stego dapat dilakukan dengan menghitung nilai Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR). Male et al. (2012) telah melakukan penelitian yang bertujuan mengevaluasi kualitas citra stego dengan penilaian secara obyektif dengan cara menghitung nilai Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR). Steganografi citra pada penelitian ini bertujuan untuk mengamankan data dalam penerapan e-government dengan menggunakan algoritma Random Pixel Positioning (RPP). Male et al. (2012) menyisipkan file yang berekstensi *.docx, *.xlsx, *.txt, dan *.pdf pada media citra yang bertipe bitmap. Hasil penyisipan pesan menggunakan algoritma Random Pixel Positioning (RPP) untuk penyembunyian pesan pada citra bitmap sangat baik sehingga tidak terlihat oleh sistem penglihatan manusia pada umumnya. Perhitungan MSE pada citra stego diperoleh nilai yang cukup rendah, kemudian untuk PSNR diperoleh nilai yang cukup besar. Hal ini menunjukkan bahwa algoritma Random Pixel Positioning (RPP) sangat baik dan secara keseluruhan hasil kualitas citra stego untuk aplikasi e-government tetap baik.
Berdasarkan kelemahan – kelemahan algoritma yang dilakukan oleh penelitian sebelumnya, maka pada penelitian ini dilakukan pengembangan dengan cara memodifikasi algoritma yang telah digunakan sebelumnya. Pengembangan yang dilakukan yaitu memodifikasi algoritma End of File sebagai teknik untuk melakukan penyisipan pesan. Sebagai pembanding dari hasil penelitian ini digunakan algoritma EoF dan Modifikasi Least Significant Bit (MLSB).
11
Berdasarkan penelitian yang telah dilakukan sebelumnya, penelitian ini memiliki kesamaan dalam domain permasalahan, tetapi memiliki perbedaan dalam konsep penyelesaian masalah. Perbedaan terletak pada algoritma yang digunakan dalam penyelesaian masalah. Penelitian ini berusaha mengembangankan algoritma yang sudah dilakukan pada penelitian sebelumnya dengan cara memodifikasi algoritma yang telah diimplementasikan. Kemudian menganalisis hasil citra stego terhadap citra asli dengan cara membandingkan hasil pengujian kualitatif dan kuantitatif. Pengujian kualitatif dilakukan dengan cara subyektif untuk melihat perubahan kualitas citra stego, sedangkan kuantitatif secara obyektif untuk melihat perubahan kualitas citra stego berdasarkan noise yang dihasilkan. Noise diperoleh dari kalkulasi nilai Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR). Selain itu untuk pengujian kuantitatif juga dilakukan perbandingan untuk panjang pesan yang dapat disisipkan pada citra bitmap dan perubahan ukuran file citra stego dari citra asli dari masing – masing algoritma. Rangkuman perbedaan penelitian yang akan dilakukan dengan penelitian sebelumnya ditunjukkan pada Tabel 2.1.
12
Tabel 2.1 Perbandingan penelitian yang sebelumnya
No Peneliti Langkah Pendekatan Kekurangan Fokus Penelitian
1 Edisuryana et al. (2013)
End of File (EoF), Caesar Cipher, Zig-zag Cipher
Menghasilkan garis baru pada baris akhir citra dan ukuran citra semakin besar.
Mengkombinasikan End of File, Caesar Cipher dan Zig-Zag Cipher untuk pengamanan data pada citra bitmap.
2 Wasino et al.
(2012) End of File, Rijndael
a. Tidak adanya validasi untuk kunci dekripsi.
b. Semakin banyak pesan maka ukuran citra semakin besar.
Mengkombinasi algoritma End of File dengan algoritma Rijndael untuk pengamanan data, kemudian menguji citra dengan membandingkan ukuran citra sesudah dan sebelum disisipi pesan.
3 Cruz et al.
(2012) End of File
a. Data pesan yang disisipkan ke file video tidak dienkripsi sehingga pesan kurang aman.
b. Tidak ada pengujian kuantitaf untuk menghitung nilai noise dari file stego.
Penelitian ini mengimplementasikan algoritma End of File pada file video yang berekstensi FLV.
4 Sejati (2010) End of File, Dynamic Cell Spreading
Tidak menbahas proses ekstraksi data pesan pada file stego.
Melakukan perbandingan dari sisi keamanan data pesan yang disisipkan pada file stego.
13
Tabel 2.1 (lanjutan)
No Peneliti Langkah Pendekatan Kekurangan Fokus Penelitian
5 Joshi et al. (2013)
Least Significant Bit (LSB)
a. Tidak adanya enkripsi untuk plaintext.
b. Kualitas citra mengalami perubahan dari citra asli.
Memperkenalkan dasar dan konsep algoritma Least Significant Bit dengan melakukan pengujian citra menggunakan PSNR.
6 Poornima dan Iswarya (2013)
Least Significant Bit (LSB), Discrete Cosine Transform (DCT)
a. Algoritma untuk enkripsi datanya tidak jelas.
b. Penambahan ekstra noise pada citra dapat merusak isi pesan.
Melakukan perbandingan antara algoritma Least Significant Bit dengan Discrete Cosine Transform pada citra bitmap 24 bit.
7 Gupta (2012)
Least Significant Bit (LSB), algoritma RSA, Algoritma Diffie Hellman
Pengukuran kualitas citra tidak dijabarkan secara jelas.
Membandingkan hasil ukuran dan perubahan citra sebagai media penampung dengan menyisipi pesan menggunakan algoritma Least Significant Bit (LSB) menggunakan RSA dan Diffie Hellman.
8 Male et al. (2012)
Random Pixel
Positioning (RPP) Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR).
Tidak ada enkripsi untuk data yang disisipkan dan kapasitas penyisipan data pada citra tidak dijabarkan dengan jelas.
Mengukur efektifitas dari algoritma Random Pixel Positioning (RPP)
dengan perhitungan nilai MSE dan PSNR
9 Warsito et al. (2012)
Least Significant Bit (LSB)
End of File (EoF)
a. LSB mengurangi kualitas citra setelah terstego dari citra asli. b. Untuk EoF ukuran file lebih besar
dari sebelum disisipi pesan.
Pemanfaatan kriptografi dan steganografi untuk membentuk citra stego terhadap data sertifikat yang diterbitkan oleh perguruan tinggi untuk membuktikan keaslian sertifikat dilakukan dengan melakukan validasi.
14
Tabel 2.1 (lanjutan)
No Peneliti Langkah Pendekatan Kekurangan Fokus Penelitian
10 Aditya et al. (2010)
Least Significant Bit (LSB) dan End of File (EoF).
a. Pada LSB kualitas citra
mengalami perubahan
dibandingkan citra asli.
b. Pada EoF file image akan terlihat berbeda dengan aslinya, adanya penanda khusus yang terlihat pada akhir dari file image berupa garis – garis.
c. Tidak ada pengukuran kualitas citra setelah melakukan steganografi.
Melakukan studi pustaka untuk menganalisis algoritma mana yang lebih efektif antara algoritma LSB dan EoF untuk melakukan steganografi, yang bertujuan untuk mengembangkan sistem steganografi.
11 Tarigan (2014) End of File Modification, Least Significant Bit Modification, Rijndael ?
Implementasi algoritma MEoF untuk keamanan pesan karakter ASCII dengan cara menyisipkan pesan pada padding citra bitmap 24 bit. sebagai pembanding digunakan algoritma EoF, MLSB, adapun yang dibandingkan adalah kualitas citra stego yang diukur menggunakan Peak Signal to Noise Ratio (PSNR), jumlah karakter ASCII yang mampu disisipkan pada citra untuk masing - masing algoritma dan perubahan ukuran file citra stego.
15
3
BAB III
LANDASAN TEORI
3.1 Steganografi
Steganografi berasal dari bahasa Yunani yaitu steganos, yang artinya “tersembunyi atau terselubung” dan graphein artinya “menulis”. Steganografi didefinisikan oleh (Cachin, 2005) adalah seni dan ilmu untuk berkomunikasi dengan cara menyembunyikan informasi sehingga informasi tidak dapat terdeteksi oleh pihak lain (indra manusia). Teknik steganografi telah digunakan selama ratusan tahun. Dengan meningkatnya penggunaan file dalam format elektronik, maka teknik baru untuk menyembunyikan informasi menjadi sesuatu yang mungkin untuk dilakukan.
Steganografi dan kriptografi keduanya digunakan untuk menjamin kerahasian data. Tetapi perbedaan utama dari keduanya adalah dengan kriptografi, komunikasi kedua belah pihak yang bersifat rahasia lebih rentan dapat diketahui oleh setiap orang, sedangkan dengan steganografi pesan disembunyikan keberadaannya dalam media digital sehingga pesan menjadi lebih terlindungi, dalam steganografi kasus yang terbaik adalah tidak ada yang bisa melihat bahwa telah terjadi komunikasi antara kedua pihak tanpa ada yang bisa melihat (Cummins et al. 2004).
Steganografi dapat dibedakan berdasarkan tujuannya menjadi 2 bagian yaitu data hiding/data embedding dan document marking. Data hiding adalah menyembunyikan informasi rahasia di dalam media digital, sedangkan document marking adalah pemberian tanda untuk media digital. Document marking terbagi menjadi dua bagaian yaitu, watermarking dan fingerprinting keduanya berfungsi untuk menyembunyikan identifikasi yang unik sebagai suatu watermark pada data untuk mengidentikasi copy legal dari suatu dokumen. Gambar 3.1 menunjukkan penggolongan steganografi.
16
Gambar 3.1 Penggolongan steganografi berdasarkan tujuan (Cummins, 2004)
Secara garis besar metode Steganografi terdiri dari 2 bagian utama, yaitu proses penyembunyian data (hidden message) dan proses pengembalian data ke bentuk semula (reveal message). Kedua proses ini dilakukan dengan menggunakan kunci rahasia (secret key) yang akan digunakan di dalam prosesnya untuk
meningkatkan keamanan data yang disisipkan pada citra digital. Gambar 3.2
menunjukkan diagram sistem steganografi pada media digital.
Gambar 3.2 Diagram sistem steganografi (Bohme, 2010)
Beberapa standar terminologi yang digunakan pada steganografi (Ruid, 2007) mengatakan :
1. Cover Medium, adalah data atau media yang akan digunakan sebagai tempat informasi rahasia di sembunyikan.
Steganography (Covered writing, coverd channels)
Protection against detection (data hiding)
Protection against removal (document marking)
Watermarking
(all objects are marked in the same way )
Fingerprinting
(identify all object, every object is marked specific) m k Stego object X(0) k,p m Kunci Kunci (k) Penanda pesan (p) Cover Byte pesan Pengirim
Sisip Ekstrak Pesan
rahasia Penerima X(m) Penanda pesan p
17
2. Stego Medium atau stego data, adalah data atau media yang telah berisi informasi rahasia.
3. Message, adalah pesan atau informasi rahasia.
4. Redundant bits, adalah bit – bit data dari cover medium yang dapat di modifikasi.
Pada teknologi komunikasi, cover medium merupakan data yang umum dikirimkan, bisa berupa teks, gambar, audio dan video, pada konsep baru dari steganografi atau biasa disebut network steganography yaitu menggunakan kontrol komunikasi protokol, elemen atau fungsi dasar telekomunikasi sebagai cover medium.
3.2 File Bitmap
3.2.1 Format file bitmap 24 bit
Pada model warna RGB setiap titik pada layar monitor berisi angka yang menunjukkan intensitas yang dipilih pada suatu tabel warna RGB. Jadi pada setiap titik dapat dipilih salah satu warna dari RGB. Gambar 3.3 menunjukkan tabel warna RGB pada bitmap 24 bit per-piksel.
Gambar 3.3 Tabel warna RGB pada bitmap 24 bit/piksel (Rogerson, 1995)
Warna dari tabel RGB memiliki 3 buah warna kombinasi warna yaitu Red,Green, Blue yang menentukan proporsi warna merah, hijau, biru dari warna tersebut. Warna di tabel yang dapat dipilih untuk mengisi warna pada sebuah piksel adalah 256 x 256 x 256 = 16,7 juta warna. Secara umum, file bitmap 24 bit mempunyai kedalaman warna sebanyak 24 bit per piksel.
18
Menurut Dutton (2007), secara teori untuk menghitung ukuran citra bitmap 24 bit, jika hasil perkalian ukuran width di kali Byte per piksel modulo 4 = 0 maka dalam Byte ukuran file citra dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
Sedangkan untuk ukuran citra bitmap 24 bit, jika hasil perkalian ukuran width dengan Byte per piksel modulo 4 ≠ 0 maka dalam Byte ukuran file citra dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
dimana :
width adalah ukuran width citra (dalam piksel). height adalah ukuran height citra (dalam piksel).
Number of bytes for each pixel adalah jumlah Byte warna yang digunakan dalam piksel.
3.2.2 Header dan struktur file bitmap
Header citra bitmap adalah data yang terdapat pada bagian awal berkas citra. Data header berfungsi untuk mengetahui bagaimana citra dalam format bitmap dikodekan dan disimpan. Header bitmap berisi informasi tentang jenis, ukuran, dan tata letak perangkat file bitmap. Header didefinisikan sebagai struktur Bitmapfileheader. Mengacu pada Tabel 3.1 adalah informasi header pada file bitmap.
Informasi header bitmap, didefinisikan sebagai struktur Bitmapinfoheader, menentukan dimensi, tipe kompresi, dan format warna untuk bitmap. Mengacu pada struktur Bitmapinfoheader, maka Tabel 3.2 memberikan informasi struktur header pada file bitmap.
19
Tabel 3.1 Informasi header bitmap (Meyyappan et al., 2011) Alamat Ukuran (Byte) Nama Nilai Standar Keterangan 1 2 bfType 19778 ASCII=’BM’
3 4 bfSize ?? Ukuran file bmp (Bytes)
7 2 bfReaseved1 0 Tidak digunakan
9 2 bfReserved2 0 Tidak digunakan
11 4 bfOffBits 1078 Posisi Byte dimana
gambar berada
Tabel 3.2 Struktur header bitmap (Meyyappan et al., 2011)
3.2.3 Data piksel
Miano (1999) mengatakan bahwa ukuran width dan height data pada citra bitmap 24 bit diinformasikan oleh struktur header bitmap yaitu tinggi gambar (biHeight) dan lebar gambar (biWidth) dalam satuan piksel. Sedangkan ukuran Byte per indeks height merupakan pembulatan kelipatan empat yang dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
Alamat Ukuran (Byte) Nama Nilai Standar Keterangan
15 4 biSize 40 Ukuran dari info dalam Byte
19 4 biwidth 100 Lebar gambar dalamPiksel
23 4 biHeight 100 Tinggi gambar dalam piksel
27 2 biPlanes 1 Jumlah bidang gambar
29 2 biBitcount 8 Jumlah bit per piksel
31 4 biCompression 0 Jenis kompresi
35 4 bisizeImage 0 Ukuran data gambar
39 4 biXPelsPerMeter 0 Resolusi horizontal piksel meter 43 4 biYPelsPerMeter 0 Resolusi vertikal piksel meter
47 4 biClrUsed 0 Jumlah warna yang digunakan
20
Format file bitmap 24 bit yang diikembangkan oleh Microsoft menggunakan model warna RGB. Pada model warna RGB, warna yang ditampilkan di layar monitor disusun oleh tiga buah warna primer, yaitu Red (merah), Green (hijau), Blue (biru).
3.2.4 Metode lockbits / unlockbits untuk akses data citra
Powell, (2003) mengatakan Unlockbit merupakan class bitmap yang berfungsi untuk mengganti bagian data piksel Array bitmap dalam memori. Mengaksesnya secara langsung dan mengganti bit pada bitmap dengan data yang dimodifikasi, sementara lockbit adalah class BitmapData yang menggambarkan tata letak posisi data dalam Array yang terkunci. Class BitmapData berisi properties berikut,
a. Scan0 adalah alamat tetap dalam memori dari data Array.
b. Stride adalah width dalam satuan Byte dari satu baris data piksel. c. PixelFormat adalah Format piksel sebenarnya dari data. Hal ini
penting untuk menemukan Byte yang tepat. d. Width adalah lebar gambar terkunci. e. Height adalah ketinggian gambar terkunci.
Gambar 3.4 menunjukkan hubungan Scan0 dan stride ke Array dalam memori.
Gambar 3.4 Hubungan scan0 dan stride ke array dalam memori (Powell, 2003)
Sistem operasi mengatur alokasi ukuran Byte setiap satu baris width citra bitmap 24 bit, Byte data yang dimasukkan ke width dimulai dari alamat pertama
Width Scan0
Stride
Height
21
data piksel citra, alamat pertama tersebut ditunjukkan oleh Scan0. Penyimpanan Byte citra pada memori dilakukan dengan cara kelipatan 4 Byte sampai ke stride untuk ukuran width citra modulo 4 = 0. Untuk ukuran width citra modulo 4 ≠ 0 maka pada memori akan terdapat padding. Padding terjadi karena adanya Byte kosong pada perangkat penyimpanan yang tidak digunakan seluruhnya untuk menyimpan Byte citra. Byte citra tersebut disimpan dalam Array pada memori.
3.3 Algoritma End of File (EoF)
End of File adalah salah satu algoritma yang dapat digunakan dalam steganografi, algoritma ini melakukan penyisipan pesan dengan teknik pesan akan disisipkan pada akhir file media penampung. Dengan algoritma ini pesan dapat disisipkan sesuai dengan kebutuhan. Cruz et al. (2012) mengatakan algoritma EoF dikenal sebagai algoritma injeksi, teknik ini secara langsung menambahkan pesan pada akhir file. Keberhasilan algoritma injeksi menyisipkan pesan pada media penampung akan mempertahankan kualiatas media penampung. Tetapi algoritma ini secara signifikan akan mempengaruhi ukuran file stego, besarnya ukuran tergantung pada banyak pesan yang disisipkan pada media penampung. Dengan menggunakan algoritma injeksi jumlah data yang disembunyikan pada media penampung tidak memiliki batas, tetapi menyisipkan pesan dengan ukuran yang cukup besar akan dapat memunculkan kecurigaan pengguna lain, ini disebabkan oleh ukuran file stego akan menjadi besar, sehingga file stego rentan terhadap serangan terlebih pesan yang tersembunyi hanya tergantung pada algoritma EoF.
Setiap blok pada sebuah file dapat di baca dengan menggunakan dua parameter, posisi awal dan panjang blok tersebut. Dengan struktur di atas, dapat di baca posisi data header yang isinya meliputi:
Posisi awal data pada file.
Panjang data pada file.
Sesuai dengan konsep algoritma End of File (EoF) pada steganografi maka penanda pesan diletakkan di awal sebelum pesan disisipkan. Gambar 3.5 menunjukkan struktur file bitmap untuk steganografi dengan algoritma EoF.
22
Gambar 3.5 Struktur file bitmap untuk steganografi pada algoritma EoF (Anggraini et al., 2014)
3.3.1 Penyisipan pesan dengan algoritma EoF
Citra bitmap dapat digunakan sebagai media digital untuk menyisipkan data rahasia yang berbentuk plaintext. Plaintext dapat dienkripsi menggunakan algoritma kriptografi, salah satu diantaranya algoritma Rijndael, sehingga pesan yang akan disisipkan pada citra bitmap adalah pesan yang telah dienkripsi (cipher). Penyisipan Byte cipher dengan algoritma End of File (EoF) dilakukan dengan cara Byte cipher disisipkan setelah akhir dari Byte citra bitmap. Pesan yang disisipkan pada citra bitmap diantaranya adalah Byte cipher, Byte penanda pesan dan panjang pesan yang dialokasikan sebesar 4 Byte. sebelum dilakukan penyisipan, dilakukan mengkalkulasi panjang Byte cipher dan panjang penanda pesan. Penanda pesan berfungsi untuk memastikan keberadaan Byte cipher dalam sebuah citra stego, sedangkan panjang pesan digunakan sebagai informasi ukuran Byte cipher pada citra stego. Header pesan (penanda pesan dan panjang pesan) disisipkan setelah Byte cipher selesai disisipkan pada citra hasil. Gambar 3.6 menunjukkan flowchart penyisipan pesan pada citra bitmap menggunakan algoritma EoF.
Steganografi dengan algoritma End of File
File
Bitmap 24 bit Data
File Bitmap 24 bit Enkripsi Data Data Header Dekripsi
23
Mulai
Masukkan citra bitmap, Penanda pesan, plaintext
dan kunci enkripsi
Enkripsi plaintext
Hitung panjang byte pesan Hitung panjang byte penanda pesan
Salin byte citra dan byte stegano (cipher dan header pesan)
Simpan byte hasil
Selesai Citra stego
Tampilkan pesan kesalahan
Alokasikan memori buffer menanpung byte hasil
Penyisipan berhasil?
Ya
Tidak
Data masukan valid?
Ya
Tidak
Tampung cipher
Gambar 3.6 Flowchart penyisipan pesan untuk algoritma EoF (Sloan, 2015)
Berikut adalah tahapan penyisipan pesan pada citra bitmap dengan algoritma EoF,
1. Mulai
2. Masukkan citra bitmap, plaintext, kunci enkripsi dan penanda pesan 3. Lakukan pengecekan, apakah data masukan telah terisi semua,
a. Jika “Ya” kerjakan langkah 4 b. Jika “Tidak” kembali ke langkah 2.
24
4. Enkripsi plaintext menggunakan algoritma Rijndael. 5. Tampung Byte hasil enkripsi pesan (Byte cipher).
6. Kalkulasi ukuran panjang Byte pesan, panjang Byte penanda pesan. 7. Salin Byte citra dan pesan ke memori buffer.
8. Lakukan pengecekan, apakah penyisipan berhasil, a. Jika “Ya” kerjakan langkah 9.
b. Jika “Tidak” kembali ke langkah 2. 9. Simpan Byte citra hasil.
10. Tampilkan citra stego. 11. Selesai.
3.3.2 Ekstraksi pesan dengan algoritma EoF
Ekstraksi Byte cipher pada citra stego dengan algoritma EoF membutuhkan masukan citra stego, penanda pesan dan kunci dekripsi. Proses ekstraksi dimulai dengan pengecekan kunci dekripsi. Lakukan validasi untuk semua data masukan, jika kondisi benar maka selanjutnya melakukan ekstraksi header pesan. Header pesan terdiri dari penanda pesan dan panjang pesan yang terletak pada Byte terakhir dari Byte citra stego. Kemudian Byte penanda pesan dikonversi ke String, berikutnya dilakukan pengecekan penanda pesan, jika penanda pesan bernilai sama dengan penanda pesan yang dimasukan oleh pengguna maka ekstraksi Byte panjang pesan sebesar 7 Byte kemudian Byte panjang pesan dikonversi ke Integer. Setelah itu ekstraksi pesan sepanjang panjang pesan, hasil ekstraksi Byte pesan ditampung divariabel Array, kerjakan proses ekstraksi Byte pesan sebanyak panjang pesan secara berulang. Setelah proses ekstraksi selesai dikerjakan maka berikutnya hasil ekstraksi Byte pesan didekripsi ke karakter ASCII. Gambar 3.7 menunjukkan flowchart ekstraksi pesan pada citra stego menggunakan algoritma EoF.
25
Mulai
Masukkan citra stego, kunci dekripsi dan
penanda pesan Pencacah byte pesan= 0
Baca byte header pesan citra stego
penanda pesan = “masukan”
Selesai
Tidak
Ekstraksi byte pesan
Ya
Dekripsi pesan
Tampilkan plaintext Tampung byte pesan
pencacah byte pesan < ukuran pesan?
Ya
Tidak
Tampilkan pesan kesalahan
Pencacah byte pesan++ Konversi ukuran pesan ke integer
Masukan valid? Ya
Tidak
Kunci dekripsi = kunci enkripsi?
Ya
Tidak
Gambar 3.7 Flowchart ekstraksi pesan untuk algoritma EoF (Sloan, 2015)
26
Berikut tahapan ekstraksi Byte pesan dengan algoritma EoF, 1. Mulai
2. Masukan citra stego, kunci dekripsi dan penanda pesan
3. Lakukan pengecekan, apakah data masukan telah terisi semua, a. Jika “Ya” kerjakan langkah 4.
b. Jika “Tidak” kembali ke langkah 2.
4. Ekstraksi header pesan (penanda pesan dan panjang pesan) pada citra stego. 5. Lakukan pengecekan, apakah penanda pesan yang dimasukan = penanda
pesan hasil ekstraksi,
a. Jika “Ya” kerjakan langkah 6. b. Jika “Tidak” kembali ke langkah 2. 6. Konversi panjang pesan ke Integer. 7. Ekstraksi Byte pesan pada citra stego. 8. Tampung Byte pesan.
9. Increment 1 untuk pencacah indeks pesan setiap Byte proses ekstraksi. 10. Lakukan pengecekan, apakah pencacah indeks pesan < panjang pesan,
a. Jika “Ya” kembali ke langkah 7.
b. Jika “Tidak” lakukan pengecekan, apakah kunci dekripsi = kunci enkripsi,
i. Jika “Ya” lakukan langkah 11. ii. Jika “Tidak” kembali ke langkah 2. 11. Dekripsi pesan
12. Tampilkan plaintext. 13. Selesai.
Kapasitas pesan yang dapat ditampung oleh sebuah citra bitmap berdasarkan informasi ukuran height dari strukutur header citra bitmap dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
27
Setelah pesan disisipkan maka dihasilkan citra stego, pada citra stego akan terjadi peningkatan ukuran untuk ukuran height, besarnya peningakatan ukuran height dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
Dengan demikian ukuran file citra stego yang dihasilkan dapat dikalkulasi dengan cara mengelompokkan citra menjadi 2 bagian, yaitu citra dengan ukuran width modulo 4 = 0, maka ukuran file dikalkulasi dengan persamaan yang ditulis dalam bentuk,
Sedangkan untuk citra dengan ukuran width modulo 4 ≠ 0, ukuran file citra stego dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
3.4 Algoritma MEoF (Modifikasi End of File)
Berdasarkan Gambar 3.3, teknik penyisipan pesan dengan memanfaatkan padding selanjutnya disebut algoritma MEoF (Modifikasi End of File). Modifikasi yang dilakukan dari algoritma EoF (End of File) yaitu lokasi penyisipan pesan. Padding pada citra bitmap 24 bit adalah jika ukuran width modulo 4 ≠ 0. Untuk citra bitmap dengan kondisi ukuran width modulo 4 = 0, penyisipan pesan dilakukan pada piksel terakhir citra, prosesnya dilakukan dengan cara nilai Byte citra piksel terakhir digantikan dengan Byte pesan.
Byte yang mewakili piksel citra bitmap ditampilkan dalam bentuk baris, masing – masing baris merupakan kelipatan 4 Byte termasuk padding. Untuk citra dengan ukuran height > 1, masing – masing baris disimpan dalam bentuk Array
28
piksel. Pada format citra bitmap, citra disimpan dalam bentuk berurutan (sequential). Piksel – piksel disusun mulai dari piksel – piksel baris pertama dan dilanjutkan dengan piksel baris selanjutnya. Jumlah Byte yang dibutuhkan untuk menyimpan satu baris piksel merupakan pembulatan dari kelipatan 4 dapat dikalkulasi dalam bentuk persamaan (Charlamp, 1995),
Sehingga jumlah total Byte yang dibutuhkan untuk menyimpan Byte piksel dalam Array dapat dikalkulasi dalam bentuk persamaan,
Kapasitas penyisipan pesan pada citra dibagi menjadi 2 jenis yaitu citra dengan ukuran width modulo 4 = 0 dan ukuran width modulo 4 ≠ 0. Untuk citra dengan ukuran width modulo 4 = 0 penyisipan pesan dilakukan pada piksel terakhir untuk setiap width, kapasitas pesan yang mampu disisipkan dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
Sedangkan ukuran file citra stego yang dihasilkan dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
Citra dengan ukuran width modulo 4 ≠ 0, maka pesan disisipkan pada padding citra dan kapasitas pesan yang mampu disisipkan dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
29
Sedangkan ukuran file citra stego yang dihasilkan dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk,
3.5 Algoritma Modifikasi Least Significant Bit (MLSB) 3.5.1 Penyisipan pesan dengan algoritma MLSB
Johnson dan Jajodia (1998) dalam tulisan Cruz et al. (2012) mengatakan metode Least Significant Bit (LSB) adalah teknik penyembunyian pesan dengan cara menyisipkan pesan pada bit rendah atau bit paling kanan pada file media penampung sebagai media untuk menyembunyikan pesan. Pada penelitian ini digunakan media citra digital 24 bit dengan model warna RGB. Pada citra digital terdapat 3 bit yang dapat disisipi dalam 1 piksel, setiap 1 piksel warna tersusun dari 3 komponen warna, yaitu Red, Green dan Blue yang disusun oleh 8 digit bilangan biner dari rentang nilai 0 sampai dengan 255 dalam desimal atau 00000000 sampai 11111111 dalam representasi biner. Sebagai contoh sebuah citra bitmap 24 bit dengan ukuran 800 x 600 piksel, dari ukuran ini dapat diartikan bahwa citra tersebut dapat menyimpan 1.440.000 bit atau setara dengan 180.000 Byte pesan yang dapat disisipkan pada media penampung. Proses penyisipan Byte pesan yang melibatkan 3 piksel warna pada citra bitmap 24 bit dapat diilustrasikan seperti berikut,
(00101101 00011100 11011100) (10100110 11000100 00001100) (11010010 10101101 01100011)
Ketika Byte pesan yang akan disisipkan adalah huruf “A”, yang representasi binernya adalah 01000001 dan bilangan biner tersebut yang akan disisipkan ke Byte citra bitmap 24 bit. Penyisipan tersebut akan menghasilkan String biner berikut,
(00101100 00011101 11011100) (10100110 11000100 00001100)
30
Least Significant Bit adalah barisan data biner yang ada pada media digital dan paling tidak terlalu berpengaruh terhadap perubahan jika nilai datanya dimodifikasi. Modifikasi yang dilakukan pada Least Significant Bit (LSB) yaitu, bit - bit pesan disisipkan pada String biner data citra yang memiliki nilai Byte 254 atau 255. Penyisipan bit - bit pesan pada citra menggunakan algoritma MLSB membutuhkan masukkan data antara lain file citra sebagai media untuk penyisipan pesan, plaintext karakter ASCII dan kunci sebagai kunci untuk enkripsi plaintext menjadi Byte cipher.
Pada algoritma MLSB penyisipan pesan dapat dikerjakan dengan kondisi jumlah String biner data citra yang bernilai 254 atau 255 lebih besar dari jumlah ukuran bit - bit pesan yang disisipkan. Proses penyisipan dilakukan dengan mengkonversi header pesan dan Byte pesan, selanjutnya menyisipkan bit – bit header pesan pada setiap String biner data citra sebanyak bit header pesan. Proses penyisipan bit – bit header pesan dilakukan setelah Byte header citra bitmap. Setelah itu dilanjutkan dengan menyisipkan bit - bit pesan pada Byte citra yang bernilai 254 atau 255. Penyisipan bit - bit pesan diproses dengan cara menyeleksi String biner Byte citra untuk setiap indeks width dan indeks height di mulai dari String biner header pesan yang terakhir digunakan untuk menyisipkan bit header pesan + 1. Jika Byte citra bernilai 254 atau 255 konversi Byte citra ke String biner kemudian sisipkan 1 bit pesan pada bit terakhir dari String biner citra. Gambar 3.8 menunjukkan flowchart penyisipan pesan pada citra menggunakan algoritma MLSB (Singadji dan Pakereng, 2013). Tahapan penyisipan bit - bit pesan pada citra dengan algoritma MLSB yaitu,
1. Mulai
2. Masukan citra bitmap, plaintext, kunci enkripsi dan penanda pesan. 3. Pengecekan apakah data masukan telah terisi semua,
a. Jika “Ya” kerjakan langkah 4. b. Jika “Tidak” kembali ke langkah 2.
4. Cacah jumlah Byte citra bernilai 254 atau 255. 5. Enkripsi plaintext dengan algoritma Rijndael 6. Konversi Byte cipher ke String biner.
31
Mulai Masukkan citra bitmap, plaintext, penanda pesan dan
Kunci enkripsi
Enkripsi pesan
Konversi ciphertext ke string biner
lokasi penysipan cukup
Blue = 254 or 255
Ya Sisip LSB
i = i + 1
Cacah byte citra bernilai 254 / 255
I = 0, j = 0 Total = panjang string biner
Ya
RGB = Ambil piksel ke ( j )
Green = 254 or 255
Tidak Tidak Red = 254 or 255
Sisip LSB i = i + 1
Sisip LSB i = i + 1
Ya Ya
Jika i < Total Jika i < Total Jika i < Total
Ya Ya
Simpan sebagai
file citra baru Tidak
Tidak
Selesai
Next j
Ya
Hitung ukuran panjang pesan
Jika i < Total Ya Tampilkan pesan kesalahan Tidak Tidak
Sisipkan penanda pesan dan info ukuran pesan Masukan valid?
Ya
Tidak
Hitung jumlah bit stegano
Gambar 3.8 Flowchart penyisipan pesan dengan algoritma MLSB (Singadji, 2013)