TESIS. ALGORITMA MEoF (MODIFIKASI END of FILE) UNTUK STEGANOGRAFI PADA CITRA BITMAP 24 BIT THOMAS EDYSON TARIGAN 11/324230/PPA/03667

Ukuran: px
Mulai penontonan dengan halaman:

Download "TESIS. ALGORITMA MEoF (MODIFIKASI END of FILE) UNTUK STEGANOGRAFI PADA CITRA BITMAP 24 BIT THOMAS EDYSON TARIGAN 11/324230/PPA/03667"

Transkripsi

1 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 2015

2 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 2015

3 A LAMAN PENGESAHAN

4 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 THOMAS EDYSON TARIGAN iv

5 HALAMAN PERSEMBAHAN TO v

6 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. vi

7 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 Penulis vii

8 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 Latar Belakang Rumusan Masalah Batasan Masalah Tujuan Penelitian Manfaat Penelitian Metodologi Penelitian Sistematika Penulisan... 6 BAB II TINJAUAN PUSTAKA... 7 BAB III LANDASAN TEORI Steganografi File Bitmap Format file bitmap 24 bit Header dan struktur file bitmap Data piksel Metode lockbits / unlockbits untuk akses data citra Algoritma End of File (EoF) Penyisipan pesan dengan algoritma EoF Ekstraksi pesan dengan algoritma EoF Algoritma MEoF (Modifikasi End of File) Algoritma Modifikasi Least Significant Bit (MLSB) Penyisipan pesan dengan algoritma MLSB Ekstraksi algoritma MLSB (Modifikasi Least Significant Bit) Peak Signal to Noise Ratio (PSNR) Algoritma Rijndael Enkripsi Rijndael Dekripsi Rijndael BAB IV ANALISIS DAN RANCANGAN SISTEM Deskripsi Penyisipan Pesan viii

9 4.2 Perancangan Algoritma MEoF (Modifikasi End of File) Penyisipan pesan dengan algoritma MEoF Ekstraksi pesan dengan algoritma MEoF (Modifikasi End of File) Metode Pengujian Steganografi Pengujian kualitatif Pengujian kuantitatif Perancangan Antarmuka Penyisipan dan Ekstraksi Pesan BAB V IMPLEMENTASI Lingkungan Implementasi Algoritma MEoF (Modifikasi End of File) Kalkulasi lokasi penyisipan pesan Lockbit data citra bitmap Pengambilan header pesan Pengukuran panjang pesan Enkripsi pesan Membuat citra hasil Penyisipan pesan Proses stegano Ekstraksi Pesan Ekstraksi header pesan Konversi hasil header pesan Ekstraksi pesan Algoritma End of File (EoF) Inisialisasi algoritma EoF Citra hasil Kalkulasi kapasitas pesan Salin byte citra dan sisip pesan Ekstraksi pesan Algoritma Modifikasi Least Significant Bit (MLSB) Mencacah jumlah byte citra yang mampu disisipi pesan Sisip penanda pesan Sisip panjang pesan Sisip pesan Ekstraksi Algoritma MLSB Pengambilan byte citra untuk ekstraksi bit penanda pesan Ekstraksi panjang pesan Ekstraksi pesan Algoritma Rijndael Implementasi enkripsi Implementasi dekripsi Mengukur Kualitas Citra BAB VI HASIL DAN PEMBAHASAN Hasil Penelitian Pengujian kualitatif Pengujian kuantitatif ix

10 6.2 Pembahasan Perbandingan dengan algoritma EoF Perbandingan dengan algoritma MLSB BAB VII KESIMPULAN DAN SARAN Kesimpulan Saran DAFTAR PUSTAKA x

11 DAFTAR TABEL Tabel 2.1 Perbandingan penelitian yang sebelumnya Tabel 3.1 Informasi header bitmap Tabel 3.2 Struktur header bitmap Tabel 3.3 S-Box algoritma Rijndael Tabel 3.4 Invers S-Box algoritma Rijndael Tabel 3.5 Perbandingan jumlah iterasi algoritma Rijndael Tabel 6.1 Hasil pengujian kualitatif Tabel 6.2 Hasil pengukuran kuantitatif berdasarkan ukuran citra bitmap Tabel 6.3 Hasil pengukuran kuantitatif berdasarkan panjang pesan xi

12 DAFTAR GAMBAR Gambar 3.1 Penggolongan steganografi berdasarkan tujuan Gambar 3.2 Diagram sistem steganografi Gambar 3.3 Tabel warna RGB pada bitmap 24 bit/piksel Gambar 3.4 Hubungan scan0 dan stride ke array dalam memori Gambar 3.5 Struktur file bitmap untuk steganografi pada algoritma EoF Gambar 3.6 Flowchart penyisipan pesan untuk algoritma EoF Gambar 3.7 Flowchart ekstraksi pesan untuk algoritma EoF Gambar 3.8 Flowchart penyisipan pesan dengan algoritma MLSB Gambar 3.9 Flowchart ekstraksi pesan dengan algoritma MLSB Gambar 4.1 Flowchart penyisipan pesan pada algoritma MEoF Gambar 4.2 Flowchart ekstraksi pesan dengan algoritma MEoF Gambar 4.3 Rancangan antarmuka penyisipan/ekstraksi pesan Gambar 5.1 Kalkulasi lokasi penyisipan untuk ukuran width modulo 4 = Gambar 5.2 Lockbit nilai byte citra Gambar 5.3 Pengambilan header pesan Gambar 5.4 Pengukuran panjang pesan Gambar 5.5 Enkripsi pesan dengan Rijndael Gambar 5.6 Citra tanpa padding Gambar 5.7 Penyisipan pesan Gambar 5.8 Proses stegano Gambar 5.9 Ekstraksi penanda pesan Gambar 5.10 Konversi hasil header pesan Gambar 5.11 Ekstraksi pesan Gambar 5.12 Pembuatan citra hasil Gambar 5.13 Citra hasil Gambar 5.14 Kalkulasi kapasitas pesan Gambar 5.15 Salin byte citra dan sisip pesan Gambar 5.16 Ekstraksi pesan algoritma EoF Gambar 5.17 Mencacah jumlah byte citra yang mampu disisipi pesan Gambar 5.18 Sisip penanda pesan Gambar 5.19 Sisip panjang pesan Gambar 5.20 Sisip pesan Gambar 5.21 Pengambilan byte stego untuk ekstraksi bit penanda pesan Gambar 5.22 Ekstraksi panjang pesan Gambar 5.23 Ekstraksi pesan Gambar 5.24 Enkripsi plaintext Gambar 5.25 Dekripsi pesan xii

13 Gambar 5.26 Perhitungan MSE dan PSNR Gambar 6.1 Pengujian kualitatif dengan pengamatan visual manusia Gambar 6.2 Pengujian kualitatif ekstrak nilai byte citra Gambar 6.3 Perbandingan citra asli dan citra stego pada algoritma EoF xiii

14 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. Kata kunci : Algoritma MEoF, Padding, Citra stego. xiv

15 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. Keywords: Algorithm MEoF, Padding, Stego Image. xv

16 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. 1

17 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

18 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.

19 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.

20 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.

21 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.

22 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 terenkripsi. 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, 7

23 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

24 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

25 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 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).

26 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.

27 Tabel 2.1 Perbandingan penelitian yang sebelumnya No Peneliti Langkah Pendekatan Kekurangan Fokus Penelitian 1 Edisuryana al. (2013) et Zig- End of File (EoF), Caesar Cipher, 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 3 Wasino (2012) et al. Cruz et al. (2012) End of File, Rijndael End of File a. Tidak adanya validasi untuk kunci dekripsi. b. Semakin banyak pesan maka ukuran citra semakin besar. 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. Mengkombinasi algoritma End of File dengan algoritma Rijndael untuk pengamanan data, kemudian menguji citra dengan membandingkan ukuran citra sesudah dan sebelum disisipi pesan. 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. 12

28 Tabel 2.1 (lanjutan) No Peneliti Langkah Pendekatan Kekurangan Fokus Penelitian 5 6 Joshi (2013) et al. Poornima dan Iswarya (2013) 7 Gupta (2012) 8 9 Male et al. (2012) Warsito et al. (2012) Least Significant Bit (LSB) Least Significant Bit (LSB), Discrete Cosine Transform (DCT) Least Significant Bit (LSB), algoritma RSA, Algoritma Diffie Hellman Random Pixel Positioning (RPP) Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR). Least Significant Bit (LSB) End of File (EoF) a. Tidak adanya enkripsi untuk plaintext. b. Kualitas citra mengalami perubahan dari citra asli. a. Algoritma untuk enkripsi datanya tidak jelas. b. Penambahan ekstra noise pada citra dapat merusak isi pesan. Pengukuran kualitas citra tidak dijabarkan secara jelas. Tidak ada enkripsi untuk data yang disisipkan dan kapasitas penyisipan data pada citra tidak dijabarkan dengan jelas. a. LSB mengurangi kualitas citra setelah terstego dari citra asli. b. Untuk EoF ukuran file lebih besar dari sebelum disisipi pesan. Memperkenalkan dasar dan konsep algoritma Least Significant Bit dengan melakukan pengujian citra menggunakan PSNR. Melakukan perbandingan antara algoritma Least Significant Bit dengan Discrete Cosine Transform pada citra bitmap 24 bit. Membandingkan hasil ukuran dan perubahan citra sebagai media penampung dengan menyisipi pesan menggunakan algoritma Least Significant Bit (LSB) menggunakan RSA dan Diffie Hellman. Mengukur efektifitas dari algoritma Random Pixel Positioning (RPP) dengan perhitungan nilai MSE dan PSNR Pemanfaatan kriptografi dan steganografi untuk membentuk citra stego terhadap data sertifikat yang diterbitkan oleh perguruan tinggi untuk membuktikan keaslian sertifikat dilakukan dengan melakukan validasi. 13

29 Tabel 2.1 (lanjutan) No Peneliti Langkah Pendekatan Kekurangan Fokus Penelitian 10 Aditya et al. (2010) 11 Tarigan (2014) Least Significant Bit (LSB) dan End of File (EoF). End of File Modification, Least Significant Bit Modification, Rijndael 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. 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. 14

30 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. 15

31 16 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) 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. Pengirim Kunci (k) Penanda pesan (p) Kunci Penerima Byte pesan m k,p k X (m) m Sisip Ekstrak Pesan Stego object rahasia X (0) Cover p Penanda pesan 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.

32 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 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.

33 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 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.

34 19 Tabel 3.1 Informasi header bitmap (Meyyappan et al., 2011) Alamat Ukuran Nilai Nama (Byte) Standar Keterangan 1 2 bftype 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) Alamat Ukuran Nilai Nama (Byte) 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 51 4 biclrimportant 0 Jumlah warna 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,

35 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) 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. Stride Scan0 Height Width Padding 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

36 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.

37 22 File Bitmap 24 bit Data Steganografi dengan algoritma End File Bitmap 24 bit Enkripsi Data Header Data Dekripsi Gambar 3.5 Struktur file bitmap untuk steganografi pada algoritma EoF (Anggraini et al., 2014) 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.

38 23 Mulai Masukkan citra bitmap, Penanda pesan, plaintext dan kunci enkripsi Data masukan valid? Ya Enkripsi plaintext Tidak Tampilkan pesan kesalahan Tampung cipher Hitung panjang byte pesan Hitung panjang byte penanda pesan Tidak Alokasikan memori buffer menanpung byte hasil Salin byte citra dan byte stegano (cipher dan header pesan) Penyisipan berhasil? Ya Simpan byte hasil Citra stego Selesai algoritma EoF, 1. Mulai Gambar 3.6 Flowchart penyisipan pesan untuk algoritma EoF (Sloan, 2015) Berikut adalah tahapan penyisipan pesan pada citra bitmap dengan 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.

39 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 Simpan Byte citra hasil. 10. Tampilkan citra stego. 11. Selesai 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.

40 25 Mulai Masukkan citra stego, kunci dekripsi dan penanda pesan Pencacah byte pesan= 0 Masukan valid? Ya Tidak Tampilkan pesan kesalahan Baca byte header pesan citra stego penanda pesan = masukan Tidak Ya Konversi ukuran pesan ke integer Ekstraksi byte pesan Tampung byte pesan Ya Pencacah byte pesan++ Tidak pencacah byte pesan < ukuran pesan? Tidak Kunci dekripsi = kunci enkripsi? Ya Dekripsi pesan Tampilkan plaintext Selesai Gambar 3.7 Flowchart ekstraksi pesan untuk algoritma EoF (Sloan, 2015)

41 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 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 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 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,

42 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

43 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,

44 29 Sedangkan ukuran file citra stego yang dihasilkan dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk, 3.5 Algoritma Modifikasi Least Significant Bit (MLSB) 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 sampai 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 bit atau setara dengan 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, ( ) ( ) ( ) Ketika Byte pesan yang akan disisipkan adalah huruf A, yang representasi binernya adalah dan bilangan biner tersebut yang akan disisipkan ke Byte citra bitmap 24 bit. Penyisipan tersebut akan menghasilkan String biner berikut, ( ) ( ) ( )

45 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 Cacah jumlah Byte citra bernilai 254 atau Enkripsi plaintext dengan algoritma Rijndael 6. Konversi Byte cipher ke String biner.

46 31 Mulai Masukkan citra bitmap, plaintext, penanda pesan dan Kunci enkripsi Masukan valid? Ya Tidak Tampilkan pesan kesalahan Cacah byte citra bernilai 254 / 255 Enkripsi pesan Konversi ciphertext ke string biner Hitung ukuran panjang pesan Tidak Hitung jumlah bit stegano lokasi penysipan cukup Ya I = 0, j = 0 Total = panjang string biner Jika i < Total Next j Ya RGB = Ambil piksel ke ( j ) Ya Blue = 254 or 255 Tidak Green = 254 or 255 Tidak Red = 254 or 255 Tidak Ya Sisip LSB i = i + 1 Ya Ya Sisip LSB i = i + 1 Ya Ya Sisip LSB i = i + 1 Jika i < Total Jika i < Total Jika i < Total Sisipkan penanda pesan dan info ukuran pesan Tidak Simpan sebagai file citra baru Tidak Selesai Gambar 3.8 Flowchart penyisipan pesan dengan algoritma MLSB (Singadji, 2013)

47 32 7. Hitung ukuran panjang pesan kemudian konversi ke biner. 8. Hitung jumlah bit stegano. 9. Lakukan pengecekan, apakah jumlah Byte citra bernilai 254 atau 255 > jumlah bit stegano, a. Jika Ya kerjakan langkah 10. b. Jika Tidak kembali ke langkah Lakukan penyisipan bit stegano, proses penyisipan dengan cara pengecekan pada setiap Byte citra, apakah Byte citra bernilai 254 atau 255, a. Jika Ya sisip bit stegano, increment 1 untuk pencacah bit stegano ( i ). b. Jika Tidak kerjakan Byte berikutnya ( j ). 11. Simpan file citra sebagai citra stego. 12. Selesai Ekstraksi algoritma MLSB (Modifikasi Least Significant Bit) Ekstraksi adalah memisahkan bit pesan dari citra stego untuk dibentuk menjadi Byte pesan kemudian hasilnya didekripsi menjadi Byte plaintext. Untuk ekstraksi, data yang dibutuhkan adalah citra stego, penanda pesan dan kunci dekripsi. Ekstraksi pada algoritma MLSB dikerjakan dengan tahapan berikut, ekstraksi bit - bit header pesan, hasil ekstraksi bit bit header terdiri dari bit penanda pesan dan bit informasi panjang pesan. Selanjutnya bit penanda pesan di konversi ke Byte String dan panjang pesan ke Integer. Ekstraksi pesan dapat dikerjakan jika penanda pesan bernilai sama dengan nilai masukan pengguna ketika menyisipkan pesan. Ekstraksi bit bit pesan dilakukan dengan pengecekan untuk setiap nilai Byte citra stego dimulai dari Byte citra stego yang terakhir digunakan. Untuk setiap Byte citra yang bernilai 254 atau 255 dikonversi ke String biner kemudian bit terakhir diambil dan disimpan pada variabel penampung bit bit pesan, kemudian setiap bit pesan pada penampung berjumlah 8 bit maka konversi ke Byte String, proses ini dikerjakan sepanjang ukuran Byte pesan. Selanjutnya setelah semua bit selesai diekstraksi maka Byte pesan didekripsi untuk menghasilkan plaintext. Gambar 3.9 menunjukkan flowchart ekstraksi bit pesan pada citra stego.

48 33 Mulai Masukkan citra stego, penanda pesan dan Kunci dekripsi Masukan valid? Ya Tidak Tampilkan pesn kesalahan Kunci dekripsi = kunci enkripsi? Tidak Ya Ekstraksi bit penanda pesan dan bit ukuran pesan Konversi penanda pesan ke byte string Tidak Penanda pesan = masukan user Ya konversi ukuran pesan ke integer J = 0 Total = ukuran pesan RGB = ambil piksel ke ( j ) Ya Blue = 254 atau 255 Tidak Green = 254 atau 255 Tidak Red = 254 atau 255 Tidak J = j + 1 Ya Ya Ya Ekstrak LSB tambahkan ke bit string Ekstrak LSB tambahkan ke bit string Ekstrak LSB tambahkan ke bit string J < info ukuran pesan Tidak Konversi bit array ke byte array Dekripsi byte array Tampilkan pesan Selesai Gambar 3.9 Flowchart ekstraksi pesan dengan algoritma MLSB (Singadji, 2013)

49 34 Berikut tahapan ekstraksi Byte pesan pada citra stego dengan algoritma MLSB, 1. Mulai 2. Masukan citra stego, kunci dekripsi dan penanda pesan. 3. Lakukan pengecekan, apakah data masukan telah terisi semua, a. Jika Ya maka kerjakan langkah 4. b. Jika Tidak kerjakan langkah Lakukan pengecekan, apakah kunci dekripsi yang dimasukan = kunci enkripsi. a. Jika Ya kerjakan langkah 5. b. Jika Tidak kembali ke langkah Ekstraksi bit header pesan (penanda pesan dan panjang pesan). 6. Konversi penanda pesan ke Byte String. 7. Lakukan pengecekan, apakah penanda pesan = hasil ekstraksi penanda pesan, a. Jika Ya kerjakan langkah 8 b. Jika Tidak kerjakan langkah Lakukan ekstraksi bit pesan, ekstraksi dengan cara pengecekan setiap piksel, apakah Blue nilai Byte 254 atau 255, a. Jika Ya ekstraksi LSB kemudian tampung di bit penampung pesan kemudian increment 1 untuk b. Jika Tidak uji Byte citra berikutnya pada piksel citra yang sama. 9. Lakukan pengecekan, apakah nilai j < panjang pesan, a. Jika Ya kerjakan langkah 8. b. Jika Tidak konversi bit Array ke Byte Array. 10. Dekripsi Byte Array. 11. Tampilkan plaintext. 12. Selesai.

50 Peak Signal to Noise Ratio (PSNR) Menurut Moreno et al. (2013), Peak Signal to Noise Ratio (PSNR) adalah perbandingan antara nilai maksimum dari sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal tersebut. PSNR biasanya diukur dalam satuan desibel (db). PSNR digunakan untuk mengetahui perbandingan kualitas citra sebelum dan sesudah disisipkan pesan. Mean Square Error (MSE) merupakan parameter yang menunjukkan tingkat kesalahan piksel - piksel citra hasil pemrosesan sinyal (stego image) terhadap citra asli (media cover). Semakin kecil nilai MSE yang didapatkan maka kualitas citra keluaran akan semakin baik atau dapat dikatakan semakin mendekati citra aslinya. Nilai MSE dapat dikalkulasi dengan persamaan yang ditulis dalam bentuk, dimana : MSE(f,g) adalah nilai Mean Square Error dari citra. M adalah panjang citra stego (dalam piksel). N adalah ukuran width citra stego (dalam piksel). f(i,j) adalah nilai piksel dari citra cover. g(i,j) adalah nilai piksel pada citra stego. Peak Signal to Noise Ratio (PSNR) merupakan parameter besaran yang menunjukkan rasio tingkat toleransi noise tertentu terhadap banyaknya noise pada suatu piksel citra. Noise adalah kerusakan piksel pada bagian tertentu dalam sebuah citra sehingga mempengaruhi kualitas dari pada piksel tersebut. Dengan kata lain nilai PSNR menunjukkan nilai kualitas suatu piksel citra. Untuk menentukan nilai PSNR pada citra dikalkulasi dengan persamaan yang ditulis dalam bentuk,

