Penyembunyian Pesan Terenkripsi Pada Cit
Penyembunyian Pesan Terenkripsi Pada Citra GIF
Menggunakan Algoritma Gifshuffle
Artikel Ilmiah
Peneliti:
Yanuar Tesla (672007032)
M. A. Ineke Pakereng, M.Kom.
T. Arie Setiawan Prasida, S.T., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Mei 2012
Penyembunyian Pesan Terenkripsi Pada Citra GIF
Menggunakan Algoritma Gifshuffle
1) Yanuar Tesla; 2)M. A. Ineke Pakereng;
3)
T. Arie Setiawan Prasida
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50771, Indonesia
Email: 1)[email protected], 2) [email protected]
3)
[email protected]
Abstract
This study implements steganography application with Gifshuffle algorithm in the
GIF image. The development of information technology gives a chance for people to
share message and communicate through Local Area Network (LAN), internet, email, and
mobile internet. To balance the ra pid communication, some safety aspects are needed in
sending the message. This study was purposing to hide the secret message by randomize
the message’s content. By using the Gifshuffle algorithm and Vigenre Cipher tecnique in
hiding the message show the GIF image, the result was confronted with four aspects of
steganography evaluation, such as: Imperceptibility, Fidelity, Recovery, and Robustness.
As a result, the program was able to fulfill the recovery aspect besides its necessity for
essential improvement in fulfilling the Imperceptibility, Fidelity, and Robustness aspects.
Immediate implications are needed for the development of the algorithm gifshuffle in the
animated GIF image.
Keywords : Data security, Cryptography, Steganography, Gifshuffle Algorithm, GIF
Abstrak
Penelitian ini mengimplementasikan aplikasi steganografi dengan algoritma
Gifshuffle pada citra GIF.
Semakin berkembangnya dunia teknologi informasi
memungkinkan manusia untuk saling bertukar pesan dan berkomunikasi melalui Local
Area Network (LAN), internet, email, dan handphone.
Sebagai penyeimbang
berkembangnya hal tersebut, maka dibutuhkan berbagai aspek keamanan pengiriman data
khususnya untuk data penting dan rahasia. Penelitian ini bertujuan untuk
menyembunyikan pesan rahasia dengan mengacak isi pesan tersebut (prinsip kriptografi)
dan menggunakan citra GIF sebagai media penampung pesan. Penelitian ini mengunakan
algoritma gifshuffle dan ditambah dengan teknik Vigenere Cipher untuk
menyembunyikan data di dalam citra GIF. Hasil penelitian ini diuji dengan empat aspek
penilaian steganografi yaitu; Imperceptibility, Fidelity, Recovery, dan Robustness. Hasil
pengujian yang didapat adalah program ini dapat memenuhi aspek recovery sedangkan
Imperceptibility, Fidelity, dan Robustness merupakan aspek yang dinilai masih kurang.
Implikasi utuk pengmbangan ke depan adalah penggunaan media penampung selain citra
GIF untuk dapat memenuhi aspek-aspek yang lain. Dapat pula dilakukan implementasi
Algoritma Gifshuffle pada citra GIF animated dan masukan kunci tidak hanya berupa
teks, melainkan dapat berupa file.
Kata Kunci : Keamanan Data, Kripografi, Steganografi, Algoritma Gifshuffle, GIF
1.
Pendahuluan
Teknologi informasi yang berkembang pesat memungkinkan manusia dapat
berkomunikasi dan saling bertukar pesan melalui berbagai media. Proses
pengiriman data yang dilakukan media seperti Local Area Network (LAN),
internet, email, handphone maupun media lain perlu diperhatikan dalam segi
keamanan data akan sangat diperhatikan, terutama apabila data yang akan dikirim
merupakan data atau pesan rahasia. Berbagai usaha akan dilakukan untuk
menjamin agar pesan rahasia yang dikirim tidak dapat diakses oleh pihak lain.
Salah satu penyembunyian pesan rahasia dilakukan dengan mengacak isi pesan
tersebut yang merupakan prinsip utama dari kriptografi yaitu pengacakan data asli
yang menghasilkan data dengan hasil terenkripsi. Isi pesan yang acak membuat
pihak lain mencurigai adanya pesan tersembunyi, namun jika ditambah dengan
menyisipkan pesan acak ke dalam sebuah media lain, maka akan menambah aspek
keamanan. Dengan demikian pihak lain tidak mencurigai terhadap pesan rahasia
yang dikirim, dikarenakan yang terlihat hanyalah media penampung dari pesan
tersebut. Hal ini dirasa lebih aman jika dibandingkan hanya dengan mengacak
atau mengenkripsi isi pesan, yang dapat membuat pihak lain ingin mengetahui isi
pesan tersebut.
Penyembunyian pesan terhadap sebuah media disebut
sebagai Steganografi. Dalam kamus English Oxford kata steganografi diartikan
sebagai teknik penyembunyian pesan atau informasi dengan menggunakan teks
publik maupun data. Media yang akan digunakan akan menentukan pula
algoritma steganografi yang digunakan. Salah satu format berkas citra digital yang
digunakan adalah format gambar GIF yang diperkenalkan oleh CompuServe pada
tahun 1987. Format GIF umum digunakan dalam web dikarenakan ukurannya
yang relatif lebih kecil dibanding dengan format lainya. Hal itu disebabkan karena
dalam sebuah citra berformat GIF menggunakan 8-bit untuk setiap pikselnya
sehingga format GIF hanya menampung maksimal 256 warna [1]. Berbeda
dengan citra berformat JPEG yang dapat menampung jutaan warna dikarenakan
format tersebut menggunakan 24-bit untuk setiap pikselnya. Salah satu algoritma
steganografi pada citra dengan format GIF adalah Gifshuffle. Algoritma Gifshuffle
memanfaatkan palet warna berkas GIF sebagi media penyisipan pesan.
Berdasarkan hal tersebut maka akan dilakukan penelitian dengan topik
penyembunyian pesan terenkripsi pada citra GIF menggunakan algoritma
Gifshuffle .
2. Tinjauan Pustaka
Penelitian sebelumnya tentang steganografi pada citra berformat GIF
menggunakan algoritma Gifshuffle . Penelitian ini menggunakan ilustrasi untuk
menjelaskan algoritma Gifshuffle dan melakukan pengujian ketahanan media
stego. Media stego yang digunakan adalah citra GIF. Kesimpulan yang didapat
adalah algoritma ini mudah diterapkan, karena mengandung langkah-langkah
yang tidak rumit, selain itu algoritma ini tidak merubah kualitas dari citra yang
digunakan sebagai media stego [2]. Pada penelitian ini, mengembangkan
kriptografi dengan algoritma Vigenere Cipher , yang menggunakan masukan kunci
1
bertipe data string yang berjumlah hingga 96 karakter yang diambil pada urutan
karakter ASCII yang dapat dicetak. Kemudian untuk melengkapi kriptografi
tersebut, ditambahkan teknik steganografi dengan menggunakan algoritma
Gifshuffle dengan media objek gambar dengan format GIF, yang digunakan untuk
menambah keamanan dalam penyembunyian pesan.
Kriptografi Vigenere Cipher
Sistem sandi Vigenere adalah sistem sandi substitusi multi-alfabet, yaitu
sistem sandi Caesar tetapi dengan pergeseran alfabet yang berlainan
disesuaikan dengan kata kuncinya. Pada kriptografi Vigenere, plaintext akan
dienkripsi dengan pergeseran huruf seperti pada kriptografi Caesar , tetapi setiap
huruf di dalam plaintext akan mengalami pergeseran yang berbeda. Kunci pada
kriptografi Vigenere adalah sebuah kata bukan sebuah huruf. Kata kunci ini
akan dibuat berulang sepanjang plaintext, sehingga jumlah huruf pada kunci
akan sama dengan jumlah huruf pada plaintext. Pergeseran setiap huruf pada
plaintext, akan ditentukan oleh huruf pada kunci yang mempunyai posisi yang
sama dengan huruf pada plaintext. Kriptografi Vigenere dikenal sebagai
polyalphabetic substitution cipher , karena enkripsi terhadap satu huruf yang sama
bisa menghasilkan huruf yang berbeda. Pergeseran huruf pada plaintext
ditentukan oleh tabel yang sama dengan tabel pada kriptografi Caesar . Rumus
kriptografi Caesar tetap berlaku pada kriptografi Vigenere, baik pada enkripsi
maupun dekripsi.
Algoritma Gifshuffle
Gifshuffle merupakan algoritma steganografi yang digunakan untuk
menyembunyikan pesan dalam media citra berformat GIF. Algoritma Gifshuffle
pada intinya memanfaatkan palet warna berkas GIF sebagai media penyisipan
pesan. Dikarenakan berkas GIF hanya menggunakan maksimal 256 palet warna,
maka pesan yang akan disisipkan akan terbatas hingga 1683 bits atau 210 byte
dengan kata lain maksimal menampung 210 karakter jika masukannya berupa
karakter [3]. Sesuai dengan namanya Gifshuffle , maka prinsip utama algoritma ini
akan melakukan shuffle terhadap palet warna dari sebuah berkas GIF. Algoritma
Gifshuffle dalam bentuk flowchart ditunjukkan pada Gambar 1.
2
Gambar 1 Flowchart Algoritma Gifshuffle
Adapun langkah-langkah encoding dari algoritma Gifshuffle adalah
sebagai berikut[3]:
1. Proses encoding dimulai dengan pesan yang akan disisipkan. Pesan diubah ke
dalam bentuk biner dengan representasi 1 atau 0.
2. Kemudian disisipkan angka 1, di depan rangkaian biner tersebut. Langkah
selanjutnya rangkaian biner tersebut dikonversikan menjadi bilangan desimal
dan menghasilkan sebuah bilangan yang dinamakan sebagai .
3. Menghitung jumlah warna yang terkandung dalam berkas Gif yang menjadi
objek steganografi dan akan menghasilkan sebuah bilangan. Bilangan
maka pesan yang
tersebut dinamakan sebagai , maka apabila
ingin disisipkan berukuran terlalu besar sehingga proses penyisipan tidak
dapat dilakukan.
4. Warna dalam palet warna diurutkan sesuai dengan urutan yang “natural”.
Setiap warna dengan format RGB dikonversikan ke dalam bilangan integer
dengan aturan
. Kemudian
diurutkan berdasarkan besar bilangan integer yang mewakili warna tersebut.
5. Setelah itu dilakukan iterasi terhadap variabel dengan nilai adalah dari 1
sampai n. Setiap warna dengan urutan
dipindahkan ke posisi baru yaitu
, kemudian dibagi dengan .
6. Kemudian palet warna yang baru hasil iterasi pada langkah ke-4 dimasukkan
ke dalam palet warna berkas Gif. Apabila ada sebuah tempat yang diisi oleh
dua buah warna, maka warna yang sebelumnya yang menempati tempat
tersebut akan digeser satu tempat ke samping.
7. Apabila ternyata besar dari palet warna yang baru lebih kecil dari 256 maka
palet warna akan disi dengan warna terakhir dari palet warna sebelumnya.
8. Kemudian berkas Gif akan dikompresi ulang dengan palet warna yang baru
untuk menghasilkan berkas yang baru dengan ukuran dan gambar yang sama
namun telah disisipi pesan.
3
3.
Metode dan Perancangan
Metode pengembangan sistem yang dipakai dalam penelitian ini adalah
metode waterfall, dapat dilihat pada Gambar 2.
Gambar 2 Metode Permodelan Waterfall [4]
Adapun tahap-tahap metode pengembangan dalam perancangan aplikasi
antara lain :
1.
Penentuan dan Analisis Spesifikasi; Pada tahap ini dilakukan
pengumpulan kebutuhan sistem secara lengkap. Setelah itu dilakukan
analisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program
yang dibangun. Adapun beberapa hal yang diperlukan sebelum
membangun sistem adalah : (1) Masukan berupa citra GIF non animated;
(2) Sofware pemrograman untuk menyusun kode dalam sistem; (3)
Software image manipulation untuk melakukan pengujian terhadap media
penampung; (4) Software pembanding gambar untuk melakukan
perbandingan antara citra asli dan citra stego.
2.
Desain sistem dan Perangkat lunak; Tahap ini terdiri dari proses desain
sistem yang membagi kebutuhan-kebutuhan sistem perangkat lunak,
termasuk menghasilkan fungsi sistem perangkat lunak dalam bentuk
transformasi ke dalam satu atau lebih program yang dapat dijalankan.
3.
Implementasi dan Uji Coba Unit; Pada tahap ini desain perangkat lunak
diterjemahkan ke dalam kode-kode dengan menggunakan bahasa
pemrograman. Kemudian dilakukan pengujian terhadap unit program yang
telah dibuat. Uji unit termasuk pengujian bahwa setiap unit sesuai
spesifikasi.
4.
Intergrasi dan uji coba system; Pada Tahap ini, unit program diintegrasikan
dan diuji menjadi sistem yang lengkap untuk meyakinkan bahwa
persyaratan perangkat lunak telah dipenuhi.
5.
Operasi dan pemeliharaan; Ini adalah fase terpanjang dari proses
sebelumnya. Sistem digunakan dan dilakukan pemeliharaan termasuk
perbaikan kesalahan yang tidak ditemukan pada langkah sebelumnya.
4
Analisis Kebutuhan Sistem
Analisis kebutuhan sistem merupakan proses identifikasi dan evaluasi
permasalahan-permasalahan yang ada, sehingga nantinya sistem yang dibagun
sesuai dengan kriteria yang diharapkan. Tahapan analisis kebutuhan digunakan
untuk mengetahui kebutuhan sistem agar dapat bekerja dengan baik dan optimal,
sehingga tidak terjadi kesalahan perancangan dan kerusakan pada program.
Aplikasi steganografi menggunakan metode Gifshuffle, dibuat untuk memenuhi
kebutuhan sebagai berikut: (1) Dapat melakukan embedding pesan terenkripsi
pada citra berformat GIF; (2) Dapat melakukan ekstrak pesan terenkripsi yang
tersimpan dalam stego image. Berdasarkan kriteria kebutuhan sistem, maka
masukan yang diperlukan oleh sistem adalah sebagai berikut : (1) File gambar
dengan format GIF sebagai media cover untuk embedding pesan; (2) Pesan
rahasia yang berupa text dengan masukan segala karakter. Analisis keluaran
berfungsi untuk mengetahui keluaran yang dihasilkan oleh sistem yang dibangun.
Sistem yang dibangun ini akan menghasilkan keluaran dalam bentuk : (1) File
stego image yaitu file gambar cover yang di dalamnya terdapat file rahasia yang
telah di-embedding; (2) Pesan rahasia berupa teks yang telah diekstrak.
Perancangan Sistem
Perancangan sistem meliputi perancangan algoritma yang digunakan
dalam sistem. Dalam penelitian ini menggunakan algoritma Vigenere Cipher,
Sedangkan untuk steganografi menggunakan algoritma Gifshuffle . Algoritma
steganografi digunakan untuk menambah tingkat keamanan algoritma kriptografi.
Pembuatan aplikasi dalam penelitian ini menggunakan kriptografi untuk
mengenkripsi pesan. Algoritma kriptografi yang digunakan adalah algoritma
Vigenere Cipher dengan memanfaatkan Square Table Vigenere .
Penerapan enkripsi algoritma Vigenere
Contoh enkripsi dengan masukan plaintext “TEKNIKINFORMATIKA” dengan
kunci “UKSW”, maka :
1. Plaintext = “TEKNIKINFORMATIKA”
2. Kunci = “UKSW”
3. Dilakukan enkripsi dengan kunci = UKSWUKSWUKSWU. Secara detil
dapat dilihat pada Tabel 3.
4.
Tabel 3 Perubahan Kunci Vigenere
T
U
5.
E
K
K
S
N
W
I
U
K
K
I
S
N
W
F
U
O
K
R
S
M
W
A
U
T
K
I
S
K
W
A
U
Plaintext
Kunci
c(„T‟) = („T‟ + „U‟) mod 26 = L
T = 51 dan U= 52 (51+52)%96=7 „
c(„E‟) = („E‟ + „K‟) mod 96 = p, dst
Perancangan Steganografi Dengan Algoritma Steganografi
Algoritma steganografi yang digunakan adalah algoritma Gifshuffle .
Gifshufle memanfaatkan palet warna dari citra Gif. Algoritma Gifshuffle memiliki
dua proses utama, yaitu proses encoding dan proses decoding.
5
Contoh penyisipan pesan “T” ke dalam berkas GIF dengan jumlah warna
pada palet warna sebanyak 6 buah, adalah sebagai berikut:
1. Pesan yang akan disisipkan adalah “T” yang diubah ke dalam bentuk biner
dengan pengkodean ASCII menghasilkan bilangan biner : 1010100. Untuk
mendapatkan nilai M disisipkan angka 1 pada rangkaian biner maka :
2. Jumlah warna pada palet warna citra tersebut adalah 6, maka apabila
(menggunakan cara pada halaman 4) proses encoding dapat
dilakukan. Karena nilai m tidak lebih besar dengan n!-1.
3. Urutan warna pada palet warna citra tersebut secara “natural” dapat dilihat
pada Gambar 3.
Gambar 3 Pengkonversian RGB ke Nilai Integer.
Pada Gambar 3 ditunjukkan nilai “natural” dari beberapa warna, nilai tersebut
didapat dari besar nilai RGB. Contoh pada warna A, nilai Red dalam
heksadesimal adalah f7, dan dikonversikan ke dalam desimal menjadi 247, nilai
Green dalam heksadesimal adalah 47 dan dikonversikan ke dalam desimal
menjadi 71, dan nilai Blue dalam heksa-desimal adalah 47 dan dikonversikan ke
dalam desimal menjadi 71. Berdasarkan nilai-nilai desimal tersebut didapat nilai
“natural” dengan rumus berikut :
Sehingga didapat nilai integer yaitu 16205639.
Susunan palet warna setelah diurutkan berdasarkan besar nilai integer terkecil
dapat dilihat pada Gambar 4.
Gambar 4 Susunan Palet Warna Diurutkan berdasarkan Besar Nilai Integer.
4. Iterasi variabel i mulai dari 1 sampai n :
Warna indeks kedipindahkan ke-
.
a) Untuk
6
Maka, warna indeks ke-5 dipindahkan ke indeks ke-0 pada susunan palet warna
yang baru.
b) Untuk
Maka, warna indeks ke-4 dipindahkan ke indeks ke-0 pada susunan palet warna
yang baru.
c) Untuk
Maka, warna indeks ke-3 dipindahkan ke indeks ke-2 pada susunan palet warna
yang baru.
d) Untuk
Maka, warna indeks ke-2 dipindahkan ke indeks ke-0 pada susunan palet warna
yang baru.
e) Untuk
Maka, warna indeks ke-1 dipindahkan ke indeks ke-3 pada susunan palet warna
yang baru.
f) Untuk
Maka, warna indeks ke-0 dipindahkan ke indeks ke-1 pada susunan palet warna
yang baru.
5. Pada tahap kelima, apabila ada beberapa warna yang menempati indeks yang
sama, maka Setiap warna yang menempati indeks tersebut akan bergeser
sekali ke indeks berikutnya. Susunan palet warna yang baru sesuai aturan
tersebut dapat dilihat pada Gambar 5.
Gambar 5 Susunan Palet Warna yang Baru Setelah Dilakukan Iterasi Terhadap Variabel i.
7
6.
Urutan palet warna ini kemudian dimasukkan ke dalam berkas citra GIF untuk
menghasilkan citra yang telah disisipi pesan.
Untuk skema decoding berupa pembalikan dari skema encoding. Inti dari
proses decoding adalah untuk mencari nilai . Setelah nilai diperoleh maka
pesan asli dapat mudah didapat. Adapun langkah-langkah untuk mengekstrak
kembali pesan dari sebuah citra GIF menggunakan algoritma Gifshuflle adalah
sebagai berikut :
1. Masukkan nomor sesuai dengan posisi setiap warana pada palet warna citra
GIF yang telah disisipkan pesan.
2. Warna diurutkan berdasarkan konversi RGB ke nilai integer dengan rumus :
3.
diberi nilai 0.
.
4. Iterasi variabel dari 0 sampai
posisi warna ke- .
Iterasi variabel dari
sampai
.
Jika nilai posisi warna ke
nilai posisi warna ke-i, maka posisi warna ke
dikurangkan 1.
diperoleh, maka nilai
dikonversikan ke bilangan biner
5. Setelah nilai
untuk memperoleh pesan asli.
Berdasarkan contoh pada proses encoding, maka pesan asli dapat diekstrak
dengan mengikuti langkah-langkah berikut:
1. Warna pada palet warna diberikan nomor sesuai dengan posisinya. Lebih
jelasnya dapat dilihat pada Gambar 6.
Gambar 6 Penomoran Posisi Palet Warna.
2. Nilai natural setiap warna dapat dilihat pada Gambar 7.
Gambar 7 Nilai Natural Setiap Warna
Kemudian diurutkan berdasarkan nilai integer terkecil, maka posisi palet
warna baru terdapat pada Gambar 8.
Gambar 8 Urutan Palet Warna Baru Berdasarkan Nilai Integer Terkecil.
8
3.
diberi nilai 0.
4. Iterasi variabel i dari 0 sampai 5.
posisi ke-i.
Iterasi variabel j dari i+1 sampai 5.
nilai posisi warna ke-i, maka posisi warna ke
Jika nilai posisi warna ke
dikurangkan 1.
a) Untuk
posisi ke-0
o Untuk
Posisi ke-1 > posisi ke-0
, ya maka posisi keo Untuk
Posisi ke-2 > posisi ke-0
, tidak
o Untuk
Posisi ke-3 > posisi ke-0
, ya maka posisi keo Untuk
Posisi ke-4 > posisi ke-0
, tidak
o Untuk
Posisi ke-5 > posisi ke-0
, ya maka posisi ke1
2
3
Warna C
Warna E
Warna D
4
0
3
4
Warna F
1
5
Warna A
2
i
Posisi
5
i
b) Untuk
o Untuk
Posisi
posisi
, tidak
o Untuk
Posisi
posisi
, tidak
o Untuk
Posisi
posisi
, tidak
o Untuk
Posisi
posisi
, tidak
2
3
4
9
Warna E
0
Warna D
3
Warna F
1
Warna A
2
Posisi
c) Untuk
o
o
o
Untuk
Posisi
Untuk
Posisi
Untuk
Posisi
posisi
, ya maka posisi ke-
posisi
, ya maka posisi keposisi
, ya maka posisi ke-
3
Warna D
2
4
Warna F
0
5
Warna A
1
I
Posisi
d) Untuk
o Untuk
Posisi
posisi
, tidak
o Untuk
Posisi
posisi
, tidak
4
Warna
F
0
5
Warna
A
1
I
Posisi
e) Untuk
o
Untuk
Posisi
posisi
, ya maka posisi ke
f) Untuk
10
5.
Angka 1 dalam rangkaian biner dihilangkan, maka :
T
Perancangan Proses
Perancangan proses menggunakan Unified Modeling Language (UML).
Langkah pertama yang dilakukan untuk memetakan fungsionalistas adalah dengan
menyusun use case diagram.
Pilih Gambar
Encoder
Menulis pesan
Input passwordStego
(f rom Actors)
Decoder
(f rom Actors)
cekTabelViginere
Input PasswordKripto
SetPasswordStego Change passwordStego
Mendapat pesan
Set Password Kripto
Change passwordKripto
Gambar 9 Use Case Diagram Sistem
Use case diagram sistem pada Gambar 9, terdiri dari dua aktor yaitu
Encoder dan Decoder . Kedua aktor tersebut memiliki hak untuk memilih gambar.
Untuk aktor Encoder sendiri memiliki hak untuk menulis pesan, menggunakan
cekTabelVigenere, SetPasswordStego dan Set PasswordVigenere . Dalam kedua
SetPassword terdapat generalisasi ChangePassword. Sedangkan untuk aktor
Decoder sendiri berhak melakukan input passwordStego dan passwordKripto dan
terakhir Mendapat Pesan.
6.
Pembahasan
Sistem dalam penelitian ini berbentuk desktop application yang disertai
dengan GUI (Graphical User Interface), bertujuan untuk mempermudah user
dalam pengoperasian sistem. GUI pada sistem ini terdiri dari beberapa form antara
lain adalah form utama, from encode, dan form decode.
11
Gambar 10 Tampilan Utama Sistem
Pada Gambar 10 bagian teratas terdapat menu strip “File” yang berisikan
“Encode” untuk membuka form Encode dan “Decode” untuk membuka form
Decode. Pada bagian tengah terdapat tab page dan tab yang terbuka pertama
adalah “Start Page” berisikan tombol Encode dan Decode yang berfungsi sama
dengan menu strip di bagian atas. Form-form yang terbuka akan muncul di dalam
tab page sehingga user mudah mengoperasikannya. Pada form Encode berfungsi
untuk mengenkripsi pesan dan menyembunyikan pesan ke dalam Gambar. Proses
enkripsi pesan dan proses encoding pesan dalam Gambar dilakukan dalam form
Encode. Pada tampilan awal from encode hanya berupa textbox dan tombol
Encript untuk mengenkripsi pesan plaintext. Dalam proses enkripsi terdapat form
password untuk memasukkan kunci. rtxt_Plaintext diuraikan ke sebuah array dan
menyimpannya, kemudian menampilkan formPass. Pada formPass terdapat
textbox untuk memasukkan kunci dan textbox lain untuk mengkonfirmasi kunci,
untuk menghindari kesalahan pada kunci. Apabila tombol OK dijalankan, maka
proses enkripsi dijalankan. Perintah yang dijalankan pada tombol OK ditunjukkan
pada Kode Program 1.
Kode Program 1 Perintah Pada Tombol OK.
1. private void btnOK_Click(object sender, EventArgs e)
2. {
3. virgin = new viginere(txtPassEncrypt.Text);
4. string pass = txtPassEncrypt.Text + new
5. String(this.plainText);
6. for (int i = 0; i < plainText.Length; i++)
7. {
8. int g = ((int)pass.ToCharArray()[i]) –
9. viginere.awalAscci;
10.
TabelTemp =
11.
virgin.Tabel()[((int)pass.ToCharArray()[i]) –
12.
viginere.awalAscci].Split(' ');
13.
hasil += TabelTemp[((int)plainText[i]) –
14.
viginere.awalAscci];
15.
}
16.
enkrip.rtxt_Plaintxt.Text = hasil;
Pada Kode Program 1 terdapat perintah untuk mengakses method Tabel
pada class Vigenere . Method Tabel pada class Vigenere dapat dilihat pada Kode
Program 2.
12
Kode Program 2 Method Tabel pada class Vigenere
1. public string[] tabel()
2. {
3. string[] hasil = new string[jumlahAscci] ;
4. char[] huruf = new char[jumlahAscci];
5. for (int i = 0; i < jumlahAscci; i++)
6. {
7. huruf[i] = (char)(awalAscci + i);
8. }
9. for (int i = 0; i < huruf.Length; i++
10.
{
11.
for (int j = i ; j < huruf.Length + i ; j++)
12.
{
13.
if (j >= huruf.Length)
14.
{
15.
hasil[i] += (huruf[j % huruf.Length] + " ");
16.
}
17.
else hasil[i] += (huruf[j] + " ");
18.
}
19.
}
20.
return hasil;
21.
}
Setelah proses enkripsi selesai, tampilan form berubah, untuk melanjutkan
proses encode yang ditunjukkan pada Gambar 11.
Gambar 11 Tampilan From Encode Setelah Proses Enkripsi
Tombol encript berubah menjadi tombol search image yang terlihat pada
Gambar 11. Tombol search image berfungsi untuk menampilkan open file dialo g
untuk memilih Gambar. Tombol encode berfungsi untuk melakukan proses
penyisipan pesan yang sudah dienkripsi atau ciphertext. Tombol encode berfungsi
pula untuk menampilkan save file dialog, dimana Gambar hasil stego akan
disimpan. Ada pun perintah-perintah yang dijalankan saat tombol encode
dijalankan, dapat dilihat pada Kode Program 3.
Kode Program 3 Perintah shuffle Pada Kelas Stego.
1.
public void shuffle(String message,String pathTujuan)
2.
3.
4.
5.
6.
7.
8.
{
sorting(NaturalVal, colorPallete);
for (int i = 1; i i)
12.
{
13.
TabelTemp = virgin.Tabel()[((int)pass.ToCharArray()[i]) viginere.awalAscci].Split(' ');
14.
}
15.
else
16.
{
17.
TabelTemp = virgin.Tabel()[((int)hasil.ToCharArray()[i pass.Length]) - viginere.awalAscci].Split(' ');
18.
}
19.
for (int j = 0; j < TabelTemp.Length; j++)
20.
{
21.
if (TabelTemp[j].Equals(plainText[i].ToString()))
22.
{
23.
hasil += (char)(j + viginere.awalAscci);
24.
break;
25.
}
26.
}
27.
}
28.
if (txtPassEncrypt.Text == txtCfrmPassEncrypt.Text)
29.
{
30.
decript.setHasil(hasil);
31.
Close();
32.
}
33.
else if (txtPassEncrypt.Text != txtCfrmPassEncrypt.Text)
34.
{
35.
MessageBox.Show("Key
do
not
match
!",
"Warning",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
36.
}
37.
}
Form File Compare
Pada form ini terdapat tools untuk membandingkan file citra asli, citra stego, dan
citra stego setelah pesan diambil. Yang menjadi nilai pembanding adalah
perubahan pallete, nilai RGB tiap index, dan bit yang terkandung dalam file. Form
File Compare ditunjukkan pada Gambar 13.
15
Gambar 13 Tampilan Form File Compare
Pengujian Sistem
Pengujian Berdasarkan Aspek Imperceptibility
Penilaian pengujian dilakukan terhadap keberadaan pesan. Pengujian
menggunakan objek kucing.gif dengan masukan pesan “Universitas Kristen Satya
Wacana” dan kunci “FTI07”. Objek kucing.gif ditunjukkan pada Gambar 14.
Gambar 14 Objek Gambar kucing.gif
Tabel properties dari Gambar 14, dapat ditunjukkan pada Tabel 4.
Tabel 4 Properties Gambar Kucing.gif
Item Type, Version
FileSize
Size
BacgroundColor
Bits per color
Transparent
Transparent color
GIF, 89a
721100 bytes
1280x1024 Pixel
clBlack
8
No
clNone
Hasil pengujian berdasarkan aspek Imperceptibility ditunjukkan pada Tabel 5.
Tabel 5 Hasil Pengujian Imperceptibility
Kucing.gif
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Universitas Kristen Satya Wacana
FTI07
~D3'JdUkKgv7kKiu3blIZ^jbT9ZaCo9
Kucing_stego.gif
100%
16
Hasil Gambar stego ditunjukkan pada Gambar 15.
Gambar 15 Gambar kucing_stego.gif
Tabel properties dari Gambar 15, ditunjukkan pada Tabel 6
Tabel 6 Properties File Gambar kucing_stego.gif
Item Type, Version
FileSize
Size
BacgroundColor
Bits per color
Transparent
Transparent color
GIF, 89a
642123 bytes
1280x1024 Pixel
clBlack
8
No
$0029ADE7
Berdasarkan hasil pengujian berdasarkan aspek Imperceptibility, pesan
mudah terdeteksi karena antara Gambar stego dan Gambar asli, secara visual
terlihat berbeda jelas hanya dengan penglihatan inderawi.
Dilakukan pula perbandingan antara citra asli dan citra stego berdasarkan
banyak jumlah karakter. Hasil pengujian dapat dilihat pada tabel 7.
Tabel 7 Properties File Gambar kucing_stego.gif
Citra Asli
Citra Stego
Pengujian dengan masukan 10 karakter
17
Pengujian dengan masukan 100 karakter
Pengujian dengan masukan 210 karakter
Berdasarkan pengujian perbedaan gambar asli dengan gambar stego,
semakin banyak jumlah masukan semakin jauh perbedaan antara kedua gambar.
Pengujian Berdasarkan Aspek Fidelity
Pengujian dilakukan dengan mengukur perbedaan antara citra asli dengan
citra stego. Pengujian ini dibantu dengan software Compare Suite dan
menggunakan tool yang terdapat dalam sistem, untuk membandingkan citra.
Pengujian menggunakan objek pirate.gif, kucing.gif, dan lope.gif. Hasil Pengujian
berdasarkan aspek fidelity menggunakan tool dalam sistem, ditunjukkan pada
Tabel 8.
Tabel 8 Perbedaan Citra Hasil Pengujian Fidelity
Objek
Color Pallete
Warna Tiap Index
Susunan Tiap Bit
Pirate.gif
Kucing.gif
Lope.gif
255
57
128
357821
7322551
63187
239983
611454
21693
Perbandingan antara Gambar stego dan Gambar asli menggunakan software
Compare Suite ditunjukkan pada Gambar 16.
18
Gambar 16 Perbandingan Gambar Asli dan Gambar Stego.
Berdasarkan hasil pengujian pada Gambar 16, Gambar asli dan Gambar
stego memiliki perbedaan yang sangat jelas. Hal ini mengurangi aspek fidelity,
karena perbedaan jelas terlihat secara visual.
Pengujian Berdasarkan Aspek Recovery
Pengujian berdasarkan tingkat keberhasilan dalam pengekstrakan kembali pesan.
Dalam pengujian ini dilakukan beberapa pengujian dengan media cover sama,
hasil pengujian ditunjukkan pada Tabel 9.
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Tabel 9 Hasil Pengujian Berdasarkan Aspek Recovery
Percobaan 1
Kucing.gif
Steganografi
123456
l'y}y)E\ZPOX
Kucing_stego1.gif
100%
Percobaan 2
Kucing.gif
2^8=256
Binary
uH'&)7I
Kucing_stego2.gif
100%
Percobaan 3
Kucing.gif
jl.Diponegoro 52-60
UKSW
@:Dh0V`3OXabUj'&7F
Kucing_stego3.gif
100%
Percobaan 4
Kucing.gif
Fakultas Teknologi Informasi
Fti
-VU=O`W`u7ZlCUX^WVp2Xg:aTQfX
Kucing_stego4.gif
100%
19
Berdasarkan hasil pengujian pada Tabel 9, pesan dapat diekstraksi kembali
dengan utuh, sehingga dikatakan bahwa algoritma ini dapat mengekstrak kembali
pesan.
Pengujian Berdasarkan Aspek Robustness
Dalam pengujian berdasarkan ketahanan media penampung, media penampung
akan diberikan perubahan. Media stego yang digunakan adalah pirate.gif,
ditunjukkan pada Gambar 17.
Gambar 17 Media Percobaan pirate.gif
Beberapa pengujian yang dilakukan adalah :
1. Flip Canvas Horinzotal; Flip Canvas Horisontal merupakan teknik membalik
Gambar secara horizontal. Hasil Flip Canvas Horizontal ditunjukkan pada
Gambar 17.
Gambar 17 Media Citra Diberikan Efek Flip Canvas Horizontal
Setelah dilakukan perubahan pada media penampung, maka pesan tidak dapat
diekstraksi kembali.
2. Rotate 900; Rotate 900 merupakan teknik memutar canvas Gambar hingga 900.
Hasil pemutaran Gambar dapat dilihat pada Gambar 18.
Gambar 18 Media Citra Diberikan Efek Rotate 900
3.
Setelah dilakukan perubahan pada media penampung, maka pesan tidak dapat
diekstraksi kembali.
Penambahan Efek Blur ; Blur adalah perubahan warna tiap-tiap pixel dalam
Gambar agar membentuk distribusi normal. Hasil dari efek ini adalah
Gambar menjadi terlihat kabur. Hasil penambahan efek blur ditunjukkan
pada Gambar 19.
20
Gambar 19 Media Citra Diberikan Efek Blur
Setelah dilakukan perubahan pada media penampung, maka pesan tidak dapat
diekstraksi kembali.
Berdasarkan pengujian Flip Canvas Horinzotal, Rotate 900, dan
Penambahan Efek Blur yang sudah dilakukan, pesan yang telah disisipkan tidak
dapat diekstrak kembali setelah media cover mendapatkan perubahan. Hal ini
disebabkan karena palet warna ikut berubah saat citra GIF mengalami perubahan.
7.
Simpulan
Penelitian yang dilakukan telah berhasil menyembunyikan pesan
terenkripsi dan berhasil mengembalikan pesan dengan menggunakan algoritma
Gifshuffle pada image dengan citra GIF. Citra penampung dalam Algoritma
Gifshuffle tidak memiliki ketahanan yang baik terhadap gangguan karena apabila
image stego mendapat gangguan (rotating, cropping , dan lain-lain) pesan tidak
dapat diekstrak kembali. Saran untuk pengembangan sistem ke depan adalah (1)
Implementasi Algoritma Gifshuffle pada citra GIF animated; (2) Masukan kunci
tidak hanya berupa teks, melainkan dapat berupa file; (3) Tidak hanya
menggunakan citra GIF sebagai media penampung.
8.
Daftar Pustaka
[1].
Sitompul, Putri., 2011. “Analisis dan Implementasi Steganografi Pada
Citra GIF menggunakan Algoritma Gifshuflle”, Universitas Sumatera
Utara.
http://repository.usu.ac.id/bitstream/123456789/21892/3/Chapter
II.pdf, diakses tanggal 6 januari 2012.
Penalosa, Ronald A., 2005. “Steganografi Pada Citra dengan Format GIF
Menggunakan Algoritma Gifshuffle”, Institut Teknologi Bandung.
Kwan,
Matthew.,
2010.
“How
Gifshuffle
Works”,
http://www.darkside.com.au/gifshuffle/description.html, diakses tanggal
30 Desember 2011.
Pressman, Roger S. 2001. “Software Enginering a Praticioner’s
Approach” New York , McGraw-Hill Higer Education.
[2].
[3].
[4].
21
Menggunakan Algoritma Gifshuffle
Artikel Ilmiah
Peneliti:
Yanuar Tesla (672007032)
M. A. Ineke Pakereng, M.Kom.
T. Arie Setiawan Prasida, S.T., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Mei 2012
Penyembunyian Pesan Terenkripsi Pada Citra GIF
Menggunakan Algoritma Gifshuffle
1) Yanuar Tesla; 2)M. A. Ineke Pakereng;
3)
T. Arie Setiawan Prasida
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50771, Indonesia
Email: 1)[email protected], 2) [email protected]
3)
[email protected]
Abstract
This study implements steganography application with Gifshuffle algorithm in the
GIF image. The development of information technology gives a chance for people to
share message and communicate through Local Area Network (LAN), internet, email, and
mobile internet. To balance the ra pid communication, some safety aspects are needed in
sending the message. This study was purposing to hide the secret message by randomize
the message’s content. By using the Gifshuffle algorithm and Vigenre Cipher tecnique in
hiding the message show the GIF image, the result was confronted with four aspects of
steganography evaluation, such as: Imperceptibility, Fidelity, Recovery, and Robustness.
As a result, the program was able to fulfill the recovery aspect besides its necessity for
essential improvement in fulfilling the Imperceptibility, Fidelity, and Robustness aspects.
Immediate implications are needed for the development of the algorithm gifshuffle in the
animated GIF image.
Keywords : Data security, Cryptography, Steganography, Gifshuffle Algorithm, GIF
Abstrak
Penelitian ini mengimplementasikan aplikasi steganografi dengan algoritma
Gifshuffle pada citra GIF.
Semakin berkembangnya dunia teknologi informasi
memungkinkan manusia untuk saling bertukar pesan dan berkomunikasi melalui Local
Area Network (LAN), internet, email, dan handphone.
Sebagai penyeimbang
berkembangnya hal tersebut, maka dibutuhkan berbagai aspek keamanan pengiriman data
khususnya untuk data penting dan rahasia. Penelitian ini bertujuan untuk
menyembunyikan pesan rahasia dengan mengacak isi pesan tersebut (prinsip kriptografi)
dan menggunakan citra GIF sebagai media penampung pesan. Penelitian ini mengunakan
algoritma gifshuffle dan ditambah dengan teknik Vigenere Cipher untuk
menyembunyikan data di dalam citra GIF. Hasil penelitian ini diuji dengan empat aspek
penilaian steganografi yaitu; Imperceptibility, Fidelity, Recovery, dan Robustness. Hasil
pengujian yang didapat adalah program ini dapat memenuhi aspek recovery sedangkan
Imperceptibility, Fidelity, dan Robustness merupakan aspek yang dinilai masih kurang.
Implikasi utuk pengmbangan ke depan adalah penggunaan media penampung selain citra
GIF untuk dapat memenuhi aspek-aspek yang lain. Dapat pula dilakukan implementasi
Algoritma Gifshuffle pada citra GIF animated dan masukan kunci tidak hanya berupa
teks, melainkan dapat berupa file.
Kata Kunci : Keamanan Data, Kripografi, Steganografi, Algoritma Gifshuffle, GIF
1.
Pendahuluan
Teknologi informasi yang berkembang pesat memungkinkan manusia dapat
berkomunikasi dan saling bertukar pesan melalui berbagai media. Proses
pengiriman data yang dilakukan media seperti Local Area Network (LAN),
internet, email, handphone maupun media lain perlu diperhatikan dalam segi
keamanan data akan sangat diperhatikan, terutama apabila data yang akan dikirim
merupakan data atau pesan rahasia. Berbagai usaha akan dilakukan untuk
menjamin agar pesan rahasia yang dikirim tidak dapat diakses oleh pihak lain.
Salah satu penyembunyian pesan rahasia dilakukan dengan mengacak isi pesan
tersebut yang merupakan prinsip utama dari kriptografi yaitu pengacakan data asli
yang menghasilkan data dengan hasil terenkripsi. Isi pesan yang acak membuat
pihak lain mencurigai adanya pesan tersembunyi, namun jika ditambah dengan
menyisipkan pesan acak ke dalam sebuah media lain, maka akan menambah aspek
keamanan. Dengan demikian pihak lain tidak mencurigai terhadap pesan rahasia
yang dikirim, dikarenakan yang terlihat hanyalah media penampung dari pesan
tersebut. Hal ini dirasa lebih aman jika dibandingkan hanya dengan mengacak
atau mengenkripsi isi pesan, yang dapat membuat pihak lain ingin mengetahui isi
pesan tersebut.
Penyembunyian pesan terhadap sebuah media disebut
sebagai Steganografi. Dalam kamus English Oxford kata steganografi diartikan
sebagai teknik penyembunyian pesan atau informasi dengan menggunakan teks
publik maupun data. Media yang akan digunakan akan menentukan pula
algoritma steganografi yang digunakan. Salah satu format berkas citra digital yang
digunakan adalah format gambar GIF yang diperkenalkan oleh CompuServe pada
tahun 1987. Format GIF umum digunakan dalam web dikarenakan ukurannya
yang relatif lebih kecil dibanding dengan format lainya. Hal itu disebabkan karena
dalam sebuah citra berformat GIF menggunakan 8-bit untuk setiap pikselnya
sehingga format GIF hanya menampung maksimal 256 warna [1]. Berbeda
dengan citra berformat JPEG yang dapat menampung jutaan warna dikarenakan
format tersebut menggunakan 24-bit untuk setiap pikselnya. Salah satu algoritma
steganografi pada citra dengan format GIF adalah Gifshuffle. Algoritma Gifshuffle
memanfaatkan palet warna berkas GIF sebagi media penyisipan pesan.
Berdasarkan hal tersebut maka akan dilakukan penelitian dengan topik
penyembunyian pesan terenkripsi pada citra GIF menggunakan algoritma
Gifshuffle .
2. Tinjauan Pustaka
Penelitian sebelumnya tentang steganografi pada citra berformat GIF
menggunakan algoritma Gifshuffle . Penelitian ini menggunakan ilustrasi untuk
menjelaskan algoritma Gifshuffle dan melakukan pengujian ketahanan media
stego. Media stego yang digunakan adalah citra GIF. Kesimpulan yang didapat
adalah algoritma ini mudah diterapkan, karena mengandung langkah-langkah
yang tidak rumit, selain itu algoritma ini tidak merubah kualitas dari citra yang
digunakan sebagai media stego [2]. Pada penelitian ini, mengembangkan
kriptografi dengan algoritma Vigenere Cipher , yang menggunakan masukan kunci
1
bertipe data string yang berjumlah hingga 96 karakter yang diambil pada urutan
karakter ASCII yang dapat dicetak. Kemudian untuk melengkapi kriptografi
tersebut, ditambahkan teknik steganografi dengan menggunakan algoritma
Gifshuffle dengan media objek gambar dengan format GIF, yang digunakan untuk
menambah keamanan dalam penyembunyian pesan.
Kriptografi Vigenere Cipher
Sistem sandi Vigenere adalah sistem sandi substitusi multi-alfabet, yaitu
sistem sandi Caesar tetapi dengan pergeseran alfabet yang berlainan
disesuaikan dengan kata kuncinya. Pada kriptografi Vigenere, plaintext akan
dienkripsi dengan pergeseran huruf seperti pada kriptografi Caesar , tetapi setiap
huruf di dalam plaintext akan mengalami pergeseran yang berbeda. Kunci pada
kriptografi Vigenere adalah sebuah kata bukan sebuah huruf. Kata kunci ini
akan dibuat berulang sepanjang plaintext, sehingga jumlah huruf pada kunci
akan sama dengan jumlah huruf pada plaintext. Pergeseran setiap huruf pada
plaintext, akan ditentukan oleh huruf pada kunci yang mempunyai posisi yang
sama dengan huruf pada plaintext. Kriptografi Vigenere dikenal sebagai
polyalphabetic substitution cipher , karena enkripsi terhadap satu huruf yang sama
bisa menghasilkan huruf yang berbeda. Pergeseran huruf pada plaintext
ditentukan oleh tabel yang sama dengan tabel pada kriptografi Caesar . Rumus
kriptografi Caesar tetap berlaku pada kriptografi Vigenere, baik pada enkripsi
maupun dekripsi.
Algoritma Gifshuffle
Gifshuffle merupakan algoritma steganografi yang digunakan untuk
menyembunyikan pesan dalam media citra berformat GIF. Algoritma Gifshuffle
pada intinya memanfaatkan palet warna berkas GIF sebagai media penyisipan
pesan. Dikarenakan berkas GIF hanya menggunakan maksimal 256 palet warna,
maka pesan yang akan disisipkan akan terbatas hingga 1683 bits atau 210 byte
dengan kata lain maksimal menampung 210 karakter jika masukannya berupa
karakter [3]. Sesuai dengan namanya Gifshuffle , maka prinsip utama algoritma ini
akan melakukan shuffle terhadap palet warna dari sebuah berkas GIF. Algoritma
Gifshuffle dalam bentuk flowchart ditunjukkan pada Gambar 1.
2
Gambar 1 Flowchart Algoritma Gifshuffle
Adapun langkah-langkah encoding dari algoritma Gifshuffle adalah
sebagai berikut[3]:
1. Proses encoding dimulai dengan pesan yang akan disisipkan. Pesan diubah ke
dalam bentuk biner dengan representasi 1 atau 0.
2. Kemudian disisipkan angka 1, di depan rangkaian biner tersebut. Langkah
selanjutnya rangkaian biner tersebut dikonversikan menjadi bilangan desimal
dan menghasilkan sebuah bilangan yang dinamakan sebagai .
3. Menghitung jumlah warna yang terkandung dalam berkas Gif yang menjadi
objek steganografi dan akan menghasilkan sebuah bilangan. Bilangan
maka pesan yang
tersebut dinamakan sebagai , maka apabila
ingin disisipkan berukuran terlalu besar sehingga proses penyisipan tidak
dapat dilakukan.
4. Warna dalam palet warna diurutkan sesuai dengan urutan yang “natural”.
Setiap warna dengan format RGB dikonversikan ke dalam bilangan integer
dengan aturan
. Kemudian
diurutkan berdasarkan besar bilangan integer yang mewakili warna tersebut.
5. Setelah itu dilakukan iterasi terhadap variabel dengan nilai adalah dari 1
sampai n. Setiap warna dengan urutan
dipindahkan ke posisi baru yaitu
, kemudian dibagi dengan .
6. Kemudian palet warna yang baru hasil iterasi pada langkah ke-4 dimasukkan
ke dalam palet warna berkas Gif. Apabila ada sebuah tempat yang diisi oleh
dua buah warna, maka warna yang sebelumnya yang menempati tempat
tersebut akan digeser satu tempat ke samping.
7. Apabila ternyata besar dari palet warna yang baru lebih kecil dari 256 maka
palet warna akan disi dengan warna terakhir dari palet warna sebelumnya.
8. Kemudian berkas Gif akan dikompresi ulang dengan palet warna yang baru
untuk menghasilkan berkas yang baru dengan ukuran dan gambar yang sama
namun telah disisipi pesan.
3
3.
Metode dan Perancangan
Metode pengembangan sistem yang dipakai dalam penelitian ini adalah
metode waterfall, dapat dilihat pada Gambar 2.
Gambar 2 Metode Permodelan Waterfall [4]
Adapun tahap-tahap metode pengembangan dalam perancangan aplikasi
antara lain :
1.
Penentuan dan Analisis Spesifikasi; Pada tahap ini dilakukan
pengumpulan kebutuhan sistem secara lengkap. Setelah itu dilakukan
analisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program
yang dibangun. Adapun beberapa hal yang diperlukan sebelum
membangun sistem adalah : (1) Masukan berupa citra GIF non animated;
(2) Sofware pemrograman untuk menyusun kode dalam sistem; (3)
Software image manipulation untuk melakukan pengujian terhadap media
penampung; (4) Software pembanding gambar untuk melakukan
perbandingan antara citra asli dan citra stego.
2.
Desain sistem dan Perangkat lunak; Tahap ini terdiri dari proses desain
sistem yang membagi kebutuhan-kebutuhan sistem perangkat lunak,
termasuk menghasilkan fungsi sistem perangkat lunak dalam bentuk
transformasi ke dalam satu atau lebih program yang dapat dijalankan.
3.
Implementasi dan Uji Coba Unit; Pada tahap ini desain perangkat lunak
diterjemahkan ke dalam kode-kode dengan menggunakan bahasa
pemrograman. Kemudian dilakukan pengujian terhadap unit program yang
telah dibuat. Uji unit termasuk pengujian bahwa setiap unit sesuai
spesifikasi.
4.
Intergrasi dan uji coba system; Pada Tahap ini, unit program diintegrasikan
dan diuji menjadi sistem yang lengkap untuk meyakinkan bahwa
persyaratan perangkat lunak telah dipenuhi.
5.
Operasi dan pemeliharaan; Ini adalah fase terpanjang dari proses
sebelumnya. Sistem digunakan dan dilakukan pemeliharaan termasuk
perbaikan kesalahan yang tidak ditemukan pada langkah sebelumnya.
4
Analisis Kebutuhan Sistem
Analisis kebutuhan sistem merupakan proses identifikasi dan evaluasi
permasalahan-permasalahan yang ada, sehingga nantinya sistem yang dibagun
sesuai dengan kriteria yang diharapkan. Tahapan analisis kebutuhan digunakan
untuk mengetahui kebutuhan sistem agar dapat bekerja dengan baik dan optimal,
sehingga tidak terjadi kesalahan perancangan dan kerusakan pada program.
Aplikasi steganografi menggunakan metode Gifshuffle, dibuat untuk memenuhi
kebutuhan sebagai berikut: (1) Dapat melakukan embedding pesan terenkripsi
pada citra berformat GIF; (2) Dapat melakukan ekstrak pesan terenkripsi yang
tersimpan dalam stego image. Berdasarkan kriteria kebutuhan sistem, maka
masukan yang diperlukan oleh sistem adalah sebagai berikut : (1) File gambar
dengan format GIF sebagai media cover untuk embedding pesan; (2) Pesan
rahasia yang berupa text dengan masukan segala karakter. Analisis keluaran
berfungsi untuk mengetahui keluaran yang dihasilkan oleh sistem yang dibangun.
Sistem yang dibangun ini akan menghasilkan keluaran dalam bentuk : (1) File
stego image yaitu file gambar cover yang di dalamnya terdapat file rahasia yang
telah di-embedding; (2) Pesan rahasia berupa teks yang telah diekstrak.
Perancangan Sistem
Perancangan sistem meliputi perancangan algoritma yang digunakan
dalam sistem. Dalam penelitian ini menggunakan algoritma Vigenere Cipher,
Sedangkan untuk steganografi menggunakan algoritma Gifshuffle . Algoritma
steganografi digunakan untuk menambah tingkat keamanan algoritma kriptografi.
Pembuatan aplikasi dalam penelitian ini menggunakan kriptografi untuk
mengenkripsi pesan. Algoritma kriptografi yang digunakan adalah algoritma
Vigenere Cipher dengan memanfaatkan Square Table Vigenere .
Penerapan enkripsi algoritma Vigenere
Contoh enkripsi dengan masukan plaintext “TEKNIKINFORMATIKA” dengan
kunci “UKSW”, maka :
1. Plaintext = “TEKNIKINFORMATIKA”
2. Kunci = “UKSW”
3. Dilakukan enkripsi dengan kunci = UKSWUKSWUKSWU. Secara detil
dapat dilihat pada Tabel 3.
4.
Tabel 3 Perubahan Kunci Vigenere
T
U
5.
E
K
K
S
N
W
I
U
K
K
I
S
N
W
F
U
O
K
R
S
M
W
A
U
T
K
I
S
K
W
A
U
Plaintext
Kunci
c(„T‟) = („T‟ + „U‟) mod 26 = L
T = 51 dan U= 52 (51+52)%96=7 „
c(„E‟) = („E‟ + „K‟) mod 96 = p, dst
Perancangan Steganografi Dengan Algoritma Steganografi
Algoritma steganografi yang digunakan adalah algoritma Gifshuffle .
Gifshufle memanfaatkan palet warna dari citra Gif. Algoritma Gifshuffle memiliki
dua proses utama, yaitu proses encoding dan proses decoding.
5
Contoh penyisipan pesan “T” ke dalam berkas GIF dengan jumlah warna
pada palet warna sebanyak 6 buah, adalah sebagai berikut:
1. Pesan yang akan disisipkan adalah “T” yang diubah ke dalam bentuk biner
dengan pengkodean ASCII menghasilkan bilangan biner : 1010100. Untuk
mendapatkan nilai M disisipkan angka 1 pada rangkaian biner maka :
2. Jumlah warna pada palet warna citra tersebut adalah 6, maka apabila
(menggunakan cara pada halaman 4) proses encoding dapat
dilakukan. Karena nilai m tidak lebih besar dengan n!-1.
3. Urutan warna pada palet warna citra tersebut secara “natural” dapat dilihat
pada Gambar 3.
Gambar 3 Pengkonversian RGB ke Nilai Integer.
Pada Gambar 3 ditunjukkan nilai “natural” dari beberapa warna, nilai tersebut
didapat dari besar nilai RGB. Contoh pada warna A, nilai Red dalam
heksadesimal adalah f7, dan dikonversikan ke dalam desimal menjadi 247, nilai
Green dalam heksadesimal adalah 47 dan dikonversikan ke dalam desimal
menjadi 71, dan nilai Blue dalam heksa-desimal adalah 47 dan dikonversikan ke
dalam desimal menjadi 71. Berdasarkan nilai-nilai desimal tersebut didapat nilai
“natural” dengan rumus berikut :
Sehingga didapat nilai integer yaitu 16205639.
Susunan palet warna setelah diurutkan berdasarkan besar nilai integer terkecil
dapat dilihat pada Gambar 4.
Gambar 4 Susunan Palet Warna Diurutkan berdasarkan Besar Nilai Integer.
4. Iterasi variabel i mulai dari 1 sampai n :
Warna indeks kedipindahkan ke-
.
a) Untuk
6
Maka, warna indeks ke-5 dipindahkan ke indeks ke-0 pada susunan palet warna
yang baru.
b) Untuk
Maka, warna indeks ke-4 dipindahkan ke indeks ke-0 pada susunan palet warna
yang baru.
c) Untuk
Maka, warna indeks ke-3 dipindahkan ke indeks ke-2 pada susunan palet warna
yang baru.
d) Untuk
Maka, warna indeks ke-2 dipindahkan ke indeks ke-0 pada susunan palet warna
yang baru.
e) Untuk
Maka, warna indeks ke-1 dipindahkan ke indeks ke-3 pada susunan palet warna
yang baru.
f) Untuk
Maka, warna indeks ke-0 dipindahkan ke indeks ke-1 pada susunan palet warna
yang baru.
5. Pada tahap kelima, apabila ada beberapa warna yang menempati indeks yang
sama, maka Setiap warna yang menempati indeks tersebut akan bergeser
sekali ke indeks berikutnya. Susunan palet warna yang baru sesuai aturan
tersebut dapat dilihat pada Gambar 5.
Gambar 5 Susunan Palet Warna yang Baru Setelah Dilakukan Iterasi Terhadap Variabel i.
7
6.
Urutan palet warna ini kemudian dimasukkan ke dalam berkas citra GIF untuk
menghasilkan citra yang telah disisipi pesan.
Untuk skema decoding berupa pembalikan dari skema encoding. Inti dari
proses decoding adalah untuk mencari nilai . Setelah nilai diperoleh maka
pesan asli dapat mudah didapat. Adapun langkah-langkah untuk mengekstrak
kembali pesan dari sebuah citra GIF menggunakan algoritma Gifshuflle adalah
sebagai berikut :
1. Masukkan nomor sesuai dengan posisi setiap warana pada palet warna citra
GIF yang telah disisipkan pesan.
2. Warna diurutkan berdasarkan konversi RGB ke nilai integer dengan rumus :
3.
diberi nilai 0.
.
4. Iterasi variabel dari 0 sampai
posisi warna ke- .
Iterasi variabel dari
sampai
.
Jika nilai posisi warna ke
nilai posisi warna ke-i, maka posisi warna ke
dikurangkan 1.
diperoleh, maka nilai
dikonversikan ke bilangan biner
5. Setelah nilai
untuk memperoleh pesan asli.
Berdasarkan contoh pada proses encoding, maka pesan asli dapat diekstrak
dengan mengikuti langkah-langkah berikut:
1. Warna pada palet warna diberikan nomor sesuai dengan posisinya. Lebih
jelasnya dapat dilihat pada Gambar 6.
Gambar 6 Penomoran Posisi Palet Warna.
2. Nilai natural setiap warna dapat dilihat pada Gambar 7.
Gambar 7 Nilai Natural Setiap Warna
Kemudian diurutkan berdasarkan nilai integer terkecil, maka posisi palet
warna baru terdapat pada Gambar 8.
Gambar 8 Urutan Palet Warna Baru Berdasarkan Nilai Integer Terkecil.
8
3.
diberi nilai 0.
4. Iterasi variabel i dari 0 sampai 5.
posisi ke-i.
Iterasi variabel j dari i+1 sampai 5.
nilai posisi warna ke-i, maka posisi warna ke
Jika nilai posisi warna ke
dikurangkan 1.
a) Untuk
posisi ke-0
o Untuk
Posisi ke-1 > posisi ke-0
, ya maka posisi keo Untuk
Posisi ke-2 > posisi ke-0
, tidak
o Untuk
Posisi ke-3 > posisi ke-0
, ya maka posisi keo Untuk
Posisi ke-4 > posisi ke-0
, tidak
o Untuk
Posisi ke-5 > posisi ke-0
, ya maka posisi ke1
2
3
Warna C
Warna E
Warna D
4
0
3
4
Warna F
1
5
Warna A
2
i
Posisi
5
i
b) Untuk
o Untuk
Posisi
posisi
, tidak
o Untuk
Posisi
posisi
, tidak
o Untuk
Posisi
posisi
, tidak
o Untuk
Posisi
posisi
, tidak
2
3
4
9
Warna E
0
Warna D
3
Warna F
1
Warna A
2
Posisi
c) Untuk
o
o
o
Untuk
Posisi
Untuk
Posisi
Untuk
Posisi
posisi
, ya maka posisi ke-
posisi
, ya maka posisi keposisi
, ya maka posisi ke-
3
Warna D
2
4
Warna F
0
5
Warna A
1
I
Posisi
d) Untuk
o Untuk
Posisi
posisi
, tidak
o Untuk
Posisi
posisi
, tidak
4
Warna
F
0
5
Warna
A
1
I
Posisi
e) Untuk
o
Untuk
Posisi
posisi
, ya maka posisi ke
f) Untuk
10
5.
Angka 1 dalam rangkaian biner dihilangkan, maka :
T
Perancangan Proses
Perancangan proses menggunakan Unified Modeling Language (UML).
Langkah pertama yang dilakukan untuk memetakan fungsionalistas adalah dengan
menyusun use case diagram.
Pilih Gambar
Encoder
Menulis pesan
Input passwordStego
(f rom Actors)
Decoder
(f rom Actors)
cekTabelViginere
Input PasswordKripto
SetPasswordStego Change passwordStego
Mendapat pesan
Set Password Kripto
Change passwordKripto
Gambar 9 Use Case Diagram Sistem
Use case diagram sistem pada Gambar 9, terdiri dari dua aktor yaitu
Encoder dan Decoder . Kedua aktor tersebut memiliki hak untuk memilih gambar.
Untuk aktor Encoder sendiri memiliki hak untuk menulis pesan, menggunakan
cekTabelVigenere, SetPasswordStego dan Set PasswordVigenere . Dalam kedua
SetPassword terdapat generalisasi ChangePassword. Sedangkan untuk aktor
Decoder sendiri berhak melakukan input passwordStego dan passwordKripto dan
terakhir Mendapat Pesan.
6.
Pembahasan
Sistem dalam penelitian ini berbentuk desktop application yang disertai
dengan GUI (Graphical User Interface), bertujuan untuk mempermudah user
dalam pengoperasian sistem. GUI pada sistem ini terdiri dari beberapa form antara
lain adalah form utama, from encode, dan form decode.
11
Gambar 10 Tampilan Utama Sistem
Pada Gambar 10 bagian teratas terdapat menu strip “File” yang berisikan
“Encode” untuk membuka form Encode dan “Decode” untuk membuka form
Decode. Pada bagian tengah terdapat tab page dan tab yang terbuka pertama
adalah “Start Page” berisikan tombol Encode dan Decode yang berfungsi sama
dengan menu strip di bagian atas. Form-form yang terbuka akan muncul di dalam
tab page sehingga user mudah mengoperasikannya. Pada form Encode berfungsi
untuk mengenkripsi pesan dan menyembunyikan pesan ke dalam Gambar. Proses
enkripsi pesan dan proses encoding pesan dalam Gambar dilakukan dalam form
Encode. Pada tampilan awal from encode hanya berupa textbox dan tombol
Encript untuk mengenkripsi pesan plaintext. Dalam proses enkripsi terdapat form
password untuk memasukkan kunci. rtxt_Plaintext diuraikan ke sebuah array dan
menyimpannya, kemudian menampilkan formPass. Pada formPass terdapat
textbox untuk memasukkan kunci dan textbox lain untuk mengkonfirmasi kunci,
untuk menghindari kesalahan pada kunci. Apabila tombol OK dijalankan, maka
proses enkripsi dijalankan. Perintah yang dijalankan pada tombol OK ditunjukkan
pada Kode Program 1.
Kode Program 1 Perintah Pada Tombol OK.
1. private void btnOK_Click(object sender, EventArgs e)
2. {
3. virgin = new viginere(txtPassEncrypt.Text);
4. string pass = txtPassEncrypt.Text + new
5. String(this.plainText);
6. for (int i = 0; i < plainText.Length; i++)
7. {
8. int g = ((int)pass.ToCharArray()[i]) –
9. viginere.awalAscci;
10.
TabelTemp =
11.
virgin.Tabel()[((int)pass.ToCharArray()[i]) –
12.
viginere.awalAscci].Split(' ');
13.
hasil += TabelTemp[((int)plainText[i]) –
14.
viginere.awalAscci];
15.
}
16.
enkrip.rtxt_Plaintxt.Text = hasil;
Pada Kode Program 1 terdapat perintah untuk mengakses method Tabel
pada class Vigenere . Method Tabel pada class Vigenere dapat dilihat pada Kode
Program 2.
12
Kode Program 2 Method Tabel pada class Vigenere
1. public string[] tabel()
2. {
3. string[] hasil = new string[jumlahAscci] ;
4. char[] huruf = new char[jumlahAscci];
5. for (int i = 0; i < jumlahAscci; i++)
6. {
7. huruf[i] = (char)(awalAscci + i);
8. }
9. for (int i = 0; i < huruf.Length; i++
10.
{
11.
for (int j = i ; j < huruf.Length + i ; j++)
12.
{
13.
if (j >= huruf.Length)
14.
{
15.
hasil[i] += (huruf[j % huruf.Length] + " ");
16.
}
17.
else hasil[i] += (huruf[j] + " ");
18.
}
19.
}
20.
return hasil;
21.
}
Setelah proses enkripsi selesai, tampilan form berubah, untuk melanjutkan
proses encode yang ditunjukkan pada Gambar 11.
Gambar 11 Tampilan From Encode Setelah Proses Enkripsi
Tombol encript berubah menjadi tombol search image yang terlihat pada
Gambar 11. Tombol search image berfungsi untuk menampilkan open file dialo g
untuk memilih Gambar. Tombol encode berfungsi untuk melakukan proses
penyisipan pesan yang sudah dienkripsi atau ciphertext. Tombol encode berfungsi
pula untuk menampilkan save file dialog, dimana Gambar hasil stego akan
disimpan. Ada pun perintah-perintah yang dijalankan saat tombol encode
dijalankan, dapat dilihat pada Kode Program 3.
Kode Program 3 Perintah shuffle Pada Kelas Stego.
1.
public void shuffle(String message,String pathTujuan)
2.
3.
4.
5.
6.
7.
8.
{
sorting(NaturalVal, colorPallete);
for (int i = 1; i i)
12.
{
13.
TabelTemp = virgin.Tabel()[((int)pass.ToCharArray()[i]) viginere.awalAscci].Split(' ');
14.
}
15.
else
16.
{
17.
TabelTemp = virgin.Tabel()[((int)hasil.ToCharArray()[i pass.Length]) - viginere.awalAscci].Split(' ');
18.
}
19.
for (int j = 0; j < TabelTemp.Length; j++)
20.
{
21.
if (TabelTemp[j].Equals(plainText[i].ToString()))
22.
{
23.
hasil += (char)(j + viginere.awalAscci);
24.
break;
25.
}
26.
}
27.
}
28.
if (txtPassEncrypt.Text == txtCfrmPassEncrypt.Text)
29.
{
30.
decript.setHasil(hasil);
31.
Close();
32.
}
33.
else if (txtPassEncrypt.Text != txtCfrmPassEncrypt.Text)
34.
{
35.
MessageBox.Show("Key
do
not
match
!",
"Warning",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
36.
}
37.
}
Form File Compare
Pada form ini terdapat tools untuk membandingkan file citra asli, citra stego, dan
citra stego setelah pesan diambil. Yang menjadi nilai pembanding adalah
perubahan pallete, nilai RGB tiap index, dan bit yang terkandung dalam file. Form
File Compare ditunjukkan pada Gambar 13.
15
Gambar 13 Tampilan Form File Compare
Pengujian Sistem
Pengujian Berdasarkan Aspek Imperceptibility
Penilaian pengujian dilakukan terhadap keberadaan pesan. Pengujian
menggunakan objek kucing.gif dengan masukan pesan “Universitas Kristen Satya
Wacana” dan kunci “FTI07”. Objek kucing.gif ditunjukkan pada Gambar 14.
Gambar 14 Objek Gambar kucing.gif
Tabel properties dari Gambar 14, dapat ditunjukkan pada Tabel 4.
Tabel 4 Properties Gambar Kucing.gif
Item Type, Version
FileSize
Size
BacgroundColor
Bits per color
Transparent
Transparent color
GIF, 89a
721100 bytes
1280x1024 Pixel
clBlack
8
No
clNone
Hasil pengujian berdasarkan aspek Imperceptibility ditunjukkan pada Tabel 5.
Tabel 5 Hasil Pengujian Imperceptibility
Kucing.gif
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Universitas Kristen Satya Wacana
FTI07
~D3'JdUkKgv7kKiu3blIZ^jbT9ZaCo9
Kucing_stego.gif
100%
16
Hasil Gambar stego ditunjukkan pada Gambar 15.
Gambar 15 Gambar kucing_stego.gif
Tabel properties dari Gambar 15, ditunjukkan pada Tabel 6
Tabel 6 Properties File Gambar kucing_stego.gif
Item Type, Version
FileSize
Size
BacgroundColor
Bits per color
Transparent
Transparent color
GIF, 89a
642123 bytes
1280x1024 Pixel
clBlack
8
No
$0029ADE7
Berdasarkan hasil pengujian berdasarkan aspek Imperceptibility, pesan
mudah terdeteksi karena antara Gambar stego dan Gambar asli, secara visual
terlihat berbeda jelas hanya dengan penglihatan inderawi.
Dilakukan pula perbandingan antara citra asli dan citra stego berdasarkan
banyak jumlah karakter. Hasil pengujian dapat dilihat pada tabel 7.
Tabel 7 Properties File Gambar kucing_stego.gif
Citra Asli
Citra Stego
Pengujian dengan masukan 10 karakter
17
Pengujian dengan masukan 100 karakter
Pengujian dengan masukan 210 karakter
Berdasarkan pengujian perbedaan gambar asli dengan gambar stego,
semakin banyak jumlah masukan semakin jauh perbedaan antara kedua gambar.
Pengujian Berdasarkan Aspek Fidelity
Pengujian dilakukan dengan mengukur perbedaan antara citra asli dengan
citra stego. Pengujian ini dibantu dengan software Compare Suite dan
menggunakan tool yang terdapat dalam sistem, untuk membandingkan citra.
Pengujian menggunakan objek pirate.gif, kucing.gif, dan lope.gif. Hasil Pengujian
berdasarkan aspek fidelity menggunakan tool dalam sistem, ditunjukkan pada
Tabel 8.
Tabel 8 Perbedaan Citra Hasil Pengujian Fidelity
Objek
Color Pallete
Warna Tiap Index
Susunan Tiap Bit
Pirate.gif
Kucing.gif
Lope.gif
255
57
128
357821
7322551
63187
239983
611454
21693
Perbandingan antara Gambar stego dan Gambar asli menggunakan software
Compare Suite ditunjukkan pada Gambar 16.
18
Gambar 16 Perbandingan Gambar Asli dan Gambar Stego.
Berdasarkan hasil pengujian pada Gambar 16, Gambar asli dan Gambar
stego memiliki perbedaan yang sangat jelas. Hal ini mengurangi aspek fidelity,
karena perbedaan jelas terlihat secara visual.
Pengujian Berdasarkan Aspek Recovery
Pengujian berdasarkan tingkat keberhasilan dalam pengekstrakan kembali pesan.
Dalam pengujian ini dilakukan beberapa pengujian dengan media cover sama,
hasil pengujian ditunjukkan pada Tabel 9.
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Objek Gambar
Plaintext
Kunci
Ciphertext
Gambar Stego
Decode
Tabel 9 Hasil Pengujian Berdasarkan Aspek Recovery
Percobaan 1
Kucing.gif
Steganografi
123456
l'y}y)E\ZPOX
Kucing_stego1.gif
100%
Percobaan 2
Kucing.gif
2^8=256
Binary
uH'&)7I
Kucing_stego2.gif
100%
Percobaan 3
Kucing.gif
jl.Diponegoro 52-60
UKSW
@:Dh0V`3OXabUj'&7F
Kucing_stego3.gif
100%
Percobaan 4
Kucing.gif
Fakultas Teknologi Informasi
Fti
-VU=O`W`u7ZlCUX^WVp2Xg:aTQfX
Kucing_stego4.gif
100%
19
Berdasarkan hasil pengujian pada Tabel 9, pesan dapat diekstraksi kembali
dengan utuh, sehingga dikatakan bahwa algoritma ini dapat mengekstrak kembali
pesan.
Pengujian Berdasarkan Aspek Robustness
Dalam pengujian berdasarkan ketahanan media penampung, media penampung
akan diberikan perubahan. Media stego yang digunakan adalah pirate.gif,
ditunjukkan pada Gambar 17.
Gambar 17 Media Percobaan pirate.gif
Beberapa pengujian yang dilakukan adalah :
1. Flip Canvas Horinzotal; Flip Canvas Horisontal merupakan teknik membalik
Gambar secara horizontal. Hasil Flip Canvas Horizontal ditunjukkan pada
Gambar 17.
Gambar 17 Media Citra Diberikan Efek Flip Canvas Horizontal
Setelah dilakukan perubahan pada media penampung, maka pesan tidak dapat
diekstraksi kembali.
2. Rotate 900; Rotate 900 merupakan teknik memutar canvas Gambar hingga 900.
Hasil pemutaran Gambar dapat dilihat pada Gambar 18.
Gambar 18 Media Citra Diberikan Efek Rotate 900
3.
Setelah dilakukan perubahan pada media penampung, maka pesan tidak dapat
diekstraksi kembali.
Penambahan Efek Blur ; Blur adalah perubahan warna tiap-tiap pixel dalam
Gambar agar membentuk distribusi normal. Hasil dari efek ini adalah
Gambar menjadi terlihat kabur. Hasil penambahan efek blur ditunjukkan
pada Gambar 19.
20
Gambar 19 Media Citra Diberikan Efek Blur
Setelah dilakukan perubahan pada media penampung, maka pesan tidak dapat
diekstraksi kembali.
Berdasarkan pengujian Flip Canvas Horinzotal, Rotate 900, dan
Penambahan Efek Blur yang sudah dilakukan, pesan yang telah disisipkan tidak
dapat diekstrak kembali setelah media cover mendapatkan perubahan. Hal ini
disebabkan karena palet warna ikut berubah saat citra GIF mengalami perubahan.
7.
Simpulan
Penelitian yang dilakukan telah berhasil menyembunyikan pesan
terenkripsi dan berhasil mengembalikan pesan dengan menggunakan algoritma
Gifshuffle pada image dengan citra GIF. Citra penampung dalam Algoritma
Gifshuffle tidak memiliki ketahanan yang baik terhadap gangguan karena apabila
image stego mendapat gangguan (rotating, cropping , dan lain-lain) pesan tidak
dapat diekstrak kembali. Saran untuk pengembangan sistem ke depan adalah (1)
Implementasi Algoritma Gifshuffle pada citra GIF animated; (2) Masukan kunci
tidak hanya berupa teks, melainkan dapat berupa file; (3) Tidak hanya
menggunakan citra GIF sebagai media penampung.
8.
Daftar Pustaka
[1].
Sitompul, Putri., 2011. “Analisis dan Implementasi Steganografi Pada
Citra GIF menggunakan Algoritma Gifshuflle”, Universitas Sumatera
Utara.
http://repository.usu.ac.id/bitstream/123456789/21892/3/Chapter
II.pdf, diakses tanggal 6 januari 2012.
Penalosa, Ronald A., 2005. “Steganografi Pada Citra dengan Format GIF
Menggunakan Algoritma Gifshuffle”, Institut Teknologi Bandung.
Kwan,
Matthew.,
2010.
“How
Gifshuffle
Works”,
http://www.darkside.com.au/gifshuffle/description.html, diakses tanggal
30 Desember 2011.
Pressman, Roger S. 2001. “Software Enginering a Praticioner’s
Approach” New York , McGraw-Hill Higer Education.
[2].
[3].
[4].
21