JURNAL TEKNIK POMITS Vol. 3, No. 2, (2014) ISSN: 2337-3539 (2301-9271 Print)
1
Pengembangan Metode Steganografi Menggunakan Emoticon Berbasis LZW pada PHP Free Chat Gregory Sukanto, Tohari Ahmad, Hudan Studiawan Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia e-mail:
[email protected]
Abstrak— Pertukaran infromasi dalam komunikasi adalah hal wajar yang dilakukan oleh manusia. Akan tetapi, ada pihak yang tidak bertangggung jawab yang ingin mengambil dan menyalahgunakan informasi yang dikirim melalui komunikasi. Oleh karena itu, metode steganografi diciptakan untuk menyembunyikan pesan. Banyak metode steganografi yang digunakan semisal menyisipkan pesan melalui video, audio, citra, ataupun teks. Diantara seluruh metode yang ada, steganografi teks adalah tugas yang paling menantang karena teks tertulis tidak memiliki ruang cukup untuk menyembunyikan pesan. Artikel ini mengusulkan steganografi teks berbasis emoticon dan LZW pada chat. Metode ini menggunakan kamus LZW yang bersifat dinamis sehingga mampu menambah kapasitas penyimpanan pesan rahasia. Hasil pengujian menunjukkan bahwa kapasitas penyimpanan pesan rahasia ini lebih baik dari metode steganografi teks berbasis emoticon pada chat yang telah ada. Hasil juga menunjukkan peningkatan dalam hal rasio penyimpanan pesan rahasia dan persentase penghematan. Kata Kunci—steganografi, penyembunyian pesan, emoticon, LZW.
I. PENDAHULUAN
D
engan tumbuh dan berkembangnya internet saat ini, keamanan informasi menjadi hal penting dan mutlak diperlukan. Banyak cara digunakan untuk mengamankan informasi data salah satunya adalah dengan menggunakan kriptografi. Selain kriptografi ada cara lain untuk mengamankan data yaitu dengan menggunakan steganografi [1]. Kriptografi dan steganografi memiliki tujuan yang berbeda yaitu kriptografi bertujuan untuk mengkodekan data sedemikian rupa sehingga pihak yang tidak diinginkan tidak dapat mengerti data yang ada, sedangkan steganografi bertujuan untuk mencegah pihak yang tidak diinginkan menyadari atau curiga adanya data yang tersembunyi [2] [3] [4] [5]. Steganografi sendiri adalah teknik menyembunyikan pesan di dalam pesan lainnya sedemikian rupa sehingga tidak ada pihak lain selain pengirim dan penerima yang dapat menyadari adanya pesan rahasia [1] [2] [3] [6]. Model dasar dari steganografi terdiri dari pesan rahasia, media, dan kunci. Media (cover) digunakan untuk menyembunyikan kehadiran data atau pesan. Pesan rahasia adalah data yang
kerahasiaannya ingin dijaga. Kunci atau yang lebih dikenal dengan stega-key digunakan untuk memastikan bahwa hanya penerima yang mengetahui kunci yang dapat mengekstrak pesan dari media [3]. Ada berbagai macam media yang digunakan untuk menyembunyikan pesan antara lain dengan menggunakan gambar, audio, video, dan teks [1] [3] [6] [7]. Dari beberapa media yang sering digunakan, media teks adalah yang paling sulit digunakan [1] [5] [8]. Hal ini disebabkan oleh karakteristik tata bahasa, linguistik, dan ortografi dari setiap bahasa yang berbeda-beda [5]. Lebih jauh lagi, komunikasi antar pengirim dan penerima dapat dilakukan dengan banyak cara, salah satunya adalah dengan menggunakan chatting. Dalam chatting orang berkomunikasi dengan menggunakan pesan teks padahal dalam berkomunikasi diperlukan juga emosi untuk menunjukkan kondisi seseorang. Oleh karena itu, terciptalah emoticon. Emoticon adalah representasi virtual bahasa tubuh dan fungsi utama emoticon adalah untuk menyampaikan informasi tentang keadaan emosional penulis [9] [10]. Emoticon telah digunakan dalam komunikasi online selama bertahun-tahun dan jumlah emoticon telah berkembang tergantung pada bahasa penggunaan, sistem input huruf, komunitas, dan lain-lain. Emoticon dapat dibagi menjadi tiga jenis yaitu tipe barat, tipe timur dan multiline ASCII. Karakteristik emoticon barat adalah teks diputar 90 derajat, seperti :-) (wajah tersenyum), atau :-D (wajah tertawa). Tipe barat ini adalah yang paling sederhana dari ketiga tipe karena biasanya terbuat dari 2-4 karakter dan paling sering digunakan pada ruang chatting [11]. Dengan menggunakan emoticon sebagai media penyimpanan pesan dan digabungkan dengan teks untuk menyamarkan emoticon maka hal ini dapat membantu menyamarkan keberadaan pesan tersembunyi. Steganografi berbasis emoticon pada chatting diusulkan oleh Wang et al. [8] pada tahun 2009. Akan tetapi, kapasitas penyimpanan emoticon masih bersifat statis. Oleh karena itu, kami mengusulkan sebuah metode baru dengan menggabungkan steganografi emoticon dengan algoritme LZW sehingga kapasitas penyimpanan emoticon menjadi lebih dinamis.
JURNAL TEKNIK POMITS Vol. 3, No. 2, (2014) ISSN: 2337-3539 (2301-9271 Print) II. PERKERJAAN YANG BERKAITAN A. Steganografi Berbasis Emoticon Steganografi berbasis emoticon diperkenalkan oleh Wang et al. [8] pada tahun 2009. Pengirim dan penerima harus memiliki tabel emoticon yang sama. Lalu kunci yang digunakan adalah urutan dari emoticon. Setelah itu pengirim dan penerima harus sepakat menentukan set emoticon. Jika jumlah emoticon diasumsikan sebagai K maka jumlah bit yang dapat disimpan dalam satu emoticon dapat dihitung dengan persamaan (1). (1) Pada saat pengirim mengirimkan pesan rahasia, maka pesan rahasia tersebut dirubah ke dalam bentuk biner dan dibagi menjadi c bits. Kemudian pengirim akan membaca c bit sebagai desimal dan menggantinya dengan emoticon yang ada di urutan angka desimal tersebut dari tabel emoticon. Pada saat penerima menerima emoticon, penerima akan membaca urutan emoticon dan merubah urutan angka ke dalam biner [8]. B. Steganografi Berdasarkan Kompresi Steganografi berdasarkan kompresi teks dikenalkan oleh Sanei dan Faez [12] dengan menggunakan kompresi teks aritmatika. Karena steganografi teks memerlukan teks tambahan untuk menutupi keberadaan pesan rahasia maka ukuran dari pesan keseluruhan menjadi sangat besar oleh sebab itu kapasitas menjadi masalah yang cukup menantang [12] [13]. Keuntungan dari metode ini adalah tidak adanya keterkaitan metode ini dengan bahasa tertentu, melindungi pesan rahasia dalam fase transmisi, kurangnya noise, tidak mengubah arti atau format teks media, dan meningkatan kapasitas [12]. Kompresi untuk menyembunyikan data juga diperkenalkan oleh Chen dan Chang [13] pada tahun 2010. Mereka menggunakan algoritme LZW untuk meningkatkan jumlah simbol dan kapasitas tiap simbol untuk menyembunyikan pesan [13]. C. LZW Algoritme Lempel-Ziv-Welch diperkenalkan oleh Terry Welch [14] pada tahun 1984. Algoritme ini merupakan Algoritme kompresi lossless dan menggunakan kamus untuk melakukan kompresi. Algoritme LZW secara luas digunakan dalam komunikasi [15]. Algoritme LZW memiliki logika yang sederhana sehingga implementasi mudah dan cepat [16]. Algoritme ini dimulai dengan menginisialisasi kamus untuk semua 256 simbol dalam alfabet. Dengan begitu 256 urutan pertama dari kamus (0 sampai 255) telah diisi sebelum data input dan indeks kamus berikutnya dimulai dari 256. Setelah itu untuk setiap string, algoritme ini akan membaca satu per satu simbol yang ada dan menambahkannya ke string S. Setelah simbol tambahkan ke S, kamus akan mencari string S. Selama S ditemukan dalam kamus maka proses dilanjutkan. Jika setelah menambahkan simbol C berikutnya tidak ditemukan dalam kamus maka encoder akan mengeluarkan output pointer kamus yang menunjuk ke string S dan
2
menyimpan string SC ke dalam indeks kamus berikutnya serta menginisialisasi string S dengan simbol C. Hal ini dilakukan berulang kali hingga simbol habis. Proses decoding dimulai dengan menginisialisasi kamus untuk semua 256 simbol dalam alfabet. Kemudian decoder membaca input yang merupakan pointer kamus dan menggunakan setiap pointer untuk mengambil simbol terkompresi dari kamus dan menuliskannya pada output sambil membuat kamus. Dengan begitu decoder tidak memerlukan kamus dari encoder karena decoder membuat kamus sendiri yang sama dengan kamus encoder. Algoritme LZW dapat digunakan tidak hanya pada berkas yang memerlukan transmisi sempurna tetapi juga digunakan pada data yang tidak sempurna seperti data cuaca, pidato digital yang ditransmisikan menggunakan modus store-andforwards, dan berkas dengan struktur data yang buruk [16]. Adapun kelemahan dari algortima ini adalah tidak semua dari 256 simbol yang diinisialisasi digunakan. Ada beberapa simbol yang tidak dapat digunakan. Simbol-simbol ini menyebabkan beberapa pointer kamus tidak akan pernah terpakai [17]. D. Praproses kompresi Praproses kompresi proses sebelum dilakukannya kompresi yang bertujuan untuk meningkatkan rasio hasil kompresi. Ada banyak algoritme praproses kompresi diantaranya BWT (Burrows-Wheeler Transform) yang diusulkan oleh Burrows dan Wheeler [18 dan MTF (Move to Front) yang diusulkan oleh Bentley dan Sleator [19]. BWT adalah algoritme praproses kompresi untuk kompresi lossless. Algoritme BWT sering dikenal dengan “block sorting” karena melakukan permutasi terhadap blok-blok teks. Transformasi tidak merubah jumlah data tetapi mengelompokkan simbol-simbol yang sama. Hasil dari BWT bersifat unik artinya data yang telah dirubah dapat dikembalikan menjadi data aslinya [18]. MTF adalah algoritme praproses kompresi yang mengubah frekuensi kemunculan data. Cara yang digunakan adalah dengan mengubah simbol menjadi indeks sesuai dengan kamus MTF dan kemudian merubah urutan kamus. Hasil yang akan dikompresi adalah indeks kemunculan simbol. Yang harus dimiliki oleh pengirim dan penerima adalah inisialisasi kamus yang sama [19]. III. METODE USULAN Bagian ini akan menjelaskan mengenai metode yang diusulkan. Secara garis besar metode ini memerlukan kamus atau tabel emoticon yang sama untuk pengirim dan penerima. Kunci yang digunakan adalah tabel emoticon dan inisialisasi kamus yang sama. Metode ini setidaknya memerlukan minimal 256 emoticon. Sebagai contoh, inisialisasi indeks awal adalah memasukkan 7 bit kode ASCII ke dalam kamus (0 sampai 127) sehingga indeks awal kamus untuk inputan adalah 128. Pada contoh ini, merubah karakter menjadi 7 bit kode ASCII dilakukan untuk memungkinkan karakter ASCII yang tidak dapat dicetak tetap dapat disisipkan.
JURNAL TEKNIK POMITS Vol. 3, No. 2, (2014) ISSN: 2337-3539 (2301-9271 Print) Karena dasar dari metode ini adalah algoritme LZW yang merupakan algoritme kompresi maka pesan rahasia dapat dipraproses terlebih dahulu dengan beberapa algoritme praproses kompresi. Metode ini memiliki dua metode yaitu metode penyisipan dan metode ekstraksi A. Prosedur Penyisipan Untuk menyembunyikan emoticon, diperlukan teks biasa oleh karena itu encoder memerlukan beberapa teks untuk dijadikan media penyisipan emoticon. Penyisipan pesan rahasia dapat diolah dengan algoritme praproses kompresi sebelum dirubah ke dalam 7 bit kode ASCII. Hasil ASCII digunakan untuk melakukan kompresi dengan hasil keluaran berupa emoticon. Untuk setiap masukan, metode ini akan membaca setiap 7 bit dan menambahkannya ke dalam C. Kemudian encoder akan mencari di dalam kamus. Selama encoder masih menemukan C maka C akan ditambah dengan B (7 bit berikutnya). Jika CB tidak ditemukan maka encoder akan menambahkan EC ke dalam kamus dan menampung emoticon hasil dari C ke dalam E serta menginisialisasi C dengan B. Kemudian inisialisasi E dengan 7 bit terakhir dari C. Jika C berisi lebih dari 7 bit maka 7 bit terakhir tidak akan dimasukkan kedalam kamus karena akan dipakai untuk indeks kamus berikutnya. Akan tetapi, jika CB ditemukan maka nilai C ditambah dengan B. Hal ini dilakukan terus menerus hingga seluruh masukan habis. Setelah itu encoder akan memilih secara acak teks media untuk disisipkan emoticon. Jika panjang emoticon ternyata lebih panjang dari teks media maka encoder akan mengambil lagi secara acak teks media. Hasil keluaran dari encoder ini berupa teks yang memiliki emoticon yang akan dikirimkan melalui chat. Sekarang akan ditunjukkan contoh untuk menyisipkan pesan. Untuk contoh maka kami menggunakan pesan rahasia yang berisi “banana banana”. Dalam contoh ini tidak akan dilakukan praproses. Tabel 1. Contoh inisialisasi kamus. Emoticon
1100001
Bit
Komentar Huruf ‘a’
1100010
Huruf ‘b’
1101110
Huruf ‘n’
0100000
Huruf ‘ ‘ Kosong Kosong Kosong
3
Langkah pertama dari metode ini adalah merubah pesan rahasia menjadi 7 bit ASCII. Sehingga pesan rahasia menjadi seperti berikut. “banana banana” 1100010 1100001 1101110 1100001 1101110 1100001 0100000 1100010 1100001 1101110 1100001 1101110 1100001 Setelah merubah pesan rahasia menjadi 7 bit ASCII jika ingin melakukan praproses dapat dilakukan pada tahap ini. Kemudian dilakukan inisialisasi kamus. Pada contoh ini digunakan 12 emoticon sebagai kamus. Contoh inisialisasi kamus dapat dilihat pada Tabel 1. Setelah diinisialisasi, baca masukan pesan setiap 7 bit hingga habis. Untuk setiap masukan selain masukan pertama kali, jika CB tidak ditemukan maka tambahkan E dan C ke dalam kamus dan kosongkan isi C. Hasil akhir dari kamus untuk contoh dapat dilihat pada Tabel 2. Hasil emoticon yang di dapat adalah . Langkah terakhir adalah menyisipkan emoticon ke dalam media teks dan mengirimkan teks beserta emoticon melalui chat. “Pagi ini adalah pagi yang indah tidur lagi
. Mari awali pagi ini dengan
. Karena hari ini adalah hari Minggu, hari untuk
. Meskipun hari bersantai, pekerjaan rumah tetap bersantai harus dikerjakan sehingga tidak bisa bersantai terus di hari minggu ini
. Kecuali pekerjaan rumahnya telah selesai semua
Karena itu cepat selesaikan pekerjaan rumah
. Pekerjaan rumah
juga bisa diselesaikan sehari sebelumnya
. Akan tetapi itu akan
membuat hari Sabtu menjadi sibuk
. Belum tentu juga
pekerjaan rumah dapat selesai pada hari Sabtu
”
Tabel 2. Hasil akhir kamus untuk contoh. Emoticon
1100001
Bit
Komentar Huruf ‘a’
1100010
Huruf ‘b’
1101110
Huruf ‘n’
0100000
Huruf ‘ ‘
11000101100001
Huruf ‘ba‘
11000011101110
Huruf ‘an‘
11011101100001
Huruf ‘na‘
110000111011101100001
Huruf ‘ana‘
11000010100000
Huruf ‘a ‘
01000001100010
Huruf ‘ b‘
110001011000011101110
Huruf ‘ban‘
110111011000011101110
Huruf ‘nan‘
Kosong Kosong Kosong Kosong Kosong
.
JURNAL TEKNIK POMITS Vol. 3, No. 2, (2014) ISSN: 2337-3539 (2301-9271 Print) B. Prosedur Ekstrak Decoder tidak memerlukan kamus yang telah dibuat oleh encoder. Kunci yang diperlukan oleh decoder berupa urutan tabel emoticon. Prosedur ekstraksi hanya memerlukan masukan berupa emoticon saja sehingga decoder hanya akan membaca emoticon. Untuk emoticon yang pertama kali dibaca maka decoder akan menampung bit yang sesuai dengan emoticon dari kamus dan menambahkannya ke dalam P. Selama emoticon belum habis maka decoder akan menampung bit X yang sesuai dengan emoticon E. Selama melakukan pembacaan emoticon, decoder akan menambahkan PX ke dalam indeks baru didalam kamus kemudian mengganti nilai P dengan X. Jika bit X lebih dari 7 bit maka 7 bit terakhir tidak akan ditambahkan kedalam kamus karena akan digunakan untuk kamus berikutnya. Setelah emoticon habis maka decoder akan merubah bit hasil tampungan menjadi char. Untuk lebih jelasnya akan diberikan contoh decode pesan yang telah disisipkan diawal yaitu pesan rahasia “banana banana”. Pertama chat akan membaca seluruh pesan yang dikirimkan. Sedangkan decoder akan melakukan inisialisasi kamus. Contoh inisialisasi kamus dapat dilihat pada Tabel 1. “Pagi ini adalah pagi yang indah tidur lagi
. Mari awali pagi ini dengan
. Karena hari ini adalah hari Minggu, hari untuk
. Meskipun hari bersantai, pekerjaan rumah tetap bersantai harus dikerjakan sehingga tidak bisa bersantai terus di hari minggu ini
. Kecuali pekerjaan rumahnya telah selesai semua
Karena itu cepat selesaikan pekerjaan rumah
.
. Pekerjaan rumah
juga bisa diselesaikan sehari sebelumnya
. Akan tetapi itu akan
membuat hari Sabtu menjadi sibuk
. Belum tentu juga
”
pekerjaan rumah dapat selesai pada hari Sabtu
Berikutnya decoder akan membaca emoticon saja tanpa memedulikan teks yang ada. Sehingga hasil masukan yang dibaca decoder menjadi
.
Tabel 3. Tabel decode tiap langkah. Emoticon
Keluaran
Indeks Berikutnya
1100010
Tidak ada
1100001
11000101100001
1101110
11000011101110
11000011101110
11011101100001
1100001
1011101100001
0100000
11000010100000
11000101100001
01000001100010
11011101100001
11000011101110
11011101100001
-
4
Untuk setiap masukan emoticon maka decoder akan mencetak bit yang berada pada indeks emoticon tersebut dan kemudian tambahkan indeks baru dengan menambahkan bit dari emoticon sebelumnya dengan bit dari emoticon sekarang. Langkah untuk tiap masukan emoticon dapat dilihat pada Tabel 3. Hasil akhir dari kamus dapat dilihat di Tabel 2. Terakhir, rubah hasil keluaran decoder dari bit menjadi char. 1100010 1100001 1101110 1100001 1101110 1100001 1101110 1100001 0100000 1100010 1100001 1101110 1100001 “banana banana” IV. HASIL PERCOBAAN Metode usulan diimplementasi dengan menggunakan PHP Free Chat [20] dengan menggunakan Python sebagai encoder dan decoder. Jumlah emoticon yang digunakan ada 256 emoticon yang didapat dari beberapa emoticon sumber terbuka dari deviantart [21]. Untuk menguji metode ini digunakan 4 buah data dari corpus Canterbury [22] yaitu Alice29.txt, aaa.txt, lcet.txt, dan random.txt. Menurut situs corpus Canterbury [22] Alice29.txt berisi teks berbahasa Inggris dengan 152089 karakter yang berasal dari corpus Calgary, aaa.txt berisi 100000 karakter “a” yang berasal dari corpus Artificial, lcet10.txt berisi 426754 teks dengan teknik penulisan yang berasal dari corpus Calgary, dan random.txt yang berisi 100000 karakter dari 64 byte (huruf besar, kecil, angka dan tanda seru) yang merupakan kasus terburuk karena tidak ada pengulangan yang berasal dari corpus Artificial. Metode ini diuji dengan tiga cara. Pengujian pertama adalah pengujian kapasitas yaitu dengan melakukan penyisipan tanpa praproses, dengan praproses BWT, dan dengan praproses MTF pada 100000 karakter awal masing-masing teks. Setelah itu, dilakukan pula perhitungan rasio dan persentase penghematan untuk tiap pengujian pertama. Pengujian kedua dilakukan dengan melakukan penyisipan tanpa praproses pada 100000 karakter awal masing-masing teks akan tetapi emoticon yang digunakan ditingkatkan menjadi 512, 1024, 2048, 4096, 8192, dan 16384. Pengujian ketiga bertujuan untuk mengetahui penggunaan inisialisasi kamus yang berbeda sehingga dilakukan pengujian dengan membandingkan pesan rahasia yang dikonversi kedalam biner dengan pesan rahasia yang tidak dikonversi kedalam biner. A. Kapasitas Penyimpanan Pesan Rahasia Pengujian kapasitas ini dilakukan dengan empat metode yaitu metode sebelumnya [8], metode usulan tanpa menggunakan preprocessing, metode usulan dengan menggunakan preprocessing BWT, dan metode usulan dengan menggunakan preprocessing MTF. Semakin rendah jumlah emoticon yang digunakan berarti semakin bagus metode tersebut. Secara umum, metode usulan tanpa menggunakan preprocessing merupakan metode yang paling baik kecuali pada teks Random.txt yang merupakan kasus terburuk dari metode kompresi. Untuk kasus biasa, direpresentasikan dengan
JURNAL TEKNIK POMITS Vol. 3, No. 2, (2014) ISSN: 2337-3539 (2301-9271 Print) Tabel 4. Rasio kapasitas pada teks Alice29.txt. Panjang Teks (Char ) Metode Sebelum Metode Usulan Metode Usulan dengan BWT Metode Usulan dengan MTF 2000 1,142857143 1,270 1,371 0,895 16000 1,142857143 1,228 1,135 0,892 30000 1,142857143 1,217 1,073 0,885 44000 1,142857143 1,234 1,042 0,894 58000 1,142857143 1,230 1,046 0,89 72000 1,142857143 1,226 1,05 0,892 86000 1,142857143 1,226 1,055 0,889 100000 1,142857143 1,223 1,1 0,887
Alice.txt dan Lcet10.txt, metode usulan baik dengan preprocessing maupun tanpa preprocessing lebih baik dari pada metode sebelumnya [8]. Sedangkan untuk kasus terbaik kompresi, aaa.txt, maka metode usulan jauh lebih baik dari metode sebelumnya [8]. Untuk mengetahui hasil kapasitas penyimpanan pesan rahasia lebih jauh maka dilakukan pengujian rasio dan persentase penghematan. Jika rasio (R) adalah perbandingan antara panjang pesan rahasia (S) dan panjang emoticon yang dihasilkan (E) maka dapat dituliskan dengan persamaan (2). , (2) Misal hasil rasio kapasitas yang didapat adalah 10 berarti perbandingan panjang pesan rahasia dengan panjang emoticon adalah 10:1, artinya setiap 10 char atau bit dalam pesan rahasia menjadi 1 emoticon. Dalam kasus pengujian ini digunakan char sebagai satuan dari panjang pesan rahasia. Tabel 4 menunjukkan hasil rasio kapasitas pada Alice29.txt. Dapat dilihat pada Tabel 4 bahwa rasio kapasitas pada algoritma usulan tanpa menggunakan preprocessing sedikit lebih baik dari pada metode sebelumnya [8]. Akan tetapi rasio kapasitas pada metode usulan yang menggunakan preprocessing menghasilkan rasio kapasitas yang lebih buruk. Tabel 5 menunjukkan hasil rasio kapasitas pada Lcet10. Rasio kapasitas yang didapat hampir sama dengan rasio kapasitas pada Alice29.txt akan tetapi sedikit lebih baik. Pada Lcet10.txt ini rasio kapasitas pada algoritma usulan tanpa menggunakan preprocessing sedikit lebih baik dari pada metode sebelumnya [8]. Akan tetapi metode usulan yang menggunakan preprocessing menghasilkan rasio kapasitas yang lebih buruk. Untuk kasus terbaik kompresi, aaa.txt, hasil rasio kapasitas yang didapat sangat baik. Pada kasus aaa.txt ini, hasil metode usulan baik dengan preprocessing maupun tanpa preprocessing selalu lebih baik dibanding dengan metode sebelumnya [8]. Akan tetapi, metode usulan dengan menggunakan preprocessing MTF menghasilkan rasio kapasitas yang jauh lebih kecil daripada metode usulan tanpa menggunakan preprocessing walaupun lebih baik dari metode sebelumnya [8]. Sedangkan untuk kasus terburuk, Random.txt, maka rasio yang didapat juga lebih buruk dibanding dengan metode sebelumnya [8]. Selain pengujian rasio kapasitas, dilakukan juga pengujian persentase penghematan. Persentase penghematan adalah persentase pesan rahasia yang dapat disimpan dalam satu emoticon. Persentase penghematan merupakan cara lain untuk menyatakan rasio kapasitas penyimpanan pesan rahasia. Jika P adalah persentase penghematan (dalam persen), E adalah panjang emoticon yang dihasilkan, dan S adalah panjang pesan rahasia maka rumus persentase penghematan dapat dituliskan dengan persamaan (3). Semakin tinggi nilai
5
Tabel 5. Rasio kapasitas pada teks Lcet10.txt. Panjang Teks (Char ) Metode Sebelum Metode Usulan Metode Usulan dengan BWT Metode Usulan dengan MTF 1,142857143 1,556 1,543 1,006 2000 16000 1,142857143 1,304 1,109 0,918 30000 1,142857143 1,278 1,078 0,916 44000 1,142857143 1,260 1,059 0,914 58000 1,142857143 1,251 1,056 0,910 72000 1,142857143 1,25 1,056 0,91 86000 1,142857143 1,244 1,063 0,910 100000 1,142857143 1,241 1,05 0,911
persentase yang dihasilkan maka semakin baik metode tersebut. P (3) Secara umum hasil persentase pengehematan sama dengan hasil rasio yang disajikan dalam satuan persen (%). Hasil pengujian secara umum menunjukkan bahwa metode usulan tanpa menggunakan preprocessing memiliki persentase penghematan yang paling baik untuk teks Alice29.txt, aaa.txt, dan Lcet10.txt. Sedangkan untuk kasus terburuk kompresi, Random.txt, persentase penghematan metode sebelum [8] mendapatkan nilai persentase tertinggi. B. Jumlah Emoticon yang digunakan Jika perbedaan emoticon pada metode usulan dengan metode sebelumnya [8] pada X kamus dimana A adalah jumlah emoticon yang ditampilkan pada metode sebelumnya [8] dan B adalah jumlah emoticon yang ditampilkan pada metode usulan maka dapat dituliskan dengan persamaan (4). Semakin besar perbedaan penggunaan emoticon (ΔXA,B) berarti semakin baik jumlah kamus tersebut. (4) ΔXA,B = A – B Pengujian dilakukan dengan mengubah jumlah kamus yang digunakan menjadi 512, 1024, 2048, 4096, 8192, dan 16384. Semua pengujian dilakukan dengan menggunakan inisialisasi kamus 128 emoticon. Hasil pengujian menunjukkan semakin panjang pesan rahasia, diatas 2000 huruf, maka jumlah kamus emoticon yang semakin besar akan semakin bagus. Untuk pengujian pada Alice.txt dapat disimpulkan bahwa semakin banyak emoticon yang digunakan dan semakin banyak teks maka semakin efektif metode yang diusulkan. Akan tetapi, jika penambahan jumlah kamus dilakukan untuk teks yang kurang dari 2000 karakter akan kurang efektif. Kesimpulan ini hampir sama dengan pengujian pada Lcet10.txt yang menghasilkan kesimpulan untuk teks yang panjang akan semakin baik jika menggunakan emoticon yang lebih banyak. Melihat pada pengujian teks aaa.txt, penggunaan emoticon pada algoritme yang diusulkan tetap sama akan tetapi metode sebelumnya akan menggunakan lebih sedikit emoticon. Sehingga pada teks AAA metode usulan akan lebih baik jika kamus yang digunakan sedikit. Sedangkan untuk pengujian kasus terburuk, random.txt, semakin banyak emoticon yang digunakan maka hasil yang didapatkan semakin baik walaupun masih tetap kurang dari metode sebelumnya. C. Inisialisasi Kamus Pengujian ini bertujuan untuk menguji pengaruh penggunaan inisialisasi kamus yang berbeda terhadap kapasitas penyimpanan pesan rahasia. Pada pengujian ini jumlah indeks inisialisasi kamus yang digunakan jumlahnya sama, yaitu 128 emoticon, dengan metode pertama
JURNAL TEKNIK POMITS Vol. 3, No. 2, (2014) ISSN: 2337-3539 (2301-9271 Print) penggunaan konversi dari char menjadi bit menggunakan 128 indeks secara penuh dan metode kedua menggunaan char sebanyak 99 huruf yang dapat dicetak dengan 29 indeks dibiarkan kosong. Jika terdapat sedikit saja perbedaan maka metode steganografi teks usulan ini dapat dianggap gagal. Pengujian dilakukan terhadap keempat teks yang digunakan pada pengujian sebelumnya. Hasil yang didapat adalah pada masing-masing teks tidak terdapat perbedaan pada jumlah emoticon yang digunakan baik dengan menggunakan char maupun menggunakan bit. Kesimpulan yang didapat dari pengujian ini adalah metode usulan dapat menggunakan inisialisasi kamus yang berbeda karena inisialisasi kamua yang berbeda tidak memengaruhi jalannya metode steganografi teks usulan. Secara garis besar, dalam pengujian ini metode steganografi teks usulan lebih baik dibanding dengan metode steganografi teks sebelumnya [8].
[4]
[5]
[6]
[7]
[8]
[9]
[10]
V. KESIMPULAN/RINGKASAN Dalam artikel ini kami mengusulkan sebuah metode steganografi teks berbasis emoticon dan LZW. Metode ini menggabungkan antara steganografi dengan kompresi teks LZW dengan menggunakan emoticon. Dari percobaan yang telah dilakukan, metode ini lebih baik dari metode yang telah ada, kecuali untuk kasus terburuk dari kompresi. Akan tetapi, dalam kasus nyata sangat jarang ditemui kasus terburuk dari kompresi sehingga metode ini dapat diterapkan dalam dunia nyata. Setiap emoticon dalam metode ini dapat menyimpan data yang bervariasi dan dinamis sehingga kapasitas penyimpanan meningkat. Inisialisasi awal kamus dapat dibuat berbeda tidak memengaruhi jalannya metode usulan. Metode ini dapat dikembangkan lebih jauh. Banyak hal yang dapat dikembangkan seperti membuat media teks dengan emoticon yang “fixed”, membuat emoticon dengan media menjadi lebih natural, atau membuat kamus lebih dinamis dengan mengoptimalkan kamus (OLZW) [22].
[11]
[12]
[13]
[14] [15]
[16]
[17]
[18]
UCAPAN TERIMA KASIH Penulis G.S. mengucapkan terima kasih kepada Tuhan yang Maha Esa, orang tua dan keluarga penulis, dosen pembimbing dan dosen penguji, dan pihak-pihak lain yang baik secara langsung maupun tidak langsung telah membantu dalam menyelesaikan tulisan ini.
[19] [20] [21] [22]
DAFTAR PUSTAKA [1]
[2] [3]
S. Kataria , T. Kumar , K. Singh and M. S. Nehra , "ECR(Encryption with Cover Text and Reordering) based Text Steganography," dalam IEEE Second International Conference on Image Information Processing (ICIIP-2013), 2013. D. Artz , "Digital Steganography: Hiding Data within Data," Internet Computing, IEEE, vol. IV, no. 3, pp. 75-80, 2001. M. M. Amin , M. Salleh , S. Ibrahim , M. R. Katmin and M. Z. I. Shamsuddin , "Information Hiding using Steganography," dalam Telecommunication Technology, 2003. NCTT 2003 Proceedings. 4th National Conference on, Shah Alam, 2003.
6
A. Muñoz , J. Carracedo and I. A. Álvarez , "Hiding short secret messages based on linguistic steganography and manual annotation.," dalam 10th IEEE International Conference on Computer and Information Technology (CIT 2010), 2010. R. S. R. Prasad and 1. Alla , "A New Approach to Telugu Text Steganography," dalam 2011 IEEE Symposium on Wireless Technology and Applications (ISWTA), Langkawi, 2011. S. Changder , D. Ghosh and N. C. Debnath , "Linguistic Approach for Text Steganography through Indian Text," dalam 2010 2nd International Conference on Computer Technology and Development (ICCTD 2010), 2010. R. P. Kumar, V. Hemanth and M. Shareef, "Securing Information Using Sterganoraphy," dalam 2013 International Conference on Circuits, Power and Computing Technologies [ICCPCT-2013], 2013. Z.-H. Wang , T. D. Kieu , C.-C. Chang and M.-C. Li , "Emoticon-based Text Steganography in Chat," dalam 2009 Second Asia-Pacific Conference on Computational Intelligence and Industrial Applications (PACIIA), 2012. L. Li , L. Huang , X. Zhao , W. Yang and Z. Chen , "A Statistical Attack on a Kind of Word-Shift Text-Steganography," dalam Intelligent Information Hiding and Multimedia Signal Processing, 2008. IIHMSP '08 International Conference on, Harbin, 2008. K. Bennett, ""Linguistic Steganography: Survey, Analysis, and Robustness Concerns for Hiding Information in Text," West Lafayette, 2004. M. Ptaszynski , J. Maciejewski , P. Dybala , R. Rzepka and K. Araki , "CAO: A Fully Automatic Emoticon Analysis System Based on Theory of Kinesics," Affective Computing, IEEE Transactions on, vol. I, no. 1, pp. 46-59, January-June 2010. R. Saniei and K. Faez , "The Capacity of Arithmetic Compression Based Text Steganography Method," dalam 2013 8th Iranian Conference on Machine Vision and Image Processing (MVIP), 2013. C.-C. Chen and C.-C. Chang , "High-capacity Reversible Data-hiding for LZW Codes," dalam 2010 Second International Conference on Computer Modeling and Simulation, 2010. T. A. Welch, "A Technique for High Data-Performance Data Compression," Computer, vol. XVII, no. 6, pp. 8-19, 1984. K. Ouaissa , M. Abdat and P. Plume , "Adaptive limitation of the dictionary size in LZW data compression," Information Theory, 1995. Proceedings., 1995 IEEE International Symposium on, Whistler, BC, 1995. W. Kinsner and R. H. Greenfield, "The Lempel-Ziv-Welch (LZW) data compression algorithm for packet radio," dalam WESCANEX '91 'IEEE Western Canada Conference on Computer, Power and Communications Systems in a Rural Environment', Canada, 1991. U. Nandi and J. K. Mandal , "A Compression Technique Based On Optimality Of LZW Code (OLZW)," dalam Third International Conference on Computer and Communication Technology (ICCCT) 2012, 2012. M. Burrows and D. J. Wheeler, "A block-sorting lossless data compression algorithm," dalam SRC Research Report 124, Digital Systems Research Center, Palo Alto, California, 1994. J. L. Bentley and D. D. Sleator , "A Locally Adaptive Data Compression Scheme," vol. 29, pp. 320-330, 1986. jeu-gratuit.net, "PHP FREE CHAT," [Daring]. Tersedia: http://www.phpfreechat.net/. [diakses Februari 2014]. devianART, [Online]. Available: http://www.deviantart.com/. [diakses Februari 2014]. M. Powell, January 2001. [Daring]. Tersedia: http://corpus.canterbury.ac.nz/. [diakses Februari 2014].