51 36 dimana : PSNR adalah Peak Signal to Noise Ratio. Max (f,g) adalah nilai maksimum dari piksel citra. MSE(f,g) adalah nilai Mean Square Error dari citra. 3.7 Algoritma Rijndael Enkripsi Rijndael Pada algoritma Rijndael enkripsi terdiri dari 4 jenis transformasi Byte, yaitu SubBytes, ShiftRows, Mixcolumns, dan AddRoundKey. Proses awal enkripsi, masukkan ke dalam state akan mengalami transformasi Byte AddRoundKey yaitu melakukan Xor antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round. Setelah itu state akan mengalami putaran transformasi sebanyak Nr 1 kali. Proses transformasi dikerjakan dengan langkah berikut, 1. SubBytes, substitusi Byte dengan menggunakan tabel substitusi (S-box). Subtitusi (S-box) untuk algoritma Rijndael untuk proses tranformasi SubByte menggunakan Tabel 3.3 berikut, Tabel 3.3 S-Box algoritma Rijndael (Federal Information Processing Standards Publication 197) 2. ShiftRows, pergeseran baris-baris Array state secara wrapping. 3. MixColumns, mengacak data pada masing-masing kolom Array state. 4. AddRoundKey, operasi Xor antara state sekarang dengan round key.

52 37 Putaran terakhir state tidak mengalami transformasi MixColumns Dekripsi Rijndael Pada algoritma Rijndael dekripsi merupakan kebalikan dari proses enkripsi dan menggunakan invers dari proses transformasi yang dikerjakan pada proses enkripsi. Proses dekripsi untuk iterasi pertama semua transformasi dikerjakan kecuali invers MixColumns. Untuk proses dekripsi dengan Rijndael yang beroperasi pada blok 128-bit adalah sebagai berikut : 1. AddRoundKey : melakukan Xor antara state awal (cipher) dengan cipher key. Tahap ini disebut juga initial round. 2. Putaran sebanyak Nr 1 kali. Proses pada setiap putaran adalah : a. InvShiftRow, pergeseran baris-baris Array state secara wrapping. b. InvSubByte, substitusi Byte menggunakan tabel substitusi inverse S-box, seperti yang ditunjukkan pada Tabel 3.4 berikut, Tabel 3.4 Invers S-Box algoritma Rijndael (Federal Information Processing Standards Publication 197) c. AddRoundKey, melakukan operasi Xor antara state sekarang dengan round key. d. InvMixColumn, mengacak data pada masing-masing kolom Array state. 3. Untuk proses putaran terakhir state tidak mengalami transformasi MixColumns.

53 38 Tabel 3.5 Perbandingan jumlah iterasi algoritma Rijndael (Hmood, 2012) AES 128 AES 192 AES 256 Ukuran kunci 4 word (16 Byte) 6 word (24 Byte) 8 word (32 Byte) Ukuran blok 4 word (16 Byte) 4 word (16 Byte) 4 word (16 Byte) Jumlah iterasi

54 4 BAB IV ANALISIS DAN RANCANGAN SISTEM 4.1 Deskripsi Penyisipan Pesan Penelitian ini bertujuan untuk melakukan stegano menggunakan citra bitmap 24 bit sebagai media digital untuk menampung pesan. Penyisipan pesan dengan algoritma MEoF dapat dikerjakan dengan kondisi ukuran width citra modulo 4 0 atau ukuran citra modulo 4 = 0 dan lokasi untuk penyisipan lebih besar dari panjang pesan. Pesan adalah karakter ASCII yang telah dienkripsi dengan algoritma Rijndael menggunakan kunci 128 bit. Hasil enkripsi pesan karakter ASCII menghasilkan blok cipher berukuran 16 Byte untuk setiap blok. Selain blok cipher, penyisipan juga dilakukan untuk header pesan yang terdiri dari penanda pesan dan panjang pesan pada citra stego. Pada algoritma MLSB bit - bit pesan disisipkan pada Byte citra yang bernilai 254 atau 255, proses penyisipan bit bit stegano dilakukan dengan cara header pesan, Byte cipher, penanda pesan dan nilai Byte citra yang bernilai 254 atau 255 dikonversi ke String biner, selanjutnya bit bit header pesan, penanda pesan dan Byte cipher disisipkan pada nilai bit terendah pada String biner citra yang bernilai 254 atau 255 (Singadji dan Pakereng, 2013). Pada algoritma MEoF, MLSB dan EoF ukuran Byte penanda pesan maksimal di-default sebesar 10 Byte dan untuk informasi panjang pesan pada algoritma MEoF dan MLSB dialokasikan sebesar 2 Byte sedangkan untuk algoritma EoF dialokasikan sebesar 4 Byte. Header pesan berfungsi sebagai penanda pesan dan sebagai informasi panjang pesan yang disisipkan pada citra stego. Dengan demikian ketika proses ekstraksi Byte cipher pada citra stego maka tahapan yang dikerjakan adalah mengekstraksi penanda pesan, kemudian dicek penanda pesan hasil ekstraksi, jika penanda pesan bernilai sama dengan nilai masukan ketika menyisipkan pesan maka selanjutnya kerjakan proses konversi ukuran Byte pesan ke Integer. Selanjutnya kerjakan proses ekstraksi Byte cipher sebesar ukuran panjang pesan. Proses ekstraksi ini dikerjakan sesuai dengan 39

55 40 tahapan pada masing masing algoritma. Setelah proses ekstraksi Byte cipher selesai dikerjakan maka Byte cipher didekripsi untuk menghasilkan plaintext. Proses penyisipan Byte pesan pada citra biasanya akan menghasilkan perubahan kualitas citra, perubahan ini disebabkan adanya perubahan nilai Byte citra sebelum disisipi pesan dengan setelah disisipi pesan. Karena adanya perubahan kualitas citra setelah disispi pesan maka dibutuhkan pengujian mengetahui tingkat perubahan kualitas citra yang dihasilkan dari masing masing algoritma, pengujian dilakukan secara kualitatif dan kuantitatif. Proses pengujian kualitatif dikerjakan dengan cara pengamatan terhadap kualitas citra stego menggunakan visual panca indra manusia kemudian dibandingkan dengan citra aslinya. Sedangkan proses pengujian kuantitatif dikerjakan dengan cara terukur, adapun pengukuran dilakukan dengan mengkalkulasi nilai noise yang dihasilkan citra stego. Hasil pengujian kuantitatif dan kualitatif dari algoritma MEoF kemudian dibandingkan dengan hasil pengujian dari algoritma EoF dan MLSB. Untuk pengujian kuantitatif juga dilakukan pengukuran untuk kapasitas pesan yang mampu disisipkan dan mengukur perubahan ukuran pada citra stego. Berdasarkan hipotesa sementara untuk pengukuran jumlah pesan yang mampu disisipkan dan perubahan ukuran citra stego pada algoritma MEoF dan EoF dapat dilakukan secara analisis matematis. 4.2 Perancangan Algoritma MEoF (Modifikasi End of File) Penyisipan pesan dengan algoritma MEoF Untuk penyisipan pesan dengan algoritma MEoF pada citra dibutuhkan masukan terdiri dari sebuah citra, plaintext, penanda pesan dan kunci enkripsi. Jumlah pesan yang mampu disisipkan pada citra dipengaruhi oleh ukuran width dari citra yang digunakan sebagai penampung pesan. Untuk ukuran width citra modulo 4 = 0 maka pesan disisipkan pada piksel terakhir untuk setiap width. Proses penyisipan pesan dikerjakan dengan mengganti nilai Byte citra dengan nilai Byte pesan, alokasi Byte citra yang dapat digunakan untuk menyisipkan Byte pesan sebesar 3 Byte untuk setiap width. Untuk ukuran width citra modulo 4 0

56 41 maka Byte pesan disisipkan pada padding citra. Ukuran padding yang dapat digunakan untuk menyisipkan pesan setiap indeks width sebesar hasil proses kalkulasi modulo. Gambar 4.1 adalah flowchart penyisipan pesan menggunakan algoritma MEoF, 1. Mulai. 2. Masukkan sebuah file citra bitmap. 3. Lakukan pengecekan, apakah data masukan telah terisi semua, a. Jika Ya kerjakan langkah 4. b. Jika Tidak kembali ke langkah Scan ukuran height, width dan stride. 5. Lakukan pengecekan untuk padding, apakah ukuran width modulo 4 = 0. a. Jika Ya piksel width terakhir dikurangi 1, kemudian kalkulasi ukuran Byte citra yang dapat disisipi. b. Jika Tidak hitung ukuran padding. 6. Masukkan plaintext, kunci enkripsi dan penanda pesan. 7. Lakukan enkripsi plaintext dengan algoritma Rijndael menggunakan method CreateEncryptor pada C#. 8. Kalkulasi ukuran pesan. 9. Lakukan pengecekan, apakah ukuran Byte citra yang dapat disisipi/ padding >= panjang pesan. a. Jika Ya kerjakan langkah 10. b. Jika Tidak kembali ke langkah Alokasikan memori untuk menampung Byte citra hasil. 11. Lakukan pengecekan apakah jumlah indeks width ( j ) < width * 3, a. Jika Ya, salin Byte citra. b. Jika Tidak, salin pesan. 12. Next j 13. Lakukan pengecekan, apakah jumlah indeks width ( j ) < stride, a. Jika Ya kerjakan langkah 11. b. Jika Tidak next height ( i ).

57 42 Mulai Masukkan citra Scan ukuran height citra, width citra dan stride width citra % 4 = 0? Ya Tidak Kalkulasi ukuran padding Piksel terakhir 1 Masukan pesan, kunci enkripsi dan penanda pesan Enkripsi byte pesan Kalkulasi panjang pesan kalkulasi panjang penanda pesan Header pesan = panjang penanda pesan + panjang pesan Byte stegano = header pesan + panjang pesan Ukuran padding >= panjang Byte stegano Tidak Tampilkan pesan kesalahan Ya Alokasikan memori menampung Byte hasil For i = 0; i < height citra; i++ Simpan byte hasil Citra stego Selesai Next i For j = 0 ; j < stride; j++ j < width citra*3 Tidak Sisip Byte stegano (header pesan dan cipher ) Ya Next j Ya Salin byte citra ke penampung citra baru Gambar 4.1 Flowchart penyisipan pesan pada algoritma MEoF 14. Lakukan pengecekan, apakah jumlah height ( i ) < total height, a. Jika Ya kerjakan width ke ( j ) pada height ke ( i ). b. Jika Tidak kerjakan langkah Simpan citra hasil

58 Tampilkan citra stego. 17. Selesai. Proses stegano pada citra akan menghasilkan informasi panjang Byte cipher, panjang Byte cipher yang mampu disisipkan pada citra, panjang Byte chiper yang telah disisipkan, nilai MSE (Mean Sequare Error) dan PSNR (Peak Signal to Noise Rasio) Ekstraksi pesan dengan algoritma MEoF (Modifikasi End of File) Ekstraksi adalah memisahkan pesan dari citra stego, ekstraksi pesan dengan algoritma MEoF membutuhkan 3 data masukkan yaitu, citra stego, penanda pesan dan kunci dekripsi yang nilainya sama dengan masukan kunci enkripsi. Ekstraksi dengan algoritma MEoF dilakukan dalam 2 tahapan, yaitu ekstraksi header pesan dan ekstraksi Byte pesan. Ekstraksi header pesan untuk mengambil Byte penanda pesan yang telah disisipkan pada citra stego. Setelah ekstraksi penanda pesan dikerjakan maka dilakukan pengecekan dengan kondisi apakah masukan penanda pesan bernilai sama dengan penanda pesan hasil ekstraksi, jika bernilai sama maka ekstraksi panjang pesan. Hasil ekstraksi panjang pesan selanjutnya dikonversi ke Integer. Selanjutnya dilakukan ekstraksi Byte pesan dengan cara membaca nilai Byte citra stego pada piksel terakhir untuk setiap indeks width atau Byte padding, pembacaan nilai Byte dimulai dari Byte header pesan + 1, hasil ekstraksi ditampung pada sebuah variabel Array. Sebaliknya jika nilai masukan penanda pesan tidak sama dengan hasil ekstraksi penanda pesan maka tampilkan pesan kesalahan. Proses pembacaan Byte pesan pada citra stego dilakukan secara berulang sebanyak panjang pesan. Gambar 4.2 menunjukkan flowchart ekstraksi pesan menggunakan algoritma MEoF. Berikut tahapan proses ekstraksi header pesan dan pesan dengan algoritma MEoF, dari setiap langkah yang dikerjakan, yaitu : 1. Mulai 2. Masukkan sebuah citra stego, kunci simetris dan penanda pesan. 3. Scan width, height dan stride citra stego.

59 44 Mulai Masukan citra stego kunci dekripsi dan penanda pesan Penanda index byte = 0 Pencacah pesan = 0 Tampilkan pesan kesalahan Scan ukuran height, width dan stride citra stego For i = 0; i < height citra stego; i++ For j = width*3; j < stride ; j++ Next i panjang header pesan > penanda index byte Tidak Ya Ya Ekstraksi Byte header pesan Penanda index byte ++ Tidak Penanda pesan = input user Tampilkan pesan kesalahan Ya Konversi panjang pesan ke integer Tidak Pencacah pesan = panjang pesan Tidak Ya Kunci dekripsi = kunci enkripsi? Ekstraksi Byte pesan pencacah pesan ++ Dekripsi byte cipher Ya Tampilkan plaintext Selesai Gambar 4.2 Flowchart ekstraksi pesan dengan algoritma MEoF

60 45 4. Lakukan pengecekan, apakah panjang header pesan > penanda indeks Byte, a. Jika Ya ekstrasksi Byte header pesan, kemudian increment 1 untuk penanda indeks Byte. b. Jika Tidak lakukan pengecekan, apakah penanda pesan = masukan penanda pesan, i. Jika Ya konversi panjang pesan ke Integer. ii. Jika Tidak tampilkan pesan kesalahan. 5. Lakukan pengecekan, apakah pencacah pesan = panjang pesan, a. Jika Tidak ekstraksi Byte pesan, kemudian increment 1 untuk pencacah pesan. b. Jika Ya lakukan pengecekan, apakah kunci dekripsi = kunci enkripsi, i. Jika Ya dekripsi Byte cipher. ii. Jika Tidak tampilkan pesan kesalahan. 6. Tampilkan plaintext. 7. Selesai. Hasil dari proses ekstraksi adalah Byte cipher yang didekripsi menggunakan algoritma Rijndael dengan kunci simetris 128 bit, untuk menghasilkan plaintext. 4.3 Metode Pengujian Steganografi Teknik pengujian citra stego dilakukan dengan pendekatan kualitatif (subyektif) dan kuantitatif (obyektif). Sedangkan ukuran sampel plaintext untuk pengujian disesuaikan dengan kapasitas maksimal yang mampu disisipkan pada citra, selain itu juga dilakukan pengujian dengan plaintext dengan ukuran yang merata untuk masing masing algoritma penyisipan. Pengujian secara kualitatif bertujuan untuk menganalisa citra stego dengan melihat perubahan kualitas citra, pengujian dilakukan dengan cara pengamatan secara langsung hasil citra stego kemudian dibandingkan dengan citra asli dan dengan cara ekstraksi nilai Byte citra stego kemudian dibandingkan dengan hasil ekstraksi nilai Byte citra asli. Untuk pengamatan dilakukan dengan menggunakan visual manusia. Sedangkan

61 46 pengujian kualitatif bertujuan untuk mengukur secara objektif perubahan kualitas citra, jumlah pesan yang mampu disisipkan dan perubahan ukuran citra stego Pengujian kualitatif Safrizal dan Harjoko (2014), mengatakan pengujian kualitatif adalah menganalisa data berdasarkan hasil yang dinyatakan dalam bentuk uraian. Pada penelitian ini pengujian kualitatif dilakukan dengan cara subyektif. Artinya pengujian dikerjakan dengan pengamatan secara langsung berdasarkan kemampuan visual manusia untuk mendeteksi adanya perubahan. Adanya perubahan kualitas citra stego ditentukan oleh pengamat sendiri, tergantung dari persepsi visual pengamat. Adapun teknik untuk pengujian kualitatif (subyektif) dilakukan dengan pengamatan secara langsung terhadap citra asli dan citra stego, proses pengujian kualitatif dikerjakan sebagai berikut, 1. Melakukan pengolahan citra memanfaatkan tools freeware (stegdetect) untuk mendeteksi perubahan kualitas citra stego berdasarkan pengamatan dengan visual manusia. 2. Melakukan pengamatan nilai Byte citra stego, kemudian dibandingkan dengan nilai Byte citra asli untuk mendeteksi perubahan kualitas citra. Metode perbandingan tetap (constant comperative method) digunakan sebagai dasar dalam melakukan perbandingan citra stego yang dihasilkan dari algoritma MEoF dengan citra stego yang dihasilkan dari algoritma EoF dan MLSB. Perbandingan dilakukan untuk melihat keterkaitan antara pesan yang disisipkan pada sebuah citra dengan perubahan citra setelah disisipi pesan. Adapun tahapan dalam metode perbandingan tetap adalah, 1. Reduksi data Data yang digunakan untuk pengujian adalah citra stego dan citra bitmap. Pengamatan untuk perubahan kualitas citra akan menjadi fokus dalam pengujian ini.

62 47 2. Kategorisasi Citra yang digunakan untuk pengamatan adalah citra bitmap 24 bit dengan ukuran width modulo 4 = 0 dan citra yang ukuran width modulo Sintesisasi Melakukan pengamatan terhadap keterkaitan antara pesan yang disisipkan pada citra bitmap dan perubahan yang terjadi pada citra stego. 4. Menyusun hipotesa Hasil dari pengamatan ini dapat menjawab sebagian dari permasalahan pada penelitian ini Pengujian kuantitatif Pengujian kuantitatif untuk melakukan pengukuran secara obyektif masing masing algoritma dalam beberapa hal, diantaranya mengukur kemampuan citra menampung pesan, mengukur perubahan ukuran file dari pesan yang disisipi dan mengukur noise yang dihasilkan oleh citra stego. Dengan demikian ada 3 pengukuran obyektif yang dilakukan diantaranya, 1. Mengukur kemampuan citra untuk menampung pesan. 2. Mengukur noise citra stego dari masing masing algoritma. Pengukuran dilakukan dengan PSNR. 3. Mengukur perubahan ukuran file citra stego. Selanjutnya dari hasil pengukuran dilakukan analisis perbandingan antara algoritma MEoF dengan EoF dan MLSB. Sehingga dari hasil pengamatan dan pengukuran dapat menjawab permasalahan yang menjadi fokus penelitian ini. 4.4 Perancangan Antarmuka Penyisipan dan Ekstraksi Pesan Rancangan antarmuka sebagai desain untuk interaksi pengguna dengan sistem, antarmuka yang dirancang dari sisi pengguna yaitu desain pemasukan data yang akan diproses untuk menghasilkan citra stego dari masing masing algoritma. Selanjutnya merancang antarmuka dari sisi penerima yaitu untuk proses ekstraksi pesan pada citra stego. Antarmuka ekstraksi di desain agar

63 48 pengguna dapat dengan mudah melakukan proses ekstraksi pesan pada citra stego untuk menghasilkan plaintext. Dengan demikian perancangan antarmuka dapat dikelompokkan menjadi 2 bagian yaitu, rancangan untuk pemasukan data untuk proses penyisipan pesan dan rancangan pemasukan data untuk proses ekstraksi pesan. Untuk memasukan data penyisipan dan ekstraksi pesan antarmuka dirancang dengan menu drop down, Gambar 4.3 menunjukkan rancangan antarmuka yang digunakan untuk penyisipan dan ekstraksi pesan. Berdasarkan rancangan diatas maka terdapat 4 menu utama, adapun menu yang terdapat pada rancangan antarmuka terdiri dari : 1 File, memiliki sub menu sebagai berikut, a. Open Image, berfungsi mengarahkan lokasi drive penyimpanan file citra. b. Save Image berfungsi untuk menyimpan file citra stego. c. Save Image Info berfungsi untuk menyimpan file Byte citra stego. File Stegano Mode Action View Image Message to Hide Load Manually Maximum Bytes Count : xxxx Char Count : Byte Cipher Text Count : xxxx Key Encrypt Hide char Load Image Save Header Mark : MSE : xxxxxx PSNR : xxxxxx Proses Gambar 4.3 Rancangan antarmuka penyisipan/ekstraksi pesan 2 Stegano Mode, memiliki sub menu yang bersifat pilihan, adapun sub menu yang dapat dipilih sebagai berikut, a. End of File ketika memilih sub menu ini berarti pengguna memilih algoritma End of File untuk melakukan penyisipan pesan.

