2
tulisan. Secara umum, steganografi dapat diartikan sebagai salah satu cara menyembunyikan suatu pesan rahasia (message hiding) dalam data atau pesan lain yang tampak tidak mengandung apa-apa sehingga keberadaan (eksistensi) pesan tidak terdeteksi oleh indera manusia.
Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan pada bit LSB tidak berpengaruh signifikan pada perubahan nilai byte piksel pada suatu gambar (Budiman 2008).
Steganografi memanfaatkan keterbatasan sistem indera manusia seperti mata dan telinga. Dengan adanya keterbatasan tersebut metode steganografi dapat diterapkan pada berbagai media digital. Steganografi membutuhkan dua properti yaitu wadah penampung (cover) dan data rahasia. Steganografi digital menggunakan media digital sebagai cover, seperti citra, suara, teks, dan video (Budiman 2008).
Transformasi DCT merupakan salah satu transform coding yang akan merubah byte data dari domain spasial menjadi domain frekuensi dan memisahkan byte data tersebut menjadi dua bagian, yaitu frekuensi tinggi (koefisien DC) dan frekuensi rendah (koefisien AC). Pada DCT, koefisien DC digunakan sebagai tempat penyisipan pesan. Hal ini dikarenakan koefisien DC memiliki kapasitas persepsi yang lebih tinggi daripada koefisien AC sehingga proses penyisipan tidak akan mengubah kualitas gambar secara visual. Selain itu, sinyal proses dan distorsi gambar memiliki pengaruh yang lebih rendah terhadap koefisien DC daripada koefisien AC (Zhu & Sang 2008).
Faktor Penting dalam Steganografi Penyisipan pesan rahasia ke dalam cover digital dapat mengubah kualitas media tersebut. Beberapa faktor penting yang perlu diperhatikan dalam penyisipan pesan rahasia adalah (Budiman 2008): 1 Fidelity, mutu cover penampung tidak jauh berubah. Cover penampung diharapkan tidak mengalami perubahan yang signifikan setelah dilakukan penyisipan pesan rahasia, sehingga pengamat tidak menyadari adanya data rahasia pada media tersebut. 2 Recovery, data yang disembunyikan harus dapat diungkapkan kembali (recovery). Karena sesuai dengan tujuan steganografi yaitu menyembunyikan data, sewaktu-waktu data rahasia dalam media penampung harus dapat diambil untuk digunakan lebih lanjut.
Discrete Cosine Transform (DCT)
DCT digunakan terutama pada file gambar dengan format JPEG, DCT yang digunakan adalah DCT 2 karena diterapkan pada gambar yang memiliki ukuran M x N. Untuk menransformasikan blok 8 x 8 piksel yang berurutan menjadi 64 bit koefisien DCT, setiap koefisien DCT C(u,v) dari gambar A(m,n) dapat dihitung dengan menggunakan Persamaan 1 (Jain 1989). Persamaan 1 DCT 2 M-1 N-1
C u,v = 𝛼p 𝛼q
Least Significant Bit (LSB)
m=0 n=0
LSB merupakan teknik penyembunyian data yang paling umum digunakan. Kemudahan implementasi teknik LSB menjadikan teknik ini banyak digunakan. Teknik LSB menggunakan setiap bit dari piksel-piksel di dalam gambar (Bhaumik et al. 2009). Metode LSB menyembunyikan data dengan mengganti bit-bit data yang paling tidak berarti pada cover dengan bit-bit data rahasia. Susunan bit dalam sebuah byte (1 byte = 8 bit), terdiri atas bit yang paling berarti (Most Significant Bit [MSB]) dan bit yang kurang berarti (Least Significant Bit [LSB]) yang diilustrasikan Gambar 1. 10100100 MSB
Amn cos
LSB
Gambar 1 Ilustrasi LSB.
cos
𝜋 2m+1 p 2M
𝜋 2n+1 q , 2N
0 ≤ p ≤ M-1, 0 ≤ q ≤ N-1 Dengan: 1 αp =
M
1
, p=0
2 , 1 ≤ p ≤ M-1 M
, α𝑞 =
N 2
N
, q=0
, 1 ≤ q ≤ N-1
Transformasi DCT 2 pada Persamaan 1 dapat di-invers menggunakan IDCT 2 yang merubah C(p,q) menjadi matriks A(m,n). persamaan IDCT 2 dapat dilihat pada Persamaan 2 (Jain 1989).
3
Persamaan 2
informasi menjadi lebih pendek (Prabawa 2008).
IDCT 2 M-1 N-1
Amn = p=0 q=0
cos
Algoritme Metode Huffman dapat dituliskan sebagai berikut (Prabawa 2008):
π(2m+1)p αp αq Cpq cos 2M
π(2n+1)q 2N
,
0 ≤ p ≤ M-1, 0 ≤ q ≤ N-1 Dengan : 1 αp =
M
1
, p=0
2 , 1 ≤ p ≤ M-1 M
, α𝑞 =
N 2
N
, q=0
, 1 ≤ q ≤ N-1
Setelah koefisien-koefisien DCT C(u,v) diperoleh dari Persamaan 1, dilakukan kuantisasi menggunakan Persamaan 3 (Ardhyana & Juarna 2008). Persamaan 3
FQ u,v =
F(u,v) Q(u,v)
Nilai Q(u,v) adalah 64-elemen dari tabel kuantisasi. Metode Huffman Data digital pada dasarnya adalah rangkaian bit 0 dan 1. Yang menjadi pembeda adalah ukuran data serta penempatan bit 0 dan bit 1 pada rangkaian bit tersebut. Salah satu teori yang dapat digunakan adalah metode Huffman yang dikemukakan oleh David A. Huffman, seorang doktor teori informasi lulusan Massachusets Institute of Technology (MIT) pada tahun 1952. Kode Huffman mengodekan bit-bit biner sebagai simbol tertentu pada data. Kode Huffman tidak bersifat unik. Kode-kode tersebut dibentuk berdasarkan frekuensi kemunculan simbol tertentu pada data. Dalam pembentukannya, kode Huffman menggunakan konsep kode awalan (prefix code) pada himpunan bit biner sehingga tidak terjadi keambiguan dalam proses decoding antara satu simbol dan simbol lainnya. Rangkaian biner simbol yang sering muncul dikodekan dengan rangkaian biner yang lebih pendek dibandingkan dengan simbol yang jarang muncul. Dengan demikian, jumlah bit yang digunakan untuk merepresentasikan seluruh
1 Hitung frekuensi kemunculan setiap simbol pada data. 2 Pembentukan kode Huffman dilakukan dengan membuat pohon biner yang memiliki panjang lintasan berbobot minimum. Pohon Huffman dibentuk dengan ketentuan berikut: a Pertama, pilih dua simbol dengan frekuensi kemunculan paling sedikit pada data. b Kedua, simbol tersebut digabungkan dan membentuk parent yang nilai frekuensinya merupakan gabungan kedua frekuensi simbol tersebut. c Simbol baru tersebut diperlakukan sebagai simpul (node) baru dan diperhitungkan dalam pencarian simbol yang memiliki peluang kemunculan terkecil selanjutnya. d Ulangi langkah a dengan mempertimbangkan semua simbol termasuk simbol baru yang terbentuk hingga terbentuk pohon biner. 3 Leaves pada pohon biner menyatakan simbol yang terdapat pada data yang akan dikompresi. 4 Setiap simbol dikodekan dengan label bit 0 untuk cabang kiri dan bit 1 untuk cabang kanan. 5 Dibuat lintasan dari akar ke daun sambil membaca bit 0 dan 1 pada cabang pohon. 6 Kode Huffman merupakan rangkaian bit yang dibaca dari akar menuju simbol yang akan direpresentasikan. Sebagai contoh sederhana akan dilakukan kompresi pada teks “abrakadabra”. Teks tersebut dibentuk dengan kode American Standard Code for Information Interchange (ASCII) seperti pada Tabel 1. Tabel 1 Tabel karakter dan kode ASCII Karakter
Kode ASCII
Biner
“a” “b” “r” “k” “d”
97 98 114 107 100
01100001 01100010 01110010 01101011 01100100
Dalam ASCII, teks “abrakadabra” dikodekan sebagai berikut: “ 011000010110001 00111001001100001011010110110000101100 10001100001011000100111001001100001.”
4
Rangkaian bit pesan dalam kode ASCII membutuhkan 88 bit (11 Byte). String pesan tersebut akan dikompresi menggunakan metode Huffman. Mula-mula dilakukan perhitungan frekuensi dan peluang kemunculan setiap karakter pada string seperti ditunjukkan pada Tabel 2. Tabel 2 Frekuensi kemunculan karakter Karakter
Frekuensi
Peluang
“a” “b” “r” “k” “d”
5 2 2 1 1
5/11 2/11 2/11 1/11 1/11
Dengan menggunakan Tabel 2, dapat ditentukan pohon Huffman pada Gambar 2.
65 bit (sekitar 73.86% dari keseluruhan rangkaian bit ASCII data). Structural Similarity (SSIM) SSIM adalah metode yang digunakan untuk menghitung kesamaan antara dua gambar. Pengukuran gambar didasarkan pada gambar asli sebelum disisipi pesan atau gambar bebas distorsi sebagai referensi. SSIM dirancang sebagai perbaikan metode Peak Signal to Noise Ratio (PSNR) dan Mean Squared Error (MSE) yang terbukti tidak konsisten dengan persepsi mata manusia (Wang et al. 2004). Nilai SSIM dapat persamaan berikut:
diperoleh
dengan
Persamaan 4
SSIM x,y =
2μx μy +C1
2σxy + C2
μ2x +μ2y +C1
σ2x +σ2y +C2
Dengan: SSIM = Nilai structure similarity μx = Nilai rataan dari x μy = Nilai rataan dari y δ2x δ2y δxy C1 L k1
= Nilai varian dari x = Nilai varian dari y = Nilai kovarian dari x dan y = (k1 L)2 , C2 = (k2 L)2 = 2#bit per piksel-1 =0.01, k2 =0.03 (default)
Langkah-langkah yang dilakukan: Gambar 2 Pohon Huffman. Kamus Huffman pada Tabel 3 dapat dibentuk dengan memberi label pada setiap cabang dari pohon Huffman. Setiap cabang kiri diberi label 0 dan cabang kanan dengan label 1. Tabel 3 Kode Huffman Karakter “a” “b” “r” “k” “d”
Kode Huffman 1 001 01 0000 0001
Setelah dikompresi menggunakan metode Huffman maka string tersebut dapat direpresentasikan menjadi: “100101100001000 11001011“ (23 bit). Rata-rata encoding setiap karakternya 4 bit sehingga dapat “menghemat”
1 Mengekstrak video AVI sebelum dan sesudah disisipi pesan. 2 SSIM digunakan untuk mengukur kualitas semua frame pada kedua video tersebut. 3 Mencari nilai rata-rata dari semua nilai SSIM yang diperoleh atau Mean SSIM (MSSIM). Perbandingan dilakukan terhadap hasil MSSIM yang diperoleh dengan threshold sebesar 0.7. Penelitian yang dilakukan Wang et al. (2004) yang dicantumkan oleh Hariyanto (2008) menyatakan bahwa video hasil penyisipan pesan dikatakan dalam kategori baik jika nilai MSSIM yang dihasilkan lebih besar atau sama dengan 0.7 (MSSIM >= 0.7). Sebaliknya, perbedaan video hasil penyisipan akan signifikan jika hasil perhitungan MSSIM di bawah 0.7.
5
Mean Opinion Score (MOS) MOS adalah analisa kualitatif yang dilihat secara subjektif. Penilaian MOS berdasarkan pada pengamatan hasil survei sehingga baik buruknya hasil penyisipan pesan ke dalam video bergantung pada penilaian subjektif masingmasing responden (Parenreng et al. 2011). Mean Opinion Score memiliki kriteria penilaian kualitatif seperti pada Tabel 4. Tabel 4 Bobot penilaian MOS MOS 5 4
Kualitas Sangat Baik (excellent) Baik (good)
3 2 1
Cukup (fair) Kurang (poor) Buruk (bad)
Pengertian Perbedaan tidak terlihat Terlihat perbedaan tapi tidak mengganggu Sedikit berbeda Mengganggu Sangat mengganggu
Secara matematis MOS dapat dihitung dengan menggunakan Persamaan 5. Persamaan 5
MOS=
n i=1 x
i .k
N
Dengan: MOS x (i) k N n
= Mean Opinion Score = nilai sampel ke i = nilai bobot = jumlah pengamat = jumlah kriteria METODOLOGI
Secara garis besar tahap penelitian yang dilakukan terbagi menjadi dua proses yaitu, proses penyisipan pesan dan proses ekstraksi pesan. Penyisipan Pesan Pesan yang akan disisipkan berupa string teks dan sebagai media penyisipan digunakan video dengan format AVI. Pada penelitian ini, digunakan metode DCT yang diterapkan pada blok 8x8 piksel pada setiap frame. Selanjutnya, dilakukan pencarian koefisien yang dapat disisipi pesan. Dalam hal ini, yang disisipi pesan adalah koefisien DC dari matrik frekuensi gambar. Koefisien DC selanjutnya dikonversi dalam bentuk biner. Penyisipan bit-bit pesan dilakukan pada LSB biner dari koefisien DC tersebut. Stegovideo yaitu video hasil penyisipan pesan akan diukur perbandingannya menggunakan metode SSIM.
Gambar 3 Proses penyisipan pesan. Tahapan proses penyisipan pada Gambar 3 dapat dijelaskan berikut: 1 Ekstraksi cover dan pesan Video diekstraksi sehingga terbagi ke dalam beberapa frame dan setiap frame akan dipisah ke dalam masing-masing segmen RGB. Pada proses ini setiap informasi yang akan digunakan pada tahap selanjutnya akan disimpan. Pesan teks akan dipecah setiap karakternya untuk kemudian disimpan ke dalam matriks agar dapat digunakan dalam tahap selanjutnya. 2 Makroblok piksel Pada tahap ini, setiap frame dari video akan dipecah menjadi makroblok ukuran 8 x 8. Pada penelitian, makroblok dilakukan terhadap video „Rhinos. avi‟ dengan resolusi 320 x 240 menghasilkan 40 x 30 makroblok dan terhadap video „Vipmen.avi‟ dengan resolusi 160 x 120 menghasilkan 20 x 15 makroblok per frame per segmen. Gambar 4 menunjukkan proses pembentukan makroblok pada setiap frame. 160 px 20 makroblok …. .…
8 px 8px 120 px 15 makroblok
Gambar 4 Proses makroblok pada frame.
6
3 Implementasi DCT Setelah didapatkan makroblok setiap frame, langkah selanjutnya adalah melakukan perhitungan jumlah makroblok yang akan digunakan sebagai tempat penyisipan biner pesan. Hal ini dilakukan untuk menghindari proses DCT terhadap seluruh makroblok pada video karena proses DCT menggunakan sumber daya memori yang cukup besar. Setelah didapatkan jumlah makroblok yang sesuai dengan jumlah karakter pesan yang akan disisipkan, proses selanjutnya adalah menerapkan DCT terhadap makroblokmakroblok tersebut. Perhitungan nilai DCT akan dilakukan menggunakan Persamaan 1. 4 Kuantisasi Setelah dilakukan proses DCT, setiap makroblok hasil DCT dikuantisasi menggunakan Persamaan 3 dengan matriks kuantisasi pada Gambar 5. Proses kuantisasi dilakukan dengan membagi setiap nilai piksel dalam makroblok dengan nilai pada matriks kuantisasi.
dengan maksud membandingkan pesan yang dapat disembunyikan.
kapasitas
8 Invers kuantisasi dan IDCT Setelah pesan disisipkan, proses selanjutnya adalah mengembalikan cover menjadi video AVI seperti semula. Tahapan yang dilakukan merupakan kebalikan dari tahap penyisipan. Koefisien biner DC dikembalikan ke dalam bentuk desimal untuk kemudian dilakukan invers kuantisasi menggunakan matriks kuantisasi dan invers DCT. Makroblok hasil invers DCT kemudian digabungkan kembali dengan makroblok yang lain sehingga membentuk stegovideo. Pengujian terhadap proses penyisipan akan dilakukan berdasarkan beberapa skenario. Hal ini dilakukan untuk mengetahui kemungkinankemungkinan yang dapat dicapai. Skenario tersebut, antara lain: 1 Penyisipan pesan dilakukan dengan jumlah karakter pesan yang tidak melebihi kapasitas tampung cover video. Pada percobaan pertama, penyisipan dilakukan dengan mengganti 1 bit LSB koefisien DC saja dan tanpa kompresi Huffman dengan deskripsi seperti pada Tabel 5. Tabel 5 Skenario pengujian 1 Cover
Gambar 5 Matriks Kuantisasi (Wallace 1991). 5 Binerisasi koefisien DC Proses DCT pada makroblok akan menghasilkan koefisien DC dan AC. Koefisien DC terletak pada sudut kiri atas pada matriks makroblok, sedangkan 63 sisanya merupakan koefisien AC. Pada tahap ini, dilakukan binerisasi terhadap nilai dari koefisien DC sehingga dapat diperoleh bit LSB yang digunakan untuk penyisipan. 6 Kompresi Huffman Kompresi Huffman diterapkan pada karakter - karakter pesan yang akan disisipkan. Huffman diterapkan dengan maksud mengurangi jumlah bit biner yang akan disisipkan ke dalam cover. Hal ini dapat meningkatkan jumlah pesan yang dapat disembunyikan. 7 Penyisipan biner pesan Proses penyisipan biner pesan yaitu penggantian bit-bit biner LSB koefisien DC pada cover dengan bit-bit biner pesan hasil kompresi Huffman. Pada penelitian ini, juga dilakukan penyisipan tanpa kompresi Huffman
Rhinos.avi Vipmen.avi
Kapasitas 51300 31837
Berkas pesan Daftar.txt Test.txt
Jumlah karakter 15384 197
2 Jumlah karakter pesan yang akan disisipkan melebihi kapasitas tampung cover. Penyisipan dilakukan dengan hanya mengganti 1 bit LSB koefisien DC dan tanpa kompres Huffman. Cover video yang digunakan adalah „Vipmen.avi‟ yang berkapasitas 31837 karakter dengan pesan teks „TestCase.txt‟ dengan jumlah karakter 33792. 3 Penerapan kompresi Huffman pada skenario dua dilakukan untuk melihat pengaruh kompresi Huffman pada ukuran pesan yang akan disisipi terhadap kapasitas cover. 4 Peningkatan pemakaian bit LSB koefisen DC bit ke-1 sampai dengan bit ke-8 untuk melihat kemungkinan peningkatan kapasitas cover dalam menampung karakter pesan rahasia. Percobaan dilakukan dengan kompresi Huffman dan tanpa kompresi. Deskripsi berkas yang dipakai dapat dilihat pada Tabel 6.