Perancangan dan Implementasi Aplikasi Steganography
untuk Pengamanan Pesan menggunakan Vigenere
Cipher, PRNG, dan LSB Embedding
Artikel Ilmiah
Peneliti:
Kukuh Setyo Nugroho (672008054)
Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi Aplikasi Steganography
untuk Pengamanan Pesan menggunakan Vigenere
Cipher, PRNG, dan LSB Embedding
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
Untuk Memperoleh Gelar Sarjana Komputer
Peneliti:
Kukuh Setyo Nugroho (672008054)
Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informasi
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi Aplikasi Steganography
untuk Pengamanan Pesan menggunakan Vigenere
Cipher, PRNG, dan LSB Embedding
Kukuh Setyo Nugroho 1, Magdalena A. Ineke Pakereng 2
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia Email: [email protected], [email protected]
Abstract
Computer networks and the Internet facilitate the process of information exchange. When a confidential information is transmitted over a computer network / internet, it is necessary to guarantee that such information can only be accessed by certain people. Steganography techniques can be used as a solution to the problem. Steganography is a technique of hiding information in other media. Hiding techniques provide the advantage that the transmitted message is not suspicious, because the message is in the form of common media, such as image files, audio, or video. In this study, a Vigenere Cipher, and PRNG steganography method is implemented. Hiding process is done in a particular color component LSB. The result is an application of steganography, which uses a Vigenere Cipher, PRNG, and LSB embedding steganography method. The test result shows that cover image and stego image does not have any significant difference visually. Message integrity test shows that inserted message does not change so sent message is the same as the received message.
Keywords: Steganography, Vigenere Cipher, PRNG, LSB Embedding
Abstrak
Jaringan komputer dan internet mempermudah proses pertukaran informasi. Ketika suatu informasi bersifat rahasia ditransmisikan lewat jaringan komputer/internet, maka diperlukan jaminan bahwa informasi tersebut hanya dapat diakses oleh pihak yang berkepentingan. Teknik steganografi dapat digunakan sebagai solusi untuk masalah tersebut. Steganografi merupakan teknik menyembunyikan informasi pada suatu media lain. Teknik penyembunyian memberikan keuntungan yaitu pesan yang ditransmisikan tidak menimbulkan kecurigaan, karena pesan berada dalam bentuk media yang umum, seperti file image, audio, atau video. Pada penelitian ini diimplementasikan metode steganografi menggunakan algoritma Vigenere Chiper dan PRNG, dimana penyisipan dilakukan pada LSB komponen warna tertentu. Penelitian menghasilkan suatu aplikasi steganografi, yang menggunakan metode steganografi Vigenere Cipher, PRNG, dan LSB Embbeding. Hasil Pengujian menunjukkan cover image dan stego image secara visual tidak menampakkan perbedaan yang signifikan. Uji integritas pesan menunjukkan pesan yang disisipkan tidak mengalami perubahan, sehingga pesan yang dikirimkan sama dengan pesan yang diterima.
Kata Kunci: Steganografi, Vigenere Cipher, PRNG, LSB Embedding
1
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga
2
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, dapat dengan mudah membaca isi informasi tersebut.
Dalam bidang keamanan komputer, ada dua teknik yang digunakan untuk menyembunyikan data atau pesan rahasia sehingga data atau pesan rahasia tetap tidak terlihat, yaitu teknik kriptografi dan steganografi. Pada teknik kriptografi sebelum data atau pesan rahasia dikirim, data dienkripsi dengan algoritma tertentu, sehingga pesan yang dikirim tidak dapat dibaca atau diketahui orang lain. Namun karena pesan tersebut merupakan pesan acak dan berbeda dengan data aslinya, maka akan menimbulkan kecurigaan pada orang lain. Kecurigaan ini akan mengarah ke usaha pembobolan informasi.
Steganografi merupakan teknik pengamanan pesan dengan cara menyembunyikan pesan ke dalam media lain. Media ini pada umumnya disebut
cover, dan dapat berupa file audio, video, gambar, atau format yang lain. Pesan tersembunyi ke dalam media lain yang dapat dipahami oleh orang lain (tidak dalam bentuk informasi acak), maka hal ini memberikan kelebihan yaitu tidak menimbulkan kecurigaan orang lain. Salah satu teknik steganogarfi adalah Least Signigicant Bit (LSB). Teknik steganografi dengan metode LSB, melakukan satu penyisipan pesan ke bit terendah (LSB) tiap pixel yang terdapat pada cover, pada satu pasangan komponen byte tertentu.
Steganografi dengan menggunakan gambar sebagai media penyimpanan memiliki kelebihan daripada media lain seperti audio dan video, yaitu ukuran file
gambar yang relatif lebih kecil dan meminimalisasi perubahan dari cover. File
gambar inipun merupakan salah satu format file yang sering dipertukarkan dalam dunia internet. Alasan lainnya adalah banyaknya tersedia algoritma Steganografi untuk media penampung yang berupa citra. Hal mengenai ukuran file ini penting ketika stego image (file gambar yang telah disisipi pesan) harus dikirimkan melalui jaringan komputer.
Penerapan Steganografi citra digital pada penelitian ini menggunakan
cover image dengan format PNG karena file PNG menggunakan kompresi yang tidak menghilangkan data (lossless compression). Hal ini dikarenakan metode ini menggunakan bit-bit setiap piksel pada image. Pesan yang berada dalam citra
stego akan tetap aman dan dapat dimunculkan kembali jika proses pengunggahan pada media (Twitter, Wordpress, Blogger) menggunakan citra berformat PNG [1]. Berdasarkan latar belakang tersebut, maka dilakukan penelitian yang membahas tentang Perancagan dan Implementasi Aplikasi Steganography untuk Pengamanan Pesan menggunakan Vigenere Cipher, PRNG, dan LSB Embedding.
2. Tinjauan Pustaka
Penelitian yang membahas sistem steganografi pernah dilakukan.
LSB Algorithm and Strong Encryption Key With Enhanced Security”, yaitu penelitian yang mengajukan metode baru untuk penyisipan pesan dalam audio, dengan memodifikasi metode Least Significant Bit (LSB), dan menggunakan kekuatan kunci enkripsi untuk meningkatkan keamanan pesan yang disisipkan. Enkripsi yang digunakan adalah teknik enkripsi yang ditentukan sendiri dengan aturan yang sederhana. Proses enkripsi diterapkan pada pesan, sebelum pesan tersebut disisipkan ke dalam audio [2]. Berbeda dengan penelitian tersebut, pada penelitian yang dilakukan ini, digunakan file gambar sebagai cover.
Pada penelitian yang berjudul “Implementasi Teknik Steganografi dengan
Metode LSB pada Citra Digital”, disebutkan tentang perlunya pengamanan
pengiriman pesan melalui jaringan Internet. Pada penelitian tersebut digunakan media gambar sebagai cover. Hasil penelitian tersebut adalah sebuah aplikasi steganografi dengan algoritma LSB Embedding, yang dapat menyembunyikan pesan, sehingga orang lain tidak menyadari keberadaan pesan di dalam media [3]. Berbeda dengan penelitian ini adalah, pada penelitian ini pesan yang disisipkan, sebelumnya dilakukan proses enkripsi. Hal ini dilakukan dengan tujuan untuk meningkatkan keamanan pesan yang disisipkan.
Pada penelitian yang berjudul “Penerapan Metode Vigenere Cipher pada Aplikasi Chat MessengerSederhana”, disebutkan bahwa pada aplikasi chat perlu dilakukan penyandian pesan, karena pesan yang dikirimkan dapat berupa data penting, rahasia, atau pribadi. Pada penelitian tersebut digunakan algoritma
vigenere untuk proses penyandian pesan [4]. Beda dengan penelitian ini adalah algoritma vigenere digunakan untuk menyandikan pesan sebelum pesan disisipkan dalam suatu gambar.
Batasan masalah dalam penelitian ini adalah : 1) Format cover image yang digunakan yaitu *.png, 2) Metode yang digunakan untuk mengamankan pesan adalah dengan menggunakan algoritma Vigenere Ciphe,r 3) PRNG (Pseudo Number Random Generator) digunakan untuk membangkitkan kunci pada proses enkripsi pesan, 4) Penyisipan informasi ke dalam sebuah gambar menggunakan teknik Least Significant Bit (LSB).
Berdasarkan penelitian-penelitian sebelumnya yang telah dilakukan tentang steganografi, LSB Embedding, dan algoritma Vigenere, maka pada penelitian ini dirancang dan diimplementasikan suatu aplikasi steganografi pada citra digital, dengan menyisipkan pesan yang terenkripsi. Aplikasi yang dibangun menggunakan bahasa pemrograman C# .net framework 4.5 yang berfungsi untuk menyisipkan pesan berupa file teks pada citra digital yag bertujuan utnuk memproteksi pesan tersebut melalui media citra digital. Teknik yag digunakan dalam implementasi adalah Vigenere Cipher, PRNG, dan LSB Embedding, dimana pesan rahasia berupa teks disisipkan ke dalam media citra digital sehingga keberadaan pesan tidak diketahui oleh penglihatan manusia dengan mudah. Penelitian yang dilakukan membahas tentang steganografi LSB Embedding.
Steganografi adalah ilmu dan seni 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
penyembunyian data dapat juga dilakukan pada wadah berupa suara digital, teks, ataupun video. Cara untuk mengaplikasikan steganografi pada file image terdiri dari beberapa cara yang biasa digunakan dan prinsip kerja atau algoritma yang digunakan sama seperti pada metode steganografi pada data audio [6].
Dalam penyembunyian informasi ada beberapa kriteria yang harus diperhatikan, yaitu : 1) Imperectibility keberadaan pesan rahasia dalam media penampung tidak dapat dideteksi oleh inderawi. Misalnya, jika cover berupa
image, maka penyisisipan pesan membuat stego-image sukar dibedakan oleh mata, 2) Fidelity : setelah melakukan penyisipan data rahasia, kualitas gambar
cover-image tidak jauh berubah. Hal ini menyebabkan tidak ada yang tahu bahwa dalam gambar tersebut terdapat rahasia, 3) Recovery : data yang disembunyikan harus dapat diungkapkan kembali. Karena tujuan dari setganografi adalah data-hiding, maka data rahasia dalam cover-image harus dapat kembali untuk digunakan lebih lanjut [3].
LSB (Least significant bit) adalah bagian dari barisan data biner (basis dua) yang mempunyai nilai paling kecil. Letaknya adalah paling kanan dari barisan bit. Sedangkan most significant bit adalah sebaliknya, yaitu angka yang paling besar dan letaknya di sebelah paling kiri [7].
Gambar 1Least Significant Bit (LSB) [7]
Pada Gambar 1 terlihat jelas bit-bit LSB pada 1 piksel warna, penanaman informasi dapat dilakukan pada bit-bit tersebut.
Contoh:
Data awal, tiga piksel dari gambar 24-bit (00100111 11101001 11001000)
(00100111 11001000 11101001) (11001000 00100111 11101001)
Nilai biner dari karakter „A‟ adalah 10000011
Data setelah penanaman karakter „A‟ (00100111 11101000 11001000) → 100 (00100110 11001000 11101000) → 000
(11001001 00100111 11101001) → 11,
Model warna RGB merupakan gambar yang tiap pikselnya direpresentasikan oleh kombinasi intensitas tiga buah komponen warna, yaitu Red
(R), Green (G), Blue (B). Masing-masing komponen tersebut terdiri atas 8 bit. Sebuah warna dalam piksel gambar RGB dapat direpresentasikan dalam tiga byte
atau 24-bit. Kombinasi ketiga intensitas warna tersebut dapat menghasilkan 16
juta ( ) variasi warna [8].
Vigenere cipher menggunakan suatu kunci yang memiliki panjang tertentu. Panjang kunci tersebut dapat lebih pendek ataupun sama dengan panjang
plaintext.
Untuk memudahkan dalam proses pengenkripsianya, maka dapat digunakan alat bantu berupa bujur sangkar Vigenere yang dikenal juga dengan nama tabula recta.
Gambar 2Tabula Recta [4]
Baris pada gambar tabula recta menyatakan huruf plainteks yang akan dienkripsi, dan kolom menyatakan huruf kunci enkripsi. Dan perpotongan antara baris dan kolom menyatakan huruf yang sudah terenkripsi atau diistilahkan dengan ciphertext.
Jika panjang kunci kurang dari panjang plaintext, maka kunci tersebut akan diulang secara periodik hingga panjang kunci tersebut sama dengan panjang plainteksnya.
Algoritma enkripsi vigenere cipher : Ci = (Pi + Ki) mod 26
Algoritma dekripsi vigenere cipher : Pi = (Ci – Ki) mod 26
Dimana :
Contoh 1 kunci sama dengan panjang plainteksnya. Kemudian setelah panjang kunci sama dengan panjang plainteks, proses enkripsi dilakukan dengan melakukan menggeser setiap huruf pada plainteks sesuai dengan huruf kunci bersesuaian dengan huruf plainteks tersebut.
Vigenere Cipher yang akan dipakai dalam pada aplikasi ini adalah
vigenere cipher extended dimana pengenkripsian tidak hanya untuk huruf
alphabet tetapi termasuk juga karakter – karakter ASCII. Jadi pengenkripsian tidak tebatas untuk 26 karakter tetapi mencapai 256 karakter.
Pseudo Random Number Generator (PRNG) adalah algoritma yang membangkitkan deretan bilangan yang tidak benar-benar acak. Bilangan acak dihasilkan dengan rumus-rumus matematika dan dapat berulang kembali secara periodik. Bilangan acak banyak digunakan dalam kriptografi, misalnya untk pembangkitan elemen kunci, pembangkitan initialization vector (IV), pembangkitan parameter kunci di dalam sistem kriptografi kunci public, dan sebagainya. Beberapa algoritma PRNG yang sering digunakan di antaranya
Linear Congruential Generator (LCG), Lagged Fibonacci Generator, Linier Feedback Shift Register (LSFR), Blum Blum Shub, Fortuna, dan Mesenne Twister [5]. Pembangkitan bilangan pseudorandom (semi acak) adalah deretan bilangan dengan kemungkinan pengulangan yang sangat kecil atau periode pengulangan yang sangat besar [9].
Linier Congruential Generator (LCG) adalah salah satu pembangkit bilangan acak tertua dan sangat terkenal. Algoritma ini diciptakan oleh D.H. Lehmer pada tahun 1951. LCG didefinisikan dalam bentuk:
yang dalam hal ini,
= bilangan acak ke-n = bilangan acak sebelumnya
= bilangan pengali
b = bilangan penambah
m = modulus
X0 = nilai awal berupa bilangan bulat tak negatif
(a,b dan m semuanya konstanta)
Untuk memulai pembangkitan bilangan acak ini dibutuhkan semua bilangan bulat X0, yang dijadikan sebagai seed awal (bibit pembangkitan).
(unik) adalah m. semakin besar nilai m, semakin kecil kemungkinan akan dihasilkan nilai sama [9].
PNG merupakan standar terbuka format imageraster yang didukung oleh W3C dan IETF. Pada dasarnya, format PNG bukan merupakan format baru karena telah dikembangkan pada tahun 1995 untuk mengganti format GIF. Format ini tidak digunakan lagi secara luas oleh browser dan perangkat lunak aplikasi pengolah gambar, sehingga dukungan terhadap format tidak begitu besar hingga tahun 2003, di mana format PNG semakin dikenal dan dipergunakan untuk aplikasi manipulasi gambar. PNG (Portable Network Graphics) adalah salah satu format penyimpanan citra yang menggunakan metode pemadatan yang tidak menghilangkan bagian dari citra tersebut (lossless compression). Format PNG diperkenalkan untuk menggantikan format penyimpanan citra GIF. Citra dengan format PNG mempunyai faktor kompresi yang lebih baik dibandingkan citra dengan format GIF.
Satu fasilitas dari GIF yang tidak terdapat pada format PNG adalah dukungan terhadap penyimpanan multi-citra untuk keperluan animasi. Untuk keperluan pengolahan citra, format PNG dapat dijadikan alternatif selama proses pengolahan citra, karena format ini selain tidak menghilangkan bagian dari citra yang sedang diolah, sehingga penyimpanan berulang ulang dari citra tidak akan menurunkan kualitas citra, juga PNG diciptakan untuk menggantikan keberadaan GIF karena masalah lisensi. Format PNG dibuat sebagai alternatif lain dari format GIF, dan digunakan untuk menyimpan berkas dengan kedalaman 24 bit serta memiliki kemampuan untuk menghasilkan background transparan dengan pinggiran yang halus. Format PNG menggunakan metode kompresi lossless untuk menampilkan gambar 24 bit atau warna-warna. Format ini mendukung transparansi di dalam alpha channel. Format PNG sangat baik digunakan pada dokumen online, dan mempunyai dukungan warna yang lebih baik saat dicetak [10].
Citra digital dengan format 24 bit warna (true color image), sebagai contohnya PNG, memiliki susunan 3 warna dalam 1 pixel. Ketiga warna tersebut adalah red, green, dan blue. Tiap warna berukuran 1 byte (8 bit) oleh karena itu disebut 24 bit warna. Kapasitas maksimal pesan yang dapat disisipkan ke dalam gambar menggunakan metode LSB dapat dihitung menggunakan rumus seperti persamaan 1 [3].
(1)
Dalam hal ini :
K : Kapasitas bit maksimal pesan yang dapat disisipkan dalam gambar. P : Panjang gambar dalam pixel.
L : Lebar gambar dalam pixel.
3 : Konstanta yang menunjukkan jumlah warna dalam 1 pixel. 1 pixel
terdapat 3 warna.
Contoh penyisipan pesan pada gambar dengan panjang 400px dan lebar 255px menggunakan persamaan 1, sebagai berikut.
K = (P x L) x 3 bit
K = 400 x 255 x 3 bit
K = 90000 x 3 bit
K = 270000 bit
Untuk mendapatkan nilai dalam satuan byte,maka 270000/8 = 33750 byte.
Bedasarkan perhitungan tersebut menunjukkan jumlah maksimal kapasitas pesan yang dpaat disisipka dalam gambar berukuran 400px x 255px adalah sebanyak 270.000 bit atau dalam satuan byte adalah 33.750 byte.
3. Metode dan Perancangan Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapann penelitian yang terbagi dalam empat tahapan, yaitu: (1) Analisis kebutuhan dan studi literatur, (2) Perancangan sistem, (3) Implementasi sistem dan pengujian sistem serta analisa hasil pengujian, (4) Penulisan laporan hasil penelitian.
Gambar 3 Tahapan Penelitian
Tahapan penelitian pada Gambar 3 dapat dijelaskan sebagai berikut.
Tahap pertama: analisis kebutuhan dan studi literatur. Analisis kebutuhan adalah menganalisis kebutuhan pengguna yang muncul disebabkan karena permasalahan yang ada yaitu kebutuhan pengguna dalam mengamankan data file dan literatur yang terkait dengan proses embedding dan extracting tehadap data file pada cover image, menggunakan metode vigenere, pseudorandom, dan LSB Embedding ;
Tahap kedua: perancangan sistem yang meliputi perancangan proses embedding
aplikasi dapat menyembunyikan pesan rahasia yang disisipkan pada citra dengan menggunakan metode vigenere, pseudorandom, dan LSB; dan Tahap keempat :
Pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap aplikasi steganografi yang dibangun, dengan tujuan untuk mengetahui pengaruh
encoding dan decoding pada proses yang berjalan di sistem.
Pada tahap ini, dilakukan perancangan proses sistem embedding dan
extracting pada data file yang menerapkan teknik LSB Embedding untuk digunakan didalam aplikasi. Sistem terdiri dari dua proses, yaitu proses enkripsi dan proses dekripsi menggunakan algoritma Vigenere Cipher. Perancangan program yang digunakan dapat dilihat di flowchart pada Gambar 4 sebagai berikut.
Gambar 4 ProsesPerancangan Aplikasi yang Digunakan
Proses dimulai dari input pesan, kemudian pesan dienkripsi dengan menggunakan vigenere cipher. Untuk selanjutnya kunci (password) dimasukkan, kunci diproses untuk dibangkitkan menggunakan Pseudorandom. Pesan yang telah dienkripsi dan kunci yang diacak akan melalui proses Exclusive-OR dan merubah dari ASCII ke biner. Pada embedding proses penyisipan dilakukan dengan cara menyisipkan tiap bit pesan kedalam tiap pixel dalam gambar. Hasil dari proses embedding adalah stego image (gambar yang telah disisipi dengan pesan). Untuk proses selnajutnya adalah proses extracting. Dimana pada proses ini terjadi proses pembangkitan kunci dengan pseudorandom dan proses dekripsi dengan menggunakan vigenere cipher, setelah melalui kedua proses tersebut maka pesan yang sebelumnya disisipkan dalam gambar bisa diambil dengan melalui proses exracting. Dan hasil dari proses extracting adalah pesan utuh sama halnya dengan pesan yang belum disisipkan dalam gambar.
Proses penyembunyian pesan ke dalam file gambar (.PNG) dalam sistem pada Gambar 5, dijelaskan sebagai berikut :
2. Proses enkripsi pesan dengan menggunakan algoritma Vigenere Cipher. 3. Pesan dienkripsi dengan cara mengubah file dari ASCII ke biner.
4. Generate password dengan mengunakan metode Pseudo Random Number Generator.
5. Sisipkan setiap bit pesan yang telah dienkripsi kemudian disisipkan ke dalam gambar (.PNG) dengan menggunakan metode LSB Embedding.
6. Memutuskan jika semua pixel gambar telah disisipi maka akan lanjut ke proses selanjutnya, tetapi jika penyisipan belum penuh maka akan kembali ke proses sebelumnya yaitu penyisipan pesan.
7. Menghasilkan Stego Image.
Gambar 5 Proses Embedding Data
Data dalam Sistem
Gambar 6 Proses Extracting Data
Data dalam Sistem
Proses pengambilan pesan data dari dalam file gambar (.PNG) secara umum pada Gambar 6 dijelaskan sebagai berikut :
1. InputStego Image (.PNG)dan password.
3. Proses Extracting dengan cara mengambil Stego image dan membaca tiap
bit pesan di LSB dari tiap komponen warna dari gambar yang digunakan untuk menyisipkan pesan.
4. Memutuskan jika bit pesan terbaca semua maka akan lanjut ke proses selanjutnya tetapi jika tidak maka akan kembali ke proses sebelumnya sehingga bit pesan dapat terbaca semua.
5. Mengubah pesan yang telah dienkripsi menjadi biner dan dikembalikan ke ASCII.
6. Proses dekripsi pesan menggunakan algoritma Vigenere Cipher untuk mendekripsikan pesan yang disisipkan dalam gambar.
7. Menghasilkan pesan yang sama dengan aslinya.
4. Hasil dan Pembahasan
Aplikasi yang dibangun adalah aplikasi steganografi yang dapat menyamarkan file text (.txt) dalam file image (.png), yang terdiri atas dua proses yaitu, proses embedding dan proses extracting. Hasil implementasi sistem bedasarkan perancangan yang telah dilakukan, dijelaskan sebagai berikut. Aplikasi yang dihasilkan dalam penelitian ini, dibangun menggunakan .Net Framework. .Net Framework library digunakan untuk memanipulasi citra digital.
.Net Framework memiliki sebuah namespace System.Drawing, yang di dalamnya berisi kumpulan class yang digunakan untuk melakukan manipulasi gambar. Class Bitmap dapat digunakan untuk membuat, membaca, dan memanipulasi gambar warna 24 bit, sebagai contoh adalah file gambar dengan format PNG, dengan cara mengakses data piksel yang ada didalamnya. Penggunaan class Bitmap ini memberikan keuntungan yaitu kompatibiltas program dengan sistem operasi Windows. Program yang ditulis dengan menggunakan .Net Framework, berjalan pada software environment (bukan
hardware environment), yang dikenal dengan Common Language Runtime (CLR), yang disebut dengan application virtual machine. CLR menyediakan layanan seperti keamanan, pengaturan alokasi memori, dan exception handling.
Gambar 7 menunjukkan tampilan antarmuka aplikasi untuk proses
embedding. Ada lima langkah yang harus dilakukan user dalam proses
embedding: 1) memilih cover image, dengan memilih button cover file, user dapat memilih file image berformat .png; 2) memilih file/pesan yang ingin dirahasiakan berupa file text, dengan memilih button message file; 3) user memasukkan
password pada field key; 4) proses selanjutnya yaitu, user memilih tombol hide message untuk melakukan proses embedding; 5) setelah melakukan proses
embedding, maka user tinggal memilih button save stego image untuk menyimpan hasil dari proses embedding, user memilih direktori tempat penyimpanan image
yang telah disisipkan file/pesan, hingga ditampilkan message box save, kemudian pilih button ok untuk menutup message box, dan proses embedding selesai.
Kode Program 1 Perintah Enkripsi Vigenere Cipher Extended
1 public static byte[] Encrypt(byte[] data, byte[] key)
2 {
Kode program 1 merupakan perintah yang digunakan untuk melakukan proses enkripsi citra digital. Algoritma enkripsi yang digunakan adalah Vigenere Cipher Extended. Penggunaan mod 256 adalah kode ASCII, karena untuk memenuhi karakter lowercase, uppercase, tanda baca & simbol (perintah pada baris 8).
Kode Program 2 Perintah Untuk Membangkitkan Kunci Pada Proses Enkripsi
1 private byte Xn, a, c, m;
pseudorandom dengan menggunakan rumus Linear Congruential Generator
Kode Program 3 Perintah Untuk Proses PRNG
Kode Program 3 merupakan perintah untuk proses terjadinya
pseudorandom. Langkah yang dilakukan dengan perintah pada baris 1 adalah melakukan proses Exclusive-OR modulasi antara class LCG dengan class Vigenere (perintah pada baris 2-5) setelah melalui proses Exclusive-OR maka ke proses selanjutnya yaitu proses Embedding.
Kode Program 4 Perintah Untuk Proses Embedding
Kode program 4 merupakan perintah untuk menyisipkan bit pesan ke dalam byte image. Langkah yang dilakukan dengan perintah pada baris 1 adalah mengubah nilai byte ke dalam bentuk binary. Sebagai contoh, untuk byte dengan
nilai 5 akan menjadi “00000101”. Kemudian perintah pada baris 2 digunakan
untuk mengubah string binary ke dalam bentuk array karakter. Perintah pada baris 3 digunakan untuk mengganti array indeks ke 7 (bit indeks LSB) dengan bit
pesan pada variabel p. Perintah pada baris ke 4 digunakan untuk mengembalikan
array yang telah “disisipi” ke dalam bentuk string binary, untuk kemudian disimpan kembali dalam cover.
Gambar 8 Antarmuka Proses Extracting
Pada Gambar 8 menunjukkan tampilan antarmuka proses extracting. Ada lima langkah yang harus dilakukan user dalam proses extract: 1) memilih cover image yang telah di-embbed dengan memilih button cover; 2) memasukkan
password pada field key; 3) selanjutnya pilih button extract message untuk proses
extracting, setelah melalui proses extracting, data yang telah disisipkan sebelumnya ditampilkan kembali pada bagian data grid view; 4) selanjutnya user
dapat memilih lokasi dimana ingin menyimpan file hasil ektraksi dengan memilih
1 byte seed = XORModulasi.XOR(initialKey);
2 byte[] keySequence1 = LCG.GenerateSequence(seed, fileName.Length); 3 var cipherFileName = Vigenere.Encrypt(fileName, keySequence1); 4 byte[] keySequence2 = LCG.GenerateSequence(seed, fileContent.Length); 5 var cipherContent = Vigenere.Encrypt(fileContent, keySequence2);
1 string binary = Convert.ToString(current, 2).PadLeft(8, '0'); 2 char[] arrayBit = binary.ToCharArray();
3 arrayBit[7] = p;
button save message file. Message box image saved ditampilkan kemudian pilih
button done untuk menutup message box, dan proses extract selesai. Ketika proses ekstraksi selesai dijalankan, maka akan ditampilkan lama waktu yang digunakan untuk proses extracting.
Kode Program 5 Perintah Untuk Proses Extracting
Kode Program 5 menjelaskan proses ektraksi nilai LSB dari byte warna. Perintah pada baris 1 digunakan untuk menyimpan byte warna pada variabel b. Variabel b diubah dalam bentuk string binary. Kemudian perintah pada baris 2 digunakan untuk membaca nilai paling akhir (LSB), yaitu pada indeks ke 7.
Kode Program 6 Perintah Dekripsi Vigenere Cipher Extended
1 public static byte[] Decrypt(byte[] data, byte[] key)
2 {
Kode program 6 merupakan perintah yang digunakan untuk melakukan proses dekripsi citra digital. Algoritma dekripsi yang digunakan adalah Vigenere Cipher Extended. Penggunaan mod 256 adalah kode ASCII, karena untuk memenuhi karakter lowercase, uppercase, tanda baca & simbol (perintah pada baris 11).
Pengujian terhadap sistem steganografi yang dibangun dilakukan dengan tujuan untuk melihat apakah sistem telah memenuhi konsep steganografi dengan metode vigenere cipher, PRNG, dan LSB embedding, terkait pengaruh kualitas
file image, keamanan dan keutuhan file data. Pengujian sistem dilakukan dengan dengan karakteristik spesifikasi komputer, yang terlihat pada Tabel 1.
Tabel 1 Spesifikasi Komputer
Sistem Operasi Microsoft Windows 7 32-bit (x82) Prosesor Intel® Core™ i3-2350M, 2.30GHz
RAM 4 GB
Harddisk 500 GB
Kecepatan Harddisk 5400 rpm
VGA AMD Radeon™ HD 6470M 1GB
C# 2012 .net 4 Miicrosoft Visual Studio 2012
Pengujian Integritas Pesan (Pengujian 1), dilakukan dengan cara menghitung nilai hash/checksum dari pesan sebelum disisipkan dengan pesan setelah proses ekstraksi. Pesan dinyatakan utuh jika memiliki nilai yang sama. Perhitungan hash dilakukan dengan metode algoritma SHA256 [10]. Hasil pengujian 1 dapat dilihat pada Tabel 2.
1 string binary = Convert.ToString(b, 2);
Tabel 2 Hasil Pengujian Integritas Pesan aplikasi steganografi yang dibangun berhasil menyisipkan pesan dan mengeksraksi pesan tanpa menyebabkan perubahan/kerusakan pada pesan. Dalam hal ini pengujian aplikasi telah memenuhi kriteria steganografi yaitu Recovery
(data yang disembunyikan harus dapat diungkapkan kembali untuk digunakan lebih lanjut).
Pengujian Pengaruh Dimensi Gambar Terhadap Waktu Proses (Pengujian 2), dilakukan dengan tujuan untuk mengetahui pengaruh dimensi gambar terhadap waktu proses. Pengujian 2 dilakukan dengan menggunakan gambar yang sama dengan dimensi yang berbeda (otomatis size berbeda), dan teks yang sama dengan panjang 1024 karakter (1024 byte) Hasil pengujian dapat dilihat pada Tabel 3.
Tabel 3 Hasil Rata-Rata Pengujian Pengaruh Dimensi Gambar Terhadap Waktu Proses
No Gambar Ukuran
2 Lena256x256.png 184 KB 256x256 1024 bytes 0.17901 0.065004
3 Lena512x512.png 669 KB 512x512 1024 bytes 0.70504 0.252014
4 Lena768x768.png 980 KB 768x768 1024 bytes 1.557089 0.563032
Kesimpulan dari hasil pengujian 2 adalah dimensi gambar mempengaruhi waktu proses. Semakin kecil ukuran dimensi gambar, semakin cepat waktu proses.
Pengujian Perubahan Piksel (Pengujian 3), dilakukan dengan cara membandingkan susunan piksel pada gambar sebelum dan sesudah proses
Tabel 4 Hasil Pengujian Perubahan Piksel
Panjang Pesan
File Dimensi Jumlah Piksel
Berbeda
Prosentase Perubahan
128 byte lena.png 1024x1024 289 pixel 0,03 % 256 byte lena.png 1024x1024 530 pixel 0.05 % 512 byte lena.png 1024x1024 1013 pixel 0,09 % 1024 byte lena.png 1024x1024 1975 pixel 1,89 %
Berdasarkan hasil pengujian 3 pada Tabel 4, disimpulkan bahwa jumlah piksel yang berbeda bertambah sesuai dengan panjang pesan. Prosentase perubahan dihitung berdasarkan jumlah perbedaan piksel dibagi jumlah piksel dikali 100 persen.
Pengujian Kapasitas Maksimal Pesan Dapat Disisipkan Dala Gambar (Pengujian 4), dilakukan dengan menggunakan Persamaan 1.
(1)
Dalam hal ini :
K : Kapasitas bit maksimal pesan yang dapat disisipkan dalam gambar. P : Panjang gambar dalam pixel.
L : Lebar gambar dalam pixel.
3 : Konstanta yang menunjukkan jumlah warna dalam 1 pixel. 1 pixel
terdapat 3 warna.
8 : Konstanta yang menunjukkan jumlah bit dalam 1 byte.
Pengujian pertama dilakukan pada gambar dengan panjang 128px dan lebar 128px, dan digunakan Persamaan 1 untuk menghitung kapasitas maksimal pesan yang dapat disisipkan dalam gambar. Proses perhitungan sebagai berikut.
Pengujian kedua dilakukan pada gambar dengan panjang 512px dan lebar 512px, dan dapat digunakan persamaan 1 untuk menghitung kapasitas maksimal pesan yang dapat disisipkan pada gambar. Proses perhitungan sebagai berikut.
Berdasarkan perhitungan tersebut menunjukkan jumlah maksimal kapasitas pesan yang dapat disisipkan dalam gambar berukuran 512px x 512px adalah sebanyak 32.768 byte.
Bedasarkan hasil dua pengujian pada Pengujian 4, disimpulkan bahwa semakin besar jumlah pixel pada sebuah gambar, akan semakin banyak jumlah
byte pesan yang dapat disisipkan.
Pengujian Perbandingan Visual Gambar Sebelum dan Sesudah Proses Embedding (Pengujian 5), dilakukan dengan cara menunjukkan file gambar (cover) sebelum dan sesudah proses embedding kepada 30 responden. Cover image menggunakan dimensi 512x512 berformat PNG, file data yang disisipkan 1024 karakter (1024 byte). Kepada responden ditanyakan “Pada Pengujian
Gambar terkait dengan proses embedding apakah ada perbedaan antara gambar A dan B secara kasat mata?”. Gambar A adalah gambar sebelum disisipi file data, gambar B adalah gambar yang telah disisipi file data. Hasil pengujian ditunjukkan pada Tabel 5.
Tabel 5 Hasil Pengujian Visual
No Gambar A Gambar B Hash Checksum (MD5) Perbedaan
Piksel Responden
Hash A Hash B
1. 541fb5f7
be643675
9db3a924
9c89cfa6
3a982d3a
b343c79f
8e4c8bdb
a9c63ed8
2,970 Tidak Ada
8. e5df45ec
Tabel 5 menunjukkan informasi pengujian 5, disimpulkan bahwa aplikasi berhasil mempertahankan bentuk visual dari file image, terbukti dari hasil kuisioner yang menyatakan bahwa tidak ada perbedaan antar kedua gambar dan tidak mengalami perubahan yang cukup signifikan secara visual. Dalam hal ini pengujian aplikasi telah memenuhi kriteria steganografi yaitu Imperecbility ( tidak dapat dibedakan secara kasat mata )dan Fidelity ( kualitas cover-image tidak jauh berbeda dengan stego-image ). Perhitungan checksum dilakukan dengan menggunakan algoritma MD5 [11]. Perbedaan nilai hash terjadi karena pada proses enkripsi, terdapat proses embedding kunci.
5. Simpulan
Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut: (1) Sistem steganografi yang dibangun dengan metode Vigenere Cipher, PRNG, dan LSB Embedding, dapat melakukan penyisipan (embedding)/pengambilan (extracting) data file, dan cover image
berformat PNG; (2) Berdasarkan hasil pengujian integritas pesan, pesan sebelum disisipkan dan setelah disisipkan tidak mengalami perubahan, jika nilai hash
dinyatakan sama; (3) Dimensi gambar yang berbeda mempengaruhi kecepatan proses penyisipan dan jumlah piksel yang berbeda bertambah sesuai dengan panjang pesan; (4) Berdasarkan pengujian kapasitas maksimal pesan yang dapat disisipkan dalam gambar, semakin besar jumlah pixel pada gambar akan menambah jumlah kapasitas byte pesan yang akan disisipkan pada gambar; (5) Berdasarkan hasil pengujian visual terhadap gambar sebelum dan sesudah proses
embedding, gambar tidak mengalami perubahan secara signifikan secara visual. Saran pengembangan yang dapat diberikan untuk penelitian lebih lanjut adalah sebagai berikut: (1) Data yang telah disisipkan dapat dikembangkan tidak hanya dalam bentuk teks, namun juga data gambar atau audio; (2) Media cover image
yang digunakan tidak hanya yang berformat PNG, tetapi format yang lain; (3) Metode Vigenere Cipher, PRNG, LSB Embedding dapat diterapkan pada media selain citra digital; (4) File Stego Image tahan terhadap serangan manipulasi data (cropping, compression, rotating). (5) Dilakukan perbandingan ukuran image
6. Daftar Pustaka
[1]. Edisuryana, Isnanto, & Somantri, 2013, Aplikasi Steganografi pada Citra Berformat Bitmap Dengan Menggunakan Metode End of File, Karya Ilmiah, Semarang : Universitas Diponegoro.
[2]. Sridevi, Damodaram, & Narasiham, 2009, Efficient Method of Audio Steganography by Modified LSB Algorithm and Strong Encryption Key with Enhanced Security, Jurnal, Hyderabad : Department of Computer Science and Engineering-JNTUH.
[3]. Alatas, Putri, 2009, Implementasi Teknik Steganografi Dengan Metode LSB Pada Citra Digital, Tugas Akhir, Jakarta: Teknik Informatika Universitas Gunadarma.
[4]. Caksono, Nur Adi Susliawan Dwi, 2010, Penerapan Metode Vigenere Cipher pada Aplikasi Chat Messenger Sederhana, Makalah, Bandung: Program Studi Teknik Informatika Institut Teknologi Bandung.
[5]. Munir, Rinaldi, 2006, Kriptografi, Steganografi, dan Watermarking, Bandung: Institut Teknologi Bandung.
[6]. Arubusman, Yusrian Roman, 2007, Audio Steganografi, Tugas Akhir, Jakarta: Teknik Informatika Universitas Gunadarma.
[7]. Utomo, Tri Prasetyo, 2012, Steganografi Gambar Dengan Metode Least Significant Bit Untuk Proteksi Komunikasi Pada Media Online, Jurnal, Bandung: Jurusan Teknik Informatika UIN Sunan Gunung Djati.
[8]. Susanti, Irena, 2007, Penerapan Steganografi Gambar Pada Least Significant Bit (LSB) dengan penggunaan PRNG (Pseudo Random Number Generator), Skripsi, Bogor: Departemen Ilmu Komputer Institut Pertanian Bogor.
[9]. Susanto, Agus, 2006, Studi Dan Implementasi Steganografi Pada Berkas MIDI, Jurnal, Bandung:Program Studi Teknik Informatika Institut Teknologi Bandung.
[10]. W3C, 2003. Portable Network Graphics (PNG) Specification (Second Edition). http://www.w3.org/TR/PNG/#11IHDR. Diakses pada tanggal 10 April 2015.
[11]. Shafiq, S., Khiyal, M. S. H., & Khan, A. Development of Mechanism of Integrity in M-Commerce Using Joint Signature Scheme.