64 49 b. Modifikasi End of File ketika memilih sub menu ini berarti pengguna memilih algoritma Modifikasi End of File untuk penyisipan pesan. c. MLSB ketika memilih sub menu ini berarti pengguna memilih algoritma Modifikasi Least Significant Bit untuk melakukan sisip pesan. 3. Action, memiliki sub menu yang bersifat pilihan, adapun sub menu yang dapat dipilih sebagai berikut, a. Stegano yang berarti akan melakukan proses menyisipkan Byte / bit pesan pada citra. b. Exctract yang berarti akan melakukan proses ekstraksi Byte / bit pesan pada citra stego. 4. View, memiliki sub menu untuk menampilkan Byte plaintext dan Byte cipher, adapun sub menu untuk menu view sebagai berikut, a. Show Byte plaintext berarti akan menampilkan Byte plaintext. b. Show Byte ciphertext berarti akan menampilkan Byte cipher untuk setiap blok data. Selain menu drop down yang telah dijelaskan diatas, agar sistem dapat berfungsi dengan baik dalam proses sisip atau ekstraksi, pada halaman antarmuka terdapat beberapa komponen menjadi memasukan yang harus diisikan oleh pengguna sistem, diantarnya adalah : a. Message to Hide, terdapat 2 pilihan menggunakan radiobutton, fungsinya untuk memilih jenis Byte plaintext yang akan dienkripsi, plaintext berupa file teks atau mengetikkan pesan dari keyboard. b. Key encrypt, kunci simetris yang dimasukan oleh pengguna berfungsi untuk melakukan enkripsi plaintext ketika proses penyisipan pesan yang dikerjakan, sebaliknya key juga berfungsi untuk dekripsi Byte cipher ketika proses diekstraksi yang dikerjakan. c. Header Mark, penanda pesan yang dimasukan oleh pengguna sebagai penanda untuk pesan pada citra stego. Hasil dari proses penyisipan Byte cipher pada citra untuk masing masing algoritma akan menghasilkan citra stego dengan informasi sebagai berikut,

65 50 Jumlah Byte cipher yang akan disisipkan pada citra. Total Byte yang tersedia pesan citra. Total Byte cipher yang mampu disisipkan pada citra bitmap. Nilai MSE (Mean Square Error). Nilai PSNR (Peak Signal to Noise Ratio)

66 5 BAB V IMPLEMENTASI 5.1 Lingkungan Implementasi Tahapan yang telah dikerjakan pada rancangan sistem selanjutnya diimplementasikan dengan menggunakan bahasa pemrograman C#. Bahasa pemrograman C# dianggap mampu untuk mengimplementasikan hasil rancangan yang telah dikerjakan pada bab sebelumnya. 5.2 Algoritma MEoF (Modifikasi End of File) Kalkulasi lokasi penyisipan pesan Sesuai dengan penjelasan flowchart pada Bab IV Gambar 4.2 tentang penyisipan pesan pada citra bitmap menggunakan algoritma MEoF (Modifikasi End of File), proses tahap awal adalah mengkalkulasi ukuran Byte yang dapat digunakan pada citra untuk menyisipkan pesan. Gambar 5.1 menunjukkan method GetMaxBytesSteganoCount untuk mengkalkulasi ukuran Byte citra yang dapat digunakan untuk sisipkan pesan pada citra. public static int GetMaxBytesSteganoCount(ref Bitmap sourcebmp) 1. { 2. if (sourcebmp == null sourcebmp.pixelformat!= PixelFormat.Format24bppRgb) 3. { 4. return 0; 5. } 6. int width = sourcebmp.width; 7. int height = sourcebmp.height; 8. BitmapData bmpdata = sourcebmp.lockbits(new Rectangle(0, 0, width, height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb); 9. int stride = bmpdata.stride; 10. sourcebmp.unlockbits(bmpdata); 11. if (width % 4 == 0) 12. { 13. width--; 14. } 15. return (stride - (width * 3)) * height - TotalSteganoHeaderSize; ; 16. } Gambar 5.1 Kalkulasi lokasi penyisipan untuk ukuran width modulo 4 = 0 51

