Perancangan Program Aplikasi Penyembunyian Pesan pada Citra JPEG dengan Algoritma F5 dalam Perangkat Mobile Berbasis Android Afan Galih Salman; Christian Octavianus; Rojali ABSTRACT Development of the world today is certainly not out of the current development of communications technology is growing by leaps and bounds. Since the development of this fast growing world, it takes the ability to access information quickly. Starting from the print media, through electronic media. This development is seen especially in electronic media, where one important factor that was instrumental in the development of electronic media today is the internet. With the Internet people can very easily exchange information using electronic media, such as PC (Personal Computer) or with mobile devices, such as mobile phones, and tablet PCs. Due to the increasing number of people who exchange information via the Internet, it will need to communicate the necessary security. Because of this it is necessary to be a way to transmit data securely. One way is by using concealment on the data before the data is transmitted. In this paper, we discuss the design of hiding or steganography messages on the image by using the method applied to mobile devices. F5 algorithm is one of many algorithms used in the purpose of steganography in JPEG images. Steganography applications are built using the Java programming language Android. Based on the design and implementation has been done, we got the result image is not much different from the original image. So that the security of data sent using the application program is assured. Based on the error checking using the PSNR obtained good results for each image steganogram, that is more than 70 dB. Key words: Steganography, Image JPEG, Mobile Applications, F5 Algorithm. ABSTRAK Perkembangan dunia saat ini tentunya tidak lepas dari perkembangan teknologi komunikasi yang saat ini semakin berkembang dengan pesat. Karena perkembangan dunia yang makin cepat ini, maka dibutuhkan juga kemampuan untuk dapat mengakses informasi dengan cepat. Mulai dari media cetak, sampai dengan media elektronik. Perkembangan ini sangat terlihat khususnya pada media elektronik, dimana salah satu faktor penting yang sangat berperan dalam perkembangan media elektronik saat ini adalah internet. Dengan adanya internet orang dapat dengan sangat mudah bertukar informasi dengan menggunakan media elektronik, seperti PC (Personal Computer) maupun dengan perangkat mobile, seperti handphone, maupun tablet PC. Karena semakin banyaknya orang yang melakukan pertukaran informasi melalui media internet ini, maka kebutuhan akan keamanan dalam berkomunikasi semakin diperlukan. Karena hal inilah diperlukan adanya suatu cara untuk dapat mengirimkan data dengan aman. Salah satu caranya adalah dengan menggunakan penyembunyian pada data sebelum data tersebut dikirimkan. Dalam tulisan ini, akan dibahas perancangan penyembunyian pesan atau steganografi pada image dengan menggunakan metode yang diaplikasikan pada perangkat mobile. Algoritma F5 ini merupakan salah satu dari banyak algoritma yang digunakan dalam keperluan steganografi pada citra JPEG. Aplikasi steganografi ini dibangun dengan menggunakan bahasa pemrograman Java Android. Berdasarkan hasil perancangan dan implementasi yang telah dilakukan, didapat hasil citra yang tidak jauh berbeda dengan citra aslinya. Sehingga keamanan data yang dikirimkan dengan menggunakan program aplikasi terjamin. Berdasarkan hasil pengecekan error dengan
menggunakan PSNR didapat hasil yang baik untuk setiap citra steganogram, yaitu lebih dari 70 dB. Kata kunci: Steganografi, Citra JPEG, Aplikasi Mobile, Algoritma F5.
PENDAHULUAN Perkembangan teknologi sekarang ini memungkinkan orang untuk dapat melakukan komunikasi maupun pertukaran data secara mudah. Karena itu tentunya keamanan data sangatlah penting, terutama dalam bisnis komersil maupun tradisional. Sebagai contoh, dalam pengiriman data-data krusial perusahaan, dimana diperlukan adanya pengamanan pada data, agar hanya beberapa orang yang dapat mengakses atau mendapatkan data tersebut. Salah satu cara untuk mengamankan data yang akan dikirimkan seperti pada contoh diatas adalah dengan menggunakan algoritma steganografi yang sudah banyak berkembang untuk menyembunyikan data pada suatu media. Steganografi merupakan teknik yang mempelajari penyembunyian data di dalam data induk sehingga keberadaan data tidak bisa atau sulit untuk diketahui. Semua file umum yang sudah ada, secara teori, dapat digunakan sebagai media pembawa, seperti file gambar yang berformat JPEG, BMP, GIF, atau dalam file musik berformat MP3, dan bahkan dalam file video yang berformat AVI. Proses steganografi sendiri secara garis besar akan dimulai dengan penyisipan data ke dalam media pembawa, yang dalam hal ini adalah file image dengan format JPEG (Joint Photographic Experts Group), proses penyisipan data dilakukan secara algoritmik berdasarkan dari kata kunci yang sudah ditentukan sebelumnya. Untuk dapat melihat data yang ada didalam file image tersebut, penerima file tersebut harus memasukkan kata kunci yang sama dengan kata kunci pada saat data disisipkan. Jika kata kunci yang dimasukkan berbeda, maka data yang didapat akan berbeda dengan data yang sebenarnya yang dikirimkan. Media file image yang berformat JPEG ini juga memiliki beberapa keuntungan untuk dijadikan media pembawa data (steganogram). Pertama adalah karena tipe file ini merupakan tipe file yang sudah umum digunakan, dan sudah banyak digunakan untuk pertukaran gambar pada internet. Alasan kedua adalah karena tipe file JPEG ini juga memiliki banyak algoritma penyisipan file atau data yang memiliki tingkat kesulitan untuk dilacak yang tinggi. Metode yang digunakan pada aplikasi ini adalah metode F5, yang merupakan pengembangan dari metode steganografi sebelumnya yaitu metode F3 dan F4. Algoritma F5 ini menyisipkan bit data pesan kedalam bit koefisien DCT kemudian membuat matriks encoding untuk mengurangi atau meminimalkan jumlah perubahan-perubahan yang diperlukan untuk menyisipkan suatu pesan dengan panjang tertentu (Fridrich, 2002). Metode F5 ini mempunyai tingkat efisiensi enkripsi yang lebih baik dibanding metode steganografi pendahulunya, karena menggunakan permutasi sehingga penyebaran pesan lebih seragam. Implementasi dari metode ini diharapkan dapat memenuhi kebutuhan akan tingkat keamanan data perangkat mobile. PEMBAHASAN Kata steganografi (Steganography) berasal dari kata Yunani. Steganos yang artinya ‘tersembunyi/terselubung’, dan graphien, ‘menulis’ sehingga kurang lebih artinya “menulis (tulisan) terselubung”. (Budi, 2002). Steganografi adalah suatu teknik untuk menyembunyikan informasi yang bersifat pribadi dengan sesuatu yang hasilnya akan tampak seperti informasi normal lainnya. Media
yang digunakan umumnya merupakan suatu media yang berbeda dengan media pembawa informasi rahasia, dimana disinilah fungsi dari teknik steganografi yaitu sebagai teknik penyamaran menggunakan media lain yang berbeda sehingga informasi rahasia dalam media awal tidak terlihat secara jelas. Steganografi juga berbeda dengan kriptografi yaitu terletak pada hasil dari prosesnya. Hasil dari kriptografi biasanya berupa data yang berbeda dari bentuk aslinya dan biasanya datanya seolah-olah berantakan namun dapat dikembalikan ke data semula. Sedangkan hasil dari keluaran steganografi memiliki bentuk yang sama dengan data aslinya, tentu saja persepsi ini oleh indra manusia, tetapi tidak oleh komputer atau pengolah data digital lainnya. Dimulai sejak beberapa tahun lalu, JPEG (Joint Photographic Experts Group) membuat teknik kompresi international pertama untuk format file citra. Pada tahun 1992 teknik kompresi ini mulai diterima secara formal sebagai standar internasional. (Leung, 2004). Standar ini ditetapkan oleh JPEG agar dapat memenuhi kebutuhan berbagai aplikasi yang bekerja dengan file image. Kompresi yang diajukan oleh JPEG ini dapat bekerja dengan citra berwarna maupun greyscale. Berikut akan dijelaskan secara lebih lanjut untuk tahapan pada kompresi JPEG:
Gambar 1 Tahapan dalam kompresi JPEG (Leung, 2004) Tahap pertama dari kompresi JPEG adalah konversi dari RGB ke YcbCr. RGB merupakan singkatan dari Red-Green-Blue. Tiga warna yang di jadikan patokan warna secara universal. Dengan basis RGB, kita bisa mengubah warna ke dalam kode-kode angka sehingga warna tersebut akan tampil universal. Konversi warna RGB ke dalam warna YCbCr, warna luminance atau dikenal dengan istilah grayscale, yaitu gambar dengan derajat keabuan yang mempunyai intensitas warna 0 sampai 255, dimana 0 adalah untuk merepresentasikan warna hitam dan 255 adalah warna untuk merepresentasikan warna putih. Karena mata manusia lebih sensitif pada warna luminance (Y) dari pada warna chrominance (Cb,Cr), sehingga informasi warna chrominance tidak diikut sertakan pada proses kompresi dan hanya warna Y yang diproses sebagai masukan gambar untuk proses selanjutnya. (Gunawan, 2003). Warna YCbCr diperoleh dengan mentransformasikan RGB dengan rumus :
0.587 0.144 ⎤ ⎡ R ⎤ ⎡Y ⎤ ⎡ 0.299 ⎢Cb ⎥ = ⎢− 0.159 − 0.332 0.050 ⎥ = ⎢G ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎣Cr ⎥⎦ ⎢⎣ 0.500 − 0.419 − 0.081⎥⎦ ⎢⎣ B ⎥⎦
Tahap kedua dari kompresi JPEG adalah tahap DCT (Discrete Cosine Transform). Hal yang pertama kali dilakukan pada tahap DCT ini adalah membagi keseluruhan gambar menjadi 8 x 8 pixel. Kemudian setiap blok-blok pixel tersebut diproses satu persatu menjadi 64 keofisien DCT melalui rumus :
F (u , v ) =
⎧ (2i + 1)uπ cos (2 j + 1)uπ f (i, j ) C (ξ ) = ⎪ 2 jika ξ = 0 C (u )C (v ) 7 7 cos ⎨ 2 ∑∑ 4 16 16 i =0 j =0 ⎪1 lainnya ⎩
Tujuan dari tahap ini adalah karena pada gambar yang belum terkompresi nilai koefisien DCT rata-rata berukuran amat kecil dan banyak yang dapat dihilangkan dengan tetap mempertahankan keakuratan gambar. Dibanding nilai 63 koefisien DCT lainnya, koefisien pertama dari tiap blok pasti memiliki nilai yang paling besar karena merupakan nilai rata-rata dari keseluruhan blok, koefisien pertama disebut koefisien DC dan 63 koefisien lainnya disebut koefisien AC. Untuk mengembalikan kembali koefisien DCT yang didapat kedalam 64 nilai pixel sebelumnya harus dilakukan tahap Invers DCT, tetapi hasil yang didapat akan sedikit mengalami perubahan sehingga tahap ini dinamakan tahap lossy. Rumus Invers DCT adalah sebagai berikut :
(2i + 1)uπ cos (2 j + 1)vπ F (u, v ), C (u )C (v ) cos f (i, j ) = ∑∑ 4 16 16 u =0 v =0
~
7
7
⎧ 2 jika ζ = 0 ⎪ C (ξ )⎨ 2 ⎪1 lainnya ⎩
Tahap selanjutnya adalah tahap kuantisasi dari koefisien-koefisien DCT yang didapat sebelumnya. Proses kuantisasi merupakan proses untuk mengurangi jumlah bit yang diperlukan untuk menyimpan suatu data gambar. Karena mata manusia lebih peka terhadap frekuensi rendah dari pada frekuensi tinggi dan karena frekuensi tinggi tidak merubah data gambar secara signifikan, maka pada proses kuantisasi frekuensi tinggi ini dipotong dengan cara, matriks koefesien hasil DCT dibagi dengan matriks quantum. Matriks quantum ini ditentukan oleh faktor kualitas yang dipilih antara 1 sampai 100 yang nantinya dipakai untuk menentukan kualitas dari suatu gambar JPEG. Tahap kuantisasi juga merupakan tahap lossy dalam kompresi JPEG karena kuantisasi melakukan pembagian antara setiap koefisien DCT dengan koefisien dari matriks quantum yang ditentukan dan melakukan pembulatan setelahnya. Berikut adalah tabel kuantisasi untuk koefisien luminance dan chrominance yang sudah ditetapkan sebagai standar oleh JPEG dengan rasio kompresi paling baik dan penurunan kualitas gambar paling rendah :
Gambar 2 Tabel Kuantisasi Luminence dan Table Kuantisasi Chrominence Keragaman warna pada suatu blok ternyata juga sangat berpengaruh pada penurunan kualitas yang disebabkan oleh dua tahap lossy ini (DCT dan Kuantisasi). Kesalahan yang terjadi pada blok dengan tekstur warna yang beragam lebih besar dibanding dengan blok yang mempunyai tekstur warna relatif sama. Tahapan selanjutnya dari kompresi JPEG adalah DCPM (Differential Pulse Code Modulation). Pada tahap ini, koefisien DC dari tiap blok disatukan untuk memasuki tahap Entropy Coding, teknik DPCM digunakan karena nilai-nilai koefisien DC antar blok tidak berbeda jauh. (Leung, 2004).
Gambar 3 Differential Pulse Code modulation Koefisien DC yang sudah melalui tahap DPCM kemudian dikompresi menggunakan metode Huffman, tetapi sebelumnya deretan angka tersebut akan dirubah bentuknya menjadi pasangan-pasangan (size, amplitude) dimana size menyatakan jumlah bit yang diperlukan untuk merepresentasikan jumlah angka DPCM dan amplitude menyatakan angka tersebut dalam bit. Dalam Entropy coding yang mengalami kompresi huffman hanya size-nya saja, karena perubahan size tidak terlalu jauh sedangkan amplitude-nya bervariasi. Tahapan selanjutnya adalah RLC (Run Length Coding). Run Length Coding memakai metode zig-zag scannin, yaitu proses yang merubah matriks 8 x 8 hasil proses kuantisasi kedalam vektor 1 x 28 , dengan pembacaan secara zig-zag scanning. Pada proses zig-zag scanning ini keofisien DCT terkuantisasi yang bernilai nol cenderung terbaca secara berurutan.
Gambar 4 Proses Zig-Zag Scan RLC (Run-Length Code) yaitu proses serangkaian simbol yang berurutan dikodekan menjadi suatu kode yang terdiri dari simbol tersebut dan jumlah pengulangannya. RLC efektif karena hasil keluaran matriks setelah proses kuantisasi pada frekuensi tinggi cenderung nol (0) dan berurutan, Karena hampir setengahnya lebih adalah nol, maka nilai 0 inilah yang disimbolkan menjadi 0 dan jumlah pengulangannya. Untuk proses dekompresi, dilakukan proses sebaliknya yaitu hasil pengkodean RLC discan dan diuraikan kembali, kemudian kode hasil penguraian dibaca sebagai blok. Berikut ini adalah contoh perubahan proses setelah proses zig-zag scanning ke dalam proses RLC. Setelah diubah urutannya, niai AC kemudian diubah bentuknya menjadi pasanganpasangan (runlength,value), dimana runlength adalah jumlah 0 yang berurutan dan value adalah nilai non – 0 yang terletak sesudahnya. Dalam hal ini koefisien DC tidak diperhitungkan dalam RLC. Koefisien AC yang sudah melalui tahap RLC juga dikompresi menggunakan kompresi huffman, pasangan-pasangan sebelumnya diubah lagi menjadi pasangan-pasangan (runlength, size, value). Dalam hal ini yang mengalami kompresi huffman hanya runlength dan size-nya seperti pada koefisien DC. Algortima F5 bekerja setelah tahap kuantisasi dari kompresi JPEG. Algoritma steganografi F5 diperkenalkan oleh Pfitzmann peneliti Jerman dan Westfeld pada tahun 2001. Tujuan dari mereka penelitian ini adalah untuk mengembangkan konsep dan metode embedding praktis untuk gambar JPEG yang akan memberikan steganografi tinggi kapasitas tanpa mengorbankan keamanan. Daripada mengganti LSB dari koefisien DCT terkuantisasi dengan bit pesan, nilai absolut dari koefisien menurun satu. Para penulis berpendapat bahwa jenis embedding tidak dapat dideteksi menggunakan serangan statistik χ2. Algoritma F5 meng-embed bit pesan ke koefisien DCT yang dipilih secara acak dan menggunakan matriks embedding yang meminimalkan jumlah perubahan yang perlu untuk menanamkan panjang pesan tertentu. Proses embedding dimulai dengan menurunkan benih untuk PRNG (Pseudo Random Number Generator) dari kata sandi pengguna dan menghasilkan “random walk” koefisien DCT dari cover image tersebut. PRNG juga digunakan untuk mengenkripsi nilai k menggunakan stream cipher dan menanamkannya dalam cara yang teratur bersama-sama dengan panjang pesan di awal aliran pesan. Tubuh pesan tertanam menggunakan embedding matriks, menyisipkan k bit pesan ke satu kelompok 2k-1 koefisien dengan menurunkan nilai absolut paling banyak satu koefisien dari masing-masing kelompok satu. Proses embedding terdiri dari langkah-langkah berikut: a. Ambil nilai RGB dari gambar input
b.
Hitung tabel kuantisasi yang sesuai dengan faktor kualitas Q dan kompres gambar saat menyimpan DCT terkuantisasi koefisien. c. Hitung perkiraan kapasitas tanpa embedding matriks C = hDCT - hDCT / 64 - h (0) - h (1) + 0.49h (1), di mana hDCT adalah jumlah semua koefisien DCT, h (0) adalah jumlah koefisien DCT AC bernilai nol, h (1) adalah jumlah dari AC Koefisien DCT dengan nilai absolut 1, hDCT/64 adalah jumlah dari DC koefisien. Parameter C dan panjang pesan yang digunakan untuk menentukan matriks embedding terbaik. d. Password yang ditentukan pengguna digunakan untuk menghasilkan benih untuk PRNG juga digunakan menentukan jalur acak untuk embedding bit-bit pesan. PRNG juga digunakan untuk menghasilkan pseudo-random bit-stream yang diXOR dengan pesan untuk membuatnya bit-stream teracak. Selama embedding, koefisien DC dan koefisien sama dengan nol dilewati. e. Pesan dibagi menjadi segmen-segmen dari k bit yang tertanam ke dalam kelompok 2k-1 koefisien sepanjang jalur acak. Jika hash dari kelompok yang tidak cocok dengan bit-bit pesan, nilai absolut dari salah satu koefisien dalam kelompok diturunkan satu untuk mendapatkan nilai yang cocok. Jika koefisien menjadi nol, kejadian ini disebut sebagai penyusutan, dan k bit pesan yang sama diembed ulang dalam kelompok berikutnya dari koefisien DCT. f. Jika ukuran pesan sesuai dengan perkiraan kapasitas, maka proses embed berlanjut, lain daripada itu error yang menunjukkan panjang maksimal yang mungkin akan ditampilkan. Algoritma F5 ini tidak memodifikasi histogram koefisien DCT, Algoritma ini menunjukkan bahwa beberapa karakteristik penting dari histogram tetap dipertahankan, seperti yang kemonotonan dan kemonotonan dari kenaikan. Algoritma F5 tidak dapat dideteksi dengan menggunakan serangan χ2 karena embedding tidak didasarkan pada penggantian bit maupun pertukaran nilai tetap apapun. Secara garis besar proses berjalannya algortima steganografi F5, mulai dari tahapan kompresi JPEG pertama sampai akhir, dapat dilihat pada gambar dibawah berikut:
Gambar 5 Flow Chart Algoritma
Perancangan program aplikasi pada penelitian ini menggunakan metode Linear Sequential (Waterfall). Metode Waterfall ini memiliki lima tahapan yaitu, requirement analysis, system design, implementation, integration, dan maintenance. Perkembangan teknologi sekarang berkembang semakin pesat, sehingga memungkinkan pertukaran informasi yang semakin cepat dan mudah. Oleh karena itu, tuntutan akan komunikasi yang aman dan terpercaya semakin banyak. Dan ditambah dengan mulai berkembangnya teknologi mobile, dimana memungkinkan orang untuk dapat mengakses internet dengan mudah dan dimana saja. Steganografi adalah salah satu teknik yang dikembangkan untuk menjamin keamanan data pada saat melakukan komunikasi. Karena pada jaman sekarang, sudah banyak orang yang menggunakan media perangkat mobile, seperti telepon genggam, maupun tablet PC. Maka perkembangan ilmu steganografi pun harus mulai dikembangkan untuk media perangkat mobile ini.
Gambar 6 Use Case Diagram Pada use case diagram, pengirim atau user dapat menentukan gambar mana yang akan disisipi oleh pesan atau message. Kemudian pengirim dapat menuliskan pesan yang akan disembunyikan kedalam gambar yang telah dipilih sebelumnya. Pengirim kemudian harus menentukan kata kunci atau password yang akan digunakan. Dan yang terakhir pengirim dapat menekan tombol insert message untuk memulai proses penyisipan pesan kedalam gambar. Hasil atau ouput dari proses ini berupa gambar yang telah disisipi oleh pesan (stego image). Dari sisi user penerima, yang dapat dilakukan adalah, memilih gambar yang telah disisipi pesan, kemudian memasukkan password yang sama dengan password pada saat pesan disisipkan ke dalam gambar. Kemudian dapat melakukan proses ekstraksi pesan yang ada didalam gambar, dan kemudian mendapati hasil dari proses ekstraksi yang berupa pesan yang disisipkan ke dalam gambar. Dalam peracangan program aplikasi ini, penulis menggunakan komputer dengan spesifikasi sebagai berikut: a. Processor: 2nd generation Intel Core i5 – 2430M CPU @ 2.4GHz b. Memory: 4GB (2,8 usable)
c.
Sistem Operasi: Windows 7 Home Premium 64-bit (6.1, build 7601)
Sedangkan untuk kebutuhan perangkat lunak (software), penulis menggunakan beberapa perangkat lunak pendukung. Perangkat lunak tersebut antara lain : a. Platform: Java SE version 1.6, Android SDK, Eclipse 4.0, ADT version 16 b. Bahasa Pemrograman: Android Dalam menjalankan aplikasi, user dapat melakukan dua proses, yaitu proses memasukkan pesan dan proses pengeluaran pesan. Pada proses pemasukkan pesan, user memasukkan pesan rahasia berupa teks atau tulisan ke dalam image atau gambar yang telah dipilih sebelumnya dan kemudian menentukan kata kunci atau password dari gambar. Untuk proses pengeluaran pesan, user pertama kali memilih gambar yang sebelumnya telah disisipi pesan dan kemudian memasukkan kata kunci atau password yang sesuai dengan gambar yang telah dipilih tersebut, setelahnya akan muncul pesan yang tersisip atau tersembunyi didalam gambar. Berikut adalah beberapa hasil dari steganografi dengan menggunakan program aplikasi. Tabel 1 Tabel Perbandingan Gambar No
Gambar Awal
Gambar Hasil
Nama File
1
Supporter.jpg
2
Camp_Nou.jpg
3
Ball.jpg
4
Anfield.jpg
Celtic_match.j
5 pg
Citra atau gambar hasil dari proses steganografi dengan menggunakan aplikasi ini tidak begitu terlihat perbedaannya secara kasat mata. Karena itulah untuk mengetahui tingkat kesalahan atau error dari gambar asli dengan gambar hasil steganografi dilakukan analisis PSNR (Peak Signal to Noise Ratio). Peak Signal to Noise Ratio adalah perbandingan antara nilai maksimum dari sinyal yang diukur dengan besarnya derau yang berpengaruh pada sinyal tersebut.Untuk menentukan PSNR, terlebih dahulu harus ditentukan nilai rata-rata kuadrat dari error (MSE - Mean Square Error).
MSE =
1 m −1 n −1 [I (i, j ) − K (i, j )]2 ∑∑ m × n i =0 j =0
Dan PSNR sendiri didefinisikan sebagai :
⎛ MAX I2 ⎞ ⎛ MAX I ⎞ ⎟⎟ = 20. log10 ⎜ PSNR = 10. log10 ⎜⎜ ⎟ ⎝ MSE ⎠ ⎝ MSE ⎠ Dimana, MAX I = nilai maksimum piksel Tabel 2 Tabel pengukuran PSNR
No
Nama File
Ukuran
Ukuran
Sebelum
Sesudah
Ukuran Piksel
Nilai PSNR
1
Supporter.jpg
300 x 200 px
27,2 KB
21,3 KB
63,03195
2
Camp_Nou.jpg
300 x 200 px
23,3 KB
12,7 KB
72,32379
3
Ball.jpg
314 x 235 px
34,7 KB
12,2 KB
72,53886
4
Anfield.jpg
314 x 208 px
19,1 KB
17,0 KB
71,83927
5
Celtic_match.jpg
314 x 207 px
16,7 KB
12,7 KB
71,37714
Hasil perhitungan PSNR yang didapat berkisar antara 63 dB sampai dengan 72dB. Kualitas gambar yang dihasilkan cukup baik, karena standar nilai PSNR yang baik adalah diatas 30dB – 40dB. Semakin tinggi nilai PSNR yang didapat maka kualitas gambar stego yang dihasilkan semakin menyerupai gambar aslinya.
PENUTUP
Algoritma Steganografi F5 berhasil digunakan untuk menysipkan pesan kedalam media gambar dengan format tipe data JPEG tanpa mengubah isi pesan dan berhasil meningkatkan keamanan data dari pihak luar yang tidak berkepentingan. Program aplikasi juga dapat menerapkan Algortima Steganografi F5 dan dapat berjalan dengan baik dalam perangkat mobile berbasis Android. Dan berdasarkan hasil dari pengecekan error dengan menggunakan Peak Signal to Noise Ratio atau PSNR, ternyata gambar yang dihasilkan memiliki kualitas yang tidak jauh berbeda dengan gambar sebelum disisipi pesan. Dengan kisaran rata-rata nilai PSNR lebih dari 70 dB. Dalam proses steganografi dengan metode F5 ini masih terdapat beberapa aspek yang dapat dikembangkan lebih lanjut. Beberapa diantaranya yaitu : 1. Pengembangan lebih lanjut untuk memakai tipe data yang lain selain tipe data JPEG. 2. Proses penyebaran data dalam image dapat lebih ditingkatkan. 3. Program aplikasi dapat dikembangkan lebih lanjut agar dapat langsung melakukan pengiriman pesan yang telah tersisipi, tanpa harus menutup program aplikasi terlebih dahulu. 4. Mengembangkan perangkat keras (hardware) yang lebih mendukung kecepatan proses steganografi pada perangkat mobile.
DAFTAR PUSTAKA
Andri. (2010). Macam-macam Format Gambar Digital. URL http://tyobee.blogspot.com/2010/09/macam-macam-format-gambar-digital.html. Akses pada 30 Desember 2011. Agus
Romdoni. (2010). Pengertian Aplikasi Mobile. URL http://agusbarupunyablog.blogspot.com/2010/10/pengertian-aplikasi-mobile.html. Diakses pada 14 Oktober 2011.
Anonymous. (2001). URL http://code.google.com/p/f5-steganography/. Akses pada 30 Desember 2011. Bloisi, Domenico. dan Luca Iocchi. Image Based Steganography and Cryptography. URL http://www.dis.uniroma1.it/~bloisi/steganography/isc.pdf. Akses pada 25 Desember 2011. Fridrich, Jessica, Miroslav Goljan, Dorin Hogea. (2002). Steganalysis of JPEG Images: Breaking the F5 Algorithm. URL ws2.binghamton.edu/fridrich/Research/f5.pdf. Akses pada 22 Desember 2011.
Guillermito. (2004). Extracting Data Embedded with Jsteg. URL http://www.guillermito2.net/stegano/jsteg/index.html. Akses pada 29 Desember 2011. Rahardjo, Budi. (2005). Keamanan Sistem Informasi. URL http://budi.insan.co.id/books/handbook.pdf. Akses pada 28 Desember 2011. Karna. Nyoman Bogi Aditya. (2001). Kompresi JPEG referensi – C Program. URL http://bogi.blog.imtelkom.ac.id/files/2011/10/Kompresi-JPEG-dalam-Program-C.pdf. Akses pada 23 Desember 2011. Leung. (2005). Image Compression Standards. URL http://www2.it.lut.fi/kurssit/0607/Ti5312400/Materiaali/Paiva_2/2-2-3.pdf. Akses pada 26 Desember 2011. Munir, Rinaldi. (2004). Steganografi dan Watermarking. URL http://www.informatika.org/~rinaldi/Kriptografi/Steganografi%20dan%20Watermarkin g.pdf. Akses pada 20 Desember 2011. Pakpahan, Hombar. (2010). Pengertian Java. URL http://ilmucomputer2.blogspot.com. Akses pada 18 September 2011. Pratama, Widianto. (2011). Tutorial Android Programming. URL http://unimus.ac.id/download/univ/Pengenalan%20Android.pdf. Akses pada 29 September 2011. Seng, Ciu Bun. (2011). Android Dasar Pengoperasian, Optimasi sampai Modifikasi. Jasakom. Stamm, Matthew C., Steven K. Tjoa, W. Sabrina Lin, dan K. J. Ray Liu. (2010). Undetecable Image Tampering Through JPEG Compression Anti-Forensics. URL http://up.stevetjoa.com/stamm2010icip.pdf. Akses pada 19 Desember 2011. Wibisono, Gunawan. (2003). Implementasi Kompresi Gambar dengan Format JPEG. URL http://elib.unikom.ac.id/download.php?id=257. Akses pada 19 Desember 2011.
Application Program Design for Message Hiding in JPEG Images using F5 Algorithm in Android Based Mobile Devices Afan Galih Salman; Christian Octavianus; Rojali ABSTRACT Development of the world today is certainly not out of the current development of communications technology is growing by leaps and bounds. Since the development of this fast growing world, it takes the ability to access information quickly. Starting from the print media, through electronic media. This development is seen especially in electronic media, where one important factor that was instrumental in the development of electronic media today is the internet. With the Internet people can very easily exchange information using electronic media, such as PC (Personal Computer) or with mobile devices, such as mobile phones, and tablet PCs. Due to the increasing number of people who exchange information via the Internet, it will need to communicate the necessary security. Because of this it is necessary to be a way to transmit data securely. One way is by using concealment on the data before the data is transmitted. In this paper, we discuss the design of hiding or steganography messages on the image by using the method applied to mobile devices. F5 algorithm is one of many algorithms used in the purpose of steganography in JPEG images. Steganography applications are built using the Java programming language Android. Based on the design and implementation has been done, we got the result image is not much different from the original image. So that the security of data sent using the application program is assured. Based on the error checking using the PSNR obtained good results for each image steganogram, that is more than 70 dB. Key words: Steganography, Image JPEG, Mobile Applications, F5 Algorithm. ABSTRAK Perkembangan dunia saat ini tentunya tidak lepas dari perkembangan teknologi komunikasi yang saat ini semakin berkembang dengan pesat. Karena perkembangan dunia yang makin cepat ini, maka dibutuhkan juga kemampuan untuk dapat mengakses informasi dengan cepat. Mulai dari media cetak, sampai dengan media elektronik. Perkembangan ini sangat terlihat khususnya pada media elektronik, dimana salah satu faktor penting yang sangat berperan dalam perkembangan media elektronik saat ini adalah internet. Dengan adanya internet orang dapat dengan sangat mudah bertukar informasi dengan menggunakan media elektronik, seperti PC (Personal Computer) maupun dengan perangkat mobile, seperti handphone, maupun tablet PC. Karena semakin banyaknya orang yang melakukan pertukaran informasi melalui media internet ini, maka kebutuhan akan keamanan dalam berkomunikasi semakin diperlukan. Karena hal inilah diperlukan adanya suatu cara untuk dapat mengirimkan data dengan aman. Salah satu caranya adalah dengan menggunakan penyembunyian pada data sebelum data tersebut dikirimkan. Dalam tulisan ini, akan dibahas perancangan penyembunyian pesan atau steganografi pada image dengan menggunakan metode yang diaplikasikan pada perangkat mobile. Algoritma F5 ini merupakan salah satu dari banyak algoritma yang digunakan dalam keperluan steganografi pada citra JPEG. Aplikasi steganografi ini dibangun dengan menggunakan bahasa pemrograman Java Android. Berdasarkan hasil perancangan dan implementasi yang telah dilakukan, didapat hasil citra yang tidak jauh berbeda dengan citra aslinya. Sehingga keamanan data yang dikirimkan dengan menggunakan program aplikasi terjamin. Berdasarkan hasil pengecekan error dengan
menggunakan PSNR didapat hasil yang baik untuk setiap citra steganogram, yaitu lebih dari 70 dB. Kata kunci: Steganografi, Citra JPEG, Aplikasi Mobile, Algoritma F5.
INTRODUCTION Developments in technology now allow people to be able to communicate and exchange data easily. Because data security is of course very important, especially in commercial and traditional business. For example, in the delivery of critical corporate data, which is necessary safeguards on data, so that only a few people who can access or obtain data. One way to secure data to be transmitted as in the example above is using steganography algorithm that has been developed to hide data on a medium. Steganography is a technique to study the concealment of data in the data so that the presence of data carrier can not or difficult to resolve. All the common files that already exist, in theory, be used as a carrier medium, such as image file format JPEG, BMP, GIF, or in MP3 format music files, and even in AVI format video files. Steganography process itself will begin with an outline of the insertion of data into the carrier medium, which in this case the image file format is JPEG (Joint Photographic Experts Group), the algorithmic insertion of data is done on the basis of keywords that have been previously determined. To be able to see the data contained in the image file, the recipient of the file should include the same keywords with keywords at the time the data is inserted. If a keyword is entered differently, the data obtained will be different from the actual data that is sent. Media file format JPEG image that also has some advantages to be used as a data carrier (steganogram). The first is because this file type is a file type that is commonly used, and has been widely used to exchange the images on the internet. The second reason is because the JPEG file type also has a lot of files or data insertion algorithm which has tracked the level of difficulty is high. The method used in this application is a method of F5, which is the development of the previous steganographic method is the method of F3 and F4. F5 algorithm is inserted into the message data bits bit DCT coefficients and then create a matrix encoding to reduce or minimize the amount of changes necessary to insert a message with a certain length (Fridrich, 2002). F5 method has a level of efficiency of encryption steganography method is better than its predecessor, it uses permutations that a more uniform spread of the message. The implementation of this method is expected to meet the need for the level of data security of mobile devices. DISCUSSION The word steganography (Steganography) is derived from the Greek word. Steganos which means 'hidden / covert', and graphien, 'write' so that roughly translates to "write (written) veiled". (Budi, 2002). Steganography is a technique for hiding personal information with something that the result will look like any other normal information. The medium used is generally a different medium with a carrier media classified information, which is where the function of steganographic techniques, namely as a camouflage technique using a different media so that confidential information in the initial media is not clearly visible. Steganography is also in
contrast to cryptography that is located on the outcome of the process. Cryptography is usually a result of different data from its original form and its data is usually like a mess but the data can be restored to its original. While the results of the output of steganography has the same form as the original data, of course, this perception by human senses, but not by a computer or other digital data processing. Started in a few years ago, JPEG (Joint Photographic Experts Group) made the first international compression techniques for image file formats. In 1992 this compression technique began formally accepted as international standards. (Leung, 2004). This is defined by the JPEG standard in order to meet the needs of various applications that work with image files. Proposed by JPEG compression can work with color and greyscale images. These will be described in further stages of the JPEG compression:
Figure 1 Stages in the JPEG compression (Leung, 2004) The first stage of the JPEG compression is the conversion from RGB to YCbCr. RGB stands for Red-Green-Blue. Three colors are made in a universal color standard. With the RGB basis, we can change the color-coded into the code numbers so that color will appear universal. RGB color conversion into YCbCr color, luminance or color known as grayscale, the image with the degree of intensity of the color gray that have a 0 to 255, where 0 is to represent the black and 255 is a color to represent white. Because the human eye is more sensitive to color luminance (Y) of the color chrominance (Cb, Cr), so that the chrominance color information is not included in the process of compression and only the Y color image is processed as input for further processing. (Gunawan, 2003). YCbCr color is obtained by transforming the RGB with the formula :
0.587 0.144 ⎤ ⎡ R ⎤ ⎡Y ⎤ ⎡ 0.299 ⎢Cb ⎥ = ⎢− 0.159 − 0.332 0.050 ⎥ = ⎢G ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎣Cr ⎥⎦ ⎢⎣ 0.500 − 0.419 − 0.081⎥⎦ ⎢⎣ B ⎥⎦
The second stage is the stage of compression JPEG DCT (Discrete Cosine Transform). It was first performed on stage DCT is dividing the whole image into 8 x 8 pixels. Then each pixel blocks are processed one by one to 64 keofisien DCT through the formula : ⎧ 2 ( ( C (u )C (v ) 7 7 2i + 1)uπ 2 j + 1)uπ jika ξ = 0 ⎪ F (u , v ) = cos cos f (i, j ) C (ξ ) = ⎨ 2 ∑∑ 4 16 16 i =0 j =0 ⎪1 lainnya ⎩ The purpose of this stage is that the image has not been compressed DCT coefficient value of the average size is very small and many can be eliminated while maintaining the accuracy of the image. Compared to other DCT coefficient value of 63, the first coefficient of each block must have the greatest value as an average value of the whole block, the first coefficient is called the DC coefficient and 63 other coefficients are called AC coefficients. To return back into the DCT coefficients obtained previously 64 pixel values should be inverse DCT stage, but the results obtained will be slightly changed so that the stage is called lossy stage. The inverse DCT formula is as follows:
(2i + 1)uπ cos (2 j + 1)vπ F (u, v ), C (u )C (v ) cos f (i, j ) = ∑∑ 4 16 16 u =0 v =0
~
7
7
⎧ 2 jika ζ = 0 ⎪ C (ξ )⎨ 2 ⎪1 lainnya ⎩
The next stage is the quantization step of DCT coefficients obtained previously. Quantization process is a process to reduce the number of bits required to store the image data. Because the human eye is more sensitive to low frequencies than at higher frequencies and because of the high frequency image data does not change significantly, then the high frequency quantization process is cut in a way, the DCT coefficient matrix is divided by the quantum matrix. Quantum matrix is determined by the quality factor chosen between 1 and 100 that will be used to determine the quality of a JPEG image. The quantization stage is also a lossy step in JPEG compression due to the division between each quantization DCT coefficient with the coefficient of the quantum matrix are defined and do the rounding afterwards. Here is a quantization table for luminance and chrominance coefficients that have been defined as the JPEG standard with the best compression ratio and a decrease in image quality at low :
Figure 2 and Table Table Quantization Quantization Luminence Chrominence The diversity of colors in a block was also very influential in the decline in quality caused by this two-stage lossy (DCT and quantization). Errors that occur on the block with a variety of colors textures larger than the blocks that have relatively the same texture. The next stage of the JPEG compression is DCPM (Differential Pulse Code Modulation). At this stage, the DC coefficient of each block entered the stage together for Entropy Coding,
DPCM technique is used because the DC coefficient values did not differ much between the blocks. (Leung, 2004).
Figure 3 Differential Pulse Code modulation DC coefficients that have been through the DPCM stage then compressed using the Huffman method, but before the row number will be changed shape into pairs (size, amplitude) in which the size expresses the number of bits needed to represent the total number of DPCM and the amplitude is expressed in bit rate. Entropy coding experience in a huffman compression only its size, because size does not change too much while its amplitude varies. The next stage is the RLC (Run Length Coding). Run Length Coding using zig-zag scanning method, which is a process that changes the 8 x 8 matrix quantization process results into a vector of 1 x 28, with a reading of the zig-zag scanning. In the process of this zig-zag scanning the quantized DCT coefficients zero tend to be read sequentially.
Figure 4 Zig-Zag Scan Process RLC (Run-Length Code) is the set of symbols is encoded into a code sequence consisting of the symbol and the number of repetition. RLC effective because of the output matrix after quantization process at high frequencies tends to zero (0) and sequentially, because nearly half over is zero, then the value 0 is symbolized to 0 and the amount of repetition. For the decompression process, do the reverse process, namely the encoding RLC
re-scanned and described, then the code is read as a result of decomposition of the block. The following are examples of process changes after the zig-zag scanning into the RLC. After the amended order, niai AC then transformed into pairs (runlength, value), where the runlength is the number of consecutive 0 and value is the value of non - 0 that lies beyond. In this case the DC coefficient is not taken into account in the RLC. AC coefficients that have been through the stages of RLC is also compressed using huffman compression, couples previously converted again into pairs (runlength, size, value). In this case the only huffman runlength compressed and its size as the DC coefficient. F5 algorithms work after the quantization step of JPEG compression. F5 steganographic algorithm was introduced by Pfitzmann and Westfeld German researchers in 2001. The purpose of their research is to develop concepts and practical methods for embedding JPEG images that will provide high steganographic capacity without compromising safety. Instead of replacing the LSB of the quantized DCT coefficient with message bits, the absolute value of the coefficient decreased. The authors suggest that this type of embedding can not be detected using the χ2 statistic attack. F5 algorithm to embed message bits into the DCT coefficients are selected at random and using matrix embedding that minimizes the number of changes that need to instill a particular message length. Embedding process begins with a lower seed for the PRNG (Pseudo Random Number Generator) of the user's password and generate "random walk" DCT coefficients of cover image. PRNG is also used to encrypt the value of k using a stream cipher and plant them in an orderly way with a long message at the beginning of the message flow. Body of the message embedded using embedding matrix, insert a k-bit message to a group of 2k-1 with a lower coefficient of absolute value at most one coefficient from each group one. Embedding process comprises the following steps: a. Take the RGB values of the input image b. Calculate the quantization table according to the quality factor Q and compress images when the quantized DCT coefficient storing. c. Calculate the estimated capacity without embedding matrix C = hDCT - hDCT / 64 - h (0) - h (1) + 0.49h (1), where hDCT is the sum of all DCT coefficients, h (0) is the number of AC DCT coefficient is zero , h (1) is the number of AC DCT coefficients with absolute value 1, hDCT/64 is the sum of the DC coefficient. Parameter C and the length of the message are used to determine the best matrix embedding d. User-defined password is used to produce seed for the PRNG is also used to determine a random path for embedding the message bits. PRNG is also used to generate pseudorandom bit-stream that XORed the message to make it a bit stream is scrambled. During embedding, the DC coefficient and the coefficient equals zero is skipped. e. Message is divided into segments of k bits are embedded into the group of 2k-1 random coefficient along the path. If the hash of the group that did not fit with the message bits, the absolute value of a coefficient in the reduced one to obtain a suitable value. If the coefficient becomes zero, the incident is referred to as depreciation, and k bits embeded repeated the same message in the next group of DCT coefficients. f. If the size of the message according to the estimates of capacity, then embed the process continues, other than the error that indicates the maximum length that may be displayed. F5 algorithm does not modify the histogram of DCT coefficients, this algorithm shows that some important characteristics of the histogram will be retained, such as the monotony and monotony of the increase. F5 algorithm can not be detected by using χ2 attacks since embedding is not based on replacement bits as well as any exchange of a fixed value. Broadly speaking, the passage of F5 Steganography algorithm, starting from the first stage of the JPEG compression to the end, can be seen in the figure below the following:
Figure 5 Algorithm Flow Chart The design of the application program in this study using the method of Linear Sequential (Waterfall). Waterfall method has five stages, namely, requirements analysis, system design, implementation, integration, and maintenance. Technological developments are now growing more rapidly, thus allowing the exchange of information faster and easier. Therefore, the demand for secure and reliable communication more and more. And coupled with the beginnings of mobile technology, which allows people to be able to access the Internet easily and anywhere. Steganography is a technique developed to ensure the security of data during communication. Because in today, many people who use mobile media devices such as mobile phones, and tablet PCs. Then the development of the science of steganography has to start mobile devices developed for this media.
Figure 6 Use Case Diagram
In the use case diagram, the sender or the user can determine which image will be inserted by a message or a message. Then the sender can write a message that will be hidden into the image that you originally selected. The sender must then determine the keywords or passwords to be used. And the last sender can press the insert message to begin the process of embedding a message into images. The results or output of this process is an image that has been inserted by the message (stego image). From the user side of the receiver, you can do is, select the image you have inserted the message, then enter the same password with a password when a message is inserted into the picture. Then be able to perform the extraction process messages that are in the picture, and then find the results of the extraction process in the form of a message is inserted into the picture. In application program design, the author uses a computer with the following specifications: a. Processor: 2nd generation Intel Core i5 – 2430M CPU @ 2.4GHz b. Memory: 4GB (2,8 usable) c. Operating System: Windows 7 Home Premium 64-bit (6.1, build 7601) As for the needs of software (software), the author uses some software support. Software include : a. Platform: Java SE version 1.6, Android SDK, Eclipse 4.0, ADT version 16 b. Programming Language: Android In running the application, the user can carry out two processes, namely the process of inserting the message and the message spend. In the intake process the message, a user entering a secret message in the form of text or writing to the image or images that have been previously selected and then specify the keywords or passwords from images. For the process of spending the message, the user first select the image that has previously been inserted message and then enter a keyword or password corresponding to the images that have been selected, a message will appear later inserted or hidden in the picture. Here are some of the results of steganography using the application program. Table 1 Comparison Table Image
No
1
Gambar Awal
Gambar Hasil
Nama File
Supporter.jpg
2
Camp_Nou.jpg
3
Ball.jpg
4
Anfield.jpg
Celtic_match.j 5
pg
Image or images of the steganography by using this application is not so pronounced by naked eye. That is why to determine the level of fault or error of the original image with the image analysis was performed steganography PSNR (Peak Signal to Noise Ratio). Peak Signal to Noise Ratio is the ratio between the maximum value of the signal measured by the amount of noise that affects the signal tersebut.Untuk determine the PSNR, must first be determined the average value of the squared error (MSE - Mean Square Error).
MSE =
1 m −1 n −1 [I (i, j ) − K (i, j )]2 ∑∑ m × n i =0 j =0
And PSNR is defined as:
⎛ MAX I2 ⎞ ⎛ MAX I ⎞ ⎟⎟ = 20. log10 ⎜ PSNR = 10. log10 ⎜⎜ ⎟ ⎝ MSE ⎠ ⎝ MSE ⎠ Where, MAX I = maximum pixel value
Table 2 Table PSNR measurement
No
Nama File
Ukuran
Ukuran
Sebelum
Sesudah
Ukuran Piksel
Nilai PSNR
1
Supporter.jpg
300 x 200 px
27,2 KB
21,3 KB
63,03195
2
Camp_Nou.jpg
300 x 200 px
23,3 KB
12,7 KB
72,32379
3
Ball.jpg
314 x 235 px
34,7 KB
12,2 KB
72,53886
4
Anfield.jpg
314 x 208 px
19,1 KB
17,0 KB
71,83927
5
Celtic_match.jpg
314 x 207 px
16,7 KB
12,7 KB
71,37714
PSNR calculation results obtained ranged from 63 dB to 72dB. The resulting image quality is quite good, because the standard of good PSNR value is above 30dB - 40dB. The higher the PSNR value is obtained then the resulting stego image quality to be more like the original picture.
CLOSING F5 Steganography algorithms used successfully to embed messages into media images with the JPEG format data types without changing the content of messages and successfully enhance the security of data from outside parties who are not interested. The application program can also apply F5 Steganography algorithms and can work well in mobile devices based on Android. And based on the results of error checking by using the Peak Signal to Noise Ratio, or PSNR, it turns out the resulting image quality is not much different from the picture before the inserted message. With the range of average PSNR values over 70 dB. In the F5 steganographic method there are still many aspects that can be developed further. Some of them are : 1. Further development to use data types other than JPEG data type. 2. The process of distributing data in the image can be further improved. 3. Program applications can be developed further in order to directly perform a message delivery, without having to close the first application program. 4. Develop hardware which further supports the processing speed of steganography on mobile devices.
DAFTAR PUSTAKA Andri. (2010). Macam-macam Format Gambar Digital. URL http://tyobee.blogspot.com/2010/09/macam-macam-format-gambar-digital.html. Akses pada 30 Desember 2011.
Agus
Romdoni. (2010). Pengertian Aplikasi Mobile. URL http://agusbarupunyablog.blogspot.com/2010/10/pengertian-aplikasi-mobile.html. Diakses pada 14 Oktober 2011.
Anonymous. (2001). URL http://code.google.com/p/f5-steganography/. Akses pada 30 Desember 2011. Bloisi, Domenico. dan Luca Iocchi. Image Based Steganography and Cryptography. URL http://www.dis.uniroma1.it/~bloisi/steganography/isc.pdf. Akses pada 25 Desember 2011. Fridrich, Jessica, Miroslav Goljan, Dorin Hogea. (2002). Steganalysis of JPEG Images: Breaking the F5 Algorithm. URL ws2.binghamton.edu/fridrich/Research/f5.pdf. Akses pada 22 Desember 2011. Guillermito. (2004). Extracting Data Embedded with Jsteg. URL http://www.guillermito2.net/stegano/jsteg/index.html. Akses pada 29 Desember 2011. Rahardjo, Budi. (2005). Keamanan Sistem Informasi. URL http://budi.insan.co.id/books/handbook.pdf. Akses pada 28 Desember 2011. Karna. Nyoman Bogi Aditya. (2001). Kompresi JPEG referensi – C Program. URL http://bogi.blog.imtelkom.ac.id/files/2011/10/Kompresi-JPEG-dalam-Program-C.pdf. Akses pada 23 Desember 2011. Leung. (2005). Image Compression Standards. URL http://www2.it.lut.fi/kurssit/0607/Ti5312400/Materiaali/Paiva_2/2-2-3.pdf. Akses pada 26 Desember 2011. Munir, Rinaldi. (2004). Steganografi dan Watermarking. URL http://www.informatika.org/~rinaldi/Kriptografi/Steganografi%20dan%20Watermarkin g.pdf. Akses pada 20 Desember 2011. Pakpahan, Hombar. (2010). Pengertian Java. URL http://ilmucomputer2.blogspot.com. Akses pada 18 September 2011. Pratama, Widianto. (2011). Tutorial Android Programming. URL http://unimus.ac.id/download/univ/Pengenalan%20Android.pdf. Akses pada 29 September 2011. Seng, Ciu Bun. (2011). Android Dasar Pengoperasian, Optimasi sampai Modifikasi. Jasakom. Stamm, Matthew C., Steven K. Tjoa, W. Sabrina Lin, dan K. J. Ray Liu. (2010). Undetecable Image Tampering Through JPEG Compression Anti-Forensics. URL http://up.stevetjoa.com/stamm2010icip.pdf. Akses pada 19 Desember 2011. Wibisono, Gunawan. (2003). Implementasi Kompresi Gambar dengan Format JPEG. URL http://elib.unikom.ac.id/download.php?id=257. Akses pada 19 Desember 2011.