Perancangan dan Implementasi Steganografi Citra Digital dengan Algoritma EOF dan TEA Cipher
Artikel Ilmiah
Peneliti: Gilang Dwi Satyo (672008206) Suprihadi, S.Si., M.Kom..
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga 2016
Perancangan dan Implementasi Steganografi Citra Digital dengan Algoritma EOF dan TEA Cipher Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi untuk memperoleh gelar Sarjana Komputer
Peneliti: Gilang Dwi Satyo (672008206) Suprihadi, S.Si., M.Kom.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga 2016
1.
Pendahuluan
Jaringan komputer dan internet mempermudah proses pertukaran informasi. Masalah yang muncul adalah informasi yang dilewatkan pada jaringan komputer adalah data plaintext. Hal ini beresiko ketika ada pihak lain yang berhasil menyadap informasi ini, akan dapat dengan mudah membaca isi informasi tersebut. Untuk mengamankan informasi yang dikirimkan, dapat dilakukan dengan cara menyandikan informasi tersebut, menggunakan teknik kriptografi, namun hal ini akan menimbulkan kecurigaan, karena informasi yang dihasilkan dalam bentuk acak. Pengamanan informasi dapat dilakukan dengan cara lain, yaitu menyembunyikan informasi tersebut ke dalam media yang tidak menimbulkan kecurigaan, yang dikenal dengan teknik steganografi. Steganografi merupakan suatu metode untuk merahasiakan pesan rahasia di dalam file-file lain yang mengandung teks, image, bahkan suara tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalm kualitas dan struktur dari file semula [1]. Steganografi membutuhkan dua media yaitu media penampung dan pesan rahasia. Media penampung yang umum digunakan adalah gambar, suara, video, atau teks. Pesan yang disembunyikan dapat berupa artikel, gambar, daftar barang, kode program, atau pesan lain. Dalam penerapan teknik steganografi dipertimbangkan masalah ukuran dari media penampung atau media tempat data pesan disembunyikan, karena hal ini menentukan ukuran atau besar data pesan yang dapat disembunyikan. Jika data pesan yang disembunyikan besar, maka akan membutuhkan lokasi yang lebih banyak dalam media penampung, dimana hal ini dapat menyebabkan perubahan yang besar pada media penampung, dan dapat menimbulkan kecurigaan adanya data rahasia dalam media tersebut. Keberhasilan suatu steganografi bergantung pada mencolok atau tidaknya perubahan yang terjadi pada cover dan kemampuan algoritma yang digunakan untuk menyembunyikan [2]. Untuk memperkecil perubahan, digunakan bit terendah (LSB) pada tiap piksel citra digital, sebagai lokasi penyisipan informasi. Kelemahan dari metode LSB adalah terdapatnya perubahan nilai piksel pada cover. Jika terdapat 30 karakter pesan (1 karakter = 1 byte = 8 bit), maka akan terjadi kemungkinan sampai dengan 160 (30x8) warna yang berubah yang berubah, atau 10 piksel yang berubah (1 piksel terdapat 3 warna). Berdasarkan latar belakang tersebut, maka dilakukan penelitian mengenai steganografi pada citra digital dengan format BMP. Sasaran dari penelitian ini adalah aplikasi yang dikembangkan dapat menyisipkan informasi dengan kapasitas yang besar. Informasi yang dienkripsi terlebih dahulu dengan tujuan untuk meningkatkan keamanan. Algoritma steganografi yang digunakan pada penelitian ini adalah EOF, yang bekerja dengan cara menyisipkan informasi pada akhir file cover. Algoritma EOF memiliki kelebihan daripada algoritma LSB dalam hal kapasitas muatan. Algoritma EOF menyisipkan informasi lebih banyak daripada LSB, karena tidak bergantung pada ukuran piksel cover. Algoritma EOF juga tidak mengubah nilai piksel file cover, sehingga dapat menurunkan tingkat kecurigaan. Algoritma kriptografi yang digunakan adalah TEA cipher, yang dipilih karena ringan.
1
2.
Tinjauan Pustaka
Salah satu penelitian yang membahas tentang implementasi TEA adalah penelitian yang dilakukan oleh Maggi [3]. Pada penelitian tersebut TEA digunakan untuk mengamankan data chatting. Hal yang perlu menjadi perhatian adalah, untuk beberapa layanan chatting, data percakapan yang dilewatkan di internet tidak disandikan terlebih dahulu sehingga dapat memberikan celah keamanan terhadap data percakapan. TEA cipher yang merupakan algoritma enkripsi, dapat digunakan untuk menyandikan data percakapan yang dilewatkan di internet. Pada penelitian tersebut dirancang dan diimplementasikan sebuah kriptosistem, yang berupa aplikasi chatting terenkripsi. Aplikasi melakukan enkripsi data percakapan sebelum dikirim, demikian juga sebaliknya, aplikasi akan melakukan dekripsi terhadap pesan yang diterima. Hasil pengujian menunjukkan bahwa kriptosistem yang dikembangkan mampu menyandikan pesan tanpa memberikan tambahan waktu proses yang signifikan. Penelitian yang membahas tentang steganografi terutama pada citra digital adalah penelitian yang dilakukan oleh Amin [4]. Tujuan dari penelitian Amin adalah menyembunyikan pesan berupa teks rahasia ke dalam citra digital true colour 24 bit dalam format RGB (.PNG, .BMP). Metode yang digunakan untuk menyisipkan pesan rahasia menggunakan metode LSB (Least Significant Bit) dengan mengganti bit terakhir atau bit ke-8 dalam setiap komponen warna RGB. Ujicoba yang dilakukan memberikan hasil bahwa pesan yang disembunyikan ke dalam citra digital tidak mengurangi kualitas citra digital secara signifikan, dan pesan yang telah disembunyikan dapat diekstrak kembali, sehingga pesan yang dikirimkan dapat sampai dengan aman kepada penerima. Penelitian Handoko dan Aripin [5] membahas mengenai keamanan data menggunakan kriptografi algoritma Vigenere cipher dan steganografi dengan metode end of file (EOF). Pada penelitian tersebut, file pesan yang akan disisipkan, dienkripsi terlebih dahulu dengan algoritma Vigenere. Ciphertext yang dihasilkan, kemudian disisipkan ke dalam file cover yang berupa file gambar dengan format BMP. Hasil dari penelitian tersebut yaitu menghasilkan aplikasi yang dapat menyembunyikan file dengan baik dan menutup kecurigaan dari pihak lain. Berdasarkan penelitian-penelitian tentang kriptografi dengan algoritma TEA dan steganografi dengan algoritma EOF, maka dilakukan penelitian yang menggabungkan kedua metode keamanan tersebut. Pada penelitian ini dirancang dan diimplemetasikan steganografi pada citra digital dengan format BMP. Informasi yang disisipkan adalah data teks (.txt), yang sebelumnya dienkripsi terlebih dahulu dengan menggunakan algoritma TEA. Perbedaan penelitian yang sekarang dengan penelitian-penelitian terdahulu adalah sebagai berikut: (1) Berbeda dengan penelitian Maggi, algoritma TEA pada penelitian ini digunakan untuk menyandikan data file teks; (2) Berbeda dengan penelitian Amin, algoritma steganografi yang digunakan adalah EOF, bukan LSB. Algoritma LSB memiliki kapasitas penyisipan yang terbatas (1 piksel menampung
`2
3 bit pesan). Algoritma LSB memiliki efek samping yaitu sekalipun tidak signifikan, namun perubahan kualitas citra digital tetap terjadi. Batasan masalah dalam penelitian ini adalah sebagai berikut: (1) Citra digital digunakan sebagai cover adalah citra digital dengan format BMP; (2) Algoritma TEA digunakan untuk mengekripsi dan mendekripsi data teks yang disisipkan; (3) Algoritma EOF digunakan untuk menyisipkan pesan terenkripsi ke dalam file cover. Kriptografi (cryptography) merupakan ilmu dan seni penyimpanan pesan, data, atau informasi secara aman. Kriptografi (Cryptography) berasal dari bahasa Yunani yaitu dari kata Crypto dan Graphia yang berarti penulisan rahasia. Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut Cryptology. Dalam mengenkripsi dan mendekripsi data, kriptografi mebutuhkan suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi matematika yang digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data [4]. Tiny Encription Algorithm (TEA) merupakan algoritma penyandian block cipher yang dirancang untuk penggunaan memori yang seminimal mungkin dengan kecepatan proses yang maksimal. Algoritma sandi ini diciptakan oleh David Wheeler dan Roger M. Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994 [6]. TEA cipher menggunakan proses feistel network [7] yang menggunakan operasi from mixed (orthogonal) kelompok aljabar dalam sistemnya. Dengan menambahkan fungsi matematik berupa penambahan dan pengurangan sebagai operator pembalik selain XOR. Hal ini dimaksudkan untuk menciptakan sifat nonlinearitas. Pergeseran dua arah (ke kiri dan ke kanan) menyebabkan semua bit kunci dan data bercampur secara berulang ulang.
`3
Gambar 1 Dua Putaran Feistel pada TEA [8]
Gambar 1 menunjukkan struktur enkripsi TEA. Masukan untuk algoritma enkripsi adalah blok plaintext dan sebuah kunci K. Plaintext adalah P = (kiri [0], kanan [0]) dan teks cipher adalah C = (kiri [64], kanan [64]). Blok plaintext dibagi menjadi dua bagian, kiri [0] dan kanan [0]. Tiap setengah bagian digunakan untuk mengenkripsi setengah lainnya, lebih dari 64 putaran proses pengolahan yang kemudian bergabung untuk menghasilkan blok teks cipher. 1. Setiap putaran i memiliki input kiri [i-1] dan kanan [i-1], yang berasal dari putaran sebelumnya serta sub kunci K [i] berasal dari 128 bit keseluruhan K. Kunci sub K [i] berbeda dari K dan dari satu sama lain. 2. 3. Konstanta delta = (√5-1) * 231 = 9E779B9h, diturunkan dari golden number ratio untuk memastikan bahwa sub kunci tidak redundan dan nilainya tidak memiliki signifikansi kriptografi. Fungsi Round yang digunakan sedikit berbeda dengan struktur Round pada cipher Fiestel klasik. Sebagai operator penggabungan digunakan bilangan integer modulus 223, bukan operator XOR. Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui. Steganografi berasal dari bahasa Yunani, yaitu “steganos” yang artinya “tulisan tersembunyi (covered writing)” [9]. Steganografi yang dibahas adalah penyembunyian data di dalam citra (image). Meskipun demikian, penyembunyian data dapat juga dilakukan pada media berupa suara digital, teks, ataupun video. Penyembunyian data rahasia ke dalam image akan mengubah kualitas image tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah: 1) Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung. Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak; 2) Data yang disembunyikan harus dapat diungkapkan kembali (recovery). Dalam penyembunyian pesan, steganografi menggunakan dua properti yaitu pesan rahasia dan media penampung. Ada beberapa tipe media yang dapat digunakan untuk menyisipkan pesan rahasia. Tipe media ini dapat berfungsi sebagai media pembawa pesan rahasia, yang disebut dengan host message. Terdapat beberapa media yang dapat digunakan sebagai media steganografi, media penampung tersebut dapat berupa text, image, audio, atau video [10]. Cara paling mudah untuk menyembunyikan pesan adalah dengan memanfaatkan Least Significant Bit (LSB). Jika digunakan image 24 bitcolor sebagai cover, sebuah bit dari masing-masing komponen Red, Green, dan Blue, dapat digunakan, sehingga tiga bit dapat disimpan pada setiap piksel. Sebuah image 800 x 600 piksel dapat digunakan untuk menyembunyikan 1.440.000 bit (180.000 bytes) data rahasia. Misalkan terdapat piksel-piksel dari image 24 bit color, dapat dilihat bahwa bit-bit pesan rahasia mengubah bit-bit terakhir citra gambar. 00111000
01010110
11000111
`4
00110011
Jika ada pesan rahasia yang memiliki nilai 1101, maka dihasilkan: 00111001 01010111 11000110 00110011 Teknik steganografi End Of File (EOF) merupakan salah satu teknik yang digunakan dalam steganografi. Teknik ini digunakan dengan cara menambahkan data atau pesan rahasia pada akhir file. Teknik ini dapat digunakan untuk menambahkan data yang ukurannya sesuai dengan kebutuhan. Perhitungan kasar ukuran file yang telah disisipkan data sama dengan ukuran file sebelum disisipkan data ditambah ukuran data rahasia yang telah diubah menjadi encoding file. EOF adalah suatu kode yang ditempatkan oleh komputer pada akhir suatu file, tepatnya setelah byte informasi terakhir pada file tersebut [11] . Tanda EOF sangat berguna pada transmisi dan penyimpanan data. File disimpan pada blok-blok, dan tanda EOF membantu komputer untuk mengetahui apakah kapasitas penyimpan tersedia untuk menyimpan file tersebut [12]. Microsoft .NET Framework merupakan sebuah perangkat lunak kerangka kerja yang berjalan pada sistem operasi Microsoft Windows. Saat ini .NET Framework umumnya telah terintegrasi dalam distribusi standar Windows (mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru). Kerangka kerja ini menyediakan sejumlah besar pustaka pemrograman komputer dan mendukung beberapa bahasa pemrograman serta interoperabilitas yang baik sehingga memungkinkan bahasa-bahasa tersebut berfungsi satu dengan lain dalam pengembangan sistem. Berbeda halnya dengan tipikal aplikasi konvensional umumnya, program yang ditulis dengan memanfaatkan .NET Framework berjalan pada lingkungan perangkat lunak melalui Common Language Runtime, dan bukan perangkat keras secara langsung. Hal ini memungkinkan aplikasi yang dibuat di atas .NET secara teoritis dapat berjalan pada perangkat keras apapun yang didukung oleh .NET Framework. Perangkat lunak ini adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows [13]. Pada penelitian ini, .NET Framework digunakan untuk membangun aplikasi deteksi kemiripan. Beberapa pustaka pemrograman yang digunakan adalah pustaka untuk membuat Graphical User Interface (GUI), dan pustaka pemrosesan gambar (Bitmap). 3.
Metode dan Perancangan Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: (1) Analisis kebutuhan dan pengumpulan data, (2) Perancangan sistem, (3) Implementasi sistem yaitu Perancangan aplikasi/program, dan (4) Pengujian sistem serta analisis hasil pengujian.
`5
Identifikasi Masalah dan Studi Literatur
Perancangan Sistem
Implementasi Sistem
Pengujian S istem dan Analisi s Hasil Pengujian
Gambar 2 Tahapan Penelitian
Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut. Tahap pertama: identifikasi masalah, yaitu keamanan citra digital. Tahap kedua: perancangan sistem yang meliputi perancangan proses deteksi kemiripan citra digital; Tahap ketiga: perancangan sistem, yaitu membuat aplikasi sesuai perancangan proses pada tahap kedua; dan Tahap keempat: pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap proses yang telah dirancang, dan melihat kesesuaian solusi terhadap masalah yang telah teridentifikasi sebelumnya. Embedding
Pesan
Enkripsi Pesan
Penyisipan Pesan Terenkripsi
Stego Image
Ekstraksi Pesan Terenkripsi
Dekripsi Pesan
Pesan Plain text
Kunci Cover Image
Stego Image
Kunci Extracting
Gambar 3 Desain Sistem
`6
Mulai
Mulai
Input pesan, kunci enkripsi, cover image
Input kunci dekripsi, stego image
Enkripsi Pesan
Ekstraksi cipher text di bagian EOF stego image
Sisipkan cipher text pada EOF cover image.
Dekripsi cipher text
Output stego image
Output plain text pesan
Selesai Gambar 4 Proses Penyisipan
Selesai Gambar 5 Proses Ekstraksi
Sistem yang dikembangkan, memiliki desain yang ditunjukkan pada Gambar 3. Proses embedding (Gambar 4) memerlukan tiga input, yaitu pesan yang akan disembunyikan, kunci enkripsi, dan cover image sebagai media penyisipan. Output dari proses embedding adalah stego image. Proses extracting (Gambar 5) memerlukan dua input, yaitu stego image dan kunci dekripsi. Output dari proses extracting adalah pesan dalam bentuk plain text. 4.
Hasil dan Pembahasan
Pada bagian ini dijelaskan tentang hasil penelitian yang telah dilakukan. Aplikasi diimplementasikan dalam bentuk aplikasi desktop. Pengembangan aplikasi dilakukan dengan menggunakan Visual Studio 2012 Express for Desktop. Visual Studio 2012 Express for Desktop merupakan satu dari serangkaian produk Microsoft yang dapat digunakan tanpa harus membayar lisensi. Di dalam Visual Studio sudah termasuk kerangka kerja pemrograman .Net Framework 4.5. Pustaka ini menyediakan pustaka-pustaka yang dapat digunakan untuk mengolah gambar, mengolah byte pada file, dan lain sebagainya.
`7
Gambar 6 Form Embedding
Gambar 6 merupakan antarmuka yang digunakan oleh user untuk proses embedding. Pada antarmuka tersebut kontrol untuk memilih gambar cover, file pesan yang akan disisipkan, dan password yang digunakan untuk proses enkripsi. Password dibatasi antara 1 sampai dengan 16 karakter (16 byte). Hal ini dikarenakan panjang kunci yang digunakan oleh TEA adalah 16 byte. Jika kunci yang digunakan kurang dari 16, maka akan dilakukan padding dengan nilai byte 0. Contoh jika kunci yang digunakan adalah “abc”, maka hasil paddingnya adalah ditunjukkan pada Gambar 7. kunci
a
b
c
nilai ascii
97
98
99
hasil padding
97
98
99
0
0
0
0
0
0
0
0
0
0
0
0
0
Gambar 7 Contoh Padding Kunci
Pada form enkripsi, juga ditampilkan cipher text hasil proses enkripsi. Panjang cipher text dapat berbeda dengan panjang plain text. Hal ini dikarenakan TEA merupakan block cipher, dengan ukuran blok 64 bit (8 byte). Sehingga ketika terdapat blok dengan ukuran kuran dari 8 byte, akan ditambahkan padding nilai byte 0. Contoh jika plain text berisi “salatigauksw” maka hasil pembentukan blok ditunjukkan pada Gambar 8. plain text nilai ascii
s
a
l
a
t
i
g
a
u
k
s
w
115
97
108
97
116
105
103
97
117
107
115
119
blok ke 1 hasil padding
115
97
108
97
116
blok ke 2 105
103
97
117
107
115
Gambar 8 Contoh Hasil Pembentukan Blok
`8
119
0
0
0
0
Berdasarkan hasil padding, maka panjang plain text semula adalah 12 byte, menjadi panjang 16 bytes. Padding ini nanti akan dihapus pada waktu proses dekripsi.
Gambar 9 Form Extracting
Form Extracting pada Gambar 9 digunakan untuk proses ekstraksi pesan dari suatu stego image. Untuk bisa memperoleh pesan yang benar, diperlukan kunci yang tepat. Jika kunci yang digunakan salah, maka program akan memberikan output yang salah juga. Hal ini ditunjukkan pada Gambar 10.
Gambar 10 Proses Dekripsi Dengan Kunci yang Salah
Kode Program 1 Perintah untuk enkripsi TEA 1. 2. 3. 4. 5.
private static double Encrypt(uint[] v, uint[] k) { uint v0 = v[0], v1 = v[1], sum = 0, i; uint delta = 0x9e3779b9; uint k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3];
`9
6. 7. 8. 9. 10. 11. 12. 13. 14. }
for (i = 0; i < 32; i++) { sum += delta; v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1); v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3); } v[0] = v0; v[1] = v1;
Kode Program 1 merupakan perintah yang digunakan untuk melakukan proses enkripsi dengan algoritma TEA. Masukan dari fungsi encrypt adalah variabel v dan k (baris 1). Variabel v berisi plain text 64 bit, dan variabel k berisi kunci 128 bit. Variabel delta (baris 4) merupakan konstanta yang merupakan ketentuan dari desain TEA. Pada tengah proses enkripsi terdapat 32 kali putaran yang merupakan inti dari proses enkripsi (baris 6-11). Hasil enkripsi ditampung kembali ke dalam variabel v (baris 12-13). Kode Program 2 Perintah untuk dekripsi TEA 1. private static double Decrypt(uint[] v, uint[] k) 2. { 3. uint v0 = v[0], v1 = v[1], sum = 0xC6EF3720, i; 4. uint delta = 0x9e3779b9; 5. uint k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3]; 6. for (i = 0; i < 32; i++) 7. { 8. v1 -= ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3); 9. v0 -= ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1); 10. sum -= delta; 11. } 12. v[0] = v0; 13. v[1] = v1; 14. }
Kode Program 2 merupakan perintah yang digunakan untuk melakukan proses dekripsi dengan algoritma TEA. Input dari fungsi encrypt adalah variabel v dan k. Variabel v berisi cipher text 64 bit, dan variabel k berisi kunci 128 bit (baris 1). Variabel delta (baris 4) merupakan konstanta yang merupakan ketentuan dari desain TEA, dan variabel sum (baris 3) merupakan variabel yang nilainya akan berkurang selama proses perputaran, sebesar nilai variabel delta. Pada tengah proses enkripsi terdapat 32 kali putaran (baris 6-11) yang merupakan inti dari proses dekripsi. Hasil dekripsi ditampung kembali ke dalam variabel v (baris 12-13). Kode Program 3 Perintah untuk Menyisipkan Pesan ke EOF file BMP 1 2 3 4 5 6 7 8 9 10
public static byte[] Embed(string coverImage, byte[] message) { byte[] data = File.ReadAllBytes(coverImage); byte[] metaData = BitConverter.GetBytes(message.LongLength); byte[] buffer = new byte[data.Length + message.Length + metaData.Length]; Array.Copy(data, buffer, data.Length); Array.Copy(message, 0, buffer, data.Length, message.Length);
`10
11 12 13 14
Array.Copy(metaData, 0, buffer, data.Length + message.Length, metaData.Length); return buffer; }
Kode Program 3 merupakan perintah untuk menyisipkan pesan ke dalam EOF file BMP. Proses penyisipan bekerja dengan cara menggabungkan data file cover (baris 9), ditambah data pesan (baris 10), dan terakhir adalah baris metadata (baris 11). Metadata berarti informasi yang menjelaskan informasi yang lain. Metadata tersebut berisi informasi yaitu panjang pesan yang disisipkan. Metadata digunakan ketika proses dekripsi. Kode Program 4 Perintah untuk Ekstraksi Pesan 1 2 3 4 5 6 7 8 9 10 11 12 13
public static byte[] Extract(string coverImage) { byte[] data = File.ReadAllBytes(coverImage); byte[] metaData = new byte[8]; Array.Copy(data, data.Length - 8, metaData, 0, metaData.Length); long messageLength = BitConverter.ToInt64(metaData, 0); byte[] message = new byte[messageLength]; Array.Copy(data, data.Length - 8 - messageLength, message, 0, message.Length); return message; }
Kode Program 4 merupakan perintah untuk mengekstraksi pesan yang terdapat pada stego image. Langkah awal adalah membaca panjang pesan. Informasi panjang pesan terdapat pada bagian paling akhir file, yaitu metadata yang ikut disisipkan pada proses embedding (baris 5). Kemudian setelah diketahui panjang pesan, diambil byte sesuai dengan nilai panjang pesan, dibagian akhir file (baris 8). Pada aplikasi yang dibuat, dilakukan beberapa pengujian. Pengujian yang pertama adalah pengujian keamanan informasi. Pengujian ini bertujuan untuk melihat apakah pesan yang disisipkan, benar-benar dalam format terenkripsi. Untuk mengetahuinya digunakan software pembantu, yaitu HxD, yang merupakan software untuk membaca byte file. Langkah pengujian yaitu dengan menyisipkan pesan ke dalam file BMP kemudian melihat pesan yang disisipkan pada posisi EOF. Pesan yang disisipkan adalah “salatigauksw”, jika diubah dalam nilai ASCII, bentuk heksadesimal adalah 73 61 6C 61 74 69 67 61 75 6B 73 77.
`11
Gambar 9 File Cover Sebelum Disisipi
Gambar 10 File Cover Setelah Disisipi
Pada gambar 9, akhir file ditandai dengan 36 byte bernilai heksa “FF”, dalam decimal yaitu 255. Setelah proses penyisipan, terdapat tambahan 18 byte. 8 byte paling akhir adalah (diberi tanda kotak merah), merupakan metadata (metadata disini menggunakan format integer 8 byte). Meta data ini menjelaskan panjang pesan, dalam hal ini adalah 10 00 00 00 00 00 00 00. .Net Framework menyimpan nilai Int64 (integer 8 byte), dalam format terbalik (little-endian), maka diterjemahkan menjadi 00 00 00 00 00 00 00 10 dalam heksa desimal. Nilai tersebut berarti 10 heksa, yang berarti 16 desimal. 16 ini menjelaskan bahwa terdapat 16 byte pesan yang disisipkan, tepat di depan metadata, yaitu CF 97 FE FE 0C BF 58 1E 05 8F 8E 01 7B D3 4F 82. Nilai pesan ini tidak sama dengan nilai plain text pesan, berarti yang disisipkan adalah nilai cipher text. Pengujian kedua adalah pengujian kapasitas maksimal penyisipan. Hasil pengujian ditunjukkan pada Tabel 1. Tabel 1 Pengujian Kapasitas
No 1 2 3 4 5
Gambar K2i.bmp K2i.bmp K2i.bmp K2i.bmp K2i.bmp
Panjang Pesan pada EOF 100 KB 200 KB 1000 KB 2000 KB 10 MB
Penyisipan Berhasil Berhasil Berhasil Berhasil Berhasil
Ekstraksi Berhasil Berhasil Berhasil Berhasil Berhasil
Pengujian ketiga adalah pengujian perubahan ukuran. Pengujian ini bermaksud untuk mengukur angka perubahan ukuran file cover akibat dari proses penyisipan. Hasil pengujian ditunjukkan pada Tabel 2. Tabel 2 Pengujian Perubahan Ukuran
No
Gambar
1 2 3 4 5 6 7 8 9 10
K2i.bmp K2i.bmp K2i.bmp K2i.bmp K2i.bmp UKSW.bmp UKSW.bmp UKSW.bmp UKSW.bmp UKSW.bmp
Ukuran File Cover (byte)
Panjang Pesan Plaintext (byte)
1,080,054 1,080,054 1,080,054 1,080,054 1,080,054 1,126,854 1,126,854 1,126,854 1,126,854 1,126,854
4 8 13 16 21 4 8 14 16 22
`12
Panjang Pesan Ciphertext (byte) 8 8 16 16 24 8 8 16 16 24
Ukuran File Stego (byte) 1,080,062 1,080,062 1,080,070 1,080,070 1,080,078 1,126,862 1,126,862 1,126,870 1,126,870 1,126,878
Berdasarkan hasil pengujian pada Tabel 2, diketahui bahwa panjang ukuran file stego (hasil penyisipan), bertambah sebesar ukuran panjang pesan ciphertext. Ukuran ciphertext diperoleh dari ukuran plaintext yang dibentuk dalam ukuran blok sebesar kelipatan 8 byte. 5.
Simpulan
Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut: (1) steganografi pada citra digital BMP dapat dilakukan dengan menyisipkan informasi pada bagian akhir (EOF) file; (2) untuk meningkatkan keamanan pesan yang disembunyikan, dilakukan proses enkripsi pada pesan tersebut, sebelum disisipkan; (3) Kapasitas pesan yang disisipkan pada cover image cukup besar, dan pesan yang disisipkan tidak mengubah nilai piksel pada cover image. Perubahan ukuran stego image diperoleh dengan perhitungan ukuran cover + ukuran ciphertext. Saran yang dapat diberikan untuk penelitian dan pengembangan lebih lanjut adalah pesan yang disisipkan, selain dienkripsi juga dapat dikompresi, sehingga ukuran pesan menjadi lebih kecil. 6.
Daftar Pustaka
[1].
Weiss, M. 2009. Principles of Steganography. www.math.ucsd.edu/~crypto/Projects/MaxWeiss/steganography.pdf. Diakses pada 13 Februari 2016. [2]. Potdar, V. M. & Chang, E. 2004. Grey level modification steganography for secret communication. In Industrial Informatics, 2004. INDIN’04. 2004 2nd IEEE International Conference on, pp. 223–228. [3]. Maggi, G. R. & Ineke P 2013. Perancangan dan Implementasi Kriptosistem Pada Aplikasi Chat Menggunakan Tiny Encryption Algorithm (TEA). Fakultas Teknik Informatika Universitas Kristen Satya Wacana [4]. Amin, M. M. 2015. Image Steganography dengan Metode Least Significant Bit (LSB). CSRID Journal 6, 53–64. [5]. PATRICIA, H. 2015. Teknik Keamanan Data Menggunakan Kriptografi dengan Algoritma Vigenere Cipher dan Steganografi dengan Metode End of File (EoF). Program Studi Teknik Informatika Fakultas Ilmu Komputer Universitas Dian Nuswantoro [6]. Wheeler, D. J. & Needham, R. M. 1994. TEA, a tiny encryption algorithm. In Fast Software Encryption, pp. 363–366. [7]. Feistel, H. 1973. Cryptography and Computer Privacy. Scientific American. 228, 15–23. (doi:10.1038/scientificamerican0573-15) [8]. Russell, M. D. 2004. Tinyness: An Overview of TEA and Related Ciphers. https://web.archive.org/web/20070812222155/http://wwwusers.cs.york.ac.uk/~matthew/TEA/. Diakses 12 Februari 2016 3. [9]. Munir, R. 2006. Kriptografi. Informatika, Bandung [10]. Arusbusman, Y. R. 2007. Image Steganografi. [11]. Wasino, Rahayu, T. P. & Setiawan 2012. Implementasi Steganografi
`13
Teknik End of File dengan Enkripsi Rijndael. Seminar Nasional Teknologi Informasi dan Komunikasi 2012 (SENTIKA 2012) [12]. Computer Hope 2016. EOF. http://www.computerhope.com/jargon/e/eof.htm. Diakses 13 Februari 2016. [13]. Microsoft 2015. Overview of the .NET Framework. https://msdn.microsoft.com/id-id/library/zw4w595w(v=vs.110).aspx. Diakses pada 4 November 2015.
`14