67 52 Pada Gambar 5.1 method GetMaxBytesSteganoCount pada baris 1-5 untuk pengecekan masukan citra atau format citra yang digunakan dalam menyisipkan pesan. Pada baris 6 14 jika format citra adalah 24 bit maka ambil ukuran width dan height dari citra, kemudian dicek dengan cara mengkalkulasi ukuran width modulo 4, jika hasilnya = 0 maka piksel terakhir digunakan sebagai lokasi untuk menyisipkan pesan. Ukuran lokasi yang dapat digunakan untuk menyisipkan pesan dikalkulasi menggunakan persamaan Lockbit data citra bitmap Method GetBitmapData digunakan sebagai langkah awal untuk proses penyisipan pesan pada citra. Memori buffer akan digunakan untuk menampung nilai Byte citra dan pesan. Dengan demikian alokasikan memori buffer sesuai dengan ukuran citra asli Untuk itu informasi yang dibutuhkan adalah ukuran Byte citra, untuk width, height dan stride. Gambar 5.2 menunjukkan proses pengalokasian memori buffer, 1. private void GetBitmapData() 2. { 3. if (_steganomode == ESteganoMode.Hide) 4. { 5. _sourcebitmap = new Bitmap(_sourceFileName); 6. _usedbitmap = MakeNewUsedBitmap(ref _sourcebitmap, IsBitmapWidthValid BitmapData bmpdata = _usedbitmap.lockbits(new Rectangle(0, 0, _usedbitmap.width, _usedbitmap.height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb); 7. _widthimage = _usedbitmap.width; 8. _widthbyte = bmpdata.stride; 9. heightimage = _usedbitmap.height; 10. _usedbitmap.unlockbits(bmpdata); 11. using (MemoryStream memstream = new MemoryStream()) 12. { 13. _usedbitmap.save(memstream, ImageFormat.Bmp); 14. BytesResultBitmap = memstream.getbuffer(); 15. } 16. } 17. MaxBytesStegano = (_widthbyte - (_widthimage * 3)) * _heightimage - TotalSteganoHeaderSize; 18. } Gambar 5.2 Lockbit nilai byte citra

68 53 Method GetBitmapData Gambar 5.2 pada baris 1 10 berfungsi untuk lockbit Byte citra agar lokasi memori yang digunakan untuk menanpung nilai Byte citra tidak digunakan untuk proses lainnya dan mengambil informasi ukuran untuk width, height dan stride. Sedangkan baris berfungsi mengalokasikan memori buffer untuk lokasi menyalin nilai Byte citra dan pesan. Pada baris untuk mengkalkulasi ukuran padding yang dapat digunakan untuk menyisipkan pesan pada citra. Padding untuk menyisipkan pesan pada citra yang memiliki ukuran width modulo 4 0, proses untuk kalkulasi ukuran padding menggunakan persamaan Pengambilan header pesan Untuk algoritma MEoF header pesan dialokasikan berukuran 5 Byte dengan rincian 3 Byte untuk penanda pesan dan 2 Byte untuk informasi panjang pesan yang disisipkan pada citra. Pengambilan header pesan dikerjakan pada method GetBytesHeader dengan parameter headertext, selanjutnya header pesan di-encoding untuk mendapatkan nilai Byte dari header pesan. Gambar 5.3 menunjukkan proses pengambilan header pesan dan pesan selanjutnya diencoding ke Byte. static byte[] GetBytesHeader(string headertext) 1. { 2. return Encoding.ASCII.GetBytes(headerText); 3. } 4. static byte[] GetBytesHeader(string headertext) 5. { 6. return Encoding.ASCII.GetBytes(headerText); 7. } 8. void GetBytesBitmapStegano() 9. { 10. GetBitmapData(); 11. IsSuccess = false; if (BytesResultBitmap == null) 14. { 15. AppMessageBox.ErrorMessage("Format image salah."); 16. return; } 17. if (BytesMessage.Length > MaxBytesStegano) 18. { 19. AppMessageBox.ErrorMessage(ResourceMessage.PesanTerlaluPanjang); 20. return; } Gambar 5.3 Pengambilan header pesan

69 54 Method GetBytesHeader pada Gambar 5.3 baris 1 7 berfungsi untuk mengambil header pesan selanjutnya header pesan di-encoding menjadi nilai Byte. Proses pengambilan menggunakan method GetBytesHeader dengan parameter headertext. Baris 8 20 dengan method GetBytesBitmapStegano untuk melakukan pengecekan apakah citra yang digunakan dapat disisipkan pesan. proses pengecekan ditunjukkan pada baris ke 17, adapun prosesnya dikerjakan dengan membandingkan lokasi citra yang dapat disisipi pesan dibandingkan dengan panjang pesan yang akan disisipkan. Jika panjang pesan lebih panjang dibandingkan dengan ukuran lokasi Byte untuk penyisipan maka tampilkan pesan kesalahan Pengukuran panjang pesan Sebelum proses Gambar 5.3 baris ke 17 dikerjakan, maka dibutuhkan informasi panjang pesan yang akan disisipkan pada citra. Informasi panjang pesan dapat diperoleh setelah pengguna memasukan pesan pada text editor. Panjang pesan yang dimasukan pada text editor dikalkulasi menfaatkan fungsi Length. Gambar 5.4 menunjukkan proses pengukuran panjang pesan yang dimasukan pada text editor oleh pengguna, private void messagetextbox_textchanged(object sender, EventArgs e) 1. { 2. TextBox textbox = sender as TextBox; 3. if (textbox!= null) 4. { 5. int charcount = textbox.text.length; 6. charcountlabel.text = string.format("character Count : {0}", charcount); 7. } 8. } Gambar 5.4 Pengukuran panjang pesan Method messagetextbox_textchanged pada baris 1 8 berfungsi untuk mengukur panjang pesan yang telah dimasukan oleh pengguna, pengukuran dapat dikerjakan jika editor pesan tidak bernilai null, jika text editor tidak bernilai null maka Gambar 5.4 baris ke 5 yaitu pengukuran panjang pesan dikerjakan.

70 Enkripsi pesan Sebelum pesan disisipkan pada citra, dimasukan plaintext ke text editor kemudian plaintext dienkripsi dengan algoritma Rijndael menggunakan kunci 128 bit. Proses untuk enkripsi menggunakan function encrypt yang telah disediakan oleh tools C#. Gambar 5.5 menunjukkan proses enkripsi plaintext menggunakan algoritma Rijndael. public static class MyRijndael 1. { 2. public static byte[] BytesKey { get; set; } 3. private static readonly byte[] BytesIv = new byte[16]; 4. public static byte[] EncryptStringToBytes(string plaintext) 5. { 6. if (plaintext == null plaintext.length <= 0) 7. throw new ArgumentNullException("plainText"); 8. if (BytesKey == null BytesKey.Length <= 0) 9. throw new ArgumentNullException("BytesKey"); 10. if (BytesIv == null BytesIv.Length <= 0) 11. throw new ArgumentNullException("BytesIv"); 12. byte[] encrypted; 13. using (Rijndael myrijndael = Rijndael.Create()) 14. { 15. myrijndael.key = BytesKey; 16. myrijndael.iv = BytesIv; 17. myrijndael.padding = PaddingMode.Zeros; 18. ICryptoTransform encryptor = myrijndael.createencryptor(myrijndael.key, myrijndael.iv); 19. using (MemoryStream msencrypt = new MemoryStream()) 20. { 21. using (CryptoStream csencrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) 22. { 23. using (StreamWriter swencrypt = new StreamWriter(csEncrypt)) 24. { 25. swencrypt.write(plaintext); 26. } 27. encrypted = msencrypt.toarray(); 28. } 29. } 30. } 31. return encrypted; 32. } Gambar 5.5 Enkripsi pesan dengan Rijndael Class MyRijndael adalah class yang telah disedikan oleh C# untuk melakukan enkripsi karakter ASCII menjadi Byte cipher. Gambar 5.5 baris 1-3 adalah proses enkripsi yang di-set menggunakan kunci 128 bit, dengan demikian untuk setiap blok pesan akan dibentuk menjadi 16 Byte. Baris 4 12 adalah proses enkripsi pesan yang dilakukan dengan method EncryptStringToBytes

71 56 menggunakan parameter plaintext. sebelum proses enkripsi terlebih dahulu dilakukan pengecekan terhadap masukan yang dibutuhkan dalam proses enkripsi pesan, diantaranya plaintext (pesan) dan kunci enkripsi pesan. Proses enkripsi dapat dilakukan jika plaintext dan kunci enkripsi pesan tidak bernilai null. Baris menunjukkan proses enkripsi pesan dengan CryptoStream pada C#, adapun hasil dari enkripsi pesan adalah Byte cipher yang ditampung pada variabel Array Membuat citra hasil Proses ini dilakukam dengan menyalin Byte citra asli dan pesan ke memori buffer, Gambar 5.6 menujukkan proses menyalin Byte citra asli dan pesan, private static Bitmap MakeNewUsedBitmap(ref Bitmap source, bool isvalidbitmap) 1. { 2. if (source == null) 3. return null; 4. int newwidth = source.width; 5. int newheight = source.height; 6. if (isvalidbitmap == false) 7. newwidth = source.width - 1; 8. Bitmap result = new Bitmap(newWidth, newheight, source.pixelformat); 9. BitmapData bmpdatasrc = source.lockbits(new Rectangle(0, 0, source.width, source.height), ImageLockMode.ReadOnly, source.pixelformat); 10. BitmapData bmpdatadst = result.lockbits(new Rectangle(0, 0, result.width, result.height), ImageLockMode.WriteOnly, result.pixelformat); 11. int stride = bmpdatasrc.stride; 12. int height = source.height; 13. int width = source.width; 14. unsafe 15. { 16. for (int i = 0; i < height; i++) 17. { 18. byte* psrc = (byte*)(bmpdatasrc.scan0 + i * bmpdatasrc.stride); 19. byte* pdst = (byte*)(bmpdatadst.scan0 + i * bmpdatadst.stride); 20. for (int j = 0; j < stride; j++) 21. { 22. pdst[j] = psrc[j]; 23. } 24. }} 25. source.unlockbits(bmpdatasrc); 26. result.unlockbits(bmpdatadst); 27. return result; 28. } Gambar 5.6 Citra tanpa padding

72 57 Method MakeNewUsedBitmap pada Gambar 5.6 memiliki 2 parameter yaitu Bitmap untuk Byte citra asli dan Boolean untuk mengecek status dari citra bitmap. Proses dari method ini menghasilkan bitmap. Selanjutnya Gambar 5.6 Baris 1-10 berfungsi untuk menghasilkan citra hasil dengan cara menyalin nilai Byte citra asli ke citra hasil sesuai dengan indeks baris dan indeks kolom, proses ini dapat dikerjakan dengan kondisi nilai Byte citra null. Selanjutnya untuk kondisi Gambar 5.1 maka 1 piksel width citra yang terakhir akan dijadikan sebagai lokasi untuk menyisipkan pesan, Proses penyalinan Byte citra asli ke citra hasil ditunjukkan pada Gambar 5.6 baris Penyisipan pesan Berdasarkan hasil yang diperoleh pada Gambar 5.3 jika kondisi terpenuhi maka penyisipan pesan dapat dilakukan per Byte untuk setiap lokasi penyisipan. Pesan yang disisipkan pertama adalah header pesan sebesar 5 Byte, dengan dialokasi 3 Byte sebagai penanda pesan dan 2 Byte sebagai informasi panjang pesan. Selanjutnya penyisipan pesan pada lokasi penyisipan pesan/padding, pesan yang disisipkan berupa Byte cipher. Penyisipan pesan dilakukan sebesar panjang Byte pesan pada padding. Untuk citra dengan ukuran width modulo 4 = 0 Byte pesan disisipkan pada piksel terakhir per width sebesar 3 Byte sebesar panjang pesan, Gambar 5.7 baris ke 14 menunjukkan kondisi penyisipan header pesan pada citra bitmap. Berdasarkan Gambar 5.7 pada baris 1 6 berfungsi untuk mengambil nilai String penanda pesan untuk dikonversi ke Byte, selanjutnya mengambil panjang pesan kemudian dikonversi ke String biner untuk disimpan divariabel Array, bit bit pada variabel Array selanjutnya dikonversi ke Byte, berikutnya nilai untuk Byte penanda pesan dan Byte panjang pesan disimpan di variabel Array. Selanjutnya Gambar 5.7 baris 7 17 adalah proses penyisipan header pesan, lokasi yang dibutuhkan untuk menyisipkan pesan sebesar indeks pada variabel Array yang menyimpan header pesan. Penyisipan header pesan akan dikerjakan sepanjang kondisi pengecekan indexbytecounter <

73 58 TotalSteganoHeaderSize, kondisi ini ditunjukkan pada Gambar 5.7 baris ke 14, sedangkan lokasi untuk menyisipkan Byte pesan yang sedang dikerjkan ditunjukkan pada Gambar 5.7 baris ke 16. void GetBytesBitmapStegano() 1. { 2. GetBitmapData(); 3. IsSuccess = false; 4. if (BytesResultBitmap == null) { 5. AppMessageBox.ErrorMessage("Format image salah."); 6. return; } 7. if (BytesMessage.Length > MaxBytesStegano) 8. { 9. AppMessageBox.ErrorMessage(ResourceMessage.PesanTerlaluPanjang); 10. return; } 11. int messagelength = BytesMessage.Length; 12. byte[] bytesheader = GetBytesHeader(SteganoHeaderText); 13. string stringmessagelength = Convert.ToString(messageLength, 2).PadLeft(16, '0'); 14. byte[] bytesmessagelength = General.GetByteArrayFromBinaryString(stringMessageLength); 15. byte[] bytescompleteheader = new byte[totalsteganoheadersize]; 16. Buffer.BlockCopy(bytesHeader, 0, bytescompleteheader, 0, SteganoHeaderText.Length); 17. Buffer.BlockCopy(bytesMessageLength, 0, bytescompleteheader, SteganoHeaderText.Length, bytesmessagelength.length); 18. int indexbytemessage = 0; 19. int indexbytecounter = 0; 20. bool alreadydone = false; 21. for (int i = 0; i < _heightimage; i++) { 22. for (int j = _widthimage * 3; j < _widthbyte; j++) { 23. if (indexbytecounter < TotalSteganoHeaderSize) { 24. BytesResultBitmap[BitmapHeaderSize Tabel 5.6 Penyisipan byte pesan + (_widthbyte * i) + j] = bytescompleteheader[indexbytecounter]; 25. } 26. else if (indexbytemessage < BytesMessage.Length){ 27. BytesResultBitmap[BitmapHeaderSize + (_widthbyte * i) + j] = BytesMessage[indexByteMessage]; 28. indexbytemessage++; 29. } 30. if (indexbytemessage == BytesMessage.Length) 31. { 32. alreadydone = true; 33. IsSuccess = true; 34. break; 35. } 36. indexbytecounter++; 37. } 38. if (alreadydone){ 39. break; 40. } 41. } 42. BytesMessage = null; 43. } Gambar 5.7 Penyisipan pesan

74 59 Selanjutnya Gambar 5.7 baris 1 10 berfungsi untuk mengecek sebelum dilakukan penyisipan pesan, pengecekan dengan cara membandingkan Byte citra yang menjadi lokasi penyisipan pesan terhadap panjang pesan yang akan disisipkan. Selanjutnya baris untuk mengambil data stegano yang akan disisipkan pada citra. Berikutnya baris berfungsi untuk menyisipkan pesan, jika kondisi pada Gambar 5.7 baris ke - 22 belum terpenuhi maka penyisipan pesan pada citra bitmap dikerjakan. Proses penyisipan Byte pesan yang sedang dikerjakan ditunjukkan pada Gambar 5.7 baris ke 27. Setiap menyisipkan header pesan dan Byte pesan nilai counter di-increment 1. Selanjutnya pada Gambar 5.7 baris berfungsi untuk pengecekan kondisi penyisipan yang telah dikerjakan, penyisipan Byte pesan akan selesai dikerjakan jika nilai indeks penyisipan pesan telah sama dengan ukuran Byte pesan (indexbytemessage == BytesMessage.Length), kondisi ini ditunjukkan pada Gambar 5.7 barism 30. Selama kondisi belum terpenuhi proses penyisipan Byte pesan akan dikerjakan. Proses increment indeks Byte pesan tunjukkan pada Gambar 5.7 baris ke Proses stegano Setelah proses Gambar 5.7 dikerjakan berikutnya dilakukan pengecekan untuk mengetahui keberhasilan penyisipan pesan pada citra hasil. Gambar 5.8 menunjukkan proses pengecekan status menyisipkan pesan, public void DoStegano() 1. { 2. GetBytesBitmapStegano(); 3. if (IsSuccess) 4. { 5. IsSuccess = false; 6. if (BytesResultBitmap!= null && BytesResultBitmap.Length > 0) 7. { 8. IsSuccess = true; 9. } 10. } 11. } Gambar 5.8 Proses stegano

75 60 Proses stegano dinyatakan berhasil setelah Byte citra, header pesan dan Byte pesan disalin atau tidak bernilai null dan panjang Byte citra hasil > 0, proses pengecekan keberhasilan proses stegano ditunjukkan pada Gambar 5.8 baris ke 7, jika kondisi terpenuhi maka proses penyisipan pesan pada citra berhasil. Gambar 5.8 baris 1 2 pada method DoStegano terdapat method GetBytesBitmapStegano merupakan method untuk menyalin Byte citra asli dan menyisipkan pesan ke citra hasil, hasil dari proses method ini selanjutnya dicek dengan kondisi citra yang dihasilkan tidak bernilai null dan panjang Byte citra hasil > Ekstraksi Pesan Ekstraksi bertujuan untuk mengambil pesan pada citra stego, untuk proses ekstraksi dibutuhkan masukan citra stego, keluaran dari proses ekstraksi menghasilkan Byte pesan. Byte Pesan yang dihasilkan selanjutnya didekripsi menggunakan algoritma Rijndael dengan kunci simetris 128 bit, untuk proses dekripsi membutuhkan masukan kunci yang nilainya sama dengan kunci enkripsi. Proses dekripsi Byte pesan akan menghasilkan keluaran plaintext. Ekstraksi dilakukan dengan 2 tahap, pertama ekstraksi Byte header pesan dan yang kedua ekstraksi Byte pesan Ekstraksi header pesan Header pesan pada citra stego terdiri dari Byte penanda pesan dan Byte panjang pesan, dengan alokasi maksimum 10 Byte untuk penanda pesan dan 2 Byte untuk panjang pesan pada citra stego. Proses ekstraksi header pesan dengan cara mengambil nilai Byte untuk setiap indeks baris dari Byte citra stego mulai awal padding sepanjang stride sebanyak Byte header pesan. Proses ekstraksi header pesan ditunjukkan pada Gambar 5.9. Gambar 5.9 baris 1-6 method ExtractSteganoImageToByteArray berfungsi mengekstraksi pesan, untuk dapat melakukan ekstraksi maka sebagai tahap awal dilakukan proses pengambilan pesan pada citra stego, proses ini dikerjakan oleh method GetBitmapData. Selanjutnya indeks nilai Byte citra stego

76 61 yang berisi header pesan diekstraksi kemudian hasil ekstraksi ditampung pada variabel Array, proses ekstraksi Byte header pesan terdiri dari ekstraksi Byte penanda pesan dan Byte panjang pesan. Untuk proses ekstraksi Byte penanda pesan tampilkan pada Gambar 5.9 baris Setiap indeks Byte penanda pesan yang diekstraksi di-increment 1, proses ini dikerjakan sesuai ukuran Byte penanda pesan. public byte[] ExtractSteganoImageToByteArray(string headertext) { 1. GetBitmapData(); 2. int indexbytecounter = 0; 3. TotalSteganoHeaderSize = headertext.length + 2; 4. SteganoHeaderText = headertext; 5. byte[] bytesheader = new byte[totalsteganoheadersize]; 6. bool isdone = false; 7. for (int i = 0; i < _heightimage; i++) 8. { 9. for (int j = _widthimage * 3; j < _widthbyte; j++) 10. { 11. if (indexbytecounter < TotalSteganoHeaderSize) 12. bytesheader[indexbytecounter] = BytesResultBitmap[BitmapHeaderSize + (_widthbyte * i) + j]; 13. else 14. { 15. isdone = true; 16. break; } 17. indexbytecounter++; } 18. if (isdone) { 19. break; } } Gambar 5.9 Ekstraksi penanda pesan Konversi hasil header pesan Setelah mengekstraksi Byte penanda pesan, maka hasil ekstraksi dibandingkan dengan Byte masukan penanda pesan, jika Byte penanda pesan bernilai sama dengan nilai Byte masukan penanda pesan maka proses selanjutnya ekstraksi panjang pesan. Sebaliknya jika Byte hasil ekstraksi penanda pesan tidak sama dengan masukan Byte penanda pesan maka tampilkan pesan kesalahan. Gambar 5.10 menunjukkan proses ekstraksi untuk panjang pesan, Gambar 5.10 pada baris 1 12 menunjukkan proses pengecekan hasil ekstraksi untuk penanda pesan, jika penanda pesan dicek bernilai benar maka dapat melanjutkan proses ekstraksi panjang pesan. Proses ekstraksi panjang pesan ditunjukkan pada baris ke 4 8, ekstraksi dilakukan dengan mengkonversi Byte panjang pesan ke String biner dengan format 8 bit per Byte, kemudian hasil

77 62 ekstraksi bit bit tersebut dikonvesi ke Integer, proses konversi ditunjukkan pada baris ke if (tempheadertext!= SteganoHeaderText) { 2. AppMessageBox.ErrorMessage(ResourceMessage.BukanFileStegano); 3. return null; } 4. byte[] bytesmessagelength = new byte[2]; 5. Buffer.BlockCopy(bytesHeader, SteganoHeaderText.Length, bytesmessagelength, 0, 2); 6. string binarymessagelength = string.empty; 7. for (int i = 0; i < bytesmessagelength.length; i++) 8. binarymessagelength += Convert.ToString(bytesMessageLength[i], 2).PadLeft(8, '0'); 9. int messagelength = Convert.ToInt32(binaryMessageLength, 2) + TotalSteganoHeaderSize; 10. int indexbytemessage = 0; 11. byte[] bytesmessage = new byte[messagelength]; 12. isdone = false; Gambar 5.10 Konversi hasil header pesan Ekstraksi pesan Ekstraksi pesan dapat dilakukan setelah proses ekstraksi panjang pesan dikerjakan, karena panjang pesan menjadi batasan dalam mengektraksi Byte pesan. Setiap Byte pesan hasil ekstraksi disimpan pada variabel Array penampung pesan. Proses ekstraksi pesan dikerjakan dari indeks yang terakhir digunakan untuk ekstraksi + 1. Gambar 5.11 menunjukkan proses ekstraksi Byte pesan pada citra stego. 1. for (int i = 0; i < _heightimage; i++) { 2. for (int j = _widthimage * 3; j < _widthbyte; j++) { 3. if (indexbytemessage < messagelength) 4. bytesmessage[indexbytemessage] = BytesResultBitmap[54 + (_widthbyte * i) + j]; 5. indexbytemessage++; 6. if (indexbytemessage == messagelength) 7. { 8. isdone = true; 9. break; 10. } 11. } 12. if (isdone) { 13. break; 14. } } 15. byte[] bytesresult = new byte[bytesmessage.length - TotalSteganoHeaderSize]; 16. Buffer.BlockCopy(bytesMessage, TotalSteganoHeaderSize, bytesresult, 0, bytesresult.length); 17. return bytesresult; 18. } Gambar 5.11 Ekstraksi pesan

78 63 Gambar 5.11 baris 1 18 berfungsi mengekstraksi Byte pesan pada citra stego. Sebelum ekstraksi Byte pesan dilakukan pengecekan untuk mengetahui kondisi jumlah indeks counter Byte pesan yang telah diekstraksi. Kondisi pengecekan ditunjukkan pada Gambar baris ke - 6. Jika nilai indeks counter belum sama dengan panjang maka kerjakan proses ekstraksi Byte pesan sampai jumlah indeks counter Byte pesan sama dengan panjang pesan. Setiap proses ekstraksi Byte pesan dikerjakan maka increment 1 untuk indeks counter pesan. Selanjutnya kembali dilakukan pengecekan untuk jumlah indeks counter. Jika jumlah indeks counter telah sama dengan panjang pesan maka proses ekstraksi selesai, proses ini ditunjukkan pada Gambar 5.11 baris ke Setiap Byte pesan yang diekstraksi hasilnya akan disimpan pada variabel byteresult dalam bentuk Array. Proses penyimpanan Byte hasil ekstraksi ditunjukkan pada Gambar 5.11 baris Algoritma End of File (EoF) Algoritma EoF menyisipkan pesan dengan cara langsung pada akhir file. pesan yang disisipkan pada akhir file akan memiliki tanda khusus sebagai pengenal awal dan akhir dari Byte pesan yang disisipkan pada citra stego. Penanda awal pesan dikenal dengan penanda pesan, penanda pesan berupa karakter ASCII yang dialokasi berukuran maksimum 10 Byte. Selanjutnya ukuran pesan dialokasikan sebesar 4 Byte. Penanda pesan dan ukuran pesan disisipkan pada akhir pesan citra stego. penanda pesan dan ukuran pesan disebut sebagai header pesan. Pada algoritma EoF header pesan disisipkan diakhir Byte pesan Inisialisasi algoritma EoF Inisialiasi dilakukan untuk menanpung Byte citra dan pesan yang akan disalin pada citra hasil. Adapun header pesan terdiri dari penanda pesan yang dimasukan oleh pengguna dengan ukuran maksimum 10 Byte dan ukuran informasi pesan sebesar 7 Byte. Gambar 5.12 menunjukkan inisialisasi untuk algoritma EoF,

79 64 1. private const int BitmapHeaderSize = 54; 2. private int _widthimage; 3. private int _widthbyte; 4. private int _heightimage; 5. private int newheightimage; 6. const string SteganoHeaderText = ""; 7. private const int TotalSteganoHeaderSize = 7; Gambar 5.12 Pembuatan citra hasil Citra hasil Citra hasil berfungsi untuk menampung nilai Byte citra asli dan pesan, citra hasil merupakan citra stego yang dibentuk dari menyalin nilai Byte citra asli dan pesan pada memori buffer kemudian hasil pada memori buffer disimpan dalam format bitmap. Gambar 5.13 menunjukkan proses pengalokasian memori untuk menampung Byte citra dan pesan. private static Bitmap MakeNewUsedBitmap(ref Bitmap source, int newheight) 1. { 2. if (source == null) 3. return null; 4. int newwidth = source.width; 5. Bitmap result = new Bitmap(newWidth, newheight, source.pixelformat); 6. BitmapData bmpdatasrc = source.lockbits(new Rectangle(0, 0, source.width, source.height), ImageLockMode.ReadOnly, source.pixelformat); 7. BitmapData bmpdatadst = result.lockbits(new Rectangle(0, 0, result.width, result.height), ImageLockMode.WriteOnly, result.pixelformat); 8. int stride = bmpdatasrc.stride; 9. int height = source.height; 10. int width = source.width; 11. unsafe 12. { 13. for (int i = 0; i < height; i++) 14. { 15. byte* psrc = (byte*)(bmpdatasrc.scan0 + i * bmpdatasrc.stride); 16. byte* pdst = (byte*)(bmpdatadst.scan0 + i * bmpdatadst.stride); 17. for (int j = 0; j < stride; j++) 18. { 19. pdst[j] = psrc[j]; 20. } 21. } 22. } 23. source.unlockbits(bmpdatasrc); 24. result.unlockbits(bmpdatadst); 25. return result; 26. } Gambar 5.13 Citra hasil

80 Kalkulasi kapasitas pesan Pada algoritma EoF Byte pesan yang mampu disisipkan pada citra berdasarkan struktur header citra bitmap untuk ukuran height dan width adalah 4 Byte, Gambar 5.14 menunjukkan proses menentukan kapasitas pesan yang mampu disisipkan pada citra, public static int GetMaxBytesSteganoCount(ref Bitmap sourcebmp) { 1. if (sourcebmp == null sourcebmp.pixelformat!= PixelFormat.Format24bppRgb){ 2. return 0;} 3. int width = sourcebmp.width; 4. int height = sourcebmp.height; 5. BitmapData bmpdata = sourcebmp.lockbits(new Rectangle(0, 0, width, height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb); 6. int stride = bmpdata.stride; 7. sourcebmp.unlockbits(bmpdata); 8. return (int.maxvalue - sourcebmp.height) - TotalSteganoHeaderSize;} Gambar 5.14 Kalkulasi kapasitas pesan Gambar 5.14 pada baris 1 8 untuk mengecek Byte citra dan format citra, jika hasil pengecekan bernilai null maka Byte pesan yang dapat disisipkan sebesar nol. Sebaliknya jika kondisi terpenuhi, ambil ukuran width dan height citra, selanjutnya hitung kapasitas pesan yang dapat disisipkan pada citra. Pada baris 10 adalah proses untuk menghitung kapasitas pesan yang dapat disisipkan pada citra Salin byte citra dan sisip pesan Proses penyisipan pesan pada citra dilakukan dengan cara menyalin nilai Byte citra ke citra hasil sesuai dengan posisi indeks dari Byte citra asli. Setelah semua Byte citra disalin selanjutnya menyisipkan pesan, penyisipan dimulai dari setelah akhir Byte citra. Pesan terdiri dari header pesan dan Byte cipher. Ukuran header pesan terdiri dari penanda pesan untuk tanda awal keberadaan pesan pada citra stego. Pesan yang disisipkan pada citra adalah karakter ASCII yang dienkripsi dengan algoritma Rijndael menggunakan kunci 128 bit. Gambar 5.15

81 66 adalah method untuk mengalokasikan Byte citra, Byte cipher dan Byte header pesan ke memori buffer. void GetBytesBitmapStegano() 1. { 2. GetBitmapData(); 3. IsSuccess = false; 4. if (BytesResultBitmap == null) 5. { 6. AppMessageBox.ErrorMessage("Format image salah."); 7. return; 8. } 9. if (BytesMessage.Length > MaxBytesStegano){ 10. AppMessageBox.ErrorMessage(ResourceMessage.PesanTerlaluPanjang); 11. return; 12. } 13. int messagelength = BytesMessage.Length; 14. byte[] bytesheader = GetBytesHeader(SteganoHeaderText); 15. string stringmessagelength = Convert.ToString(messageLength, 2).PadLeft(32, '0'); 16. byte[] bytesmessagelength = 17. General.GetByteArrayFromBinaryString(stringMessageLength); 18. byte[] bytescompleteheader = new byte[totalsteganoheadersize]; 19. Buffer.BlockCopy(bytesHeader, 0, bytescompleteheader, 0, SteganoHeaderText.Length); 20. Buffer.BlockCopy(bytesMessageLength, 0, bytescompleteheader, SteganoHeaderText.Length, bytesmessagelength.length); 21. byte[] bytesmessagetohide = new byte[messagelength + TotalSteganoHeaderSize]; 22. Buffer.BlockCopy(bytesCompleteHeader, 0, bytesmessagetohide, 0, bytescompleteheader.length); 23. Buffer.BlockCopy(BytesMessage, 0, bytesmessagetohide, bytescompleteheader.length, messagelength); 24. Buffer.BlockCopy(bytesMessageToHide, 0, BytesResultBitmap, BitmapHeaderSize, bytesmessagetohide.length); 25. IsSuccess = true; 26. BytesMessage = null; 27. } Gambar 5.15 Salin byte citra dan sisip pesan Gambar 5.15 baris 1 12 berfungsi untuk menjalankan method GetBitmapData, method ini berfungsi untuk mengambil data citra yang akan digunakan sebagai media untuk menampung pesan, kemudian berdasarkan informasi data citra dilakukan pengecekan untuk format citra dan panjang pesan yang dapat ditampung pada citra tersebut. Jika semua kondisi pengecekan terpenuhi maka alokasikan semua Byte citra, Byte pesan dan Byte header pesan ke memori buffer, proses pengalokasian masing - masing dari nilai Byte tersebut ditunjukkan pada baris

82 Ekstraksi pesan Ekstraksi pesan pada algoritma EoF bertujuan untuk mengambil Byte pesan pada citra stego, proses ekstraksi pada algoritma EoF dilakukan dengan tahapan mengekstraksi header pesan, karena header pesan sebagai penanda awal dan akhir dari pesan yang ada pada citra stego. Header pesan terletak pada akhir citra stego, dengan demikian proses ekstraksi dimulai dari Byte yang paling akhir. Gambar 5.16 menunjukkan proses ekstraksi pesan, public byte[] ExtractSteganoImageToByteArray() { 1. GetBitmapData(); 2. byte[] bytesheader = new byte[totalsteganoheadersize]; 3. Buffer.BlockCopy(BytesResultBitmap, BitmapHeaderSize, bytesheader, 0, TotalSteganoHeaderSize); 4. byte[] bytesteganoheadertext = new byte[steganoheadertext.length]; 5. Buffer.BlockCopy(BytesResultBitmap, BitmapHeaderSize, bytesteganoheadertext, 0, bytesteganoheadertext.length); 6. string tempheadertext = Encoding.ASCII.GetString(byteSteganoHeaderText); 7. if (tempheadertext!= SteganoHeaderText) 8. { 9. AppMessageBox.ErrorMessage(ResourceMessage.BukanFileStegano); 10. return null; 11. } 12. byte[] bytesmessagelength = new byte[2]; 13. Buffer.BlockCopy(bytesHeader, 3, bytesmessagelength, 0, 2); 14. string binarymessagelength = string.empty; 15. for (int i = 0; i < bytesmessagelength.length; i++) 16. binarymessagelength += Convert.ToString(bytesMessageLength[i], 2).PadLeft(8, '0'); 17. int messagelength = Convert.ToInt32(binaryMessageLength, 2) ; 18. byte[] bytesmessage = new byte[messagelength]; 19. Buffer.BlockCopy(BytesResultBitmap, BitmapHeaderSize + TotalSteganoHeaderSize, bytesmessage, 0, messagelength); 20. return bytesmessage; 21. }. Gambar 5.16 Ekstraksi pesan algoritma EoF Gambar 5.16 pada baris 1 11 adalah proses ekstraksi header pesan pada citra stego menggunakan method GetBitmapData untuk mengambil Byte citra stego, selanjutnya alokasikan Byte Array sepanjang indeks panjang penanda pesan untuk menampung hasil ekstraksi nilai Byte penanda pesan, selanjutnya ekstraksi penanda pesan, kemudian dilakukan pengecekan terhadap hasil ekstraksi, jika hasil ekstraksi nilai Byte penanda sama dengan masukan nilai Byte penanda pesan ketika melakukan penyisipan maka dilanjutkan dengan mengekstraksi nilai Byte

83 68 panjang pesan sebesar 7 Byte. Selanjutnya nilai Byte dikonversikan ke String biner dalam format 8 bit per Byte, nilai String biner yang dihasilkan selanjutnya dikonversikan ke Integer. Tahapan berikutnya adalah mengekstraksi nilai Byte pesan dengan cara meng-copy nilai Byte pesan pada citra stego dimulai dari Byte yang terakhir digunakan untuk dalam proses ekstraksi, hasil dari proses ekstraksi nilai Byte pesan dialokasikan ke variabel Array yang menjadi penanpung pesan, proses ekstraksi dikerjakan sebesar panjang pesan. Sebaliknya jika nilai penanda pesan tidak sama dengan nilai masukan penanda pesan ketika menyisipkan pesan maka tampilkan pesan kesalahan. 5.5 Algoritma Modifikasi Least Significant Bit (MLSB) Steganografi dengan menggunakan MLSB diartikan sebagai penyisipan bit - bit pesan ke citra bitmap sebagai media penampung pesan. Untuk menyisipkan pesan dibutuhkan data masukan antara lain, citra sebagai media untuk menanpung pesan, pesan berupa plaintext berkarakter ASCII, penanda pesan untuk mengenali pesan pada citra stego dan kunci simetris 128 bit sebagai kunci untuk enkripsi plaintext untuk menghasilkan Byte cipher. Adapun modifikasi pada algoritma MLSB adalah menyisipkan bit stegano tidak pada setiap Byte citra melainkan bit bit stgano disisipkan pada Byte citra yang memiliki nilai Byte 254 atau 255. Tahapan untuk penyisipan bit - bit pesan di mulai dengan mengecek jumlah Byte citra yang memiliki nilai Byte citra bernilai 254 atau 255 pada setiap indeks width dan height untuk citra yang akan digunakan sebagai media penampung bit stegano. Kemudian dilakukan pengukuran jumlah pesan yang disisipkan pada Byte citra. Selanjutnya hasil pengukuran jumlah dari masing masing masukan dibandingkan, jika hasil perbandingan jumlah Byte stagano lebih besar maka proses penyisipan tidak dapat dikerjakan, sebalikanya jika ukuran pesan lebih kecil dari jumlah Byte citra yang bernilai 254 atau 255 maka proses penyisipan dikerjakan.

84 Mencacah jumlah byte citra yang mampu disisipi pesan Method GetBytesSteganoBitmapMlsb berfungsi untuk mencacah jumlah Byte citra yang bernilai Byte 254 atau 255. Tujuannya untuk mengkalkulasi jumlah pesan yang mampu disisipkan. Gambar 5.17 menunjukkan proses mencacah Byte citra dan kalkulasi jumlah pesan yang mampu disisipkan pada sebuah citra. public byte[] GetBytesSteganoBitmapMlsb(ref byte[] bytessourcebitmap, ref byte[] bytesmessage, string headertext) { 1. byte[] bytessteganobitmap = new byte[bytessourcebitmap.length]; 2. Array.Copy(bytesSourceBitmap, bytessteganobitmap, bytessourcebitmap.length); 3. StringSubHeader = headertext; 4. _lengthstringsubheader. = StringSubHeader.Length; 5. TotalSteganoBitHeaderSize = (StringSubHeader.Length + 2) * 8; 6. int bytebitmapvalue; 7. long byteused = 0; 8. bool mlsb = false; 9. for (int i = BytesHeaderSize + TotalSteganoBitHeaderSize + 1; i < bytessteganobitmap.length; i++) { 10. bytebitmapvalue = bytessteganobitmap[i]; 11. if (bytebitmapvalue >= 254) { 12. byteused++; 13. if (byteused > bytesmessage.length * 8) { 14. mlsb = true; 15. break; } } } 16. if (mlsb == false) { AppMessageBox.ErrorMessage(ResourceMessage.PesanTerlaluPanjang); 17. return null; } Gambar 5.17 Mencacah jumlah byte citra yang mampu disisipi pesan Gambar 5.17 pada baris 1-17 menunjukkan penggunaan method GetMaxBytesSteganoCount untuk mencacah nilai Byte citra, pencacahan nilai Byte citra untuk mengkalkulasi jumlah Byte pesan yang mampu disisipkan pada citra. Proses pencacahan dilakukan pada setiap indeks Byte Array, setiap nilai indeks Byte Array dicek, adapun kondisi untuk pengecekan jika Byte citra bernilai >= 254 maka dilakukan increment 1. Proses pencacahan nilai Byte citra dikerjakan sepanjang nilai indeks yang dimiliki Byte citra. Selanjutnya hasil total pencacahan Byte yang bernilai 254 atau 255 dibandingkan dengan dengan panjang pesan yang disisipkan pada citra. Jika jumlah Byte citra lebih besar maka proses penyisipan pesan dikerjakan, sebaliknya jika jumlah Byte citra lebih kecil maka tampilkan pesan. Proses pengecekan nilai Byte citra dan perbandingan jumlah Byte citra

85 70 yang bernilai 254 atau 255 dengan panjang pesan ditunjukkan pada baris ke Sisip penanda pesan Penyisipan bit - bit penanda pesan pada citra bitmap dilakukan dengan mengkonversi nilai Byte ke String biner dalam format 8 bit untuk setiap Byte. Selanjutnya menyisipkan bit bit penanda pesan pada Byte citra bitmap setelah header citra. Byte penanda pesan yang mampu disisipkan ke Byte citra maksimal 10 Byte. Gambar 5.18 menunjukkan proses konversi dan penyisipan bit bit penanda pesan. 1. _lengthstringsubheader = StringSubHeader.Length; 2. byte[] bytessubheader = Encoding.ASCII.GetBytes(StringSubHeader); 3. string stringbitsubheader = bytessubheader.aggregate(string.empty, (current, t) => current + Convert.ToString(t, 2).PadLeft(8, '0')); 4. string newstringbitbitmap; 5. int indexbyteused = 0; 6. int lastbytebitmapused = 0; 7. for (int i = BytesHeaderSize; i < bytessteganobitmap.length; i++) 8. { 9. bytebitmapvalue = bytessteganobitmap[i]; 10. indexbyteused++; if (indexbyteused <= _lengthstringsubheader * 8) 12. { 13. string stringbitbitmap = Convert.ToString(byteBitmapValue, 2).PadLeft(8, '0'); 14. newstringbitbitmap = string.concat(stringbitbitmap.remove(7), stringbitsubheader[indexbyteused - 1]); 15. bytessteganobitmap[i] = Convert.ToByte(newStringBitBitmap, 2); 16. } 17. if (indexbyteused == _lengthstringsubheader * 8) 18. { 19. lastbytebitmapused = i; 20. break; 21. } Gambar 5.18 Sisip penanda pesan Gambar 5.18 baris 1 3 untuk mengkonversi nilai String penanda pesan ke Byte kemudian dari Byte dikonversi ke String biner. Konversi Byte ke String biner dilakukan dengan format 8 bit untuk setiap Byte penanda pesan. Selanjutnya Gambar 5.18 baris 4 21 berfungsi untuk melakukan penyisipan bit bit penanda pesan pada String biner citra. Proses ini dikerjakan secara berulang sejumlah bit

86 71 penanda pesan. Setiap bit penanda pesan selesai disisipkan pada Byte citra selanjutnya dicek, kondisi pengecekan apakah jumlah Byte citra yang disisipi bit penanda pesan <= panjang bit penanda pesan, jika benar maka penyisipan penanda pesan selesai, sebaliknya jika tidak maka sisipkan bit penanda pesan kembali. Setiap penyisipan bit penanda pesan nilai String biner dikonversi ke Byte, nilai Byte mengisi Byte citra stego sesuai posisi indeks baris dan indeks kolom dari citra asli Sisip panjang pesan Penyisipan bit - bit panjang pesan bertujuan untuk menyimpan informasi panjang pesan yang disisipkan pada citra stego, panjang pesan diperoleh dari masukan karakter ASCII oleh pengguna. Proses menyisipkan bit - bit panjang pesan dilakukan dengan mengkonversi ke String biner, kemudian hasil konversi bit bit panjang pesan disisipkan pada Byte citra yang terakhir digunakan oleh penanda pesan + 1, Gambar 5.19 menunjukkan proses menyisipkan bit bit panjang pesan pada citra. 1. string stringbitmsgcount = Convert.ToString(bytesMessage.Length, 2).PadLeft(BitMessageLengthInfo, '0'); 2. indexbyteused = 0; 3. for (int i = lastbytebitmapused + 1; i < bytessteganobitmap.length; i++) 4. { 5. bytebitmapvalue = bytessteganobitmap[i]; 6. indexbyteused++; 7. if (indexbyteused <= BitMessageLengthInfo) 8. { 9. string stringbitbitmap = Convert.ToString(byteBitmapValue, 2).PadLeft(8, '0'); 10. newstringbitbitmap = string.concat(stringbitbitmap.remove(7), stringbitmsgcount[indexbyteused - 1]); 11. bytessteganobitmap[i] = Convert.ToByte(newStringBitBitmap, 2); 12. } 13. if (indexbyteused == BitMessageLengthInfo) 14. { 15. lastbytebitmapused = i; 16. break; 17. } 18. } Gambar 5.19 Sisip panjang pesan

87 72 Gambar 5.19 baris baris 1 18 method stringbitmsgcount untuk menyisipkan bit bit panjang pesan pada citra, prosesnya dengan cara mengkonversi panjang pesan ke String biner dengan format 16 bit, selanjutnya dicek jumlah Byte citra yang telah disisipi bit panjang pesan, selama counter penyisipan masih lebih kecil dari panjang bit panjang pesan maka proses penyisipan bit - bit panjang pesan pada citra akan dikerjakan. Sebaliknya jika kondisi counter tidak lebih kecil maka proses penyisipan selesai. Selanjutnya setelah penyisipan selesai, nilai String biner dikonversikan kembali ke Byte. Setiap penyisipan bit panjang pesan pada Byte citra bitmap nilai String biner dikonversi ke Byte, nilai Byte mengisi nilai Byte citra stego sesuai posisi indeks height dan indeks width dari citra hasil. Selanjutnya simpan Byte yang terakhir digunakan untuk penyisipan bit Sisip pesan Penyisipan bit bit pesan dilakukan setelah pengecekan perbandingan panjang pesan yang akan disisipkan kondisinya lebih kecil dari jumlah Byte citra yang bernilai 254 atau 255. Penyisipan bit - bit pesan pada citra bitmap dilakukan dengan mengkonversi Byte cipher ke String biner, selanjutnya bit - bit pesan akan disisipkan pada Byte citra yang bernilai Byte 254 atau 255. Gambar 5.20 menunjukkan proses penyisipan bit bit pesan pada Byte citra. Gambar 5.20 pada baris 1 12 adalah proses memulai penyisipan bit bit pesan, dimulai dengan pengecekan pada citra Byte yang terakhir digunakan, ukuran Byte yang akan cek sebesar yang telah dikerjakan sebelumnya, seperti yang ditunjukkan pada Gambar Penyisipan bit - bit pesan dikerjakan dengan cara pengecekan setiap indeks Byte citra bernilai 254 atau 255. Jika benar maka konversi nilai Byte ke biner dengan format 8 bit selanjutnya sisipkan bit pesan pada bit terakhir dari nilai biner citra. Baris berfungsi mengkonversi String biner hasil sisip bit pesan ke Byte kemudian kembali menyisipkan nilai Byte pada citra hasil. Jika tidak maka dicek Byte citra berikutnya. Proses ini akan dikerjakan secara berulang sebanyak jumlah indeks Byte citra.

88 73 1. int indexbytemsg = 0; 2. int bitindex = 0; 3. byteused = 0; 4. for (int i = lastbytebitmapused + 1; i < bytessteganobitmap.length; i++) 5. { 6. bytebitmapvalue = bytessteganobitmap[i]; 7. if (bytebitmapvalue >= 254){ 8. int bytemsgvalue = bytesmessage[indexbytemsg]; 9. string stringbitbitmap = Convert.ToString(byteBitmapValue, 2).PadLeft(8, '0'); 10. string stringbitchippertext = Convert.ToString(byteMsgValue, 2).PadLeft(8, '0'); 11. newstringbitbitmap = string.concat(stringbitbitmap.remove(7), stringbitchippertext[bitindex]); 12. bytessteganobitmap[i] = Convert.ToByte(newStringBitBitmap, 2); 13. bitindex++; 14. byteused++; if (byteused % 8 == 0){ 15. bitindex = 0; 16. indexbytemsg++;} 17. if (byteused == bytesmessage.length * 8) 18. break;} } 19. return bytessteganobitmap;} Gambar 5.20 Sisip pesan 5.6 Ekstraksi Algoritma MLSB Ekstraksi dengan algoritma MLSB adalah proses mengekstrasi bit - bit pesan pada citra stego. Ekstraksi dilakukan dari sisi penerima pesan, tahapan ekstraksi terdiri dari ekstraksi bit bit penanda pesan berikutnya hasil String biner penanda pesan dikonversi ke Byte kemudian Byte dikonversi ke String. Proses selanjutnya melakukan pengecekan penanda pesan. Jika penanda pesan bernilai sama dengan hasil ekstraksi penanda pesan pada citra stego maka ekstraksi bit bit ukuran Byte pesan dengan cara yang sama dengan sebelumnya. Hasil String biner panjang pesan selanjutnya dikonversi ke Byte, selanjutnya Byte panjang pesan dikonversi ke Integer. Panjang pesan berfungsi sebagai batasan dalam ekstraksi bit bit pesan. Setelah kedua proses ekstraksi dikerjakan selanjutnya ekstraksi bit bit pesan dengan cara konversi setiap nilai Byte 254 atau 255 citra stego sebanyak ukuran Byte pesan. Hasil ekstraksi bit bit pesan dikonversi ke Byte, Byte pesan yang dihasilkan adalah Byte cipher untuk kemudian didekripsi menggunakan algoritma Rijndael dengan kunci simetris 128 bit untuk menghasilkan plaintext.

89 Pengambilan byte citra untuk ekstraksi bit penanda pesan Ekstraksi bit bit penanda pesan pada citra stego bertujuan memastikan bahwa citra masukan adalah citra stego. Proses ekstraksi dilakukan dengan cara mengkonversi Byte citra stego ke String biner dimulai setelah header citra, bit terakhir/terendah disimpan dalam variabel penampung bit. Setiap jumlah bit yang disimpan di-modulo 8 = 0 maka konversi ke Byte, selanjutnya dari Byte dikonversi ke String. Proses ekstraksi bit bit penanda pesan dikerjakan sepanjang nilai counter bit belum sama dengan panjang bit penanda pesan. Gambar 5.21 menunjukkan method ekstraksi bit bit penanda pesan pada citra stego. Berdasarkan Gambar 5.21 baris 1 12 method GetBytesMessageMlsb dengan parameter Byte untuk mengekstraksi bit bit penanda pesan, panjang pesan dan pesan pada citra stego. Hasil keluaran dari method ini adalah Byte Array. Selanjutnya baris mengekstraksi bit bit penanda pesan pada citra stego. Ekstraksi dengan cara mengkonversi Byte citra stego ke String biner kemudian bit terakhir/terendah disimpan pada variable penampung bit yaitu stringbitsubheader, ekstraksi nilai Byte citra dimulai setelah header citra. Selanjutnya pengecekan, apakah jumlah counter bit di- modulo 8 = 0 dan indeks Byte penanda pesan masih lebih kecil dari panjang penanda pesan, jika benar maka konversi String biner ke Byte. Selanjutnya increment 1 untuk indeks Byte penanda pesan, sebaliknya jika tidak maka ekstraksi bit penanda pesan berikutnya dengan proses yang sama. Proses ekstraksi bit penanda pesan akan dikerjakan selama jumlah bit counter penanda pesan telah bernilai sama dengan jumlah indeks penanda pesan dikali 8. Setelah ekstraksi bit penanda pesan maka simpan indeks Byte citra stego yang terakhir digunakan. Selanjutnya baris ke - 29 mengecek apakah Byte hasil ekstraksi bernilai sama dengan nilai masukan penanda pesan, jika benar maka ekstraksi panjang pesan, sebaliknya jika tidak maka kerjakan baris

90 75 1. public byte[] GetBytesMessageMlsb(ref byte[] bytessteganobitmap) 2. { 3. int checkcounter = 0; 4. int bytevalue; 5. int byteindex = 0; 6. int bytecounter = 0; 7. string stringbitbitmap; 8. int lastbytebitmapused = 0; 9. int bytemsgcount = 0; 10. int indexbytesubheader = 0; 11. byte[] bytessubheader = new byte[_lengthstringsubheader]; 12. string stringbitsubheader = string.empty; 13. for (int i = BytesHeaderSize; i < bytessteganobitmap.length; i++) 14. { 15. bytevalue = bytessteganobitmap[i]; 16. checkcounter++; 17. stringbitsubheader += Convert.ToString(byteValue, 2).PadLeft(8, '0').Substring(7); 18. if (checkcounter % 8 == 0 && indexbytesubheader < _lengthstringsubheader) 19. { 20. bytessubheader[indexbytesubheader] = Convert.ToByte(stringBitSubHeader, 2); 21. stringbitsubheader = string.empty; 22. indexbytesubheader++; 23. } 24. if (checkcounter == _lengthstringsubheader * 8) 25. { lastbytebitmapused = i; 26. break; 27. }} 28. char[] charssubheader = Encoding.ASCII.GetChars(bytesSubHeader); 29. string stringsubheader = charssubheader.aggregate(string.empty, (current, t) => current + t); 30. if (stringsubheader!= StringSubHeader) 31. {AppMessageBox.ErrorMessage(ResourceMessage.BukanFileStegano ); 32. return null;} 33. string stringbitmsgcount = string.empty; 34. checkcounter = 0; Gambar 5.21 Pengambilan byte stego untuk ekstraksi bit penanda pesan Ekstraksi panjang pesan Ekstraksi bit - bit panjang pesan untuk mengetahui panjang pesan pada citra stego. Panjang pesan sebagai batasan untuk mengekstraksi bit - bit pesan pada citra stego. Ekstraksi dimulai dari Byte citra stego yang terakhir digunakan + 1. Gambar 5.22 menunjukkan proses ekstraksi bit bit panjang pesan pada citra stego. Gambar 5.22 baris 1 11 untuk mengekstraksi bit bit panjang pesan dengan alokasi sebesar 16 bit. Proses ekstraksi dilakukan dengan cara mengkonversi Byte citra indeks yang terakhir digunakan + 1 ke String biner

91 76 dengan format 8 bit, selanjutnya simpan bit yang terendah/terakhir di variabel stringbitmsgcount. Selanjutnya mengecek jumlah counter Byte citra stego yang diekstraksi, jika memenuhi kondisi yaitu jumlah counter Byte sama dengan jumlah bit untuk panjang pesan maka konversi nilai variabel stringbitmsgcount ke Integer, sebaliknya jika belum memenuhi kondisi kerjakan proses ekstraksi bit panjang pesan pada Byte berikutnya, 1. for (int i = lastbytebitmapused + 1; i < bytessteganobitmap.length; i++) 2. { 3. bytevalue = bytessteganobitmap[i]; 4. checkcounter++; 5. stringbitbitmap = Convert.ToString(byteValue, 2).PadLeft(8, '0'); 6. stringbitmsgcount += stringbitbitmap[7]; 7. if (checkcounter == BitMessageLengthInfo) 8. { 9. lastbytebitmapused = i; 10. bytemsgcount = Convert.ToInt32(stringBitMsgCount, 2); 11. break; } 12. } Gambar 5.22 Ekstraksi panjang pesan Ekstraksi pesan Ekstraksi bit - bit stegano pada citra stego dikerjakan jika hasil ekstraksi penanda pesan bernilai sama dengan nilai default penanda pesan dan ukuran Byte pesan pada citra stego telah diekstraksi. Ekstraksi bit bit pesan dilakukan dengan cara mengkonversi Byte citra yang bernilai 254 atau 255 citra stego. Gambar 5.23 menunjukkan proses ekstraksi bit bit pesan pada citra stego. Gambar 5.23 baris 1 11 untuk mengidentifikasi indeks Byte citra stego, mengecek Byte citra stego yang terakhir digunakan + 1, jika Byte citra bernilai 254 atau 255, konversi Byte citra stego ke String biner, kemudian ekstraksi dengan cara menyimpan bit terakhir/terendah dari String biner citra stego divariabel stringbitmsg. Selanjutnya mengecek jumlah Byte citra yang telah diekstraksi, jika counter Byte citra di-modulo 8 = 0, maka konversi bit - bit pesan ke Byte, kemudian Byte hasil konversi disimpan di variabel Array bytesmessage, sebaliknya Byte counter di-modulo 8 0 maka kerjakan ekstraksi bit pesan pada Byte citra berikutnya. Ekstraksi bit pesan dikerjakan selama jumlah indeks Byte citra stego yang bernilai 254 atau 255 belum memenuhi kondisi nilai yang sama

92 77 dengan ukuran panjang pesan, kondisi pengecekan ini ditunjukkan pada Gambar 5.23 baris ke for (int i = lastbytebitmapused + 1; i < bytessteganobitmap.length; i++) { 2. bytevalue = bytessteganobitmap[i]; 3. if (bytevalue >= 254) 4. { 5. stringbitbitmap = Convert.ToString(byteValue, 2); 6. stringbitmsg += stringbitbitmap[7]; 7. bytecounter++; 8. if (bytecounter % 8 == 0) 9. { 10. bytecounter = 0; 11. bytesmessage[byteindex] = Convert.ToByte(stringBitMsg, 2); 12. byteindex++; 13. stringbitmsg = string.empty; 14. if (byteindex == bytemsgcount) 15. break; 16. } }} 17. return bytesmessage; 18. } } } Gambar 5.23 Ekstraksi pesan 5.7 Algoritma Rijndael Pada penelitian ini enkripsi pesan menggunakan algoritma Rijndael dengan kunci simetris 128 bit, dengan demikian proses enkripsi atau dekripsi akan dikerjakan 10 iterasi. Bila bit data yang digunakan pada proses enkripsi belum memenuhi 128 bit atau kelipatannya, maka tambahkan bit yang bernilai 0 agar data tersebut dapat digunakan pada proses enkripsi. Implementasi proses enkripsi dan dekripsi menggunakan algoritma Rijndael memanfaatkan library yang telah disediakan oleh tools C# Implementasi enkripsi Proses enkripsi dengan algoritma Rijndael membutuhkan masukan data plaintext dan kunci simetris 128 bit. Proses enkripsi pesan memanfaatkan method CreateEncryptor yang telah tersedia pada library tools C#. Hasil dari enkripsi menghasilkan Byte cipher. Gambar 5.24 menunjukkan enkripsi dengan algoritma Rijndael memanfaatkan method CreateEncryptor untuk menghasilkan Byte cipher.

93 78 public static byte[] BytesKey { get; set; } 1. private static readonly byte[] BytesIv = new byte[16]; 2. public static byte[] EncryptStringToBytes(string plaintext) 3. { 4. if (plaintext == null plaintext.length <= 0). throw new ArgumentNullException("plainText"); 6. if (BytesKey == null BytesKey.Length <= 0) 7. throw new ArgumentNullException("BytesKey"); 8. if (BytesIv == null BytesIv.Length <= 0) 9. throw new ArgumentNullException("BytesIv"); 10. byte[] encrypted; 11. using (Rijndael myrijndael = Rijndael.Create()) 12. {myrijndael.key = BytesKey; 13. myrijndael.iv = BytesIv; 14. myrijndael.padding = PaddingMode.Zeros; 15. ICryptoTransform encryptor = myrijndael.createencryptor(myrijndael.key, myrijndael.iv); 16. using (MemoryStream msencrypt = new MemoryStream()) 17. { 18. using (CryptoStream csencrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) 19. {using (StreamWriter swencrypt = new StreamWriter(csEncrypt)) 20. {swencrypt.write(plaintext);} 21. encrypted = msencrypt.toarray(); 22. } 23. } 24. } 25. return encrypted; } Gambar 5.24 Enkripsi plaintext Implementasi dekripsi Proses dekripsi membutuhkan data yaitu, Byte cipher dan kunci simetris 128 bit. Hasil ekstraksi pesan dari citra stego adalah Byte cipher, sehingga dibutuhkan proses dekripsi untuk menghasilkan plaintext. Proses dekripsi pesan dengan algoritma Rijndael memanfaatkan method CreateDecryptor ditunjukkan pada Gambar Gambar 5.25 baris 1 9 method DecryptStringFromBytes dengan parameter data yang diproses adalah Byte cipher dengan keluaran data String. Proses dekripsi dapat dikerjakan dengan mengecek panjang Byte cipher tidak lebih kecil dari nol atau tidak null. Selanjutnya Gambar 5.25 baris memanfaatkan method CreateDecryptor dari C# melakukan transformasi Byte cipher dengan algoritma Rinjdael dan kunci simetris 128 bit untuk menghasilkan plaintext.

94 79 public static string DecryptStringFromBytes(byte[] ciphertext) { 1. if (ciphertext == null ciphertext.length <= 0) 2. throw new ArgumentNullException("cipherText"); 3. if (BytesKey == null BytesKey.Length <= 0) 4. throw new ArgumentNullException("Key"); 5. if (BytesIv == null BytesIv.Length <= 0) 6. throw new ArgumentNullException("Key"); 7. string plaintext; 8. using (Rijndael myrijndael = Rijndael.Create()){ 9. myrijndael.key = BytesKey; 10. myrijndael.iv = BytesIv; 11. myrijndael.padding = PaddingMode.Zeros; 12. ICryptoTransform decryptor = myrijndael.createdecryptor(myrijndael.key, myrijndael.iv); 13. try 14. { using (MemoryStream msdecrypt = new MemoryStream(cipherText)) 15. {using (CryptoStream csdecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) 16. {using (StreamReader srdecrypt = new StreamReader(csDecrypt)) 17. {plaintext = srdecrypt.readtoend();} 18. } } } 19. catch (Exception ex) 20. {AppMessageBox.ErrorMessage(ex.Message); 21. return string.empty;} } 22. return plaintext; } }} Gambar 5.25 Dekripsi pesan 5.8 Mengukur Kualitas Citra Menguji kualitas citra secara objektif dilakukan dengan pengukuran menggunakan Mean Square Error (MSE) dan Peak Signal of Noise Ratio (PSNR), proses untuk menghasilkan nilai MSE dengan cara menghitung rata rata kuadrat nilai kesalahan antara citra asli dengan citra stego. Gambar 5.25 menunjukkan method untuk menghitung nilai MSE dan PSNR. Gambar 5.26 baris 1 16 method GetPsnrValue untuk mengukur kualitas citra dengan cara mengkalkulasi besaran untuk MSE dan PSNR. Baris ini digunakan untuk mengakases lokasi dari indeks masing masing Byte citra. Besaran MSE dan PSNR dikalkulasi jika jumlah indeks citra asli memiliki jumlah yang sama dengan indeks citra stego. Gambar 5.26 baris berfungsi untuk mengkalkulasi rata rata kuadrat nilai kesalahan antara citra asli dengan citra stego, prosesnya dengan membandingkan selisih nilai antara piksel citra asli dengan piksel citra stego pada lokasi indeks yang sama kemudian selisihnya dikuadratkan, jika hasil MSE diantara 0 sampai nilai tolerance maka nilai MSE = 0. Gambar 5.26 baris mengkalkulasi nilai PSNR.

95 80 1. private const double ZeroTolerance = ; 2. public static double GetPsnrValue(ref byte[] bytesa, ref byte[]public static double GetPsnrValue(ref byte[] bytesa, ref byte[] bytesb, int width, int height, int bytewidth, out double mse) 3. { double result = 0; 4. mse = 0; 5. double pembilang = 0; 6. double penyebut = 0; 7. if (bytesa == null bytesb == null) 8. { return double.nan; 9. } 10. if (bytesa.length!= bytesb.length) 11. return result; 12. for (int i = 0; i < height; i++) 13. { for (int j = 0; j < width * 3; j++) 14. { 15. mse += Math.Pow((bytesA[i * bytewidth + j + 54] - bytesb[i * bytewidth + j + 54]), 2); 16. }} 17. mse = mse / (width * 3 * height); 18. if (mse < ZeroTolerance) 19. result = 0; 20. else 21. result = 20 * (Math.Log10(255.0 / (Math.Sqrt(mse)))); 22. return Math.Round(result, 4); }}} Gambar 5.26 Perhitungan MSE dan PSNR

