7
Tabel 6 Skenario pengujian 4
5
Cover
Jumlah bit
Rhinos.avi & Vipmen.avi
1 - 8 bit
Berkas pesan Test.txt Daftar.txt TestCase .txt
Jumlah karakter 197 15.384 33.792
Pengujian kualitas stegovideo secara objektif menggunakan SSIM dan secara subjektif melalui kuesioner kualitatif. Data hasil kuesioner kemudian dihitung dengan MOS menggunakan Persamaan 5.
Ekstraksi pesan Proses ekstraksi pesan tidak dapat mengembalikan stegovideo menjadi video AVI asli karena pesan sudah menjadi bagian dari video. Proses ekstraksi pesan dilakukan terhadap stegovideo hasil penyisipan pesan. Proses ekstraksi pada dasarnya merupakan proses yang mirip dengan proses penyisipan pesan sehingga proses yang dilakukan tersusun atas aksi-aksi yang sama dengan penyisipan pesan pada cover video. Ekstraksi pesan diambil dari bit LSB pada koefisien DC dan dikonversi ke dalam karakter sehingga pesan dapat dibaca.
4 Binerisasi koefisien DC Koefisien DC hasil kuantisasi kemudian dirubah ke dalam bentuk biner. 5 Pengambilan biner pesan Bit biner hasil konversi kemudian diambil bagian LSB sejumlah bit yang digunakan untuk menyimpan pesan. 6 Kompresi Huffman Decoding ke dalam karakter menggunakan kamus biner hasil encoding pesan dengan metode Huffman yang disimpan secara terpisah. Jika penyisipan tidak menggunakan kompresi Huffman, langkah yang dilakukan adalah konversi bit biner ke dalam karakter ASCII sehingga menghasilkan susunan karakter yang sesuai dengan pesan asal. HASIL DAN PEMBAHASAN Pada penelitian ini, untuk melakukan penyisipan pesan ke dalam video dibutuhkan beberapa video dengan format AVI yang akan digunakan sebagai cover dan pesan teks dengan format TXT sebagai pesan yang akan disisipkan. Video AVI pada umumnya memiliki ukuran yang relatif besar, tetapi dengan pertimbangan efisien waktu dalam penelitian dan pengujian akan digunakan beberapa video AVI dengan ukuran yang relatif kecil. Video yang akan digunakan pada penelitian kali ini berasal dari dokumen Matlab. Adapun deskripsi video yang digunakan terdapat pada Tabel 7. Tabel 7 Cover video
Gambar 6 Proses ekstraksi pesan. Tahapan proses ekstraksi pada Gambar 6 dapat diuraikan sebagai berikut: 1 Ekstraksi Stegovideo Stegovideo diekstraksi dan dipecah menjadi beberapa frame. Setiap frame merupakan image RGB. 2 Makroblok piksel Setiap frame kemudian dipecah menjadi makroblok - makroblok dengan ukuran 8x8. 3 Implementasi DCT Proses DCT diterapkan untuk setiap makroblok-makroblok yang digunakan sebagai media penyimpanan pesan untuk kemudian dilakukan proses kuantisasi terhadap hasil DCT tersebut.
File
Ukuran
Resolusi
Frame
Rhinos.avi
26.6 MB
320x240
114
Vipmen.avi
16.05MB
160x120
283
Selain berkas video, penelitian ini juga menggunakan berkas dengan format TXT sebagai pesan yang akan disisipkan. Deskripsi berkas tersebut terdapat pada Tabel 8. Tabel 8 Pesan yang digunakan File Test.txt Daftar.txt TestCase.txt
Ukuran (Bytes) 197 15384 33792
Jumlah Karakter 197 15384 33792
Estimasi Kapasitas Penyimpanan Setiap frame yang diambil dari video diharapkan dapat digunakan sebagai ruang penyembunyian data. Pada penelitian ini, ukuran maksimum untuk dilakukan penyembunyian pesan dapat diketahui melalui perhitungan berikut:
8
1 Video „Rhinos.avi‟ diketahui memiliki 114 frame dengan resolusi 320 x 240 piksel untuk setiap frame-nya. 2 Proses makroblok akan membagi pikselpiksel tersebut ke dalam blok-blok kecil dengan ukuran 8 x 8 sehingga setiap frame video tersebut memiliki makroblok sejumlah 40 x 30 = 1200 makroblok. 3 Setiap piksel terdiri atas 3 bytes (RGB) 4 Setiap frame = 1200 x 3 = 3600 bit (dengan estimasi penyisipan 1 bit pada setiap LSB makroblok). 5 Untuk sebuah video = 114 x 3600 = 410400 bits dan jumlah tersebut dapat menampung = 410400 / 8 = 51300 karakter. Perhitungan estimasi tersebut masih didasarkan pada penyisipan setiap 1 bit pada LSB koefisien DC. Pada penelitian ini, akan dilakukan percobaan sampai bit maksimum untuk meningkatkan kapasitas penyimpanan pesan rahasia. Estimasi perhitungan untuk keseluruhan bit dapat dilihat dari grafik Gambar 7 dan Lampiran 1.
Penyisipan Pesan Setelah dilakukan pemilihan terhadap video sebagai cover dan berkas teks sebagai pesan yang akan disisipkan, tahapan selanjutnya yang dilakukan dapat diuraikan sebagai berikut : 1 Ekstraksi Cover dan Pesan Pada penggunaan video „Rhinos.avi‟ sebagai cover, proses ekstraksi akan menghasilkan 114 frame dengan masing-masing frame terdiri atas matriks nilai warna dari gambar penyusun video dengan ukuran 320 x 240 piksel dan 3 segmen warna RGB, sedangkan pesan teks akan diekstraksi ke dalam karakter ASCII desimal sebagai input pada proses encoding Huffman. Potongan matriks hasil ekstraksi video dapat dilihat pada Gambar 8.
Gambar 8 Potongan hasil ekstraksi video.
Gambar 7 Kapasitas penyimpanan per frame. Dari grafik estimasi kapasitas penyimpanan Gambar 7 dapat diturunkan Persamaan 6 untuk mengetahui jumlah frame yang dibutuhkan pada penyisipan sejumlah N Bytes pesan.
2 Makroblok piksel Matriks pada proses pertama kemudian di pecah menjadi makroblok dengan ukuran 8 x 8 sehingga dihasilkan 3600 makroblok untuk setiap frame. Proses makroblok dilakukan pada seluruh frame video. Gambar 9 menunjukkan matriks hasil makroblok dari matriks pada Gambar 8.
Persamaan 6
F=
N×64 3 × b ×m ×n
Dengan : F = Jumlah frame N = Bytes pesan b = bit cover yang digunakan m, n = resolusi video Dari Persamaan 6, dapat diilustrasikan untuk pesan dengan jumlah karakter 5000 Bytes disisipkan pada video dengan resolusi 320 x 240 menggunakan 1 bit LSB sebagai cover akan membutuhkan frame sebanyak 2 frame (pembulatan ke atas dari 1.3888).
Gambar 9 Makroblok 8 x 8 pada frame. 3 Implementasi DCT Proses DCT dilakukan terhadap makroblok yang akan digunakan sebagai penampung pesan. Jumlah makroblok yang akan digunakan sesuai dengan jumlah bit karakter yang akan disisipkan. Sebelum dilakukan DCT, nilai piksel akan dikurangi 128. Hal ini dilakukan karena DCT dirancang untuk bekerja pada nilai piksel dengan rentang -128 sampai 127. Hasil
9
pengurangan makroblok dapat dilihat pada Gambar 10.
Tabel 9 Rasio kompresi Huffman Berkas Pesan Test.txt Daftar.txt TestCase.txt
Jumlah Karakter
Jumlah bit asal
197 15384 33792
1.576 123072 270336
Jumlah bit kompresi 928 72511 160406
Rasio (%) 58.88 58.92 59.34
Tabel 9 menunjukkan kompresi Huffman dapat menghemat penggunaan bit dengan rasio kompresi rata-rata kurang dari 60%. Gambar 10 Makroblok setelah dikurangi 128.
7 Penyisipan biner pesan Penyisipan biner pesan dilakukan dengan mengganti nilai biner LSB koefisien DC pada tahap 5 dengan bit pesan. Proses penyisipan biner diilustrasikan pada Gambar 13. Bit pesan
Biner DC
00101001 Gambar 11 Hasil DCT 2D pada makroblok. Gambar 11 menunjukkan hasil DCT dengan posisi pojok kiri atas pada matrik dengan nilai paling besar adalah koefisien DC dan 63 lainnya adalah koefisien AC. 4 Kuantisasi Proses kuantisasi dilakukan dengan membagi setiap komponen nilai hasil DCT dengan matriks kuantisasi pada Gambar 5. Hasil kuantisasi ditunjukkan pada Gambar 12.
0
Biner hasil penyisipan
01101000 Gambar 13 Proses penyisipan biner. 8 Invers kuantisasi dan IDCT Nilai biner hasil penyisipan kemudian diubah kembali ke dalam bentuk desimal sebelum dilakukan invers kuantisasi. Proses invers kuantisasi dilakukan dengan mengalikan setiap nilai dengan matriks kuantisasi sesuai dengan Gambar 5. Setelah dilakukan invers kuantisasi langkah selanjutnya adalah invers DCT (IDCT) menggunakan persamaan 2. Contoh hasil invers kuantisasi makroblok pertama dapat dilihat pada Gambar 14.
Gambar 12 Hasil kuantisasi. 5 Binerisasi koefisien DC Proses binerisasi dilakukan pada koefisien DC yang dibulatkan kebawah. Pada contoh hasil kuantisasi Gambar 12 koefisien DC dengan nilai 41 akan diubah ke dalam bentuk biner dengan nilai „00101001‟. 6 Kompresi Huffman Kompresi Huffman dilakukan terhadap pesan yang akan disisipkan. Rasio kompresi Huffman tiap pesan berbeda dan relatif terhadap frekuensi kemunculan setiap karakter di dalam pesan yang akan disisipkan. Rasio kompresi setiap pesan dapat dilihat pada Tabel 9.
Gambar 14 Hasil invers kuantisasi. Proses IDCT yang dilakukan merupakan IDCT dua dimensi karena matriks yang digunakan sebagai input memiliki bentuk dua dimensi. Hasil IDCT 2 terhadap Gambar 14 ditunjukkan pada Gambar 15.
10
frame hasil penyisipan ke bentuk video AVI sehingga berbentuk stegovideo. Ekstraksi Pesan
Gambar 15 Hasil IDCT2. Setelah matriks hasil IDCT2 didapatkan, nilai piksel kemudian dikembalikan ke dalam rentang 0-255 dengan menambahkan 128. Hasil matriks akhir nilai piksel setelah penyisipan dapat dilihat pada Gambar 16.
Proses ekstraksi pesan memiliki tahapan yang hampir sama dengan proses penyisipan pesan. Perbedaannya terletak pada operasi pengambilan bit biner LSB koefisien DC dan pada akhir proses ekstraksi, cover tidak perlu dikembalikan ke bentuk semula. Tahapan proses ekstraksi pesan dapat diuraikan sebagai berikut: 1
2
3 Gambar 16 Matriks hasil penyisipan. Pada penerapannya, nilai-nilai hasil penyisipan tidak selalu berada pada rentang 0255. Hal ini terjadi dikarenakan modifikasi pada biner koefisien DC dapat mengubah nilai desimal warna dari piksel. Untuk menghindari kehilangan data pada saat pembentukan video, setiap selisih baik nilai yang melebihi 255 maupun yang kurang dari 0 akan disimpan untuk digunakan kembali pada saat proses ekstraksi. Tabel 10 menunjukkan salah satu potongan contoh penyimpanan delta jika nilai warna yang dihasilkan melebihi rentang 0-255.
4
5
Ekstraksi Stegovideo Stegovideo hasil penyisipan di ekstraksi sehingga terbentuk frame-frame yang memiliki piksel nilai warna. Makroblok piksel Sebelum dibentuk menjadi makroblok dengan ukuran 8x8, nilai warna sebelumnya dikurangi dengan 128 dan ditambahkan nilai delta. Implementasi DCT Proses DCT dilakukan dengan menerapkan Persamaan 1 terhadap hasil matriks pada tahap kedua. Binerisasi koefisien DC Koefisien DC hasil kuantisasi kemudian diubah ke dalam bentuk biner. Pengambilan biner pesan LSB dari biner pada tahap empat kemudian diambil sesuai dengan jumlah digit bit yang digunakan sebagai penampung pesan. Proses ini dapat diilustrasikan pada Gambar 17. Biner DC stegovideo
Bit pesan ekstraksi
00101000
0
Tabel 10 Contoh penyimpanan nilai delta No makroblok
Baris
Kolom
Nilai warna
7229
8
3
256.289
1.289
8492
4
1
255.417
0.417
8492
4
2
255.484
0.484
8492
4
3
255.574
0.574
8492
4
4
255.628
0.628
8492
4
5
255.606
0.606
8492
4
6
255.510
0.510
8492
4
7
255.387
0.387
Analisis hasil dilakukan untuk melihat tingkat keberhasilan dari proses penyisipan dan ekstrasi pesan ke dalam video. Pengukuran hasil akan dilakukan secara subjektif dan objektif.
8492
4
8
255.304
0.304
Analisis Hasil Penyisipan
8492
5
1
255.364
0.364
Delta
Tahapan paling akhir dari proses penyisipan pesan adalah pembentukan kembali frame-
Gambar 17 Proses pengambilan bit pesan 6 Kompresi Huffman Proses decoding bit biner hasil pengambilan pesan dilakukan menggunakan kamus Huffman yang sesuai saat dilakukan encoding tahap penyisipan. Analisis Hasil
Analisis hasil penyisipan dapat diketahui dari pengujian beberapa skenario yang telah dilakukan. Pengujian tersebut dapat digunakan untuk mengetahui banyak pesan yang berhasil
11
disisipkan dan berhasil diekstrak kembali. Kebenaran penyisipan akan dilihat dari dua sudut pandang, yaitu dilihat dari kebenaran bit biner dan kebenaran nilai ASCII sebelum disisipkan dan sesudah diekstraksi kembali. Hasil pengujian kebenaran penyisipan untuk keempat skenario setelah dilakukan pengujian menghasilkan nilai 100% untuk kebenaran bit dan kebenaran ASCII untuk hasil selengkapnya dapat dilihat pada Lampiran 2-5. Hasil tersebut menunjukkan bahwa steganografi pada video AVI dengan menerapkan metode DCT dan Huffman code memenuhi kriteria recovery, yaitu pesan berhasil disisipkan dan didapatkan kembali setelah proses ekstraksi.
Gambar 20 Waktu sisip „Daftar.txt‟.
Analisis Waktu Sisip dan Ekstraksi Proses penyisipan pesan dan proses ekstraksi membutuhkan waktu yang berbeda tergantung jumlah karakter pesan dan besarnya berkas cover yang digunakan. Pada analisis waktu, yang akan menjadi perbandingan adalah waktu sisip dan waktu ekstrak antara penyisipan pesan dengan menggunakan metode Huffman dan tanpa kompresi Huffman. Perhitungan waktu pada proses penyisipan dan ekstraksi dapat dilihat pada Gambar 18 sampai dengan Gambar 23.
Gambar 21 Waktu ekstraksi „Daftar.txt‟.
Gambar 22 Waktu sisip „TestCase.txt‟.
Gambar 18 Waktu sisip pesan „Test.txt‟.
Gambar 23 Waktu ekstraksi „TestCase.txt‟.
Gambar 19 Waktu ekstraksi pesan „Test.txt‟.
Dari hasil pengujian pada Gambar 18 sampai dengan Gambar 21, pengujian dilakukan menggunakan berkas pesan „Test.txt‟ dan „Daftar.txt‟. Untuk cover, digunakan video „Rhinos.avi‟ sedangkan pada hasil pengujian Gambar 22 dan Gambar 23 digunakan berkas pesan „TestCase.txt‟ dan video „Vipmen.avi‟. Grafik pada gambar pengujian menunjukkan
12
bahwa semakin banyak jumlah karakter yang disisipkan ke dalam cover video, semakin banyak pula waktu yang dibutuhkan dalam proses penyisipan maupun proses ekstraksi. Selain itu, dapat diketahui pula bahwa steganografi menggunakan kompresi Huffman dapat mengurangi waktu proses penyisipan maupun proses ekstraksi. Peningkatan waktu proses secara siginifikan terlihat pada penggunaan bit ke-7 dan 8. Hal ini disebabkan pada saat konversi kembali dari matriks ke dalam frame image terjadi banyak penyesuaian terhadap nilai warna yang melebihi 255 atau kurang dari 0. Pengujian yang dilakukan sebelumnya merupakan pengujian yang dilakukan untuk mengetahui keterkaitan antara waktu proses dan jumlah karakter pesan yang sudah ditetapkan. Untuk mengetahui laju pertumbuhan waktu proses penyisipan dan ekstraksi terhadap jumlah maksimum pesan yang dapat disisipkan, dilakukan pengujian terhadap video „Rhinos.avi‟ dengan durasi 1-8 detik menggunakan pesan dengan jumlah karakter sesuai dengan kapasitas setiap video. Hasil pengujian tersebut dapat dilihat pada Tabel 11. Tabel 11 Hasil uji waktu vs jumlah karakter Durasi (detik)
Kapasitas (karakter)
Kompresi Huffman
Waktu sisip (menit)
Waktu ekstrak (menit)
1
6750
1.56
0.90
2
13500
3.88
2.58
3
20250
6.97
5.08
4
27000
10.96
8.28
NO
Gambar 24 Waktu penyisipan vs jumlah karakter.
Gambar 25 Waktu proses ekstraksi vs jumlah karakter. Dari grafik regresi linear pada Gambar 24 dan Gambar 25, dapat diketahui bahwa waktu sisip dan waktu ekstrak terhadap N Bytes didapat dengan Persamaan 7 sampai dengan Persamaan 10. Persamaan 7
xsisip = 1.08×10-4 N- 0.0223 Persamaan 8
xekstrak =2.29×10-4 N- 2.0582
5
33750
15.81
12.54
6
40500
24.70
19.04
7
47250
30.35
24.49
8
51300
33.33
28.48
1
6750
0.76
0.49
2
13500
1.51
1.19
3
20250
2.23
2.18
4
27000
2.78
3.34
5
33750
3.57
4.94
6
40500
4.24
6.70
Analisis Kapasitas Penyisipan
7
47250
4.96
8.83
8
51300
5.85
10.96
Kapasitas penyimpanan steganografi AVI dapat diketahui berdasarkan jumlah frame dan ukuran resolusi dari video yang akan dijadikan cover seperti pada penjelasan estimasi kapasitas penyimpanan sebelumnya. Untuk meningkatkan jumlah karakter pesan yang dapat disisipkan ke dalam cover video, dilakukan skenario
YES
Persamaan 9
ysisip =7.50×10-4 N- 6.6147 Persamaan 10
yekstrak =6.33×10-4 N- 6.3375 Dengan : x = Waktu dengan metode Huffman y = Waktu tanpa Huffman N = Jumlah Bytes pesan (karakter)
13
pengujian 2 dan 3. Pada skenario pengujian 2 dilakukan penyisipan pesan „TestCase.txt‟ dengan jumlah karakter 33792 tanpa kompresi Huffman ke dalam cover video „Vipmen.avi‟ menggunakan 1 bit LSB dengan kapasitas penyimpanan 31837 karakter, sedangkan pada skenario pengujian 3 dilakukan hal yang sama akan tetapi setelah dilakukan kompresi Huffman terhadap berkas pesan yang akan disisipkan. Hasil pengujian terdapat pada Tabel 12. Tabel 12 Hasil uji skenario 2 dan 3 Kapasitas karakter
Karakter berhasil disisipkan
NO
31837
31837
YES
31837
33792
Cover video
Kompresi Huffman
Vipmen.avi 283 frame 160 x 120
Dari hasil pengujian tersebut, dapat diketahui bahwa kompresi Huffman terhadap pesan dapat mengurangi pemakaian bit dalam pengodean karakter ASCII sehingga dapat meningkatkan jumlah karakter yang bisa disisipkan pada sebuah cover video. Selain kompresi Huffman, usaha yang dapat dilakukan untuk meningkatkan kapasitas penyimpanan juga bisa dilakukan dengan cara meningkatkan penggunaan bit pada cover video sebagai bit penampung pesan.
pengujian skenario Lampiran 5.
4
dapat
dilihat
pada
Analisis Kualitas Stegovideo Analisis terhadap kualitas stegovideo dilakukan dengan dua pendekatan berikut: 1 Kualitas secara objektif Analisis terhadap stegovideo secara objektif adalah pengukuran yang dilakukan dengan menghitung kesamaan setiap frame di antara video asli bebas distorsi dan stegovideo hasil penyisipan pesan. Video asli digunakan sebagai referensi pengukuran. Pengukuran dilakukan dengan menghitung SSIM setiap frame kedua video kemudian dicari Mean dari nilai SSIM tersebut. Perhitungan nilai SSIM dilakukan menggunakan Persamaan 4. Hasil pengukuran dapat dilihat pada Gambar 26 sampai dengan Gambar 28.
Gambar 26 Nilai MSSIM „Test.txt‟.
Skenario pengujian 4 dilakukan untuk mengetahui kemungkinan peningkatan kapasitas tersebut. Pengujian dilakukan tanpa kompresi Huffman. Hal ini dimaksudkan agar dapat diketahui kapasitas maksimum video dengan jumlah bit yang sebenarnya. Hasil pengujian skenario 4 untuk video „Vipmen.avi‟ dengan pesan „TestCase.txt‟ tanpa kompresi Huffman dapat dilihat pada Tabel 13. Gambar 27 Nilai MSSIM „Daftar.txt‟.
Tabel 13 Hasil skenario uji 4 Cover video
Jumlah bit
Vipmen.avi 283 frame 160 x 120
1 2 3 4 5 6 7 8
Kapasitas Karakter 31837 63675 95512 127350 159187 191025 222862 254700
Karakter berhasil disisipkan 31837 33792 33792 33792 33792 33792 33792 33792
Pada Tabel 13, dapat diketahui bahwa peningkatan pemakaian jumlah bit yang digunakan sebagai penampung pesan dapat meningkatkan kapasitas penyimpanan suatu video terhadap pesan rahasia. Hasil lengkap
Gambar 28 Nilai MSSIM „TestCase.txt‟. Dari grafik pada gambar, dapat diketahui bahwa semakin banyak penggunaan bit LSB yang digunakan sebagai penampung pesan akan semakin menurunkan kualitas dari file cover. Pada penelitian yang dilakukan Wang et al. (2004) yang dicantumkan oleh Hariyanto (2008)