Hal–hal yang dilakukan pada tahap ini adalah penentuan algoritma PRNG yang sesuai dan penentuan faktor yang mempengaruhi algoritma LCG.
• Analisis ukuran pesan
Tahap ini menganalisis ukuran pesan maksimal yang dapat disembunyikan pada cover-image. Ukuran pesan yang dapat disembunyikan bergantung pada ukuran cover-image serta banyaknya level bit yang digunakan.
• Analisis stego-key yang digunakan Tahap ini berperan penting dalam penentuan posisi piksel serta level bit yang digunakan.
• Analisis penyembunyian pesan
Hal–hal yang dilakukan pada tahap ini adalah analisis algoritma penyembunyian pesan dan analisis waktu penyembunyian pesan.
• Analisis pengambilan pesan
Hal–hal yang dilakukan pada tahap ini adalah analisis algoritma pengambilan pesan dan analisis waktu pengambilan pesan.
• Analisis kualitas
Proses analisis kualitas meliputi perbandingan kualitas cover-image
sebelum dan sesudah disembunyikan pesan, yaitu dengan menghitung nilai PSNR. Nilai PSNR ini berguna untuk mengetahui kesamaan piksel antara
stego-image dan cover-image.
• Analisis keamanan
Proses analisis keamanan dilakukan terhadap serangan pendeteksian secara visual. Steganalis akan berusaha membandingkan stego-image dan
cover-image, baik secara kasat mata maupun membandingkan histogram
RGB keduanya. Pada penelitian ini dibutuhkan 30 responden untuk menilai keberhasilan penelitian.
Kesimpulan
Setelah mendapatkan hasil dari analisis pada tahap sebelumnya, akan didapatkan beberapa kesimpulan. Kesimpulan yang diperoleh mengenai penerapan metode PRNG, hasil analisis kualitas, dan hasil analisis keamanan pada metode PRNG.
HASIL DAN PEMBAHASAN Analisis Algoritma PRNG
Metode steganografi yang digunakan pada penelitian ini adalah metode substitusi pada Least Significant Bit (LSB). Substitusi LSB yang dilakukan berbeda dengan substitusi pada umumnya. Substitusi LSB pada penelitian ini menggunakan modifikasi pada posisi piksel. Posisi piksel pesan yang akan disembunyikan berada pada posisi acak. Posisi acak ini akan dibangkitkan oleh PRNG. Hal ini dilakukan untuk memperkuat teknik penyembunyian data, sehingga pesan akan lebih sulit dicari.
Algoritma PRNG yang sering digunakan di antaranya Linear Congruential Generator
(LCG), Lagged Fibonacci Generator,
Linear Feedback Shift Register (LFSR), Blum Blum Shub, Fortuna, dan Mersenne Twister. Penelitian ini membutuhkan pembangkitan posisi piksel yang tidak akan berulang pada suatu periode. Algoritma LFSR pernah dipergunakan dalam penelitian ini sebelum menggunakan algoritma LCG. Akan tetapi, LFSR hanya membangkitkan deretan bit secara acak, apabila dikonversi ke dalam desimal akan terjadi perulangan posisi. Alasan lainnya adalah waktu pembangkitan PRNG yang didapatkan cukup lama. Algoritma yang dipilih berikutnya adalah algoritma LCG. Algoritma LCG ini dapat menghasilkan deretan bilangan acak dengan waktu yang cepat. Hal ini disebabkan LCG hanya membutuhkan sedikit operasi bit.
Penentuan nilai a, b, dan m pada algoritma LCG sangat mempengaruhi pembangkitan posisi piksel. Apabila nilai yang dipilih tidak memenuhi persyaratan maka terdapat kemungkinan posisi piksel akan berulang sebelum periode m-1. Pada penelitian ini, konstanta yang digunakan, yaitu nilai a = 5.521, b = 33.787, m = 307.200. Pemilihan konstanta a, b, dan m ini
7
berdasarkan percobaan terhadap beberapa nilai, selain itu juga harus memenuhi kondisi-kondisi berikut:
• Nilai a-1 yang dipilih adalah kelipatan dari faktor prima dari m dan harus memenuhi 0 ≤a-1 < m, dan
• Nilai a-1 yang dipilih adalah kelipatan 4 dari faktor prima dari m dan harus memenuhi 0 ≤a-1 < m.
Konstanta a, b, dan m yang telah dipilih, kemudian dilakukan pemeriksaan terhadap persyaratan LCG. Langkah-langkah pemeriksaan untuk memenuhi syarat LCG, yaitu:
1 b relatif prima terhadap m, yaitu
gcd (33.787, 307.200)=1 atau x(b)+y(m)=1
Penjelasan:
-28.877(33.787)+3.176(307.200)=1. 2 a – 1 dapat dibagi dengan semua faktor
prima dari m. Penjelasan:
(5.521-1) dapat dibagi dengan 2, 3, 5. 3 a – 1 adalah kelipatan 4 jika m adalah
kelipatan 4. Penjelasan:
307.200 dapat dibagi 4, (5.521-1) dapat dibagi 4. 4 m > maks(a, b, X0). Penjelasan: 307.200 >maks (5.521, 33.787, X0). 5 a > 0, b > 0. Penjelasan: 5.521 > 0, 33.787 >0.
Selain harus memenuhi persyaratan LCG, nilai a, b, dan m yang digunakan juga harus dapat melakukan pengungkapan kembali. Hal ini berkaitan dengan tujuan steganografi, yaitu recovery. Konstanta a, b, dan m yang dapat digunakan dapat dilihat pada Tabel 1.
Tabel 1 Konstanta a, b, dan m yang dapat digunakan a b m 1.561 33.787 307.200 5.521 33.787 307.200 5.521 53.971 307.200 2.761 53.971 307.200 6.841 53.971 307.200
Nilai–nilai pada Tabel 1 telah diperiksa, sehingga nilai–nilai tersebut dapat digunakan pada algoritma LCG. Penentuan kompleksitas waktu algoritma PRNG adalah sebagai berikut:
[1] for i←j to n
[2] nilailcg[i] = ((a * nilailcg[i-1]) + b) mod totalpix
Kompleksitas waktu dari algoritma PRNG sangat ditentukan oleh baris [1]. Baris [1] merupakan proses untuk mendapatkan posisi piksel. Baris [1] ini akan dieksekusi sebanyak n dengan n merupakan panjang bit pesan yang akan disembunyikan. Algoritma PRNG akan dimulai pada iterasi ke-j. Proses mendapatkan posisi piksel ini berlangsung sebanyak n kali, sehingga algoritma tersebut memiliki kompleksitas waktu O(n).
Analisis Ukuran Pesan
Proses penyembunyian pesan dapat dilakukan apabila ukuran pesan lebih kecil daripada ukuran cover-image. Penyembunyian pesan tidak hanya dilakukan pada 1 bit LSB, tetapi dapat dilakukan penyembunyian pesan pada 2, 3, dan 4 LSB. Kemudian akan disebut Level 1, Level 2, Level 3, dan Level 4. Penggunaan level bit ini diperlukan apabila ingin meningkatkan kapasitas penyembunyian pesan. Adapun perumusan ukuran pesan yang dapat disembunyikan sebagai berikut. Ukuran pesan (bytes) =[((Panjang cover * Lebar cover ) –55)* level*3] / 8
Berdasarkan perumusan tersebut, ukuran pesan maksimum yang dapat disembunyikan dalam cover dengan dimensi 640 x 480 piksel, dapat dilihat pada Tabel 2.
Tabel 2 Ukuran pesan maksimum yang dapat disembunyikan dalam
cover
Level Dimensi FileCover
(640 x 480 piksel) 1 115.179 bytes
2 230.358 bytes
3 345.538 bytes
4 460.717 bytes
Pada Tabel 2 dapat dilihat bahwa level bit merupakan salah satu faktor penting dalam meningkatkan kapasitas penyembunyian pesan. Semakin besar level bit yang digunakan maka akan semakin besar ukuran file pesan yang dapat disimpan.
Analisis Stego-key
Stego-key yang digunakan selain berfungsi sebagai initial value pada
8
algoritma PRNG, juga berfungsi untuk menentukan level bit yang akan disembunyikan. Informasi stego-key yang digunakan dalam penelitian ini dapat dilihat pada Tabel 3. Tabel 3 Stego-key Stego-key (Kunci) Initial Value Level Bit ilkomers 145691 1 infohide 113686 1 komputer 218531 2 embedded 249594 2 kualitas 38155 3 pixel 83955 3 steganog 42812 4 password 84334 4 Pada Tabel 3, terdapat 8 stego-key yang digunakan. Stego-key yang dimasukkan pada awalnya dalam bentuk karakter. Kemudian dikonversi ke dalam bentuk binary, yang selanjutnya akan dilakukan padding hingga panjang bit merupakan kelipatan dari:
nilaiblok = ⎣log2 total piksel⎦.
Berikutnya akan dibagi menjadi blok-blok, dengan panjang bit pada tiap bloknya adalah
nilaiblok. Setelah pembagian blok, selanjutnya akan dilakukan operasi XOR pada blok. Hasil dari operasi XOR ini merupakan initial value. Berdasarkan initial value yang dihasilkan, akan didapat level bit yang akan digunakan dan posisi–posisi piksel berikutnya.
Analisis Penyembunyian Pesan
Algoritma Penyembunyian Pesan
Input: Cover-image M1, Pesan M2,
Kunci K
Output: Stego-image S
1. Dari kunci K, didapatkan initial
value yang akan digunakan dalam
pembangkitan PRNG
a. Konversi nilai ASCII dari
kunci K ke binary
b. Lakukan Padding, sehingga
panjang bit kelipatan
nilaiblok=floor(log2
totalpix);
c. Simpan nilai binary bit hasil
konversi ke dalam temp
d. Bagi bit-bit kunci ke dalam
blok–blok dengan panjang = nilaiblok
e. Lakukan operasi XOR pada
blok-blok yang telah dibagi
f. Hasil akhir operasi XOR diubah
ke dalam bentuk
desimal(result)
g. Initial value untuk LCG =
result
h. Iterasilcg ← M2*8/3
level ← “ ”
i. for i←0 to strlen(result)
jika result[i]=1 level←1;
jika result[i]=2 level←2;
jika result[i]=3 level←3;
jika result[i]=4 level←4;
selainnya result [i+1];
j. jika level = “ ” dan i>=
strlen(result)
level←1;
2. Definisikan header yang terdiri
atas boundary, level, iterasilcg,
dan nama file pesan
3. Ambil isi file pesan dan simpan
pada temporary data (tempData)
4. Sisipkan header pada 55 posisi
pertama.
posisi[0] ← result
for p←0 to 54
posisi[p+1]←((a * posisi[p])
+ b) mod totalpix
Sisipkan header pada 1 LSB
untuk posisi ke-p
Nilai awal untuk LCG ← posisi[54]
Jika level=1
for p←55 to ceil(iterasilcg)
posisi[p] ← ((a *
posisi[p-1]) + b) mod totalpix
Sisipkan pesan pada 1 LSB untuk posisi ke-p
Jika level=2
for p←55 to ceil(iterasilcg)
posisi[p] ← ((a *
posisi[p-1]) + b) mod totalpix
Sisipkan pesan pada 2 LSB untuk posisi ke-p
Jika level = 3
for p←55 to ceil(iterasilcg)
posisi[p] ← ((a *
posisi[p-1]) + b) mod totalpix
Sisipkan pesan pada 3 LSB untuk posisi ke-p
Jika level = 4
for p←55 to ceil(iterasilcg)
posisi[p] ← ((a *
posisi[p-1]) + b) mod totalpix
Sisipkan pesan pada 4 LSB untuk posisi ke-p
5. Simpan hasil penyembunyian pesan
pada S dengan format sama dengan M1
Langkah awal dari algoritma penyembunyian pesan ini yaitu mendapatkan initial value, sehingga dapat ditentukan level bit yang digunakan. Kemudian akan dilakukan pembangkitan algoritma PRNG. Dari pembangkitan algoritma PRNG ini akan didapatkan posisi piksel. Langkah selanjutnya, yaitu pendefinisian header. Header terdiri atas
boundary, level, iterasi pada LCG dan nama
file pesan. Informasi header dapat dilihat pada Gambar 7.
9
Gambar 7 Informasi header.
yang dalam hal ini,
= level, yang memiliki panjang 8 bit, = boundary, yang masing-masing
memiliki panjang 8 bit,
= iterasi LCG, yang memiliki panjang maksimal 48 bit,
= nama file pesan, yang memiliki panjang maksimal 10 karakter atau 80 bit.
Total bit yang akan disisipkan pada header
adalah 160. Tiap piksel dapat menyembunyikan pesan sebanyak 3 bit, sehingga banyaknya posisi piksel yang dibutuhkan adalah 160 / 3 = 53,33. Untuk itu dilakukan pembulatan, sehingga posisi piksel yang dibutuhkan sebanyak 55 posisi. Selain itu, pembatasan header ini dilakukan untuk kemudahan dalam proses pengambilan pesan. Setelah proses penyembunyian header, diikuti proses penyembunyian pesan. Proses penyembunyian pesan akan ditentukan oleh level bit. Level 1 membutuhkan 1 bit LSB
cover pada proses penyembunyian pesan. Sebagai contoh:
( 10101011 11100100 10110011 ) Level 2 membutuhkan 2 LSB cover pada proses penyembunyian pesan. Sebagai contoh:
( 10101011 11100100 10110011 ) Level 3 membutuhkan 3 LSB cover pada proses penyembunyian pesan. Sebagai contoh:
( 1010 1011 11100100 10110011 ) Level 4 membutuhkan 4 LSB cover pada proses penyembunyian pesan. Sebagai contoh:
( 10101011 11100100 10110011 ) Setelah tidak ada lagi bit pesan yang akan disembunyikan, hasil penyembunyian pesan ini akan disimpan ke dalam format yang sama dengan format file cover.
Untuk perhitungan kompleksitas waktu algoritma penyembunyian pesan adalah sebagai berikut:
[1] for p←55 to n+55
[2] posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix
Kompleksitas algoritma penyembunyian pesan ditentukan oleh baris [1] dan baris [2].
Baris [1] merupakan proses penyembunyian pesan. Baris [1] ini akan dieksekusi sebanyak n dengan n merupakan panjang bit pesan yang akan disembunyikan. Baris [2] merupakan proses mendapatkan posisi piksel. Baris [2] ini berlangsung sebanyak n
kali. Proses lainnya berlangsung satu kali, sehingga algoritma tersebut memiliki kompleksitas waktu O(n). Perhitungan kompleksitas waktu algoritma penyembunyian pesan lebih lengkap dijelaskan pada Lampiran 1.
Analisis Waktu Penyembunyian Pesan
Analisis waktu penyembunyian pesan akan dipengaruhi proses pembangkitan PRNG oleh algoritma LCG dan berapa lama proses penyembunyian pesan itu sendiri. Proses penyembunyian pesan itu sendiri sangat dipengaruhi oleh ukuran file pesan yang akan disembunyikan. Di sisi lain pada algoritma LCG, beberapa faktor yang dapat mempengaruhi waktu penyembunyian pesan adalah nilai a (faktor pengali), b
(increment), dan m (banyaknya piksel
cover). Untuk ukuran file gambar sebagai
cover dalam percobaan ini digunakan file
gambar format PNG dengan dimensi 640 x 480 piksel. Pesan yang akan dibandingkan waktu proses penyembunyiannya adalah 10
file gambar format JPEG. Informasi mengenai file cover-image dan pesan gambar dapat dilihat pada Lampiran 2. Hasil analisis waktu penyembunyian pesan dapat dilihat pada Tabel 4.
10
Tabel 4 Hasil analisis waktu penyembunyian pesan(detik)
Berdasarkan data pada Tabel 4, terlihat waktu penyembunyian pesan akan semakin membesar seiring bertambahnya ukuran file
pesan yang disembunyikan dan level bit yang digunakan. Adapun salah satu hasil penyembunyian pesan dapat dilihat pada Lampiran 3. Untuk lebih jelas waktu penyembunyian pesan dapat dilihat dalam bentuk grafik seperti pada Gambar 8.
Waktu Penyembunyian Pesan
0 10 20 30 40 50 60 2907 2 3744 0 4680 2 5294 1 6435 2 7567 4 8277 0 9275 3 1047 54 1100 22
Ukuran Pesan (bytes)
W a kt u ( d et ik ) ilkomers infohide komputer embedded kualitas pixel steganog password
Gambar 8 Grafik waktu penyembunyian pesan.
Berdasarkan pada Gambar 8, grafik waktu penyembunyian pesan akan semakin naik seiring bertambahnya ukuran file dan level bit yang digunakan. Hal ini membuktikan bahwa ukuran file dan level bit berpengaruh terhadap waktu penyembunyian pesan. Berdasarkan grafik tersebut, dapat dilihat bahwa waktu penyembunyian pesan naik secara linear. Grafik waktu penyembunyian pesan mengalami kenaikan yang hampir sama pada tiap level.
Analisis Pengambilan Pesan
Algoritma Pengambilan Pesan
Input: Kunci K, stego-image S
Output: Pesan M2
1. Kunci K akan menghasilkan initial
value pada PRNG
a. Konversi nilai ASCII dari
kunci K ke binary
b. Lakukan Padding, sehingga
panjang bit kelipatan
nilaiblok=floor(log2totalpix);
c. Simpan nilai binary bit hasil
konversi ke dalam temp
d. Bagi bit-bit kunci ke dalam
blok–blok dengan panjang = nilaiblok
e. Lakukan operasi XOR pada
blok-blok yang telah dibagi
f. Hasil akhir operasi XOR diubah
ke dalam bentuk
desimal(result)
g. Initial value untuk LCG =
result
2. Untuk mendapatkan jumlah iterasi
maka ambil headernya, yaitu 55
posisi pertama
posisi[0] ← result
a. for p←0 to 54
posisi[p+1]←((a*posisi[p])
+ b) mod totalpix
pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p;
jika nilai R, G, B adalah genap
header=0;
selainnya
header=1;
b. Dapatkan level, boundary,
iterasilcg, dan nama file
pesan
3. Nilai awal untuk LCG ← posisi[54]
Jika level=1
for p←55 to iterasilcg
posisi[p] ← ((a *
posisi[p-1]) + b) mod totalpix
pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p;
jika nilai R, G, B adalah genap bitpesan=0; selainnya bitpesan=1; Jika level=2 for p←55 to iterasilcg
posisi[p] ← ((a *
11
pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p;
jika nilai R, G, B adalah genap
bitpesan= nilai indeks warna & 2;
selainnya
bitpesan= nilai indeks
warna & 3; Jika level=3
for p←55 to iterasilcg
posisi[p] ← ((a *
posisi[p-1]) + b) mod totalpix
pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p;
jika nilai R, G, B adalah genap
bitpesan= nilai indeks
warna & 6; selainnya
bitpesan= nilai indeks
warna & 7; Jika level=4
for p←55 to iterasilcg
posisi[p] ← ((a *
posisi[p-1]) + b) mod totalpix
pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p;
jika nilai R, G, B adalah genap
bitpesan= nilai indeks
warna & 14; selainnya
bitpesan= nilai indeks warna & 15;
4. Konversi nilai bit ke dalam
bentuk ASCII
Nilai ASCII akan disimpan dalam
bentuk file pesan dengan nama
sesuai dengan namafilepesan
Langkah awal pada algoritma pengambilan pesan ini, yaitu mendapatkan
header. Header yang diperoleh, akan menghasilkan boundary, level, iterasi lcg,
dan nama file pesan. Level dan iterasi lcg ini akan digunakan untuk proses selanjutnya, yaitu mendapatkan isi pesan. Pada algoritma ini, pemanggilan fungsi LCG dilakukan sebanyak dua kali, yaitu untuk mendapatkan
header dan isi pesan. Langkah selanjutnya adalah bit–bit pesan yang didapatkan akan dikonversi ke dalam bentuk ASCII. Kemudian hasilnya akan disimpan sesuai dengan nama file pesan yang terdapat pada
header.
Untuk perhitungan kompleksitas waktu algoritma pengambilan pesan adalah sebagai berikut:
[1] for p←55 to n+55
[2] posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix
Kompleksitas algoritma pengambilan pesan ditentukan oleh baris [1] dan baris [2]. Baris [1] merupakan proses pengambilan pesan. Baris [1] ini akan dieksekusi sebanyak n dengan n merupakan panjang bit pesan. Baris [2] merupakan proses mendapatkan posisi piksel. Baris [2] ini berlangsung sebanyak n kali. Proses lainnya berlangsung satu kali, sehingga algoritma tersebut memiliki kompleksitas waktu O(n). Perhitungan kompleksitas waktu algoritma pengambilan pesan lebih lengkap dijelaskan pada Lampiran 4.
Analisis Waktu Pengambilan Pesan
Analisis waktu pengambilan pesan akan dipengaruhi proses pembangkitan PRNG oleh algoritma LCG dan berapa lama proses pengambilan pesan itu sendiri. Hasil analisis waktu pengambilan pesan dapat dilihat pada Tabel 5.
Tabel 5 Hasil analisis waktu pengambilan pesan (detik)
Berdasarkan data pada Tabel 5, terlihat waktu pengambilan pesan akan semakin membesar seiring bertambahnya ukuran file
pesan yang disembunyikan dan level bit
yang digunakan. Untuk lebih jelas waktu pengambilan pesan dapat dilihat dalam bentuk grafik seperti pada Gambar 9 berikut.
12
Waktu Pengambilan Pesan
0 100 200 300 400 500 600 2907 2 374 40 468 02 52941643 52 756 74 8277 0 927 53 1047 54 1100 22 Ukuran Pesan (bytes)
W akt u ( d et ik ) ilkomers infohide komputer embedded kualitas pixel steganog password
Gambar 9 Grafik waktu pengambilan pesan. Berdasarkan pada Gambar 9, grafik waktu pengambilan pesan akan semakin naik seiring bertambahnya ukuran file dan level bit yang digunakan. Hal ini membuktikan bahwa ukuran file dan level bit berpengaruh terhadap waktu pengambilan pesan. Grafik waktu pengambilan pesan mengalami kenaikan yang berbeda pada tiap level bit. Waktu pengambilan pesan pada level 1 dan level 2
naik secara linear, sedangkan pada level 3 dan level 4 grafik waktu naik lebih cepat.
Analisis Kualitas
Proses penyembunyian pesan akan mempengaruhi kualitas gambar. Kriteria yang harus diperhatikan pada information hiding, yaitu fidelity (setelah penyembunyian pesan, cover-image masih terlihat baik), robustness (pesan harus tahan terhadap manipulasi), dan recovery (pesan yang disembunyikan harus dapat diungkapkan kembali). Akan tetapi, pada steganografi hanya kriteria fidelity dan
recovery yang diperlukan. Hal ini disebabkan steganografi tidak bertujuan
robustness. Karena steganografi lebih bertujuan bagaimana pesan disembunyikan. Pada penelitian ini, untuk melihat perubahan kualitas pesan akan dilakukan dengan menghitung nilai PSNR. Semakin besar nilai PSNR yang didapatkan, maka steganalis semakin tidak mencurigai adanya pesan yang disembunyikan. Hasil analisis kualitas dapat dilihat pada Tabel 6.
Tabel 6 Hasil analisis kualitas stego-image (dB)
Analisis kualitas dapat dikatakan baik apabila kualitas stego-image yang dihasilkan tidak mengalami distorsi yang besar dibandingkan dengan cover-image. Dengan kata lain, stego-image yang dihasilkan sulit untuk dibedakan dengan cover-image. PSNR yang dihasilkan memiliki nilai lebih besar dari 30 dB, sehingga stego-image yang dihasilkan memiliki kualitas yang baik. Berdasarkan data pada Tabel 6, terlihat bahwa kualitas stego-image sangat dipengaruhi oleh besarnya ukuran file pesan, serta level bit yang digunakan. Terbukti bahwa semakin besar ukuran file pesan dan level bit yang digunakan, nilai PSNR akan semakin mengecil.
Analisis Keamanan
Penggantian bit–bit yang redundan dapat menimbulkan kecurigaan, sehingga serangan dapat dilakukan untuk mendeteksi adanya data yang disembunyikan. Serangan pada
stego-image ini disebut steganalisis. Terdapat dua aspek serangan pada steganografi, yaitu pendeteksian dan penghancuran. Pada penelitian kali ini, analisis keamanan dilakukan terhadap serangan pendeteksian secara visual. Diasumsikan steganalis mempunyai cover-image dan stego-image. Dengan demikian steganalis akan membandingkan kedua gambar tersebut. Selain itu juga steganalis akan mencoba membandingkan histogram dari kedua gambar.
1313
Analisis keamanan akan dilakukan dengan menyebarkan kuisioner kepada 30 responden. Format kuisioner dapat dilihat pada Lampiran 5. Responden terdiri atas 50% mahasiswa Ilmu Komputer dan 50% mahasiswa di luar Ilmu Komputer. Pesan yang digunakan pada kuisioner memiliki ukuran 110.022 bytes, sedangkan cover-image yang digunakan memiliki dimensi 640 x 480 piksel. Pesan yang digunakan adalah pesan dengan ukuran file yang terbesar. Pemilihan pesan ini disebabkan karena semakin besar ukuran file pesan yang digunakan, maka semakin kecil kualitas gambar yang dihasilkan. Hal ini akan cukup mewakili penilaian keberhasilan penelitian ini.
Penilaian pada kuisioner dibagi menjadi tiga kriteria, yaitu berbeda, sedikit berbeda, dan tidak berbeda. Kriteria berbeda dapat dipilih apabila responden dapat melihat adanya perubahan warna yang sangat nyata terhadap cover-image. Perubahan warna yang dihasilkan terjadi pada hampir semua bagian gambar. Dengan kata lain, stego-image yang dihasilkan tampak jauh berbeda dari cover-image. Kriteria sedikit berbeda dapat dipilih apabila responden hanya melihat beberapa perbedaan warna. Perubahan warna yang dihasilkan hanya pada tempat-tempat tertentu saja. Responden hanya melihat sedikit perbedaan pada gambar. Kriteria tidak berbeda dapat dipilih apabila responden tidak melihat adanya perbedaan warna yang dihasilkan. Responden tidak melihat perubahan warna pada seluruh bagian gambar. Hasil kuisioner untuk analisis keamanan dapat dilihat pada Tabel 7.
Tabel 7 Hasil kuisioner untuk analisis keamanan Jumlah Stego-key Berbeda Sedikit Berbeda Tidak Berbeda ilkomers 0 2 28 infohide 0 2 28 komputer 0 4 26 embedded 0 6 24 kualitas 0 6 24 pixel 0 4 26 steganog 0 2 28 password 0 2 28
Berdasarkan pada Tabel 7, dapat dilihat hasil kuisioner, yaitu 93% responden berpendapat bahwa stego-image dengan
stego-key “ilkomers” tidak berbeda dengan
cover-image, 93% responden berpendapat bahwa stego-image dengan stego-key
“infohide” tidak berbeda dengan cover-image, 87% responden berpendapat bahwa
stego-image dengan stego-key “komputer” tidak berbeda dengan cover-image, 80% responden berpendapat bahwa stego-image
dengan stego-key “embedded” tidak berbeda dengan cover-image, 80% responden berpendapat bahwa stego-image dengan
stego-key “kualitas” tidak berbeda dengan
cover-image, 87% responden berpendapat bahwa stego-image dengan stego-key
“pixel” tidak berbeda dengan cover-image, 93% responden berpendapat bahwa stego-image dengan stego-key “steganog” tidak berbeda dengan cover-image, 93% responden berpendapat bahwa stego-image
dengan stego-key “password” tidak berbeda dengan cover-image. Grafik hasil kuisioner untuk analisis keamanan dapat dilihat pada Gambar 10.
Gambar 10 Grafik hasil kuisioner untuk analisis keamanan.
Berdasarkan pada Gambar 10, dapat dilihat secara keseluruhan 88% responden berpendapat bahwa stego-image yang dihasilkan tidak berbeda dengan cover-image dan 12% responden berpendapat bahwa stego-image yang dihasilkan sedikit berbeda dengan cover-image. Berdasarkan hasil kuisioner tersebut, stego-image yang dihasilkan tidak terlalu menimbulkan kecurigaan karena sebagian besar responden tidak menyadari adanya perbedaan antara
stego-image dan cover-image.
Analisis keamanan berikutnya dilakukan dengan membandingkan histogram komponen warna RGB. Apabila tidak terdapat perbedaan yang nyata di antara histogram cover-image dan stego-image, maka kecil kemungkinan steganalis mencurigai kedua gambar tersebut. Berikut histogram pada cover-image dan stego-image.
14
Gambar 11 Histogram cover-image dan stego-image pada warna Red (R).
Gambar 12 Histogram cover-image dan stego-image pada warna Green (G).
Gambar 13 Histogram cover-image dan stego-image pada warna Blue (B).