96 81 6 BAB VI HASIL DAN PEMBAHASAN 6.1 Hasil Penelitian Pengujian untuk mengukur kinerja masing masing algoritma yang telah diimplementasikan, pengujian dilakukan dengan 2 cara, yaitu : 1. Pengujian kualitatif 2. Pengujian kuantitatif Pengujian kualitatif Pengujian kualitatif bertujuan untuk mengamati perubahan kualitas citra stego dari bentuk citra asli berdasarkan pengamatan yang dilakukan menggunakan visual manusia yang dihasilkan dari salah satu algoritma MEoF, EoF atau MLSB. Pengamatan bersifat subyektif untuk mendeteksi perubahan kualitas citra dilakukan dengan cara mengamati perubahan warna dan ukuran citra yang terjadi pada citra stego. Adapun pengamatan yang digunakan untuk pengujian kualitatif dengan cara berikut, 1. Mengamati perubahan kualitas secara langsung hasil citra stego kemudian dibandingkan dengan citra asli. 2. Mengekstrasi nilai Byte citra stego kemudian dibandingkan dengan hasil ekstraksi nilai Byte citra asli untuk mendeteksi perubahan kualitas citra stego berdasarkan perubahan ukuran citra. Gambar 6.1 menunjukkan hasil pengujian kualitatif pada citra stego dari masing masing algoritma. Pengujian dilakukan dengan cara pengamatan langsung menggunakan visual manusia, kemudian hasil pengamatan citra stego dibandingkan dengan citra asli. Gambar 6.2 menunjukkan hasil pengujian kualitatif untuk mendeteksi perubahan kualitas citra, pengujian dilakukan dengan cara mengamati hasil ekstraksi nilai Byte citra stego kemudian dibandingkan dengan hasil ekstraksi nilai Byte citra asli. Adapun proses pengamatan secara langsung ditampilkan pada Ganbar 6.1 dengan hasil sebagai berikut,

