BAB III ANALISIS MASALAH
Bab ini mencakup analisis permasalahan pada Tugas Akhir seperti bagaimana proses penyisipan pesan pada video, proses ekstraksi pesan, penggunaan kunci untuk menambah keamanan, serta proses pengukuran kualitas video untuk mengetahui bagaimana perbedaan video yang dihasilkan. Terdapat juga analisis mengenai implementasi perangkat lunak pada mobile phone.
3.1 Penyisipan Pesan Pada Video Sistem untuk menyisipkan pesan pada video, membutuhkan masukan berupa video sebagai media penyisipan, pesan yang ingin disisipkan, serta kunci sebagai pengaman. Video masukan yang digunakan dalam Tugas Akhir memiliki format 3GP dengan Basic Profile, dan memiliki codec H.263 dengan karakteristik Baseline Profile dan Level 10. Penjelasan format dan codec ini dapat dilihat pada Lampiran A dan Lampiran B. Gambaran sistem secara keseluruhan dapat dilihat pada Gambar III–1.
video
pemilihan frame
pemilihan koefisien
pesan
pembacaan pesan
pengacakan pesan
kunci
pembangkitan bilangan acak
penyisipan pesan
stego-object video
Gambar III–1 Sistem penyisipan pesan
Proses penyisipan diawali dengan mengklasifikasi frame yang akan disisipkan. Video codec H.263 yang digunakan memiliki dua jenis frame. Jenis frame pertama adalah Iframe, yang menggunakan kompresi intraframe dengan DCT. Kemudian jenis frame yang kedua adalah P-frame yang menggunakan kompresi interframe yaitu motion estimation dan compensation. Kedua jenis frame ini ditunjukkan pada Gambar III–2. Teknik penyisipan pesan yang akan digunakan adalah DCT Modification, yang berarti melakukan perubahan pada koefisien DCT. Oleh karena itu, penyisipan hanya dapat dilakukan pada I-frame yang menyimpan koefisien DCT di dalamnya. Perubahan III-1
III-2 pada frame ini akan mempengaruhi semua P-frame berikutnya, karena kompresi interframe menjadikan I-frame ini sebagai frame referensi, sehingga perubahan pada I-frame akan ikut terbawa. I -frame P-fra me P-frame
... INTRA-DC & MVD TCOEF
MVD
Gambar III–2 Frame pada video H.263
Setelah didapatkan frame yang sesuai, dicari juga koefisien yang dapat disisipkan, yaitu INTRA-DC atau TCOEF. Keduanya masing-masing mewakili koefisien DC dan AC dari matriks frekuensi pada gambar. Analisis mengenai koefisien ini dijelaskan pada Subbab 3.1.1. Kedua masukan lainnya, yaitu pesan dan kunci, dipakai untuk menghasilkan pesan yang acak. Proses pengacakan dengan kunci ini akan dijelaskan lebih lanjut pada Subbab 3.3. Pesan acak tersebut lalu disisipkan ke dalam koefisien DCT pada frame, dengan metode DCT modification. Objek keluaran yang dihasilkan adalah sebuah stego-object, yaitu video yang sudah memiliki pesan di dalamnya. Video ini akan mengalami sedikit penurunan kualitas dibandingkan video masukan, dan diharapkan penurunan ini tidak dapat dideteksi oleh manusia. Untuk menguji penurunan kualitas video, akan dilakukan pengukuran kualitas video yang akan dibahas pada Subbab 3.4. Pengukuran kualitas ini tidak tercakup dalam sistem, melainkan hanya sebagai pengujian saja. Pada I-frame, terdapat dua jenis angka yang dapat menjadi tempat penyisipan, yaitu INTRA-DC dan TCOEF. Berikut ini akan dijelaskan mengenai analisis penyisipan pada masing-masing koefisien, lalu disertai dengan penghitungan ukuran maksimum pesan yang dapat disisipkan pada video.
III-3 3.1.1 Jenis Koefisien DCT Sebuah blok di tiap frame memiliki dua buah komponen, yaitu INTRA-DC yang mengandung koefisien DC, dan TCOEF yang mengandung koefisien AC. Nilai INTRA-DC pasti dimiliki oleh semua blok pada I-frame, namun nilai TCOEF tidak selalu ada, yaitu apabila matriks frekuensi tidak memiliki koefisien AC, atau semua koefisiennya bernilai 0. 1. Penyisipan pada INTRA-DC Nilai INTRA-DC memiliki panjang yang tetap yaitu 8-bit, sehingga kisaran nilainya adalah 0 sampai 255. Sedangkan koefisien DC yang disimpan berkisar antara -1024 hingga 1023. Untuk dapat mendekati kisaran nilai koefisien ini, maka INTRA-DC hanya menyimpan setiap 8 nilai. INTRA-DC yang disimpan akan dibulatkan ke koefisien DC pada kelipatan 8 yang terdekat. Pembulatan ini menyebabkan setiap perubahan nilai INTRA-DC pada LSB akan menambah atau mengurangi koefisien DC sebesar 8.
52 63 62 63 67 79 85 87
55 59 59 58 61 65 71 79
asli
setelah disisipkan
gambar
gambar
61 66 70 61 64 73 55 90 109 85 69 72 68 113 144 104 66 73 71 122 154 106 70 69 68 104 126 88 68 70 60 70 77 68 58 75 64 59 55 61 65 83 69 68 65 76 78 94
68 79 78 79 83 95 101 103
71 75 75 74 77 81 87 95
77 71 84 87 84 76 80 85
82 106 129 138 120 86 75 84
86 125 160 170 142 93 71 81
77 101 120 122 104 84 77 92
80 89 85 88 82 89 86 85 84 86 74 91 81 99 94 110
matriks gambar
matriks gambar
DCT + kuantisasi
IDCT + dekuantisasi
-26 -3 -6 2 2 -1 0 0 0 -2 -4 1 1 0 0 0 -3 1 5 -1 -1 0 0 0 -4 1 2 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-18 -3 -6 2 2 -1 0 0 0 -2 -4 1 1 0 0 0 -3 1 5 -1 -1 0 0 0 -4 1 2 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
matriks frekuensi
matriks frekuensi
koefisien DC + 8
Gambar III–3 Contoh hasil penyisipan pada koefisien DC
III-4 Gambar III–3 memperlihatkan contoh efek perubahan nilai koefisien DC pada gambar 8 x 8 grayscale, yaitu ditambahkan sebesar 8. Setelah dikembalikan menjadi matriks gambar, terlihat bahwa perubahan tersebut ikut mengubah semua koefisien pada matriks gambar, yaitu bertambah sebanyak 16. Gambar yang dihasilkan pun menjadi sedikit lebih terang. Penyisipan dapat dilakukan langsung pada kode FLC INTRA-DC, seperti pada Tabel III-1. Dampak perubahannya adalah bertambah atau berkurangnya nilai koefisien DC sebanyak 8. Tabel lengkap kode FLC INTRA-DC dapat dilihat pada Lampiran B. Tabel III-1 Contoh perubahan pada INTRA-DC
No. 1 2
FLC 0000 0001 0000 0010 1101 0101 1101 0100
Reconstruction level 24 16 1704 1696
Terdapat kode FLC yang tidak boleh digunakan, yaitu 1111 1111, karena nilai reconstruction level-nya terletak bukan pada 2040, tapi pada 1024. Perubahan nilai ini akan mengakibatkan berubahnya nilai koefisien DC yang cukup besar, maka nilai khusus ini tidak dipakai. 2. Penyisipan pada TCOEF Nilai TCOEF mengandung komponen LAST, RUN, dan LEVEL, yang dikodekan menggunakan VLC sehingga panjangnya tidak tetap. LAST merupakan penanda apakah koefisien ini merupakan koefisien bukan 0 yang terakhir atau tidak, RUN menunjukkan berapa angka 0 yang mendahului koefisien ini, sedangkan LEVEL adalah nilai absolut dari koefisien AC. Bit terakhir dari kode VLC menunjukkan tanda positif/negatif nilai LEVEL; 0 untuk positif dan 1 untuk negatif. Contoh kode VLC TCOEF adalah 101, yang berarti 0 LAST, 0 RUN, dan 1 |LEVEL|, dan bertanda negatif. Artinya adalah nilai koefisien AC bukan 0 yang dibaca adalah -1, dimana tidak ada nilai 0 yang mendahuluinya, dan masih terdapat koefisien bukan 0 setelahnya. Tabel lengkap VLC TCOEF dapat dilihat pada Lampiran B.
III-5
52 63 62 63 67 79 85 87
55 59 59 58 61 65 71 79
asli
setelah disisipkan
gambar
gambar
61 66 70 61 64 73 55 90 109 85 69 72 68 113 144 104 66 73 71 122 154 106 70 69 68 104 126 88 68 70 60 70 77 68 58 75 64 59 55 61 65 83 69 68 65 76 78 94
73 79 72 67 69 82 91 96
61 62 58 54 55 60 68 78
57 62 68 57 63 79 50 88 108 81 66 75 62 112 145 100 60 71 65 123 157 103 63 64 62 106 130 86 61 65 54 72 82 67 54 73 59 61 60 62 64 85 64 70 70 78 79 100
matriks gambar
matriks gambar
DCT + kuantisasi
IDCT + dekuantisasi
-26 -3 -6 2 2 -1 0 0 0 -2 -4 1 1 0 0 0 -3 1 5 -1 -1 0 0 0 -4 1 2 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-26 -2 -5 3 3 -1 0 0 0 -1 -3 1 1 0 0 0 -2 1 6 -1 -1 0 0 0 -3 1 2 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
matriks frekuensi
matriks frekuensi
8 buah koefisien AC + 1
Gambar III–4 Contoh hasil penyisipan pada koefisien AC
Contoh penyisipan ke dalam koefisien AC dapat dilihat pada Gambar III–4. Terlihat bahwa perubahan pada koefisien AC juga mengubah nilai pada matriks. Namun karena penambahan dan pengurangan nilai ini merata di semua tempat, maka gambar yang dihasilkan tidak jauh berbeda dengan gambar asli. Pada proses ini, nilai -1, 0, atau 1 tidak diikutsertakan dalam penyisipan, karena perubahan pada ketiga nilai tersebut dapat mengakibatkan berubahnya susunan matriks frekuensi. Apabila pesan disisipkan langsung pada kode TCOEF, akan terdapat satu atau lebih komponen yang ikut berubah. Jika komponen tersebut adalah LAST atau RUN maka susunan matriks frekuensi dapat terganggu. Akibat perubahan TCOEF lainnya adalah kode TCOEF tersebut menjadi tidak dapat didekomposisi, karena tidak memiliki arti.
III-6 Contohnya dapat dilihat pada Tabel III-2. Perubahan nomor 1 hanya mengubah nilai LEVEL saja, sehingga tidak mengubah susunan matriks frekuensi. Perubahan pada nomor 2 mengubah nilai RUN dan LEVEL, yang menyebabkan konfigurasi nilai koefisien AC yang seharusnya bernilai 3 dan tidak ada nilai 0 di depannya, menjadi bernilai 2 dan memiliki sebuah nilai 0 di depannya, sehingga pembacaan susunan matriks frekuensi menjadi terganggu. Sedangkan pada nomor 3, nilai koefisien tidak diketahui, karena tidak ada kode TCOEF 11. Tabel III-2 Contoh perubahan VLC pada TCOEF
No. 1 2 3
VLC 0001 0010 1 s 0001 0010 0 s 0101 01 s 0101 00 s 10 s 11 s
LAST
RUN
0 0 0 0 0 ?
0 0 0 1 0 ?
LEVEL 6 7 3 2 1 ?
Cara lain penyisipan pada TCOEF adalah mendekomposisi TCOEF, lalu mengubah nilai komponen LEVEL saja, kemudian mengkodekan lagi ke dalam TCOEF yang baru. Namun dengan melakukan hal tersebut, ada kemungkinan bahwa panjang kode TCOEF akan ikut berubah. Contohnya ditunjukkan pada Tabel III-3, dimana perubahan pada nomor 1 tidak mengubah panjang, sedangkan perubahan pada nomor 2 dan 3 mengubah kode VLC, sehingga ukuran video juga dapat ikut membesar. Tabel III-3 Contoh perubahan LEVEL pada TCOEF
No. 1 2 3
LAST 0 0 0 0 1 1
RUN 0 0 0 0 0 0
LEVEL 8 9 3 2 1 2
VLC 0000 1000 01 s 0000 1000 00 s 0101 01 s 1111 s 0111 1 s 0000 1100 1 s
Penyisipan pesan ke dalam nilai TCOEF sebenarnya memiliki efek perubahan pada gambar yang lebih sedikit daripada INTRA-DC. Akan tetapi, terdapat kendala pada penyisipan di TCOEF, seperti hilangnya definisi kode VLC hasil penyisipan, atau
III-7 berubahnya ukuran video. Oleh karena itu, penyisipan pesan akan dilakukan pada nilai INTRA-DC pada blok I-frame. 3.1.2 Ukuran Maksimum Pesan Pada pelaksanaan Tugas Akhir, ukuran resolusi yang didukung pada video H.263 adalah pada Level 10, yaitu Sub-QCIF (128 x 96 pixel), dan QCIF (176 x 144 pixel). Apabila pesan akan disisipkan di dalam semua nilai LSB INTRA-DC yang terdapat pada blok, maka kapasitas maksimum pesan pada satu frame dapat dilihat pada Tabel III-4. Tabel III-4 Kapasitas maksimum pesan pada satu I-frame
Resolusi Sub-QCIF (128 x 96) QCIF (176 x 144)
Macroblock 48 99
Blok 288 594
Pesan Maksimum 36 bytes 74,25 bytes
Pesan maksimum ini tergantung pada jumlah I-frame pada video, dimana semakin banyak I-frame maka ukuran file semakin besar karena banyak menggunakan kompresi intraframe, namun jumlah pesan yang bisa disisipkan menjadi lebih banyak. Jika dianggap terdapat satu I-frame pada satu detik, maka ukuran maksimum pesan pada video berdurasi 10 detik adalah 10 kali lipat ukuran pada Tabel III-4, yaitu 360 bytes pada Sub-QCIF, dan 742,5 bytes pada QCIF. Pesan dapat disisipkan ke dalam 2 atau 3 LSB INTRA-DC sekaligus, untuk memperbesar ukuran maksimum pesan. Perlu diperhatikan bahwa semakin banyak jumlah bit yang diubah, maka penurunan kualitas akan semakin besar. Contohnya terdapat pada Gambar III–5, yang menunjukkan pengubahan bit pada 1 LSB, 2 LSB, dan 3 LSB ke dalam suatu gambar. Perubahan yang diperlihatkan pada penyisipan 1 LSB sangatlah kecil. Pada penyisipan 2 LSB, gambar mengalami sedikit perubahan warna, namun masih tidak begitu jelas. Sedangkan pada penyisipan dengan 3 LSB, bagian per blok pada video menjadi lebih terlihat jelas, dan beberapa warna sudah berubah, sehingga perubahan ini cukup dapat dipersepsi oleh manusia. Sedangkan nilai SSIM pada Gambar III–5, adalah sebagai berikut: 1. Frame asli dengan frame pada 1 LSB 0,99636 2. Frame asli dengan frame pada 2 LSB 0,98545 3. Frame asli dengan frame pada 3 LSB 0,95115
III-8
Gambar III–5 Hasil penyisipan pada 1, 2, dan 3 LSB
Jumlah bit yang digunakan untuk penyisipan akan melipatgandakan ukuran pesan maksimum yang dapat ditampung, namun penurunan kualitas juga akan semakin signifikan. Harus dipertimbangkan berapa jumlah LSB yang akan dipakai, sehingga dapat disesuaikan antara banyaknya pesan yang dibutuhkan dengan kualitas videonya. Pada Tugas Akhir ini, jumlah bit LSB yang dipakai akan secara otomatis menyesuaikan terhadap ukuran pesan. Apabila 1 LSB pada semua frame sudah terpakai, maka penyisipan pesan akan dilanjutkan ke dalam 2 LSB, dan seterusnya. Jumlah maksimal LSB yang dapat dipakai adalah 3 LSB.
3.2 Ekstraksi Pesan Pada Video Sistem untuk mengekstraksi pesan dari video memerlukan dua buah masukan, yaitu video yang mengandung pesan, serta kunci sebagai pengaman. Video ini memiliki format yang sama pada saat disisipkan, yaitu format 3GP dengan Basic Profile, dan video codec H.263 dengan Baseline Profile dan Level 10. Proses ekstraksi pesan dimulai dengan pemilihan frame dan koefisien pada video yang akan dibaca. Kemudian pesan di dalamnya dibaca, menjadi pesan dalam bentuk
III-9 acak. Kunci yang dimasukkan akan menjadi penentu kebenaran pesan, dimana deretan bilangan acak yang dibangkitkan oleh kunci akan mengatur bagaimana urutan pesan tersebut. Hanya kunci yang digunakan pada saat penyisipan yang dapat menghasilkan pesan asli kembali. Pada proses ini, sistem tidak bisa mengetahui apakah kunci yang dimasukkan benar atau salah, karena kunci masukan hanya digunakan sebagai pengatur data saja. Proses pengurutan dengan kunci akan dijelaskan pada Subbab 3.3. Sistem keseluruhan dari ekstraksi pesan dapat dilihat pada Gambar III–6. Apabila dibandingkan dengan sistem penyisipan pesan pada Gambar III–1, akan tampak bahwa terdapat suatu objek yang hilang, yaitu video 3GP yang asli. Sistem ekstraksi pesan tidak dapat mengembalikan stego-object menjadi video 3GP yang asli, karena pesan di dalam video sudah menjadi bagian dari video tersebut.
stego-object
pemilihan frame
video
kunci
pemilihan koefisien
pembangkitan bilangan acak
pembacaan data pesan
pengurutan pesan
pesan
Gambar III–6 Sistem ekstraksi pesan
3.3 Penggunaan Kunci Pesan yang disisipkan akan melalui proses pengacakan terlebih dahulu, sehingga proses ekstraksi nantinya juga harus diurutkan kembali. Kedua proses ini menggunakan kunci, yaitu sebagai seed dalam pembangkitan deretan bilangan acak yang menjadi pengatur letak pesan. Pesan diubah ke dalam bentuk biner, dan pengacakan atau pengurutan dilakukan dengan mengubah letak biner tersebut. Contoh proses ini dapat dilihat pada Gambar III–7. Deretan bilangan acak ini memakai algoritma LCG, yang telah dijelaskan pada Subbab 2.4. Nilai seed dibangkitkan melalui fungsi MD5 dari string kunci, yang menjadi sebuah bilangan dengan ukuran 63-bit. Karena MD5 yang dihasilkan adalah 128-bit, maka hanya digunakan separuh pertama saja. Pada contoh gambar, hanya hex-string yang dicetak tebal saja yang dijadikan nilai seed.
III-10 “123”
01100001 01100010 01100011 01100100
kunci
abcd pengacakan
MD5
202CB962AC59075B964B07152D234B70
4, 10, 31, 29, 21, 20, 17, 19, 28, 8, 1, 9, 11, 30, 24, 23, 5, 18, 16, 26, 3, 32, 6, 15, 14, 27, 7, 22, 2, 25, 13, 12 deretan bilangan acak
seed
pengurutan
2318430642110007131
AOYH
01000001 01001111 01011001 01001000 Gambar III–7 Contoh pengacakan dan pengurutan pesan
Jumlah bilangan acak yang dihasilkan adalah sebanyak biner pesan; pada contoh berjumlah 32. Deretan ini akan menjadi letak dari biner tersebut, sehingga menjadi pesan yang acak. Pada contoh gambar, bit keempat menjadi bit pertama, bit kesepuluh menjadi bit kedua, bit ke-31 menjadi bit ketiga, dan seterusnya. Proses pengurutan akan memakai deretan yang sama untuk mengembalikannya menjadi pesan yang asli.
3.4 Pengukuran Kualitas Video Metode proses pengukuran kualitas video pada pelaksanaan Tugas Akhir akan dilakukan secara subjektif dan objektif. Cara subjektif yaitu dengan melakukan pengamatan langsung terhadap video hasil penyisipan dan video yang asli. Sedangkan cara objektif akan memakai teknik Structural Similarity (SSIM). Pemilihan metode ini dikarenakan akan lebih cocok untuk pengukuran terhadap video yang telah mengalami kompresi, dan perbandingan yang berbasis struktur dari gambar lebih mirip terhadap persepsi manusia. Langkah-langkah yang dilakukan pada pengukuran kualitas video adalah: 1. Mengekstrak semua frame pada video 3GP yang asli dan video yang sudah disisipkan pesan. 2. Menggunakan penghitungan SSIM untuk mengukur kualitas dari semua frame, pada kedua video tersebut. 3. Mencari nilai index Mean SSIM, yaitu rata-rata dari semua nilai SSIM yang diperoleh.
III-11 Untuk nilai batas perbandingan, diambil nilai antara dari kisaran SSIM, yaitu 0,7. Sehingga apabila nilai MSSIM yang dihasilkan lebih besar atau sama dengan 0.7, maka video hasil penyisipan sudah dapat dikatakan baik. Demikian juga sebaliknya, nilai MSSIM lebih kecil dari 0.7 berarti video yang dihasilkan memiliki perbedaan yang cukup signifikan dibandingkan video aslinya.
3.5 Implementasi Pada Mobile Phone Perangkat lunak pada Tugas Akhir akan diimplementasikan pada mobile phone, dimana memiliki beberapa perbedaan dengan implementasi pada komputer biasa. Salah satunya adalah terbatasnya jumlah memori yang dapat digunakan, yang mengakibatkan pembacaan video atau pesan harus dilakukan secara bagian per bagian. Dampak lainnya adalah pengacakan pesan tidak dapat dilakukan langsung terhadap pesan secara utuh, tetapi tiap sebagian saja, dimana dalam hal ini sejumlah 1024-bit, atau 128 byte. Perbedaan lainnya adalah pengembangan pada perangkat mobile phone biasanya lebih lambat, jika dibandingkan dengan perangkat lunak pada komputer biasa. Selain itu, tidak seragamnya spesifikasi antar mobile phone, sehingga implementasi pada mobile phone yang berbeda akan membutuhkan pengembangan perangkat lunak yang berbeda juga. Sebagai contoh, apabila ingin dibuat perangkat lunak yang dapat mendukung MIDP 1.0, maka perangkat lunak tersebut harus dikembangkan ulang yang khusus mendukung MIDP 1.0, karena akan terdapat beberapa fungsi yang tidak kompatibel dengan perangkat lunak pada MIDP 2.0.