97 82 Citra Asli MEoF EoF MLSB Gambar 6.1 Pengujian kualitatif dengan pengamatan visual manusia Sedangkan pengujian kualitatif dengan cara pengamatan secara visual manusia berdasarkan hasil ekstraksi nilai Byte citra stego untuk dibandingkan dengan hasil ekstraksi nilai Byte citra asli ditunjukkan pada Gambar 6.2 dengan hasil sebagai berikut, Byte Citra Asli MEoF EoF MLSB Gambar 6.2 Pengujian kualitatif ekstrak nilai byte citra Dari proses pengujian kualitatif diatas dengan teknik yang sama dilakukan pengujian pada 10 citra yang berbeda dengan karakteristik citra dan

98 83 ukuran yang berbeda. Hasil pengujian kualitatif dengan pengamatan visual manusia ditunjukkan pada Tabel 6.1 berikut, Tabel 6.1 Hasil pengujian kualitatif No Ukuran Citra Algoritma Pengamatan Visual Manusia Jumlah Visual Pesan Ekstraksi Byte Langsung MEoF 240 Tidak Berubah Berubah x 246 EoF 9008 Berubah Berubah MLSB 9008 Tidak Berubah Berubah MEoF 480 Tidak Berubah Berubah x 245 EoF 1408 Berubah Berubah MLSB 1408 Tidak Berubah Berubah MEoF 640 Tidak Berubah Berubah x 216 EoF 640 Berubah Berubah MLSB MEoF 960 Tidak Berubah Berubah x 326 EoF 960 Berubah Berubah MLSB 880 Tidak Berubah Berubah MEoF 992 Tidak Berubah Berubah x 499 EoF 992 Berubah Berubah MLSB 768 Tidak Berubah Berubah MEoF 2144 Tidak Berubah Berubah x 719 EoF Berubah Berubah MLSB Tidak Berubah Berubah MEoF 2256 Tidak Berubah Berubah x 2272 EoF 2256 Berubah Berubah MLSB 2256 Tidak Berubah Berubah MEoF 4592 Tidak Berubah Berubah x 1536 EoF 4592 Berubah Berubah MLSB Tidak Berubah Berubah MEoF 2384 Tidak Berubah Berubah x 800 EoF 1216 Berubah Berubah MLSB 1216 Tidak Berubah Berubah MEoF 464 Tidak Berubah Berubah x 161 EoF 464 Berubah Berubah MLSB 528 Tidak Berubah Berubah Berdasarkan hasil pengujian dapat dipaparkan bahwa penyisipan pesan dengan algoritma MEoF kualitas citra stego yang dihasilkan jika diamati secara langsung menggunakan visual manusia sangat sulit untuk mendeteksi telah terjadi perubahan kualitas pada citra stego, karena algoritma MEoF menyisipkan pesan tidak memanfaatkan Byte citra sebagai media untuk menyisipkan pesan,

99 84 melainkan memanfaatkan padding citra yang tidak terpakai oleh citra. Sebaliknya jika dilakukan pengamatan dari hasil ekstraksi nilai Byte citra stego dari masing masing algoritma, pada lokasi indeks tertentu nilai Byte citra mengalami perubahan dan citra stego yang dihasilkan dari algoritma EoF juga mengalami perubahan ukuran pada height jika dibandingkan dengan Byte citra asli, dengan demikian kualitas citra telah mengalami perubahan. Berdasarkan hasil pengamatan secara langsung citra stego yang dihasilkan dari algoritma EoF menunjukkan dimensi citra dan panjang pesan yang kecil maka perubahan kualitas citra lebih terlihat dibandingkan dengan citra berdimensi besar dan panjang pesan kecil. Perubahan kualitas citra terletak diakhir Byte citra terlihat garis tambahan yang menunjukkan baris pesan yang disisipkan. Perubahan kualitas citra stego disebabkan adanya pertambahan Byte pada citra stego sebanyak panjang pesan yang disisipkan. Hasil pengamatan dengan mengektraksi nilai Byte citra menunjukkan perubahan kualitas citra berdampak terhadap perubahan ukuran file citra stego. Perubahan ini ditunjukkan dengan peningkatan ukuran height dari citra asli. Besarnya peningkatan untuk ukuran height pada citra stego tergantung dari panjang pesan yang disisipkan. Penyisipan pesan menggunakan algoritma MLSB memiliki kemungkinan kegagalan, seperti yang ditunjukkan pada Tabel 6.1 nomer 3. Kegagalan disebabkan pesan yang akan disisipkan terlebih dahulu dienkripsi menggunakan algoritma Rijndael dengan kunci 128 bit sehingga pesan membentuk blok cipher yang memiliki ukuran 16 Byte per blok. Berdasarkan algoritma kriptografi tersebut maka pesan disisipkan per blok, sehingga dibutuhkan jumlah Byte citra yang berniilai 254 atau 255 minimal sebesar 16 Byte.. Sedangkan citra stego yang dihasilkan algoritma MLSB berdasarkan hasil pengamatan secara langsung tidak mengalami perubahan dari citra asli, tetapi berdasarkan dari hasil pengujian dengan mengekstraksi nilai Byte citra, hasil pengamatan menunjukkan kualitas citra stego mengalami perubahan, tetapi ukuran file citra stego masih sama dengan ukuran citra asli.

100 Pengujian kuantitatif Pengujian kuantitatif untuk mengukur secara obyektif hasil citra stego dari masing masing algoritma, pengujian dilakukan dengan mengukur error pada citra stego. Pada penelitian ini ada 3 pengukuran yang dilakukan secara obyektif, diantaranya : 1. Pengukuran kesalahan (error) dilakukan dengan cara mengkalkulasi nilai Mean Square Error (MSE) dan Peak Signal to Noise Ratio (PSNR). Pengukuran nilai error MSE berfungsi untuk mengukur kesamaan 2 buah citra, yaitu citra asli dengan citra stego. PSNR untuk melakukan perbandingan antara nilai maksimum dari sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal tersebut, semakin besar nilai PSNR maka citra stego yang dihasilkan semakin baik. 2. Mengukur peningkatan ukuran file citra stego dari jumlah pesan yang disisipkan. 3. Mengukur panjang pesan yang mampu disisipkan pada sebuah citra. Untuk menghasilkan ukuran file citra stego dari masing masing algoritma maka citra dikelompokkan menjadi 2 bagian, yaitu : 1. Citra ukuran width modulo 4 = 0. a. Berdasarkan hasil pengujian yang ditunjukkan pada Tabel 6.2 nomer 10 yaitu citra berukuran 328 x 161 dengan algoritma MEoF maka kapasitas padding sebesar, = 3 Byte * Byte = 473 Byte. Pesan yang disisipkan ke citra dilakukan per blok, untuk setiap blok sesuai dengan ukuran kunci enkripsi sebesar 16 Byte. Berdasarkan ukuran blok maka panjang pesan yang dapat disisipkan pada citra tersebut sebesar 478/16 = 29 blok atau sama dengan 464 Byte, jika pesan disisipkan dengan maksimal maka ukuran file citra stego yang dihasilkan sebesar,

101 86 = ((328 * 3) * 161)) + 54 = (984 * 161) + 54 = Byte. b. Berdasarkan hasil pengujian pada algoritma EoF, maka ukuran Byte pesan yang dapat disisipkan pada citra sebesar, = (( /2) 161) 10 = = Byte Sementara pada pengujian yang ditunjukkan pada Tabel 6.2 nomer 10 dengan citra berukuran 328 x 161, disisipi pesan sebesar 464 Byte, sehingga ukuran file citra stego yang dihasilkan sebesar, = (Ceiling.Math (464/250*3)) = Ceiling.Math (0,618) = 1 = 54 + ((328*3)*161) + (1)* (328*3) = 54 + ((984*161) = = Byte. 2. Citra ukuran width modulo 4 0. a. Berdasarkan hasil pengujian yang ditunjukkan pada Tabel 6.3 nomer 2 dengan ukuran citra 250 x 245 maka ukuran file citra stego dari algoritma MEoF dapat dikalkulasi sebagai berikut, = 54 + ((250*3)) * (4 ((250*3) % 4))*245

102 87 = 54 + (750)* (4 2)* 245 = = Byte. Ukuran Byte padding pada citra sebesar, = ((4 ((250 * 3) % 4)) * 245) - 10 = (4 2) * = 480 Byte. Byte padding yang dapat disisipi pesan sebesar, Byte pesan = 485 Byte / 16 Byte = 30 blok = 480 Byte. b. Selanjutnya mengukur peningkatan ukuran Byte citra stego pada algoritma End of File, seperti yang ditunjukkan pada Tabel 6.2 nomer 2 citra berukuran 250 x 245, pesan yang disisipi sebesar 240 Byte maka ukuran file citra stego sebesar, = (Ceiling.Math (1408/250*3)) = Ceiling.Math (1,88) = 2 = 54 + ((250*3)*245) + (2*245) + ((2)* (250*3)) + (2*2) = 54 + (750*245) = = Byte.

103 88 Hasil pengujian kuantititaf terhadap 10 citra dengan berbagai karakteristik ditunjukkan pada Tabel 6.2 dan Tabel 6.3. Pada Tabel 6.2 ditunjukkan hasil pengujian penyisipan pesan pada citra dengan panjang pesan yang berbeda. Sedangkan pada Tabel 6.3 ditunjukkan hasil pengujian untuk penyisipan pesan pada citra dengan panjang pesan yang sama untuk masing masing algoritma. Adapun hasil dari pengujian disajikan sebagai berikut, Berdasarkan hasil pengujian kuantitatif, penyisipan Byte pesan dengan algoritma MEoF menggunakan citra bitmap untuk ukuran width modulo 4 0, maka Byte pesan akan disisipkan pada padding citra. Menyisipkan Byte pesan pada padding citra berarti Byte piksel citra tidak dilibatkan/diganggu untuk menyisipkan pesan. Penyisipan Byte pesan dengan teknik ini menghasilkan citra stego dengan noise sebesar 0, karena tidak terjadi perubahan nilai intensitas piksel citra stego dari nilai piksel citra asli, dengan demikian untuk ukuran width modulo 4 0 kualitas citra stego yang dihasilkan dari algoritma MEoF sama baiknya dengan citra asli.

104 Tabel 6.2 Hasil pengukuran kuantitatif berdasarkan ukuran citra bitmap No. Dimensi (W x H) Algoritma Panjang pesan (Byte) MSE PSNR Ukuran File Asli (Byte) Ukuran File Citra Stego Status Citra Stego MEoF Tidak Berubah x 246 EoF ,56 8, Berubah MLSB ,238 54, Tidak Berubah x 245 MEoF Tidak Berubah EoF ,33 14, Berubah MLSB ,03 63, Tidak Berubah MEoF ,69 31, Tidak Berubah x 216 EoF ,01 24, Berubah MLSB x x 499 MEoF ,77 33,85 391,254 Tidak Berubah EoF ,57 22,00 391, Berubah MLSB 880 0,009 68,55 391,254 Tidak Berubah MEoF Tidak Berubah EoF ,54 21, Berubah MLSB 768 0, , Tidak Berubah 89

105 Tabel 6.2 (lanjutan) No. Dimensi (W x H) Algoritma Panjang pesan (Byte) MSE PSNR Ukuran File Asli (Byte) Ukuran File Citra Stego Ukuran File Citra Stego MEoF Tidak Berubah x 719 EoF ,73 11, Berubah MLSB , , Tidak Berubah MEoF Tidak Berubah x 2272 EoF ,51 14, Berubah MLSB ,031 63, Tidak Berubah MEoF ,17 40, Tidak Berubah x 1536 EoF ,92 18, Berubah MLSB , , Tidak Berubah x x 161 MEoF ,93 38, Tidak Berubah EoF ,11 17, Berubah MLSB , , Tidak Berubah MEoF ,87 29, Tidak Berubah EoF ,98 17, Berubah MLSB 528 0, , Tidak Berubah 90

106 Tabel 6.3 Hasil pengukuran kuantitatif berdasarkan panjang pesan No. Dimensi (W x H) x x x x x 499 Algoritma Panjang pesan (Byte) MSE PSNR MEoF Ukuran File Asli (Byte) Ukuran File Citra Stego Ukuran File Citra Stego Tidak Berubah EoF ,68 19, Berubah MLSB 240 0, , Tidak Berubah MEoF Tidak Berubah EoF ,83 18, Berubah MLSB 240 0, , Tidak Berubah MEoF ,82 35, Tidak Berubah EoF ,48 24, Berubah MLSB MEoF 240 6,82 39,79 391,254 Tidak Berubah EoF ,07 21,47 391, Berubah MLSB 240 0, ,12 391,254 Tidak Berubah MEoF Tidak Berubah EoF ,65 21, Berubah MLSB 240 0, , Tidak Berubah 91

107 Tabel 6.3 (lanjutan) No. Dimensi (W x H) x 719 Algoritma Panjang pesan (Byte) MSE PSNR MEoF Ukuran File Asli (Byte) Ukuran File Citra Stego Ukuran File Citra Stego Tidak Berubah EoF ,61 16, Berubah MLSB 240 0, , Tidak Berubah MEoF Tidak Berubah x 2272 EoF ,43 28, Berubah MLSB 240 0, , Tidak Berubah x 1536 MEoF 240 0,21 55, Tidak Berubah EoF ,41 27, Berubah MLSB 240 0, , Tidak Berubah MEoF 240 0,75 49, Tidak Berubah x 800 EoF ,27 17, Berubah MLSB 240 0, Tidak Berubah x 161 MEoF ,52 32, Tidak Berubah EoF ,45 17, Berubah MLSB 240 0, , Tidak Berubah 92

108 Pembahasan Berdasarkan hasil pengujian, maka untuk menguji algoritma MEoF dilakukan perbandingan dengan penelitian sebelumnya. Perbandingan dikelompokkan menjadi 2 bagian, Perbandingan dengan algoritma EoF Berdasarkan hasil implementasi, perbandingan dilakukan dengan penelitian yang telah diteliti oleh Edisuryana et al. (2013) ; Aditya et al. (2010) dikelompokkan menjadi 3 bagian, yaitu : 1. Kualitas citra stego Pengujian secara kualitatif menunjukkan hasil citra stego dengan algoritma EoF menghasilkan tambahan baris berupa garis garis pada piksel paling bawah citra stego, baris ini merupakan pesan hasil dari steganografi. Semakin besar pesan yang disisipkan maka semakin banyak baris yang dihasilkan. Sedangkan citra stego yang dihasilkan dari algoritma MEoF tambahan garis garis pada akhir Byte citra tidak terjadi. Untuk hasil pengujian kuantitatif noise citra stego yang dihasilkan dari algoritma EoF lebih kecil dari noise yang dihasilkan citra stego algoritma MEoF untuk ukuran width citra modulo 4 = 0, sedangkan untuk ukuran width citra modulo 4 0 nilai MSE bernilai 0 berarti nilai intensitas piksel citra stego tidak mengalami perubahan dari citra asli. Dengan demikian kualitas citra stego yang dihasilkan dari algoritma MEoF lebih baik dibandingkan citra stego yang dihasilkan dari algoritma EoF. Penambahan baris piksel citra stego yang dihasilkan oleh algoritma EoF ditunjukkan pada Gambar 6.3 berikut, Gambar 6.3 Perbandingan citra asli dan citra stego pada algoritma EoF (Edisuryana et al., 2013)

1.1 Latar Belakang Sejak zaman dahulu, pentingnya kerahasiaan suatu informasi telah menjadi suatu perhatian tersendiri. Manusia berusaha mencari cara

1.1 Latar Belakang Sejak zaman dahulu, pentingnya kerahasiaan suatu informasi telah menjadi suatu perhatian tersendiri. Manusia berusaha mencari cara 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

Lebih terperinci

4.2 Perancangan Algoritma MEoF (Modifikasi End of File) Penyisipan byte stegano dengan algoritma MEoF Ekstraksi byte stegano

4.2 Perancangan Algoritma MEoF (Modifikasi End of File) Penyisipan byte stegano dengan algoritma MEoF Ekstraksi byte stegano 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...

Lebih terperinci

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI 7 BAB III LANDASAN TEORI 3.1 Metode Penelitian Metode penelitian merupakan cara teknis yang bersifat ilmiah yang menggunakan metode yang memiliki sistematika dan prosedur yang harus ditempuh dengan tidak

Lebih terperinci

STEGANOGRAPHY CHRISTIAN YONATHAN S ELLIEN SISKORY A. 07 JULI 2015

STEGANOGRAPHY CHRISTIAN YONATHAN S ELLIEN SISKORY A. 07 JULI 2015 STEGANOGRAPHY 1211501075 - CHRISTIAN YONATHAN S. 1211503394 ELLIEN SISKORY A. 07 JULI 2015 FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS BUDI LUHUR JULI 2015 ~ 1 ~ 1.1 Definisi Steganografi Steganografi adalah

Lebih terperinci

Analisis Alokasi Memori Citra Bitmap 24 Bit

Analisis Alokasi Memori Citra Bitmap 24 Bit Analisis Alokasi Memori Citra Bitmap 24 Bit Thomas Edyson Tarigan 1) 1) Teknik Informatika, STMIK Akakom Yogyakarta Jl. Raya Janti 143, Karangjambe Yogyakarta e-mail : tarigan@akakom.ac.id ABSTRAK Citra

Lebih terperinci

STEGANOGRAFI VIDEO DIGITAL DENGAN ALGORITMA MODIFIKASI END OF FILE DAN RC4

STEGANOGRAFI VIDEO DIGITAL DENGAN ALGORITMA MODIFIKASI END OF FILE DAN RC4 STEGANOGRAFI VIDEO DIGITAL DENGAN ALGORITMA MODIFIKASI END OF FILE DAN RC4 Dwi Aryanto 1, Imam Riadi 2, Sunardi 3 Magister Teknologi Informasi Universitas Ahmad Dahlan, Yogyakarta, Indonesia dwi1607048017@webmail.uad.ac.id

Lebih terperinci

STEGANOGRAFI DENGAN METODE PENGGANTIAN LEAST SIGNIFICANT BIT (LSB)

STEGANOGRAFI DENGAN METODE PENGGANTIAN LEAST SIGNIFICANT BIT (LSB) J. Pilar Sains 6 (2) 2007 Jurusan Pendidikan MIPA FKIP Universitas Riau ISSN 1412-5595 STEGANOGRAFI DENGAN METODE PENGGANTIAN LEAST SIGNIFICANT BIT (LSB) Astried Jurusan Matematika FMIPA UNRI Kampus Bina

Lebih terperinci

ANALISIS METODE MASKING-FILTERING DALAM PENYISIPAN DATA TEKS

ANALISIS METODE MASKING-FILTERING DALAM PENYISIPAN DATA TEKS ANALISIS METODE MASKING-FILTERING DALAM PENYISIPAN DATA TEKS Efriawan Safa (12110754) Mahasiswa Program Studi Teknik Informatika, STMIK Budidarma Medan Jl. Sisimangaraja No. 338 Simpang Limun www.inti-budidarma.com

Lebih terperinci

Aplikasi Metode Steganografi Berbasis JPEG dengan Tabel Kuantisasi yang Dimodifikasi Kris Reinhard /

Aplikasi Metode Steganografi Berbasis JPEG dengan Tabel Kuantisasi yang Dimodifikasi Kris Reinhard / Aplikasi Metode Steganografi Berbasis JPEG dengan Tabel Kuantisasi yang Dimodifikasi Kris Reinhard / 0522094 Email : kris_putih05@yahoo.co.id Jurusan Teknik Elektro, Fakultas Teknik, Jalan Prof. drg. Suria

Lebih terperinci

BAB 1 PENDAHULUAN Latar Belakang Masalah

BAB 1 PENDAHULUAN Latar Belakang Masalah BAB 1 PENDAHULUAN Bab ini membahas tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, serta sistematika penulisan pada penelitian

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latarbelakang

BAB 1 PENDAHULUAN. 1.1 Latarbelakang BAB 1 PENDAHULUAN Pada bab ini akan dijelaskan tentang latarbelakang penulisan, rumusan masalah, batasan masalah yang akan dibahas, serta tujuan penelitian skripsi ini. Manfaat dalam penelitian, metodelogi

Lebih terperinci

BAB 2 TINJAUAN TEORETIS

BAB 2 TINJAUAN TEORETIS BAB 2 TINJAUAN TEORETIS 2. Citra Digital Menurut kamus Webster, citra adalah suatu representasi, kemiripan, atau imitasi dari suatu objek atau benda. Citra digital adalah representasi dari citra dua dimensi

Lebih terperinci

VERIFIKASI KEPEMILIKAN CITRA MEDIS DENGAN KRIPTOGRAFI RSA DAN LSB WATERMARKING SKRIPSI. Oleh : Satya Sandika Putra J2A

VERIFIKASI KEPEMILIKAN CITRA MEDIS DENGAN KRIPTOGRAFI RSA DAN LSB WATERMARKING SKRIPSI. Oleh : Satya Sandika Putra J2A VERIFIKASI KEPEMILIKAN CITRA MEDIS DENGAN KRIPTOGRAFI RSA DAN LSB WATERMARKING SKRIPSI Oleh : Satya Sandika Putra J2A 605 103 JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS

Lebih terperinci

ALGORITMA LEAST SIGNIFICANT BIT UNTUK ANALISIS STEGANOGRAFI

ALGORITMA LEAST SIGNIFICANT BIT UNTUK ANALISIS STEGANOGRAFI ALGORITMA LEAST SIGNIFICANT BIT UNTUK ANALISIS STEGANOGRAFI 1 Indra Yatini B., S.Kom., M.Kom 2 Dra. F. Wiwiek Nurwiyati, M.T. indrayatini@akakom.ac.id wiwiek@akakom.ac.id Teknik Informatika, STMIK AKAKOM

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Jaringan komputer dan internet telah mengalami perkembangan pesat. Teknologi ini mampu menghubungkan hampir semua komputer yang ada di dunia, sehingga kita bisa saling

Lebih terperinci

KONSEP PENYANDIAN FILE JPEG DENGAN MENGGUNAKAN METODE LSB

KONSEP PENYANDIAN FILE JPEG DENGAN MENGGUNAKAN METODE LSB KONSEP PENYANDIAN FILE JPEG DENGAN MENGGUNAKAN METODE LSB Haikal Nando Winata1, Raja Nasrul Fuad2 Institut Teknologi Medan - Fakultas Teknologi Industri, Prodi Teknik Informatika ekalnata@itm.ac.id Abstrak

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Matematika adalah salah satu ilmu yang paling banyak digunakan di seluruh dunia karena ilmu matematika sangatlah luas sebagai alat penting di berbagai bidang, termasuk

Lebih terperinci

BAB 1 PENDAHULUAN Latar belakang

BAB 1 PENDAHULUAN Latar belakang BAB 1 PENDAHULUAN 1.1. Latar belakang Seiring berkembangnya zaman, diikuti juga dengan perkembangan teknologi sampai saat ini, sebagian besar masyarakat melakukan pertukaran atau saling membagi informasi

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Steganografi adalah ilmu dan seni menyembunyikan data rahasia sedemikian sehingga keberadaan data rahasia tidak terdeteksi oleh indera manusia. Steganografi digital

Lebih terperinci

TINJAUAN PUSTAKA. Kriptografi

TINJAUAN PUSTAKA. Kriptografi Secara khusus penelitian ini diharapkan dapat memberikan manfaat bagi: Instansi pemerintah, perusahaan atau perorangan. Diharapkan dapat memberikan penjelasan mengenai alternatif keamanan informasi dalam

Lebih terperinci

BAB II TINJAUAN PUSTAKA. Penelitian yang telah dilakukan berpedoman dari hasil penelitian-penelitian

BAB II TINJAUAN PUSTAKA. Penelitian yang telah dilakukan berpedoman dari hasil penelitian-penelitian BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Pustaka Penelitian yang telah dilakukan berpedoman dari hasil penelitian-penelitian terdahulu yang pernah dilakukan sebelumnya sebagai bahan perbandingan atau kajian.

Lebih terperinci

Penyembunyian Pesan Rahasia Dalam Gambar dengan Metoda JPEG - JSTEG Hendry Hermawan / ABSTRAK

Penyembunyian Pesan Rahasia Dalam Gambar dengan Metoda JPEG - JSTEG Hendry Hermawan / ABSTRAK Penyembunyian Pesan Rahasia Dalam Gambar dengan Metoda JPEG - JSTEG Hendry Hermawan / 0622097 Email : e3n_17@yahoo.com Jurusan Teknik Elektro, Fakultas Teknik, Jalan Prof. drg. Suria Sumantri, MPH 65,

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi informasi semakin memudahkan penggunanya dalam berkomunikasi melalui bermacam-macam media. Komunikasi yang melibatkan pengiriman dan penerimaan

Lebih terperinci

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA Rachmansyah Budi Setiawan NIM : 13507014 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 5 BAB 2 LANDASAN TEORI 2.1 Steganografi Secara umum steganografi merupakan seni atau ilmu yang digunakan untuk menyembunyikan pesan rahasia dengan segala cara sehingga selain orang yang dituju, orang lain

Lebih terperinci

Pengamanan Data Teks dengan Kriptografi dan Steganografi Wawan Laksito YS 5)

Pengamanan Data Teks dengan Kriptografi dan Steganografi Wawan Laksito YS 5) ISSN : 1693 1173 Pengamanan Data Teks dengan Kriptografi dan Steganografi Wawan Laksito YS 5) Abstrak Keamanan data teks ini sangatlah penting untuk menghindari manipulasi data yang tidak diinginkan seperti

Lebih terperinci

Penyembunyian Data pada File Video Menggunakan Metode LSB dan DCT

Penyembunyian Data pada File Video Menggunakan Metode LSB dan DCT IJCCS, Vol.8, No.1, January 2014, pp. 81~90 ISSN: 1978-1520 81 Penyembunyian Data pada File Video Menggunakan Metode LSB dan DCT Mahmuddin Yunus* 1 dan Agus Harjoko 2 1 Program Studi Ilmu Komputer, FMIPA

Lebih terperinci

DAFTAR ISI. DAFTAR ISI... vii. DAFTAR GAMBAR... x. DAFTAR TABEL... xii I. PENDAHULUAN Latar Belakang Rumusan Masalah...

DAFTAR ISI. DAFTAR ISI... vii. DAFTAR GAMBAR... x. DAFTAR TABEL... xii I. PENDAHULUAN Latar Belakang Rumusan Masalah... DAFTAR ISI Halaman DAFTAR ISI... vii DAFTAR GAMBAR... x DAFTAR TABEL... xii I. PENDAHULUAN... 1 1.1 Latar Belakang... 1 1.2 Rumusan Masalah... 2 1.3 Batasan Masalah... 2 1.4 Tujuan... 3 1.5 Manfaat...

Lebih terperinci

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

I. PENDAHULUAN. Key Words Tanda Tangan Digital,  , Steganografi, SHA1, RSA Analisis dan Implementasi Tanda Tangan Digital dengan Memanfaatkan Steganografi pada E-Mail Filman Ferdian - 13507091 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA DAFTAR ISI HALAMAN PENGESAHAN... PERNYATAAN... PRAKATA... DAFTAR ISI... DAFTAR GAMBAR... DAFTAR TABEL... DAFTAR LAMPIRAN... DAFTAR SINGKATAN... INTISARI... ABSTRACT... BAB I PENDAHULUAN 1.1 Latar Belakang...

Lebih terperinci

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA Rachmansyah Budi Setiawan NIM : 13507014 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha

Lebih terperinci

2017 Ilmu Komputer Unila Publishing Network all right reserve

2017 Ilmu Komputer Unila Publishing Network all right reserve Implementasi Kriptografi Dan Steganografi Pada Media Gambar Menggunakan Hill Cipher Dan Least Significant Bit (LSB) 1 Wamiliana, 2 Rico Andrian, dan 3 Eka Fitri Jayanti 1 Jurusan Matematika FMIPA Unila

Lebih terperinci

Implementasi Steganografi Pesan Text Ke Dalam File Sound (.Wav) Dengan Modifikasi Jarak Byte Pada Algoritma Least Significant Bit (Lsb)

Implementasi Steganografi Pesan Text Ke Dalam File Sound (.Wav) Dengan Modifikasi Jarak Byte Pada Algoritma Least Significant Bit (Lsb) JURNAL DUNIA TEKNOLOGI INFORMASI Vol. 1, No. 1, (2012) 50-55 50 Implementasi Steganografi Pesan Text Ke Dalam File Sound (.Wav) Dengan Modifikasi Jarak Byte Pada Algoritma Least Significant Bit (Lsb) 1

Lebih terperinci

IMPLEMENTASI STEGANOGRAPHY MENGGUNAKAN ALGORITMA DISCRETE COSINE TRANSFORM

IMPLEMENTASI STEGANOGRAPHY MENGGUNAKAN ALGORITMA DISCRETE COSINE TRANSFORM IMPLEMENTASI STEGANOGRAPHY MENGGUNAKAN ALGORITMA DISCRETE COSINE TRANSFORM Ahmad Adil Faruqi 1, Imam Fahrur Rozi 2 1,2 Teknik Informatika, Teknologi Informasi, Politeknik Negeri Malang 1 ahmadadilf@gmail.com,

Lebih terperinci

BAB I PENDAHULUAN. 1 Universitas Kristen Maranatha

BAB I PENDAHULUAN. 1 Universitas Kristen Maranatha BAB I PENDAHULUAN I.1 Latar Belakang Masalah Perkembangan teknologi internet dalam beberapa tahun terakhir ini, telah membawa perubahan besar bagi distribusi media digital. Media digital yang dapat berupa

Lebih terperinci

IMPLEMENTASI TEKNIK STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) DAN KOMPRESI UNTUK PENGAMANAN DATA PENGIRIMAN SURAT ELEKTRONIK

IMPLEMENTASI TEKNIK STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) DAN KOMPRESI UNTUK PENGAMANAN DATA PENGIRIMAN SURAT ELEKTRONIK IMPLEMENTASI TEKNIK STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) DAN KOMPRESI UNTUK PENGAMANAN DATA PENGIRIMAN SURAT ELEKTRONIK Dedi Darwis Manajemen Informatika, AMIK Teknokrat Jl. Zainal Abidin Pagar Alam,.

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Teknologi informasi dan komunikasi telah berkembang dengan pesat dan memberikan pengaruh yang besar bagi kehidupan manusia. Sebagai contoh perkembangan teknologi jaringan

Lebih terperinci

STEGANOGRAFI, MENYEMBUNYIKAN PESAN ATAU FILE DALAM GAMBAR MENGGUNAKAN COMMAND/DOS

STEGANOGRAFI, MENYEMBUNYIKAN PESAN ATAU FILE DALAM GAMBAR MENGGUNAKAN COMMAND/DOS ISSN : 1978-6603 STEGANOGRAFI, MENYEMBUNYIKAN PESAN ATAU FILE DALAM GAMBAR MENGGUNAKAN COMMAND/DOS Muhammad Zunaidi Program Studi Sistem Informasi, STMIK Triguna Dharma Jl. A.H. Nasution No. 73 F - Medan

Lebih terperinci

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang BAB 1 PENDAHULUAN 1.1. Latar Belakang Salah satu bentuk komunikasi adalah dengan menggunakan tulisan. Ada banyak informasi yang dapat disampaikan melalui tulisan dan beberapa di antaranya terdapat informasi

Lebih terperinci

Perbandingan Steganografi Metode Spread Spectrum dan Least Significant Bit (LSB) Antara Waktu Proses dan Ukuran File Gambar

Perbandingan Steganografi Metode Spread Spectrum dan Least Significant Bit (LSB) Antara Waktu Proses dan Ukuran File Gambar Perbandingan Steganografi Metode Spread Spectrum dan Least Significant Bit (LSB) Antara Waktu Proses dan Ukuran File Gambar M.A. Ineke Pakereng, Yos Richard Beeh, Sonny Endrawan Fakultas Teknik Program

Lebih terperinci

EKSPLORASI STEGANOGRAFI : KAKAS DAN METODE

EKSPLORASI STEGANOGRAFI : KAKAS DAN METODE EKSPLORASI STEGANOGRAFI : KAKAS DAN METODE Meliza T.M.Silalahi Program Studi Teknik Informatika Institut Teknologi Bandung Ganesha 10, Bandung if16116@students.if.itb.ac.id ABSTRAK Steganografi merupakan

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Steganografi merupakan ilmu yang mempelajari, meneliti, dan mengembangkan seni menyembunyikan suatu informasi. Steganografi dapat digolongkan sebagai salah satu bagian

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Seiring dengan perkembangan teknologi, tingkat keamanan terhadap suatu informasi yang bersifat rahasia pun semakin tinggi. Hal ini merupakan aspek yang paling penting

Lebih terperinci

Grafik yang menampilkan informasi mengenai penyebaran nilai intensitas pixel-pixel pada sebuah citra digital.

Grafik yang menampilkan informasi mengenai penyebaran nilai intensitas pixel-pixel pada sebuah citra digital. PSNR Histogram Nilai perbandingan antara intensitas maksimum dari intensitas citra terhadap error citra. Grafik yang menampilkan informasi mengenai penyebaran nilai intensitas pixel-pixel pada sebuah citra

Lebih terperinci

BAB 1 PENDAHULUAN. Bab 1 Pendahuluan

BAB 1 PENDAHULUAN. Bab 1 Pendahuluan BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi terutama pada dunia digital pada saat ini memungkinkan informasi dalam berbagai bentuk dan media dapat tersebar dengan cepat tanpa batas ruang

Lebih terperinci

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL INFORMATIKA Mulawarman Februari 2014 Vol. 9 No. 1 ISSN 1858-4853 KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL Hendrawati 1), Hamdani 2), Awang Harsa

Lebih terperinci

ABSTRAK. Kata kunci : Steganografi, bit-plane complexity segmentation, data tersembunyi, peak signal-to-noise ratio. v Universitas Kristen Maranatha

ABSTRAK. Kata kunci : Steganografi, bit-plane complexity segmentation, data tersembunyi, peak signal-to-noise ratio. v Universitas Kristen Maranatha ABSTRAK Steganografi adalah teknik untuk menyembunyikan informasi rahasia ke dalam data tanpa meninggalkan bukti adanya perubahan data. Dengan steganografi kita dapat menyembunyikan pesan rahasia ke dalam

Lebih terperinci

PENYEMBUNYIAN DATA RAHASIA DALAM GAMBAR MENGGUNAKAN PENDEKATAN PREDICTIVE CODING. Disusun Oleh : Nama : Dedy Santosa Nrp :

PENYEMBUNYIAN DATA RAHASIA DALAM GAMBAR MENGGUNAKAN PENDEKATAN PREDICTIVE CODING. Disusun Oleh : Nama : Dedy Santosa Nrp : PENYEMBUNYIAN DATA RAHASIA DALAM GAMBAR MENGGUNAKAN PENDEKATAN PREDICTIVE CODING Disusun Oleh : Nama : Dedy Santosa Nrp : 0422167 Jurusan Teknik Elektro, Fakultas Teknik,, Jl. Prof.Drg.Suria Sumantri,

Lebih terperinci

IMPLEMENTASI STEGANOGRAFI MENGGUNAKAN METODE LEAST SIGNIFICANT BIT (LSB) DALAM PENGAMANAN DATA PADA FILE AUDIO MP3

IMPLEMENTASI STEGANOGRAFI MENGGUNAKAN METODE LEAST SIGNIFICANT BIT (LSB) DALAM PENGAMANAN DATA PADA FILE AUDIO MP3 IMPLEMENTASI STEGANOGRAFI MENGGUNAKAN METODE LEAST SIGNIFICANT BIT (LSB) DALAM PENGAMANAN DATA PADA FILE AUDIO MP3 Ricky Maulana Mahgribi 1) dan Lucky Tri Oktoviana 2) e-mail: Rick_nino17@yahoo.co.id Universitas

Lebih terperinci

BAB I APLIKASI STEGANOGRAFI LSB (LEAST SIGNIFICANT BIT) MODIFICATION UNSUR WARNA MERAH PADA DATA CITRA DIGITAL

BAB I APLIKASI STEGANOGRAFI LSB (LEAST SIGNIFICANT BIT) MODIFICATION UNSUR WARNA MERAH PADA DATA CITRA DIGITAL BAB I APLIKASI STEGANOGRAFI LSB (LEAST SIGNIFICANT BIT) MODIFICATION UNSUR WARNA MERAH PADA DATA CITRA DIGITAL 1.1. Latar Belakang Steganografi berasal dari bahasa Yunani, yaitu steganos yang berarti tersembunyi

Lebih terperinci

Tanda Tangan Digital Untuk Gambar Menggunakan Kriptografi Visual dan Steganografi

Tanda Tangan Digital Untuk Gambar Menggunakan Kriptografi Visual dan Steganografi Tanda Tangan Digital Untuk Gambar Menggunakan Kriptografi Visual dan Steganografi Shirley - 13508094 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Seiring berkembangnya teknologi informasi dalam memenuhi kebutuhan, muncul berbagai tindakan yang bersifat merugikan dan sulit untuk dihindari. Salah satu tindakan

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis Masalah Masalah dalam sisitem ini adalah bagaimana agar sistem ini dapat membantu pengguna sistem untuk melakukan pengamanan data (data security). Dalam

Lebih terperinci

Pengembangan Aplikasi Steganografi pada Citra dengan Metode Blowfish dan Sequential Colour Cycle

Pengembangan Aplikasi Steganografi pada Citra dengan Metode Blowfish dan Sequential Colour Cycle Pengembangan Aplikasi Steganografi pada Citra dengan Metode Blowfish dan Sequential Colour Cycle Ng Poi Wong 1, Sunario Megawan 2, Ade Wibowo Giri 3, Ayu Yolanda Nasution 4 STMIK Mikroskil, Jl. Thamrin

Lebih terperinci

PROTEKSI KEAMANAN DOKUMEN SERTIFIKAT FILE JPEG PADA PERGURUAN TINGGI DENGAN MENGGUNAKAN STEGANOGRAFI DAN KRIPTOGRAFI

PROTEKSI KEAMANAN DOKUMEN SERTIFIKAT FILE JPEG PADA PERGURUAN TINGGI DENGAN MENGGUNAKAN STEGANOGRAFI DAN KRIPTOGRAFI PROTEKSI KEAMANAN DOKUMEN SERTIFIKAT FILE JPEG PADA PERGURUAN TINGGI DENGAN MENGGUNAKAN STEGANOGRAFI DAN KRIPTOGRAFI Ary Budi Warsito 1, Lusi Fajarita 2, Nazori AZ 3 1 Teknik Informatika STMIK Raharja

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1 Steganografi Steganografi merupakan seni komunikasi rahasia dengan menyembunyikan pesan pada objek yang tampaknya tidak berbahaya. Keberadaan pesan steganografi adalah rahasia.

Lebih terperinci

BAB I PENDAHULUAN I-1

BAB I PENDAHULUAN I-1 BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Semakin canggihnya teknologi menimbulkan pengiriman informasi sangat rentan terhadap penyadapan yang dapat mengubah isi informasi tersebut dan jatuh kepada

Lebih terperinci

BAB I PENDAHULUAN. disadap atau dibajak orang lain. Tuntutan keamanan menjadi semakin kompleks, maka harus dijaga agar tidak dibajak orang lain.

BAB I PENDAHULUAN. disadap atau dibajak orang lain. Tuntutan keamanan menjadi semakin kompleks, maka harus dijaga agar tidak dibajak orang lain. BAB I PENDAHULUAN I.1. Latar Belakang Masalah keamanan dan kerahasiaan data merupakan salah satu aspek yang penting dari Sistem Informasi, informasi tidak akan berguna lagi bila telah disadap atau dibajak

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis III.1.1 Analisis Masalah Seiring dengan perkembangan teknologi, keamanan dalam berteknologi merupakan hal yang sangat penting. Salah satu cara mengamankan

Lebih terperinci

PENYEMBUNYIAN PESAN PADA IMAGE BERFORMAT JPEG DENGAN METODE LSB DAN VIGINERE CHIPER SKRIPSI

PENYEMBUNYIAN PESAN PADA IMAGE BERFORMAT JPEG DENGAN METODE LSB DAN VIGINERE CHIPER SKRIPSI PENYEMBUNYIAN PESAN PADA IMAGE BERFORMAT JPEG DENGAN METODE LSB DAN VIGINERE CHIPER SKRIPSI Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Jenjang Strata Satu (S1) Pada Program Studi

Lebih terperinci

MODIFIKASI LEAST SIGNIFICANT BIT UNTUK MENINGKATKAN KETAHANAN PESAN TERHADAP CROPPING DAN NOISE SKRIPSI

MODIFIKASI LEAST SIGNIFICANT BIT UNTUK MENINGKATKAN KETAHANAN PESAN TERHADAP CROPPING DAN NOISE SKRIPSI MODIFIKASI LEAST SIGNIFICANT BIT UNTUK MENINGKATKAN KETAHANAN PESAN TERHADAP CROPPING DAN NOISE SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Mencapai Gelar Strata Satu Jurusan Informatika Disusun

Lebih terperinci

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB I PENDAHULUAN 1.1. Latar Belakang BAB I PENDAHULUAN 1.1. Latar Belakang Keamanan dan kerahasiaan dokumen merupakan salah satu aspek yang sangat penting dalam sistem informasi. Data dan informasi menjadi suatu hal yang tidak dapat dipisahkan

Lebih terperinci

1.1 LATAR BELAKANG I-1

1.1 LATAR BELAKANG I-1 BAB I PENDAHULUAN Bab ini berisi bagian pendahuluan, yang mencakup latar belakang, rumusan dan batasan masalah, tujuan, metologi, serta sistematika pembahasan dari Tugas Akhir ini. 1.1 LATAR BELAKANG Dewasa

Lebih terperinci

PENYEMBUNYIAN DAN PENGACAKAN DATA TEXT MENGGUNAKAN STEGANOGRAFI DAN KRIPTOGRAFI TRIPLE DES PADA IMAGE

PENYEMBUNYIAN DAN PENGACAKAN DATA TEXT MENGGUNAKAN STEGANOGRAFI DAN KRIPTOGRAFI TRIPLE DES PADA IMAGE PENYEMBUNYIAN DAN PENGACAKAN DATA TEXT MENGGUNAKAN STEGANOGRAFI DAN KRIPTOGRAFI TRIPLE DES PADA IMAGE Agus Prihanto, Suluh Sri Wahyuningsih Jurusan Teknik Informatika, Fakutas Teknologi Informasi Institut

Lebih terperinci

PENGAMANAN PESAN TEKS MENGGUNAKAN TEKNIK STEGANOGRAFI SPREAD SPECTRUM BERBASIS ANDROID

PENGAMANAN PESAN TEKS MENGGUNAKAN TEKNIK STEGANOGRAFI SPREAD SPECTRUM BERBASIS ANDROID e-issn: 2527-337X PENGAMANAN PESAN TEKS MENGGUNAKAN TEKNIK STEGANOGRAFI SPREAD SPECTRUM BERBASIS ANDROID Achmad Noercholis, Yohanes Nugraha Teknik Informatika STMIK Asia Malang ABSTRAKSI Keamanan dalam

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Steganografi Steganografi berasal dari Bahasa Yunani, yaitu kata steganos yang artinya tulisan tersembunyi (covered writing) dan kata graphos yang berarti tulisan. Sehingga steganografi

Lebih terperinci

BAB I PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN Latar Belakang BAB I PENDAHULUAN 1.1. Latar Belakang Kriptografi merupakan seni dan ilmu untuk menulis rahasia The Art of Secreet Writing. Tujuan dari kriptografi adalah mengolah informasi dengan algoritma tertentu supaya

Lebih terperinci

PENGAMANAN FILE GAMBAR PADA PERANGKAT MOBILE ANDROID MENGGUNAKAN METODE STEGANOGRAFI LSB DAN ALGORITMA KRIPTOGRAFI AES SKRIPSI

PENGAMANAN FILE GAMBAR PADA PERANGKAT MOBILE ANDROID MENGGUNAKAN METODE STEGANOGRAFI LSB DAN ALGORITMA KRIPTOGRAFI AES SKRIPSI PENGAMANAN FILE GAMBAR PADA PERANGKAT MOBILE ANDROID MENGGUNAKAN METODE STEGANOGRAFI LSB DAN ALGORITMA KRIPTOGRAFI AES SKRIPSI Gede Wisnu Bhaudhayana NIM. 1008605013 JURUSAN ILMU KOMPUTER FAKULTAS MATEMATIKA

Lebih terperinci

ALGORITMA LEAST SIGNIFICANT BIT UNTUK ANALISIS STEGANOGRAFI

ALGORITMA LEAST SIGNIFICANT BIT UNTUK ANALISIS STEGANOGRAFI ALGORITMA LEAST SIGNIFICANT BIT UNTUK ANALISIS STEGANOGRAFI Indra Yatini 1, F. Wiwiek Nurwiyati 2 Teknik Informatika, STMIK AKAKOM Jln. Raya Janti No 143 Yogyakarta 1 indrayatini@akakom.ac.id, 2 wiwiek@akakom.ac.id,

Lebih terperinci

BAB I PENDAHULUAN 1.1. LATAR BELAKANG

BAB I PENDAHULUAN 1.1. LATAR BELAKANG 1 BAB I PENDAHULUAN 1.1. LATAR BELAKANG Perkembangan kemajuan teknologi informasi saat ini, semakin memudahkan para pelaku kejahatan komputer (cyber crime), atau yang sering disebut dengan istilah cracker,

Lebih terperinci

BAB I PENDAHULUAN. 1 Universitas Kristen Maranatha

BAB I PENDAHULUAN. 1 Universitas Kristen Maranatha BAB I PENDAHULUAN I.1 Latar Belakang Masalah Perkembangan dunia digital, terutama dengan berkembangnya internet, menyebabkan informasi dalam berbagai bentuk dan media dapat tersebar dengan cepat tanpa

Lebih terperinci

Aplikasi Steganografi Menggunakan LSB (Least Significant Bit) dan Enkripsi Triple Des Menggunakan Bahasa Pemrograman C#

Aplikasi Steganografi Menggunakan LSB (Least Significant Bit) dan Enkripsi Triple Des Menggunakan Bahasa Pemrograman C# Aplikasi Steganografi Menggunakan LSB (Least Significant Bit) dan Enkripsi Triple Des Menggunakan Bahasa Pemrograman C# Teguh Budi Harjo 1, Marly Kapriati 2, Dwi Andrian Susanto 3 1,2,3 Program Studi Pascasarjana,

Lebih terperinci

Endang Ratnawati Djuwitaningrum 1, Melisa Apriyani 2. Jl. Raya Puspiptek, Serpong, Tangerang Selatan 1 2

Endang Ratnawati Djuwitaningrum 1, Melisa Apriyani 2. Jl. Raya Puspiptek, Serpong, Tangerang Selatan 1 2 Teknik Steganografi Pesan Teks Menggunakan Metode Least Significant Bit dan Algoritma Linear Congruential Generator (Text Message Steganography Using Least Significant Bit Method and Linear Congruential

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Steganografi merupakan ilmu dan seni menyembunyikan data rahasia ke dalam suatu media (cover object). Penyembunyian data tersebut dilakukan sedemikian sehingga pihak

Lebih terperinci

BAB I PENDAHULUAN. 1. aa

BAB I PENDAHULUAN. 1. aa BAB I PENDAHULUAN 1. aa 1.1 Latar Belakang Perkembangan teknologi pada saat ini sedang mengalami kemajuan. Salah satu bentuk nyata dari perkembangan teknologi adalah dengan adanya perangkat mobile atau

Lebih terperinci

PENERAPAN METODE MOST SIGNIFICANT BIT UNTUK PENYISIPAN PESAN TEKS PADA CITRA DIGITAL

PENERAPAN METODE MOST SIGNIFICANT BIT UNTUK PENYISIPAN PESAN TEKS PADA CITRA DIGITAL Pelita Informatika Budi Darma, Volume : IV, Nomor:, Agustus 23 ISSN : 23-9425 PENERAPAN METODE MOST SIGNIFICANT BIT UNTUK PENYISIPAN PESAN TEKS PADA CITRA DIGITAL Harry Suhartanto Manalu (9259) Mahasiswa

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Steganografi Steganografi adalah seni komunikasi dengan menyembunyikan atau menyamarkan keberadaan pesan rahasia dalam suatu media penampungnya sehingga orang lain tidak menyadari

Lebih terperinci

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Dewasa ini perkembangan teknologi semakin pesat, ketergantungan antara komputer dan telekomunikasi semakin besar sehingga memudahkan kita untuk saling bertukar

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA 6 BAB 2 TINJAUAN PUSTAKA Pada bab ini penulis memaparkan teori-teori ilmiah yang didapat dari metode pencarian fakta yang digunakan untuk mendukung penulisan skripsi ini dan sebagai dasar pengembangan

Lebih terperinci

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 1 PENDAHULUAN. Universitas Sumatera Utara BAB 1 PENDAHULUAN 1. Latar Belakang Kerahasiaan pesan atau data yang dimiliki oleh seseorang merupakan hal penting dalam pengiriman pesan agar pesan tersebut hanya dapat diberikan oleh orang tertentu saja

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis Masalah Kemajuan cara berpikir manusia membuat masyarakat menyadari bahwa teknologi informasi merupakan salah satu alat bantu penting dalam peradaban

Lebih terperinci

PERBANDINGAN KUALITAS WATERMARKING DALAM CHANNEL GREEN DENGAN CHANNEL BLUE UNTUK CITRA RGB PADA DOMAIN FREKUENSI ABSTRAK

PERBANDINGAN KUALITAS WATERMARKING DALAM CHANNEL GREEN DENGAN CHANNEL BLUE UNTUK CITRA RGB PADA DOMAIN FREKUENSI ABSTRAK PERBANDINGAN KUALITAS WATERMARKING DALAM CHANNEL GREEN DENGAN CHANNEL BLUE UNTUK CITRA RGB PADA DOMAIN FREKUENSI Lucky David Tando ( 0522025 ) Jurusan Teknik Elektro, Fakultas Teknik, Jln. Prof. Drg. Suria

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Kemajuan teknologi yang begitu pesat saat ini memudahkan setiap orang menyampaikan informasi kepada orang lain. Namun, kemudahan yang diperoleh dalam menyampaikan informasi

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Dalam pengiriminan pesan teks, adakalanya pengirim maupun penerima pesan tidak ingin orang lain mengetahui apa isi pesan tersebut. Dengan perkembangan ilmu komputasi

Lebih terperinci

Rancang Bangun Perangkat Lunak Transformasi Wavelet Haar Level 3 Pada Least Significant Bit (Lsb) Steganography

Rancang Bangun Perangkat Lunak Transformasi Wavelet Haar Level 3 Pada Least Significant Bit (Lsb) Steganography Rancang Bangun Perangkat Lunak Transformasi Wavelet Haar Level 3 Pada Least Significant Bit (Lsb) Steganography Abdul Haris 1, Febi Yanto 2 1,2 Teknik Informatika, Fakultas Sains dan Teknologi, UIN Sultan

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah 16 BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Seiring dengan kemajuan teknologi yang begitu pesat, memudahkan seseorang untuk menyampaikan pesan kepada orang lain. Teknik dan metode penyampaian pesan

Lebih terperinci

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB Rian Arifin 1) dan Lucky Tri Oktoviana 2) e-mail: Arifin1199@gmail.com Universitas Negeri Malang ABSTRAK: Salah satu cara

Lebih terperinci

IV. RANCANG BANGUN SISTEM. Perangkat lunak bantu yang dibuat adalah perangkat lunak yang digunakan untuk

IV. RANCANG BANGUN SISTEM. Perangkat lunak bantu yang dibuat adalah perangkat lunak yang digunakan untuk IV. RANCANG BANGUN SISTEM 4.1 Analisis dan Spesifikasi Sistem Perangkat lunak bantu yang dibuat adalah perangkat lunak yang digunakan untuk menyisipkan label digital, mengekstraksi label digital, dan dapat

Lebih terperinci

BAB 1 PENDAHULUAN. untuk mengirimkan pesan, tetapi juga bisa menggunakan layanan yang tersedia di

BAB 1 PENDAHULUAN. untuk mengirimkan pesan, tetapi juga bisa menggunakan layanan  yang tersedia di BAB 1 PENDAHULUAN 1.1 Latar Belakang Dewasa ini, proses pertukaran data dan informasi termasuk pengiriman pesan dapat dilakukan dalam berbagai macam cara. Selain itu, pesan yang dapat dikirim pun tidak

Lebih terperinci

BAB I PENDAHULUAN. Steganografi adalah teknik menyisipkan pesan kedalam suatu media,

BAB I PENDAHULUAN. Steganografi adalah teknik menyisipkan pesan kedalam suatu media, BAB I PENDAHULUAN I.1 Latar Belakang Steganografi adalah teknik menyisipkan pesan kedalam suatu media, dimana pesan rahasia yang akan dikirimkan tidak diubah bentuknya, melainkan disisipkan pada sebuah

Lebih terperinci

BAB 2 LANDASAN TEORI. 2.1 Steganografi

BAB 2 LANDASAN TEORI. 2.1 Steganografi BAB 2 LANDASAN TEORI 2.1 Steganografi Steganografi adalah seni dan ilmu menulis pesan tersembunyi atau menyembunyikan pesan dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun

Lebih terperinci

BAB IV ANALISA DAN PERANCANGAN

BAB IV ANALISA DAN PERANCANGAN BAB IV ANALISA DAN PERANCANGAN Pada bab ini berisi mengenai analisa dan perancangan program steganografi dengan menggunakan Matlab. Analisa ini bertujuan untuk mengetahui cara kerja proses steganografi

Lebih terperinci

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

BAB 2 LANDASAN TEORI. 2.1 Kriptografi BAB 2 LANDASAN TEORI 2.1 Kriptografi Kriptografi berasal dari bahasa Yunani, yaitu kryptos yang berarti tersembunyi dan graphein yang berarti menulis. Kriptografi adalah bidang ilmu yang mempelajari teknik

Lebih terperinci

ABSTRAK. Kata kunci : Watermarking, SVD, DCT, LPSNR. Universitas Kristen Maranatha

ABSTRAK. Kata kunci : Watermarking, SVD, DCT, LPSNR. Universitas Kristen Maranatha Penerapan Watermarking pada Citra Menggunakan Teknik Singular Value Decomposition Discrete Cosine Transform Berdasarkan Local Peak Signal to Noise Ratio Frederick Michael ( 0522072 ) Jurusan Teknik Elektro,

Lebih terperinci

Penerapan Steganografi Metode Least Significant Bit (LSB) dengan Invers Matriks Pada Citra Digital

Penerapan Steganografi Metode Least Significant Bit (LSB) dengan Invers Matriks Pada Citra Digital Editor: Setyawan Widyarto, ISSN: 2477-5894 9 Penerapan Steganografi Metode Least Significant Bit (LSB) dengan Invers Matriks Pada Citra Digital Eza Budi Perkasa 1, Lukas Tommy 2, Dwi Yuny Sylfania 3, Lianny

Lebih terperinci

IMPLEMENTASI STEGANOGRAFI HOPPING SPREAD SPECTRUM KE DALAM FILE VIDEO SKRIPSI

IMPLEMENTASI STEGANOGRAFI HOPPING SPREAD SPECTRUM KE DALAM FILE VIDEO SKRIPSI IMPLEMENTASI STEGANOGRAFI HOPPING SPREAD SPECTRUM KE DALAM FILE VIDEO SKRIPSI RICKY STEVEN 111401052 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Lebih terperinci

ANALISIS DAN PERANCANGAN APLIKASI STEGANALISIS PADA MEDIA CITRA BMP DENGAN METODE ENHANCED LEAST SIGNIFICANT BIT SKRIPSI DESMAWATI

ANALISIS DAN PERANCANGAN APLIKASI STEGANALISIS PADA MEDIA CITRA BMP DENGAN METODE ENHANCED LEAST SIGNIFICANT BIT SKRIPSI DESMAWATI ANALISIS DAN PERANCANGAN APLIKASI STEGANALISIS PADA MEDIA CITRA BMP DENGAN METODE ENHANCED LEAST SIGNIFICANT BIT SKRIPSI DESMAWATI 091421063 PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS

Lebih terperinci

PERANCANGAN DAN ANALISIS STEGANOGRAFI VIDEO DENGAN MENYISIPKAN TEKS MENGGUNAKAN METODE DCT

PERANCANGAN DAN ANALISIS STEGANOGRAFI VIDEO DENGAN MENYISIPKAN TEKS MENGGUNAKAN METODE DCT PERANCANGAN DAN ANALISIS STEGANOGRAFI VIDEO DENGAN MENYISIPKAN TEKS MENGGUNAKAN METODE DCT PLANNING AND ANALYSIS VIDEO STEGANOGRAPHY BY EMBEDDING TEXT WITH DISCRETE COSINE TRANSFORM METHOD 1 Ryan Anggara,

Lebih terperinci

Penerapan Watermarking pada Citra berbasis Singular Value Decomposition

Penerapan Watermarking pada Citra berbasis Singular Value Decomposition Penerapan Watermarking pada Citra berbasis Singular Value Decomposition David Leonard Hasian ( 0522049 ) Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jln. Prof. Drg. Suria Sumantri

Lebih terperinci

Bab I Pendahuluan 1 BAB I PENDAHULUAN

Bab I Pendahuluan 1 BAB I PENDAHULUAN Bab I Pendahuluan 1 BAB I PENDAHULUAN 1.1. Latar Belakang Pesatnya perkembangan teknologi multimedia, jaringan komputer, jaringan Internet menimbulkan peningkatan kemudahan pengiriman informasi yang berupa

Lebih terperinci