PENERAPAN STEGANOGRAFI GAMBAR PADA LEAST SIGNIFICANT BIT (LSB) DENGAN PENGUNAAN PRNG (PSEUDO RANDOM NUMBER GENERATOR)
IRENA SUSANTI G64103026
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2007
PENERAPAN STEGANOGRAFI GAMBAR PADA LEAST SIGNIFICANT BIT (LSB) DENGAN PENGUNAAN PRNG (PSEUDO RANDOM NUMBER GENERATOR)
IRENA SUSANTI G64103026
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2007
i
ABSTRAK IRENA SUSANTI. Penerapan Steganografi Gambar Pada Least Significant Bit (LSB) Dengan Pengunaan PRNG (Pseudo Random Number Generator). Dibimbing oleh SUGI GURITMAN dan SHELVIE NIDYA NEYMAN. Jaringan komputer dan internet telah mengalami perkembangan pesat. Teknologi ini mampu menghubungkan hampir semua komputer yang ada di dunia, sehingga bisa saling berkomunikasi dan bertukar informasi. Bentuk informasi yang dapat ditukar berupa teks, gambar, video, dan audio. Setelah adanya teknologi internet, banyak layanan e-mail di internet yang dapat mengirimkan pesan secara langsung ke penerimanya. Akan tetapi sebagai suatu jaringan publik, internet rentan terhadap pencurian data. Kebutuhan untuk melindungi data dan informasi yang tersimpan dalam komputer menjadi hal yang utama. Salah satu cara agar informasi tidak dapat diketahui orang lain, yaitu dengan cara menyembunyikan informasi (information hiding). Cabang dari information hiding yang paling sering digunakan adalah steganografi. Ada beberapa teknik pada sistem steganografi. Salah satu metode yang telah dikenal luas, yaitu substitusi Least Significant Bit. Hal ini disebabkan metode ini cepat dan mudah diimplementasikan. Bit-bit yang akan diubah pada proses penyembunyian pesan merupakan komponen warna RGB (Red Green Blue). Untuk memperkuat teknik penyembunyian pesan, bit-bit pesan yang akan disembunyikan disimpan pada posisi piksel secara acak. Bilangan acak akan dibangkitkan dengan algoritma Pseudo Random Number Generator (PRNG). Algoritma PRNG yang digunakan adalah Linear Congruential Generator (LCG). Stego-key sangat diperlukan pada algoritma PRNG. Karena stego-key selain berfungsi sebagai initial value pada algoritma PRNG juga dalam penentuan level bit pesan yang akan disembunyikan. Penelitian yang dilakukan terdiri atas analisis algoritma PRNG, analisis ukuran pesan, analisis stego-key, analisis penyembunyian pesan, analisis waktu penyembunyian pesan, analisis pengambilan pesan, analisis waktu pengambilan pesan, analisis kualitas, dan analisis keamanan. Dari hasil analisis algoritma PRNG, didapatkan kompleksitas waktu algoritma PRNG adalah O(n). Semakin besar level bit yang digunakan, maka semakin besar ukuran file yang dapat disembunyikan. Waktu yang dibutuhkan pada proses penyembunyian dan pengambilan pesan akan semakin besar seiring bertambahnya ukuran file pesan yang disembunyikan dan level bit yang digunakan. Kompleksitas waktu untuk algoritma penyembunyian dan pengambilan pesan adalah O(n). Kualitas stego-image sangat dipengaruhi oleh ukuran file pesan yang disembunyikan, serta level bit yang digunakan. Kualitas stego-image diukur dengan nilai Peak Signal-to-Noise Ratio (PSNR). Semakin besar nilai PSNR, maka stego-image yang dihasilkan akan sulit dibedakan dengan cover-image. Berdasarkan analisis keamanan, penelitian ini cukup aman terhadap serangan pendeteksian secara visual. Hal ini disebabkan steganalis harus mengetahui stego-key, kombinasi nilai pada LCG, iterasi LCG, level bit yang digunakan, serta format pesan yang digunakan. Analisis keamanan diukur dengan pengamatan 30 responden terhadap stego-image dan pembandingan histogram komponen warna RGB. Kata kunci: Steganografi, Least Significant Bit (LSB), Pseudo Random Number Generator (PRNG), Linear Congruential Generator (LCG).
Judul
: Penerapan Steganografi Gambar Pada Least Significant Bit (LSB) Dengan Pengunaan PRNG (Pseudo Random Number Generator) Nama : Irena Susanti NRP : G64103026
Menyetujui, Pembimbing I,
Pembimbing II,
Dr. Sugi Guritman NIP 131 999 582
Shelvie Nidya N, S.Kom., M.Si. NIP 132 311 916
Mengetahui, Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Prof. Dr. Ir. Yonny Koesmaryono, MS. NIP 131 473 999
Tanggal Lulus:
iii
RIWAYAT HIDUP Penulis dilahirkan di Palembang pada tanggal 3 Oktober 1985 dari pasangan Ir. M. Waladi Isnan dan Dra. Maria Sudjana. Penulis merupakan putri kedua dari dua bersaudara. Tahun 2003 penulis lulus dari SMU Negeri 1 Bogor. Pada tahun yang sama penulis diterima di Program Studi Ilmu Komputer, Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor melalui jalur Ujian Seleksi Masuk IPB (USMI). Pada tahun 2006, penulis pernah melakukan kegiatan praktik lapangan selama dua bulan di Kantor Sub Direktorat Informasi dan Konservasi Alam di Bogor.
iv
PRAKATA Alhamdulillahi Rabbil ‘alamin, puji dan syukur penulis panjatkan kepada Allah SWT atas segala rahmat dan karunia-Nya, sehingga penelitian ini berhasil diselesaikan. Tema yang dipilih dalam penelitian ini ialah information hiding, dengan judul Penerapan Steganografi Gambar Pada Least Significant Bit (LSB) Dengan Pengunaan PRNG (Pseudo Random Number Generator). Penulis menyadari bahwa keberhasilan penulisan karya ilmiah ini tidak terlepas dari pihakpihak yang telah banyak membantu. Oleh karena itu penulis ingin mengucapkan terima kasih kepada: 1
Papa, Mama, dan Teteh yang selalu mendoakan dengan tulus, memberikan dukungan dan nasihat, sehingga pada akhirnya dapat memberikan hasil yang terbaik.
2
Bapak Dr. Sugi Guritman sebagai dosen Pembimbing I dan Ibu Shelvie Nidya Neyman S.Kom, M.Si. sebagai Pembimbing II yang telah memberikan saran dan bimbingan selama penelitian dan penulisan karya ilmiah ini.
3
Ibu Dr. Ir. Sri Nurdiati, M.Sc. selaku moderator dan penguji penulis yang telah memberikan masukan kepada penulis.
4
Pak Rinaldi Munir atas kesediaannya menjawab e-mail pada saat penulis mengalami kebingungan.
5
Amel, Linda, dan Jemi, teman satu bimbingan dan seperjuangan yang selalu memberi semangat, bantuan, dan saran pada saat melewati masa–masa sulit.
6
Marisa, Dwi Annisanur, dan Gananda Ilkom ‘41 atas kesediaannya menjadi pembahas dalam seminar.
7
Amel, Linda, Anti, dan Eno yang telah bersama-sama semenjak menginjakkan kaki di Ilkom dan selalu menjadi sahabat terbaik.
8
Ilkomers ’40 atas segala dukungan, kebersamaan dan persahabatan yang selama ini diberikan.
9
Seluruh staf dan karyawan Departemen Ilmu Komputer, serta pihak lain yang telah membantu dalam penyelesaian penelitian ini.
10 Seluruh civitas akademika Departemen Ilmu Komputer IPB yang tidak dapat disebutkan satu persatu. Penulis menyadari bahwa masih banyak kekurangan dalam penelitian ini. Oleh karena itu, kritik dan saran yang membangun sangat penulis harapkan demi perbaikan di masa mendatang. Segala kesempurnaan hanya milik Allah SWT, semoga hasil penelitian ini dapat bermanfaat. Amin.
Bogor, Juli 2007
Irena Susanti
v
DAFTAR ISI Halaman DAFTAR TABEL...............................................................................................................................vi DAFTAR GAMBAR ..........................................................................................................................vi DAFTAR LAMPIRAN.......................................................................................................................vi PENDAHULUAN Latar Belakang ................................................................................................................................1 Tujuan Penelitian.............................................................................................................................1 Ruang Lingkup Penelitian...............................................................................................................1 Manfaat Penelitian...........................................................................................................................1 TINJAUAN PUSTAKA Steganografi.....................................................................................................................................2 Kriptografi .......................................................................................................................................3 Istilah–istilah dalam steganografi (Pfitzmann 1996)......................................................................3 Cover-image ..............................................................................................................................3 Embedded-image.......................................................................................................................3 Stego-image ...............................................................................................................................3 Stego-key....................................................................................................................................3 Steganalisis................................................................................................................................3 Model Warna RGB (Red Green Blue)............................................................................................3 Least Significant Bit (LSB) .............................................................................................................3 Pseudo Random Number Generator (PRNG) ................................................................................3 Linear Congruential Generator (LCG) ..........................................................................................3 Peak Signal-to-Noise Ratio (PSNR) ...............................................................................................4 METODE PENELITIAN Studi Pustaka ...................................................................................................................................4 Penentuan Masalah..........................................................................................................................5 Penentuan Tujuan dan Batasan .......................................................................................................5 Implementasi ...................................................................................................................................5 Analisis Hasil Implementasi ...........................................................................................................6 Kesimpulan......................................................................................................................................6 HASIL DAN PEMBAHASAN Analisis Algoritma PRNG ..............................................................................................................6 Analisis Ukuran Pesan ....................................................................................................................7 Analisis Stego-key ...........................................................................................................................7 Analisis Penyembunyian Pesan ......................................................................................................8 Analisis Waktu Penyembunyian Pesan ..........................................................................................9 Analisis Pengambilan Pesan .........................................................................................................10 Analisis Waktu Pengambilan Pesan .............................................................................................11 Analisis Kualitas ...........................................................................................................................12 Analisis Keamanan........................................................................................................................12 KESIMPULAN DAN SARAN Kesimpulan....................................................................................................................................15 Saran ..............................................................................................................................................15 DAFTAR PUSTAKA ........................................................................................................................15 LAMPIRAN .......................................................................................................................................16
vi
DAFTAR TABEL Halaman 1 2 3 4 5 6 7
Konstanta a, b, dan m yang dapat digunakan...............................................................................7 Ukuran pesan maksimum yang dapat disembunyikan dalam cover............................................7 Stego-key .......................................................................................................................................8 Hasil analisis waktu penyembunyian pesan (detik) ...................................................................10 Hasil analisis waktu pengambilan pesan (detik) ........................................................................11 Hasil analisis kualitas stego-image (dB) ....................................................................................12 Hasil kuisioner untuk analisis keamanan ...................................................................................13
DAFTAR GAMBAR Halaman 1 2 3 4 5 6 7 8 9 10 11 12 13
Implementasi steganografi (Johnson & Jajodia 1998).................................................................2 Diagram proses steganografi (Pfitzmann 1996)...........................................................................2 Least Significant Bit (LSB)...........................................................................................................3 Tahapan pengembangan sistem. ...................................................................................................4 Diagram alir penyembunyian pesan. ............................................................................................5 Diagram alir pengambilan pesan. .................................................................................................5 Informasi header...........................................................................................................................9 Grafik waktu penyembunyian pesan. .........................................................................................10 Grafik waktu pengambilan pesan. ..............................................................................................12 Grafik hasil kuisioner untuk analisis keamanan.........................................................................13 Histogram cover-image dan stego-image pada warna Red (R). ................................................14 Histogram cover-image dan stego-image pada warna Green (G). ............................................14 Histogram cover-image dan stego-image pada warna Blue (B). ..............................................14
DAFTAR LAMPIRAN Halaman 1 2 3 4 5
Perhitungan kompleksitas waktu algoritma penyembunyian pesan ..........................................17 Cover-image dan pesan...............................................................................................................18 Contoh hasil stego-image ...........................................................................................................20 Perhitungan kompleksitas waktu algoritma pengambilan pesan ...............................................22 Kuisioner analisis keamanan ......................................................................................................23
1 PENDAHULUAN Latar Belakang Jaringan komputer dan internet telah mengalami perkembangan pesat. Teknologi ini mampu menghubungkan hampir semua komputer yang ada di dunia, sehingga bisa saling berkomunikasi dan bertukar informasi. Bentuk informasi yang dapat ditukar berupa teks, gambar, video, dan audio. Perkembangan tersebut turut mempengaruhi cara berkomunikasi. Sebelum ada komputer, manusia mengirimkan pesan melalui pos. Setelah adanya teknologi internet, banyak layanan email di internet yang dapat mengirimkan pesan secara langsung ke penerimanya. Akan tetapi sebagai suatu jaringan publik, internet rentan terhadap pencurian data. Kebutuhan untuk melindungi data dan informasi lainnya yang tersimpan dalam komputer menjadi hal yang utama. Ada beberapa cara agar informasi tidak dapat diketahui orang lain, yaitu dengan cara menyembunyikan informasi (information hiding) dan kriptografi. Kriptografi merupakan salah satu teknik untuk menjaga kerahasiaan pesan, namun pesan yang dirahasiakan dapat menimbulkan kecurigaan. Hal ini disebabkan pesan yang dirahasiakan jelas keberadaannya akan tetapi tidak bisa terbaca oleh pihak yang tidak diinginkan. Information hiding memiliki tujuan yang berbeda dengan kriptografi. Pesan yang dirahasiakan tidak menimbulkan kecurigaan. Hal ini disebabkan pesan yang dirahasiakan disimpan dalam suatu media. Ada beberapa cabang information hiding, yaitu covert channels, steganografi, anonymity, dan copyright marking. Steganografi merupakan cabang dari information hiding yang sering digunakan. Steganografi adalah ilmu untuk menyembunyikan informasi yang merupakan cara untuk mencegah pendeteksian pesan tersembunyi (Johnson & Jajodia 1998). Steganografi sudah dikenal sejak ratusan tahun lalu dengan tujuan untuk mengirimkan informasi tanpa diketahui orang lain. Salah satu penggunaan steganografi berkaitan dengan sejarah Yunani dicatat oleh sejarahwan Herodotus. Penguasa Yunani Histiaeus mengirim pesan rahasia kepada saudara iparnya Aristogarus di Miletus dengan menggunakan kepala prajurit sebagai media. Dalam hal ini, rambut prajurit dibotaki, lalu pesan rahasia
ditulis pada kepala prajurit. Ketika rambut prajurit tumbuh, prajurit tersebut diutus untuk membawa pesan rahasia dibalik rambutnya. Seiring dengan perkembangan teknologi terutama teknologi komputasi, steganografi juga merambah ke media dijital. Steganografi dijital membutuhkan dua media, yaitu cover-media dan embeddedmedia. Cover-media adalah tempat untuk menyembunyikan sesuatu yang dirahasiakan. Embedded-media adalah data atau sesuatu yang disembunyikan. Hasil dari proses penyisipan ini adalah stego-media. Ada beberapa teknik pada sistem steganografi, salah satunya yaitu sistem substitusi pada Least Significant Bit (LSB). Metode substitusi LSB ini telah banyak digunakan. Hal ini disebabkan metode ini cepat dan mudah diimplementasikan. Proses penyembunyian pesan dapat menggunakan kunci rahasia (stego-key). Dengan kunci rahasia walaupun pesan rahasia diketahui keberadaannya, akan tetapi isi dari pesan yang disembunyikan tidak dapat diketahui. Tujuan Penelitian Penelitian ini bertujuan menerapkan penggunaan steganografi pada gambar dengan Pseudo Random Number Generator (PRNG), menganalisis kemampuan PRNG dalam penyembunyian pesan, menganalisis kualitas dan keamanan gambar setelah dilakukan penyembunyian pesan, dan pesan yang telah disembunyikan mampu didapatkan kembali. Ruang Lingkup Penelitian Penelitian ini hanya dibatasi pada pesan gambar dengan cover-media berupa gambar tiga warna (RGB) 24-bit dengan format lossless compression dengan tipe PNG dan pesan yang disembunyikan dalam format JPEG, metode substitusi pada LSB dilakukan dengan Pseudo Random Number Generator (PRNG), steganografi gambar dilakukan secara dijital, dan stego-media harus memenuhi kriteria fidelity dan recovery. Manfaat Penelitian Manfaat penelitian ini antara lain: • dapat melakukan penyembunyian informasi, sehingga data atau pesan yang dianggap penting tidak mudah diketahui oleh orang yang tidak berkepentingan,
2 • dapat mengurangi kemungkinan pesan yang disembunyikan terdeteksi karena pesan akan disembunyikan pada posisi acak, • mengetahui kemampuan PRNG dalam penyembunyian pesan, dan • mengetahui kualitas dan keamanan gambar setelah dilakukan penyembunyian pesan. TINJAUAN PUSTAKA Steganografi Kata steganografi berasal dari bahasa Yunani, yaitu stegos dan graphia yang berarti tulisan tersembunyi (covered writing). Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia (hiding message) sedemikian sehingga keberadaan pesan tidak terdeteksi oleh manusia (Munir 2006). Tujuan dari steganografi adalah menyembunyikan informasi yang tidak ingin diketahui oleh pihak lain ke dalam suatu media yang dapat mengalihkan perhatian atau tidak mencurigakan pihak lain. Metode steganografi dijital menggunakan carrier multimedia digital (audio, video, atau gambar) sebagai covermedia. Nama dari cover-media, embeddedmedia, dan stego-media tegantung dari tipe media yang digunakan. Misalnya untuk tipe media gambar, maka harus terdapat coverimage, dan embedded-image pada proses penyisipan, juga stego-image sebagai hasil dari penyisipan. Steganografi memanfaatkan daerah data yang tidak terpakai atau redundan pada cover-media. Steganografi harus memenuhi dua prinsip, yaitu digital multimedia carrier dapat diubah sampai pada titik tertentu tanpa kehilangan functionality, dan tidak terdeteksi oleh penglihatan manusia (Johnson et al. 2001). Proses penyembunyian informasi dalam sistem steganografi dimulai dengan mengidentifikasi bit yang redundan pada cover-media. Proses penyisipan menghasilkan stego-media dengan mengganti bit-bit yang redundan dengan data dari pesan yang akan disembunyikan. Terdapat tiga metode penyembunyian pesan dalam gambar, yaitu Least Significant Bit Insertion, Filtering and Masking, dan Algorithms and Transformation. Dalam penyembunyian informasi ada beberapa kriteria yang harus diperhatikan, yaitu:
• Fidelity Setelah melakukan penyisipan data rahasia, kualitas gambar cover-image tidak jauh berubah. Hal ini menyebabkan tidak ada yang tahu bahwa di dalam gambar tersebut terdapat data rahasia. • Robustness Data yang disembunyikan harus tahan terhadap manipulasi pada cover-image. Bila pada cover-image dilakukan operasi pengolahan gambar, maka data yang disembunyikan tidak rusak. • Recovery Data yang disembunyikan harus dapat diungkapkan kembali. Karena tujuan dari steganografi adalah data hiding, maka data rahasia dalam cover-image harus dapat diambil kembali untuk digunakan lebih lanjut. Steganografi hanya memerlukan dua kriteria, yaitu fidelity dan recovery. Kriteria robustness hanya dipenuhi oleh copyright marking. Implementasi steganografi digunakan pada masa perang dunia II, terlihat peta markas utama pesawat pembom Soviet yang terambil oleh satelit disembunyikan dalam gambar lukisan berjudul The renoir. Implementasi steganografi dapat dilihat pada Gambar 1.
Gambar
1
Implementasi steganografi (Johnson & Jajodia 1998).
Diagram proses penyisipan dan ekstrasi dapat dilihat pada Gambar 2.
Gambar 2 Diagram proses steganografi (Pfitzmann 1996).
3 Kriptografi Kriptografi berasal dari bahasa Yunani, yaitu Cryptographia. Kriptografi adalah studi teknik matematik yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi asal data (Menezes et al. 1996). Istilah–istilah dalam (Pfitzmann 1996)
terhadap kombinasi warna yang dihasilkan oleh ketiga komponen warna RGB. Bit-bit LSB ini terdapat pada 4 bit akhir dalam 1 byte (8 bit).
steganografi
• Cover-image Cover-image adalah media berupa gambar untuk menyembunyikan informasi agar tidak diketahui oleh pihak lain. • Embedded-image Embedded-image adalah data atau informasi berupa gambar yang akan disembunyikan. • Stego-image Stego-image adalah hasil dari proses penyisipan pesan berupa gambar pada media gambar. • Stego-key Stego-key adalah kunci rahasia yang digunakan dalam menyembunyikan informasi dan juga untuk mendapatkan kembali informasi. • Steganalisis Steganalisis adalah ilmu dan seni untuk mendeteksi pesan tersembunyi menggunakan steganografi. Orang yang menggeluti steganalisis disebut dengan steganalis. Model Warna RGB (Red Green Blue) Model warna RGB merupakan gambar yang tiap pikselnya direpresentasikan oleh kombinasi intensitas tiga buah komponen warna, yaitu Red (R), Green (G), dan Blue (B). Masing-masing komponen tersebut terdiri atas 8 bit. Sebuah warna dalam piksel gambar RGB dapat direpresentasikan dalam tiga byte atau 24-bit. Kombinasi ketiga intensitas warna tersebut dapat menghasilkan 16 juta (224 = 16.777.216) variasi warna (Curran & Bailey 2003). Least Significant Bit (LSB) LSB adalah bit-bit yang jika diubah tidak akan berpengaruh secara nyata
Gambar 3 Least Significant Bit (LSB). Pada Gambar 3 terlihat bit-bit LSB pada 1 piksel warna, penanaman informasi dapat dilakukan pada bit-bit tersebut. Contoh: Data awal, tiga piksel dari gambar 24-bit (00100111 11101001 11001000) (00100111 11001000 11101001) (11001000 00100111 11101001) Nilai biner dari karakter ‘A’ adalah 10000011. Data setelah penanaman karakter ‘A’ (00100111 11101000 11001000) → 100 (00100110 11001000 11101000) → 000 (11001001 00100111 11101001) → 11, hanya bit-bit yang digarisbawahi yang mengalami perubahan (Johnson & Jajodia 1998). Pseudo Random Number Generator (PRNG) Pseudo Random Number Generator adalah algoritma yang membangkitkan deretan bilangan yang tidak benar-benar acak. Bilangan acak dihasilkan dengan rumus-rumus matematika dan dapat berulang kembali secara periodik. Bilangan acak banyak digunakan di dalam kriptografi, misalnya untuk pembangkitan elemenelemen kunci, pembangkitan initialization vector (IV), pembangkitan parameter kunci di dalam sistem kriptografi kunci publik, dan sebagainya. Beberapa algoritma PRNG yang sering digunakan di antaranya Linear Congruential Generator (LCG), Lagged Fibonacci Generator, Linear Feedback Shift Register (LFSR), Blum Blum Shub, Fortuna, dan Mersenne Twister (Munir 2006). Linear Congruential Generator (LCG) Linear Congruential Generator (LCG) adalah salah satu pembangkit bilangan acak tertua dan sangat terkenal. LCG didefinisikan dalam bentuk:
4 Xn = (aXn – 1 + b) mod m yang dalam hal ini, Xn = bilangan acak ke-n dari deretnya Xn – 1 = bilangan acak sebelumnya a = faktor pengali b = increment m = modulus (a, b, dan m semuanya konstanta) Kunci pembangkit adalah X0 yang disebut umpan (seed). LCG mempunyai periode tidak lebih besar dari m. LCG mempunyai periode penuh (m – 1) jika memenuhi syarat berikut: 1 b relatif prima terhadap m. 2 a – 1 dapat dibagi dengan semua faktor prima dari m. 3 a – 1 adalah kelipatan 4 jika m adalah kelipatan 4. 4 m > maks(a, b, X0). 5 a > 0, b > 0. Keunggulan dari LCG adalah cepat dan hanya membutuhkan sedikit operasi bit. Akan tetapi, LCG tidak dapat digunakan untuk kriptografi karena bilangan acaknya dapat diprediksi urutan kemunculannya (Munir 2006). Peak Signal-to-Noise Ratio (PSNR) Pengukuran kinerja dari algoritma kompresi dibutuhkan untuk mengukur distorsi yang terjadi antara gambar asli dan gambar yang mengandung pesan. Ada dua perhitungan yang dapat dilakukan untuk mengukur distorsi, yaitu Mean Squared Error (MSE) dan Peak Signal-to-Noise Ratio (PSNR). Mean Squared Error (MSE) adalah akar kumulatif nilai error antara gambar yang mengandung pesan dan gambar asli. Persamaan MSE diberikan sebagai berikut:
perbedaan piksel antara gambar asli dan gambar yang mengandung pesan. PSNR dinyatakan dalam desibel (dB). Persamaan PSNR dirumuskan sebagai berikut: yang dalam hal ini, MAXI = nilai piksel maksimum dari gambar asli (untuk gambar 8 bit nilai MAXI adalah 255), Untuk gambar RGB nilai MSE adalah jumlah total MSE untuk R, G, dan B dibagi tiga (Mulopulos et al. 2003). Pada umumnya, pemrosesan gambar dapat diterima oleh mata manusia jika nilai PSNR lebih besar dari 30 dB. Semakin besar PSNR, maka semakin baik kualitas gambar yang dihasilkan (Manaf & Zeki 2006). METODE PENELITIAN Penelitian ini merupakan pengembangan dari penelitian yang dilakukan oleh Sentosa (2005). Pada penelitian sebelumnya penyembunyian pesan dilakukan dengan LSB insertion, dalam hal ini pesan yang akan disembunyikan berada pada posisi yang berurutan. Tahapan Pengembangan Sistem Sistem ini dibangun dengan tahapan– tahapan yang dapat dilihat pada Gambar 4.
yang dalam hal ini, m dan n = dimensi dari gambar I(i,j) = piksel dari gambar asli K(i,j)= piksel dari gambar yang mengandung pesan Peak Signal-to-Noise Ratio (PSNR) sangat berkaitan erat dengan MSE. Hubungan antara MSE dan PSNR berbanding terbalik. Semakin kecil nilai MSE berarti nilai eror semakin kecil. Semakin tinggi nilai PSNR berarti semakin bagus karena rasio Signal-to-Noise akan semakin tinggi. PSNR adalah ukuran kesamaan gambar dengan mengukur
Gambar 4 Tahapan pengembangan sistem. Studi Pustaka Tahapan ini dilakukan dengan mengumpulkan referensi informasi dari berbagai sumber. Informasi yang didapatkan tidak semuanya dapat menjadi rujukan. Oleh karena itu, pada tahap ini juga dilakukan
5 pemilihan informasi yang cukup akurat. Informasi yang dijadikan referensi dalam penulisan adalah informasi yang berhubungan dengan steganografi dan metode Pseudo Random Number Generator (PRNG). Penentuan Masalah Setelah mendapatkan rujukan yang cukup akurat dari berbagai sumber maka dilakukan penentuan masalah. Permasalahan yang akan diteliti dalam penelitian ini, yaitu bagaimana melakukan penyembunyian informasi sehingga keberadaan pesan tidak dapat diketahui pihak yang tidak berkepentingan, bagaimana mengurangi kemungkinan pesan terdeteksi, bagaimana penggunaan PRNG dalam memperkuat teknik penyembunyian data, serta bagaimana kualitas dan keamanan setelah dilakukan penyembunyian pesan. Penentuan Tujuan dan Batasan Pada tahap ini akan dilakukan penentuan tujuan yang ingin dicapai serta batasanbatasannya. Adapun tujuan yang ingin dicapai pada penelitian ini, yaitu penerapan PRNG pada steganografi gambar, analisis kemampuan PRNG dalam penyembunyian pesan gambar, analisis keamanan dan kualitas gambar hasil penyembunyian pesan. Adapun kebutuhan dalam penelitian ini, yaitu menyiapkan pesan yang akan disembunyikan format JPEG, kunci, dan cover-image dalam format lossless compression dengan tipe PNG. Ukuran dari pesan yang akan disembunyikan harus lebih kecil daripada ukuran cover-image. Kemudian ukuran stego-image yang dihasilkan haruslah tidak jauh berbeda dengan ukuran cover-image, sehingga tidak menimbulkan kecurigaan. Stego-image yang dihasilkan dalam format lossless compression dengan tipe PNG harus dapat dilakukan pengungkapan kembali. Implementasi Ada beberapa proses yang dilakukan dalam penerapan steganografi pada gambar. Proses–proses tersebut adalah proses penyembunyian pesan, dan proses pengambilan pesan. Diagram alir penyembunyian pesan dapat dilihat pada Gambar 5.
Gambar 5 Diagram alir penyembunyian pesan. Diagram alir pengambilan pesan dapat dilihat pada Gambar 6.
Gambar 6 Diagram alir pengambilan pesan. Pada tahap ini juga akan dilakukan implementasi terhadap perangkat keras dan perangkat lunak. Perangkat keras yang akan digunakan memiliki spesifikasi: • prosesor AMD Athlon XP 2400+ 2.0 GHz, • RAM dengan kapasitas 768 MB, • harddisk dengan kapasitas 80 GB, • monitor VGA dengan resolusi 1024x768 piksel, • mouse dan keyboard. Perangkat lunak yang akan digunakan memiliki spesifikasi:
6 • • • • •
sistem operasi: Microsoft® Windows XP Professional 2002 SP1, web server: Apache 2.0.53, web editor: Macromedia Dreamweaver MX 2004, bahasa pemrograman web: PHP 5.0.4, dan web browser: Microsoft® Internet Explorer 6.
Analisis Hasil Implementasi Hasil implementasi kemudian dianalisis, diuji dan dievaluasi, yang hasilnya dibandingkan dengan hasil analisis yang diharapkan. Hal-hal yang dianalisis antara lain: • Analisis algoritma PRNG Hal–hal yang dilakukan pada tahap ini adalah penentuan algoritma PRNG yang sesuai dan penentuan faktor yang mempengaruhi algoritma LCG. • Analisis ukuran pesan Tahap ini menganalisis ukuran pesan maksimal yang dapat disembunyikan pada cover-image. Ukuran pesan yang dapat disembunyikan bergantung pada ukuran cover-image serta banyaknya level bit yang digunakan. • Analisis stego-key yang digunakan Tahap ini berperan penting dalam penentuan posisi piksel serta level bit yang digunakan. • Analisis penyembunyian pesan Hal–hal yang dilakukan pada tahap ini adalah analisis algoritma penyembunyian pesan dan analisis waktu penyembunyian pesan. • Analisis pengambilan pesan Hal–hal yang dilakukan pada tahap ini adalah analisis algoritma pengambilan pesan dan analisis waktu pengambilan pesan. • Analisis kualitas Proses analisis kualitas meliputi perbandingan kualitas cover-image sebelum dan sesudah disembunyikan pesan, yaitu dengan menghitung nilai PSNR. Nilai PSNR ini berguna untuk mengetahui kesamaan piksel antara stego-image dan cover-image. • Analisis keamanan Proses analisis keamanan dilakukan terhadap serangan pendeteksian secara visual. Steganalis akan berusaha membandingkan stego-image dan cover-image, baik secara kasat mata maupun membandingkan histogram
RGB keduanya. Pada penelitian ini dibutuhkan 30 responden untuk menilai keberhasilan penelitian. Kesimpulan Setelah mendapatkan hasil dari analisis pada tahap sebelumnya, akan didapatkan beberapa kesimpulan. Kesimpulan yang diperoleh mengenai penerapan metode PRNG, hasil analisis kualitas, dan hasil analisis keamanan pada metode PRNG. HASIL DAN PEMBAHASAN Analisis Algoritma PRNG Metode steganografi yang digunakan pada penelitian ini adalah metode substitusi pada Least Significant Bit (LSB). Substitusi LSB yang dilakukan berbeda dengan substitusi pada umumnya. Substitusi LSB pada penelitian ini menggunakan modifikasi pada posisi piksel. Posisi piksel pesan yang akan disembunyikan berada pada posisi acak. Posisi acak ini akan dibangkitkan oleh PRNG. Hal ini dilakukan untuk memperkuat teknik penyembunyian data, sehingga pesan akan lebih sulit dicari. Algoritma PRNG yang sering digunakan di antaranya Linear Congruential Generator (LCG), Lagged Fibonacci Generator, Linear Feedback Shift Register (LFSR), Blum Blum Shub, Fortuna, dan Mersenne Twister. Penelitian ini membutuhkan pembangkitan posisi piksel yang tidak akan berulang pada suatu periode. Algoritma LFSR pernah dipergunakan dalam penelitian ini sebelum menggunakan algoritma LCG. Akan tetapi, LFSR hanya membangkitkan deretan bit secara acak, apabila dikonversi ke dalam desimal akan terjadi perulangan posisi. Alasan lainnya adalah waktu pembangkitan PRNG yang didapatkan cukup lama. Algoritma yang dipilih berikutnya adalah algoritma LCG. Algoritma LCG ini dapat menghasilkan deretan bilangan acak dengan waktu yang cepat. Hal ini disebabkan LCG hanya membutuhkan sedikit operasi bit. Penentuan nilai a, b, dan m pada algoritma LCG sangat mempengaruhi pembangkitan posisi piksel. Apabila nilai yang dipilih tidak memenuhi persyaratan maka terdapat kemungkinan posisi piksel akan berulang sebelum periode m-1. Pada penelitian ini, konstanta yang digunakan, yaitu nilai a = 5.521, b = 33.787, m = 307.200. Pemilihan konstanta a, b, dan m ini
7 berdasarkan percobaan terhadap beberapa nilai, selain itu juga harus memenuhi kondisi-kondisi berikut: •
Nilai a-1 yang dipilih adalah kelipatan dari faktor prima dari m dan harus memenuhi 0 ≤ a-1 < m, dan • Nilai a-1 yang dipilih adalah kelipatan 4 dari faktor prima dari m dan harus memenuhi 0 ≤ a-1 < m. Konstanta a, b, dan m yang telah dipilih, kemudian dilakukan pemeriksaan terhadap persyaratan LCG. Langkah-langkah pemeriksaan untuk memenuhi syarat LCG, yaitu: 1 b relatif prima terhadap m, yaitu gcd (33.787, 307.200)=1 atau x(b)+y(m)=1 Penjelasan: -28.877(33.787)+3.176(307.200)=1. 2 a – 1 dapat dibagi dengan semua faktor prima dari m. Penjelasan: (5.521-1) dapat dibagi dengan 2, 3, 5. 3 a – 1 adalah kelipatan 4 jika m adalah kelipatan 4. Penjelasan: 307.200 dapat dibagi 4, (5.521-1) dapat dibagi 4. 4 m > maks(a, b, X0). Penjelasan: 307.200 >maks (5.521, 33.787, X0). 5 a > 0, b > 0. Penjelasan: 5.521 > 0, 33.787 >0. Selain harus memenuhi persyaratan LCG, nilai a, b, dan m yang digunakan juga harus dapat melakukan pengungkapan kembali. Hal ini berkaitan dengan tujuan steganografi, yaitu recovery. Konstanta a, b, dan m yang dapat digunakan dapat dilihat pada Tabel 1. Tabel 1 Konstanta a, b, dan m yang dapat digunakan a 1.561 5.521 5.521 2.761 6.841
b 33.787 33.787 53.971 53.971 53.971
m 307.200 307.200 307.200 307.200 307.200
Nilai–nilai pada Tabel 1 telah diperiksa, sehingga nilai–nilai tersebut dapat digunakan pada algoritma LCG. Penentuan kompleksitas waktu algoritma PRNG adalah sebagai berikut:
[1] for i←j to n [2] nilailcg[i] = ((a * nilailcg[i-1]) + b) mod totalpix Kompleksitas waktu dari algoritma PRNG sangat ditentukan oleh baris [1]. Baris [1] merupakan proses untuk mendapatkan posisi piksel. Baris [1] ini akan dieksekusi sebanyak n dengan n merupakan panjang bit pesan yang akan disembunyikan. Algoritma PRNG akan dimulai pada iterasi ke-j. Proses mendapatkan posisi piksel ini berlangsung sebanyak n kali, sehingga algoritma tersebut memiliki kompleksitas waktu O(n). Analisis Ukuran Pesan Proses penyembunyian pesan dapat dilakukan apabila ukuran pesan lebih kecil daripada ukuran cover-image. Penyembunyian pesan tidak hanya dilakukan pada 1 bit LSB, tetapi dapat dilakukan penyembunyian pesan pada 2, 3, dan 4 LSB. Kemudian akan disebut Level 1, Level 2, Level 3, dan Level 4. Penggunaan level bit ini diperlukan apabila ingin meningkatkan kapasitas penyembunyian pesan. Adapun perumusan ukuran pesan yang dapat disembunyikan sebagai berikut. Ukuran pesan (bytes) =[((Panjang cover * Lebar cover ) –55)* level*3] / 8 Berdasarkan perumusan tersebut, ukuran pesan maksimum yang dapat disembunyikan dalam cover dengan dimensi 640 x 480 piksel, dapat dilihat pada Tabel 2. Tabel 2 Ukuran pesan maksimum yang dapat disembunyikan dalam cover Level Dimensi File Cover (640 x 480 piksel) 1 115.179 bytes 2 230.358 bytes 3 345.538 bytes 4 460.717 bytes Pada Tabel 2 dapat dilihat bahwa level bit merupakan salah satu faktor penting dalam meningkatkan kapasitas penyembunyian pesan. Semakin besar level bit yang digunakan maka akan semakin besar ukuran file pesan yang dapat disimpan. Analisis Stego-key Stego-key yang digunakan selain berfungsi sebagai initial value pada
8 algoritma PRNG, juga berfungsi untuk menentukan level bit yang akan disembunyikan. Informasi stego-key yang digunakan dalam penelitian ini dapat dilihat pada Tabel 3. Tabel 3 Stego-key Stego-key (Kunci) ilkomers infohide komputer embedded kualitas pixel steganog password
Initial Value 145691 113686 218531 249594 38155 83955 42812 84334
g.
Level Bit 1 1 2 2 3 3 4 4
2.
3. 4.
Pada Tabel 3, terdapat 8 stego-key yang digunakan. Stego-key yang dimasukkan pada awalnya dalam bentuk karakter. Kemudian dikonversi ke dalam bentuk binary, yang selanjutnya akan dilakukan padding hingga panjang bit merupakan kelipatan dari: nilaiblok = ⎣log2 total piksel⎦. Berikutnya akan dibagi menjadi blok-blok, dengan panjang bit pada tiap bloknya adalah nilaiblok. Setelah pembagian blok, selanjutnya akan dilakukan operasi XOR pada blok. Hasil dari operasi XOR ini merupakan initial value. Berdasarkan initial value yang dihasilkan, akan didapat level bit yang akan digunakan dan posisi–posisi piksel berikutnya. Analisis Penyembunyian Pesan Algoritma Penyembunyian Pesan Input: Cover-image M1, Pesan M2, Kunci K Output: Stego-image S 1. Dari kunci K, didapatkan initial value yang akan digunakan dalam pembangkitan PRNG a. Konversi nilai ASCII dari kunci K ke binary b. Lakukan Padding, sehingga panjang bit kelipatan nilaiblok=floor(log2 totalpix); c. Simpan nilai binary bit hasil konversi ke dalam temp d. Bagi bit-bit kunci ke dalam blok–blok dengan panjang = nilaiblok e. Lakukan operasi XOR pada blokblok yang telah dibagi f. Hasil akhir operasi XOR diubah ke dalam bentuk desimal(result)
5.
Initial value untuk LCG = result h. Iterasilcg ← M2*8/3 level ← “ ” i. for i←0 to strlen(result) jika result[i]=1 level←1; jika result[i]=2 level←2; jika result[i]=3 level←3; jika result[i]=4 level←4; selainnya result [i+1]; j. jika level = “ ” dan i>= strlen(result) level←1; Definisikan header yang terdiri atas boundary, level, iterasilcg, dan nama file pesan Ambil isi file pesan dan simpan pada temporary data (tempData) Sisipkan header pada 55 posisi pertama. posisi[0] ← result for p←0 to 54 posisi[p+1]←((a * posisi[p]) + b) mod totalpix Sisipkan header pada 1 LSB untuk posisi ke-p Nilai awal untuk LCG ← posisi[54] Jika level=1 for p←55 to ceil(iterasilcg) posisi[p] ← ((a * posisi[p1]) + b) mod totalpix Sisipkan pesan pada 1 LSB untuk posisi ke-p Jika level=2 for p←55 to ceil(iterasilcg) posisi[p] ← ((a * posisi[p1]) + b) mod totalpix Sisipkan pesan pada 2 LSB untuk posisi ke-p Jika level = 3 for p←55 to ceil(iterasilcg) posisi[p] ← ((a * posisi[p1]) + b) mod totalpix Sisipkan pesan pada 3 LSB untuk posisi ke-p Jika level = 4 for p←55 to ceil(iterasilcg) posisi[p] ← ((a * posisi[p1]) + b) mod totalpix Sisipkan pesan pada 4 LSB untuk posisi ke-p Simpan hasil penyembunyian pesan pada S dengan format sama dengan M1
Langkah awal dari algoritma penyembunyian pesan ini yaitu mendapatkan initial value, sehingga dapat ditentukan level bit yang digunakan. Kemudian akan dilakukan pembangkitan algoritma PRNG. Dari pembangkitan algoritma PRNG ini akan didapatkan posisi piksel. Langkah selanjutnya, yaitu pendefinisian header. Header terdiri atas boundary, level, iterasi pada LCG dan nama file pesan. Informasi header dapat dilihat pada Gambar 7.
9
Gambar 7 Informasi header. yang dalam hal ini, = level, yang memiliki panjang 8 bit, = boundary, yang masing-masing memiliki panjang 8 bit, = iterasi LCG, yang memiliki panjang maksimal 48 bit, = nama file pesan, yang memiliki panjang maksimal 10 karakter atau 80 bit. Total bit yang akan disisipkan pada header adalah 160. Tiap piksel dapat menyembunyikan pesan sebanyak 3 bit, sehingga banyaknya posisi piksel yang dibutuhkan adalah 160 / 3 = 53,33. Untuk itu dilakukan pembulatan, sehingga posisi piksel yang dibutuhkan sebanyak 55 posisi. Selain itu, pembatasan header ini dilakukan untuk kemudahan dalam proses pengambilan pesan. Setelah proses penyembunyian header, diikuti proses penyembunyian pesan. Proses penyembunyian pesan akan ditentukan oleh level bit. Level 1 membutuhkan 1 bit LSB cover pada proses penyembunyian pesan. Sebagai contoh: ( 10101011 11100100 10110011 ) Level 2 membutuhkan 2 LSB cover pada proses penyembunyian pesan. Sebagai contoh: ( 10101011 11100100 10110011 ) Level 3 membutuhkan 3 LSB cover pada proses penyembunyian pesan. Sebagai contoh: ( 1010 1011 11100100 10110011 ) Level 4 membutuhkan 4 LSB cover pada proses penyembunyian pesan. Sebagai contoh: ( 10101011 11100100 10110011 ) Setelah tidak ada lagi bit pesan yang akan disembunyikan, hasil penyembunyian pesan ini akan disimpan ke dalam format yang sama dengan format file cover. Untuk perhitungan kompleksitas waktu algoritma penyembunyian pesan adalah sebagai berikut: [1] for p←55 to n+55 posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix Kompleksitas algoritma penyembunyian pesan ditentukan oleh baris [1] dan baris [2]. [2]
Baris [1] merupakan proses penyembunyian pesan. Baris [1] ini akan dieksekusi sebanyak n dengan n merupakan panjang bit pesan yang akan disembunyikan. Baris [2] merupakan proses mendapatkan posisi piksel. Baris [2] ini berlangsung sebanyak n kali. Proses lainnya berlangsung satu kali, sehingga algoritma tersebut memiliki kompleksitas waktu O(n). Perhitungan kompleksitas waktu algoritma penyembunyian pesan lebih lengkap dijelaskan pada Lampiran 1. Analisis Waktu Penyembunyian Pesan Analisis waktu penyembunyian pesan akan dipengaruhi proses pembangkitan PRNG oleh algoritma LCG dan berapa lama proses penyembunyian pesan itu sendiri. Proses penyembunyian pesan itu sendiri sangat dipengaruhi oleh ukuran file pesan yang akan disembunyikan. Di sisi lain pada algoritma LCG, beberapa faktor yang dapat mempengaruhi waktu penyembunyian pesan adalah nilai a (faktor pengali), b (increment), dan m (banyaknya piksel cover). Untuk ukuran file gambar sebagai cover dalam percobaan ini digunakan file gambar format PNG dengan dimensi 640 x 480 piksel. Pesan yang akan dibandingkan waktu proses penyembunyiannya adalah 10 file gambar format JPEG. Informasi mengenai file cover-image dan pesan gambar dapat dilihat pada Lampiran 2. Hasil analisis waktu penyembunyian pesan dapat dilihat pada Tabel 4.
10
Tabel 4 Hasil analisis waktu penyembunyian pesan (detik)
Berdasarkan data pada Tabel 4, terlihat waktu penyembunyian pesan akan semakin membesar seiring bertambahnya ukuran file pesan yang disembunyikan dan level bit yang digunakan. Adapun salah satu hasil penyembunyian pesan dapat dilihat pada Lampiran 3. Untuk lebih jelas waktu penyembunyian pesan dapat dilihat dalam bentuk grafik seperti pada Gambar 8.
a.
Waktu Penyembunyian Pesan 60 ilkomers
Waktu (detik)
50
infohide komputer
40
2.
embedded
30
kualitas pixel
20
steganog
10
password
29 0
7 37 2 44 46 0 80 52 2 94 64 1 35 75 2 67 82 4 77 92 0 75 10 3 47 11 54 00 22
0
Ukuran Pesan (bytes)
Gambar 8 Grafik waktu penyembunyian pesan. Berdasarkan pada Gambar 8, grafik waktu penyembunyian pesan akan semakin naik seiring bertambahnya ukuran file dan level bit yang digunakan. Hal ini membuktikan bahwa ukuran file dan level bit berpengaruh terhadap waktu penyembunyian pesan. Berdasarkan grafik tersebut, dapat dilihat bahwa waktu penyembunyian pesan naik secara linear. Grafik waktu penyembunyian pesan mengalami kenaikan yang hampir sama pada tiap level. Analisis Pengambilan Pesan Algoritma Pengambilan Pesan Input: Kunci K, stego-image S Output: Pesan M2 1. Kunci K akan menghasilkan initial value pada PRNG
3.
Konversi nilai ASCII dari kunci K ke binary b. Lakukan Padding, sehingga panjang bit kelipatan nilaiblok=floor(log2totalpix); c. Simpan nilai binary bit hasil konversi ke dalam temp d. Bagi bit-bit kunci ke dalam blok–blok dengan panjang = nilaiblok e. Lakukan operasi XOR pada blokblok yang telah dibagi f. Hasil akhir operasi XOR diubah ke dalam bentuk desimal(result) g. Initial value untuk LCG = result Untuk mendapatkan jumlah iterasi maka ambil headernya, yaitu 55 posisi pertama posisi[0] ← result a. for p←0 to 54 posisi[p+1]←((a*posisi[p]) + b) mod totalpix pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap header=0; selainnya header=1; b. Dapatkan level, boundary, iterasilcg, dan nama file pesan Nilai awal untuk LCG ← posisi[54] Jika level=1 for p←55 to iterasilcg posisi[p] ← ((a * posisi[p1]) + b) mod totalpix pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap bitpesan=0; selainnya bitpesan=1; Jika level=2 for p←55 to iterasilcg posisi[p] ← ((a * posisi[p1]) + b) mod totalpix
11
4.
pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap bitpesan= nilai indeks warna & 2; selainnya bitpesan= nilai indeks warna & 3; Jika level=3 for p←55 to iterasilcg posisi[p] ← ((a * posisi[p1]) + b) mod totalpix pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap bitpesan= nilai indeks warna & 6; selainnya bitpesan= nilai indeks warna & 7; Jika level=4 for p←55 to iterasilcg posisi[p] ← ((a * posisi[p1]) + b) mod totalpix pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap bitpesan= nilai indeks warna & 14; selainnya bitpesan= nilai indeks warna & 15; Konversi nilai bit ke dalam bentuk ASCII Nilai ASCII akan disimpan dalam bentuk file pesan dengan nama sesuai dengan namafilepesan
Langkah awal pada algoritma pengambilan pesan ini, yaitu mendapatkan header. Header yang diperoleh, akan menghasilkan boundary, level, iterasi lcg,
dan nama file pesan. Level dan iterasi lcg ini akan digunakan untuk proses selanjutnya, yaitu mendapatkan isi pesan. Pada algoritma ini, pemanggilan fungsi LCG dilakukan sebanyak dua kali, yaitu untuk mendapatkan header dan isi pesan. Langkah selanjutnya adalah bit–bit pesan yang didapatkan akan dikonversi ke dalam bentuk ASCII. Kemudian hasilnya akan disimpan sesuai dengan nama file pesan yang terdapat pada header. Untuk perhitungan kompleksitas waktu algoritma pengambilan pesan adalah sebagai berikut: [1] for p←55 to n+55 posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix Kompleksitas algoritma pengambilan pesan ditentukan oleh baris [1] dan baris [2]. Baris [1] merupakan proses pengambilan pesan. Baris [1] ini akan dieksekusi sebanyak n dengan n merupakan panjang bit pesan. Baris [2] merupakan proses mendapatkan posisi piksel. Baris [2] ini berlangsung sebanyak n kali. Proses lainnya berlangsung satu kali, sehingga algoritma tersebut memiliki kompleksitas waktu O(n). Perhitungan kompleksitas waktu algoritma pengambilan pesan lebih lengkap dijelaskan pada Lampiran 4. [2]
Analisis Waktu Pengambilan Pesan Analisis waktu pengambilan pesan akan dipengaruhi proses pembangkitan PRNG oleh algoritma LCG dan berapa lama proses pengambilan pesan itu sendiri. Hasil analisis waktu pengambilan pesan dapat dilihat pada Tabel 5.
Tabel 5 Hasil analisis waktu pengambilan pesan (detik)
Berdasarkan data pada Tabel 5, terlihat waktu pengambilan pesan akan semakin membesar seiring bertambahnya ukuran file pesan yang disembunyikan dan level bit
yang digunakan. Untuk lebih jelas waktu pengambilan pesan dapat dilihat dalam bentuk grafik seperti pada Gambar 9 berikut.
12 naik secara linear, sedangkan pada level 3 dan level 4 grafik waktu naik lebih cepat.
Waktu Pengambilan Pesan
600 ilkomers infohide komputer embedded kualitas pixel steganog password
Waktu (detik)
500 400 300 200 100
29 07 37 2 44 46 0 80 52 2 94 64 1 35 75 2 67 82 4 77 92 0 7 10 53 47 11 54 00 22
0
Ukuran Pesan (bytes)
Gambar 9 Grafik waktu pengambilan pesan. Berdasarkan pada Gambar 9, grafik waktu pengambilan pesan akan semakin naik seiring bertambahnya ukuran file dan level bit yang digunakan. Hal ini membuktikan bahwa ukuran file dan level bit berpengaruh terhadap waktu pengambilan pesan. Grafik waktu pengambilan pesan mengalami kenaikan yang berbeda pada tiap level bit. Waktu pengambilan pesan pada level 1 dan level 2
Analisis Kualitas Proses penyembunyian pesan akan mempengaruhi kualitas gambar. Kriteria yang harus diperhatikan pada information hiding, yaitu fidelity (setelah penyembunyian pesan, cover-image masih terlihat baik), robustness (pesan harus tahan terhadap manipulasi), dan recovery (pesan yang disembunyikan harus dapat diungkapkan kembali). Akan tetapi, pada steganografi hanya kriteria fidelity dan recovery yang diperlukan. Hal ini disebabkan steganografi tidak bertujuan robustness. Karena steganografi lebih bertujuan bagaimana pesan disembunyikan. Pada penelitian ini, untuk melihat perubahan kualitas pesan akan dilakukan dengan menghitung nilai PSNR. Semakin besar nilai PSNR yang didapatkan, maka steganalis semakin tidak mencurigai adanya pesan yang disembunyikan. Hasil analisis kualitas dapat dilihat pada Tabel 6.
Tabel 6 Hasil analisis kualitas stego-image (dB)
Analisis kualitas dapat dikatakan baik apabila kualitas stego-image yang dihasilkan tidak mengalami distorsi yang besar dibandingkan dengan cover-image. Dengan kata lain, stego-image yang dihasilkan sulit untuk dibedakan dengan cover-image. PSNR yang dihasilkan memiliki nilai lebih besar dari 30 dB, sehingga stego-image yang dihasilkan memiliki kualitas yang baik. Berdasarkan data pada Tabel 6, terlihat bahwa kualitas stego-image sangat dipengaruhi oleh besarnya ukuran file pesan, serta level bit yang digunakan. Terbukti bahwa semakin besar ukuran file pesan dan level bit yang digunakan, nilai PSNR akan semakin mengecil.
Analisis Keamanan Penggantian bit–bit yang redundan dapat menimbulkan kecurigaan, sehingga serangan dapat dilakukan untuk mendeteksi adanya data yang disembunyikan. Serangan pada stego-image ini disebut steganalisis. Terdapat dua aspek serangan pada steganografi, yaitu pendeteksian dan penghancuran. Pada penelitian kali ini, analisis keamanan dilakukan terhadap serangan pendeteksian secara visual. Diasumsikan steganalis mempunyai coverimage dan stego-image. Dengan demikian steganalis akan membandingkan kedua gambar tersebut. Selain itu juga steganalis akan mencoba membandingkan histogram dari kedua gambar.
1313 Analisis keamanan akan dilakukan dengan menyebarkan kuisioner kepada 30 responden. Format kuisioner dapat dilihat pada Lampiran 5. Responden terdiri atas 50% mahasiswa Ilmu Komputer dan 50% mahasiswa di luar Ilmu Komputer. Pesan yang digunakan pada kuisioner memiliki ukuran 110.022 bytes, sedangkan coverimage yang digunakan memiliki dimensi 640 x 480 piksel. Pesan yang digunakan adalah pesan dengan ukuran file yang terbesar. Pemilihan pesan ini disebabkan karena semakin besar ukuran file pesan yang digunakan, maka semakin kecil kualitas gambar yang dihasilkan. Hal ini akan cukup mewakili penilaian keberhasilan penelitian ini. Penilaian pada kuisioner dibagi menjadi tiga kriteria, yaitu berbeda, sedikit berbeda, dan tidak berbeda. Kriteria berbeda dapat dipilih apabila responden dapat melihat adanya perubahan warna yang sangat nyata terhadap cover-image. Perubahan warna yang dihasilkan terjadi pada hampir semua bagian gambar. Dengan kata lain, stegoimage yang dihasilkan tampak jauh berbeda dari cover-image. Kriteria sedikit berbeda dapat dipilih apabila responden hanya melihat beberapa perbedaan warna. Perubahan warna yang dihasilkan hanya pada tempat-tempat tertentu saja. Responden hanya melihat sedikit perbedaan pada gambar. Kriteria tidak berbeda dapat dipilih apabila responden tidak melihat adanya perbedaan warna yang dihasilkan. Responden tidak melihat perubahan warna pada seluruh bagian gambar. Hasil kuisioner untuk analisis keamanan dapat dilihat pada Tabel 7. Tabel 7 Hasil kuisioner untuk analisis keamanan
Stego-key ilkomers infohide komputer embedded kualitas pixel steganog password
Berbeda 0 0 0 0 0 0 0 0
Jumlah Sedikit Berbeda 2 2 4 6 6 4 2 2
Tidak Berbeda 28 28 26 24 24 26 28 28
Berdasarkan pada Tabel 7, dapat dilihat hasil kuisioner, yaitu 93% responden berpendapat bahwa stego-image dengan
stego-key “ilkomers” tidak berbeda dengan cover-image, 93% responden berpendapat bahwa stego-image dengan stego-key “infohide” tidak berbeda dengan coverimage, 87% responden berpendapat bahwa stego-image dengan stego-key “komputer” tidak berbeda dengan cover-image, 80% responden berpendapat bahwa stego-image dengan stego-key “embedded” tidak berbeda dengan cover-image, 80% responden berpendapat bahwa stego-image dengan stego-key “kualitas” tidak berbeda dengan cover-image, 87% responden berpendapat bahwa stego-image dengan stego-key “pixel” tidak berbeda dengan cover-image, 93% responden berpendapat bahwa stegoimage dengan stego-key “steganog” tidak berbeda dengan cover-image, 93% responden berpendapat bahwa stego-image dengan stego-key “password” tidak berbeda dengan cover-image. Grafik hasil kuisioner untuk analisis keamanan dapat dilihat pada Gambar 10.
Gambar 10 Grafik hasil kuisioner untuk analisis keamanan. Berdasarkan pada Gambar 10, dapat dilihat secara keseluruhan 88% responden berpendapat bahwa stego-image yang dihasilkan tidak berbeda dengan coverimage dan 12% responden berpendapat bahwa stego-image yang dihasilkan sedikit berbeda dengan cover-image. Berdasarkan hasil kuisioner tersebut, stego-image yang dihasilkan tidak terlalu menimbulkan kecurigaan karena sebagian besar responden tidak menyadari adanya perbedaan antara stego-image dan cover-image. Analisis keamanan berikutnya dilakukan dengan membandingkan histogram komponen warna RGB. Apabila tidak terdapat perbedaan yang nyata di antara histogram cover-image dan stego-image, maka kecil kemungkinan steganalis mencurigai kedua gambar tersebut. Berikut histogram pada cover-image dan stegoimage.
14
Gambar 11 Histogram cover-image dan stego-image pada warna Red (R).
Gambar 12 Histogram cover-image dan stego-image pada warna Green (G).
Gambar 13 Histogram cover-image dan stego-image pada warna Blue (B). Berdasarkan pada Gambar 11, Gambar 12, dan Gambar 13, histogram yang dihasilkan tidak terlalu berbeda. Histogram yang dihasilkan hanya memiliki sedikit perbedaan. Dengan demikian, steganalis tidak terlalu mencurigai kedua gambar tersebut. Penggunaan PRNG pada LSB memiliki tingkat keamanan yang lebih baik dibandingkan metode substitusi LSB tanpa PRNG. Hal ini disebabkan, PRNG dapat memperkuat teknik penyembunyian pesan. Walaupun steganalis mencurigai adanya pesan yang tersembunyi, tetapi akan sulit
untuk mengambil isi pesan. Hal ini disebabkan, steganalis harus mengetahui kunci sebagai initial value pada LCG, kombinasi nilai a, b, dan m pada LCG untuk mengetahui posisi piksel pesan tersembunyi, iterasi LCG yang digunakan untuk mengetahui panjang pesan, LSB level berapa yang digunakan, serta format pesan yang disembunyikan.
15 KESIMPULAN DAN SARAN
4
Untuk meningkatkan kualitas keamanan pada pesan, dapat dilakukan enkripsi terlebih dahulu.
Kesimpulan Dari penelitian yang telah dilakukan, diperoleh beberapa kesimpulan, yaitu: 1 Kompleksitas waktu untuk algoritma PRNG, yaitu O(n). 2 Semakin besar level bit yang digunakan, maka semakin besar ukuran file yang dapat disembunyikan. 3 Waktu yang dibutuhkan pada proses penyembunyian dan pengambilan pesan, akan semakin besar seiring bertambahnya ukuran file pesan yang disembunyikan dan level bit yang digunakan. 4 Kompleksitas waktu untuk algoritma penyembunyian dan pengambilan pesan, yaitu O(n) 5 Nilai PSNR berguna untuk melihat kesamaan piksel antara stego-image dan cover-image. Semakin besar nilai PSNR, maka stego-image yang dihasilkan semakin sulit dibedakan dengan cover-image. Kualitas stegoimage sangat dipengaruhi oleh ukuran file pesan yang disembunyikan, serta level bit yang digunakan. 6 Berdasarkan analisis keamanan, algoritma steganografi pada penelitian ini cukup aman terhadap serangan pendeteksian secara visual. Untuk mendapatkan pesan yang disembunyikan, steganalis harus mengetahui kunci sebagai initial value pada LCG, kombinasi nilai a, b, dan m pada LCG untuk mengetahui posisi piksel pesan tersembunyi, iterasi LCG yang digunakan untuk mengetahui panjang pesan, LSB level berapa yang digunakan, serta format pesan yang disembunyikan.
Manaf AA, Zeki AM. 2006. Watermarking of Digital Images. 1st ENGAGE European-South East Asia ICT Research Collaboration. Malaysia, 29-31 Mar 2006. Malaysia: University Technology Malaysia.
Saran Saran yang dapat diberikan untuk penelitian selanjutnya antara lain: 1 Penelitian dengan algoritma PRNG seperti ini dapat diterapkan pada tipe media lain seperti video, atau audio. 2 Algoritma PRNG yang dapat digunakan tidak hanya LCG, akan tetapi bisa menggunakan algoritma PRNG lainnya. 3 Dapat menerapkan algoritma PRNG pada metode lainya, yaitu Filtering and Masking, dan Algorithms and Transformation.
Sentosa H. 2005. Penyembunyian Informasi Terenkripsi dalam Media Gambar dengan Metode Least Significant Bit (LSB) Insertion. [Skripsi]. Bogor: Departemen Ilmu Komputer IPB.
DAFTAR PUSTAKA Curran K, Bailey K. 2003. An Evaluation of Image Based Steganography Methods 2: 16. [terhubung berkala]. http://www.ijde.org [05 Okt 2006]. Johnson NF, Jajodia S. 1998. Exploring Steganography: Seeing the Unseen. George Mason University. http://www.jjtc.com/pub/r2026.pdf [04 Okt 2006]. Johnson NF, Zoran D, Jajodia S. 2001. Information Hiding and WatermarkingAttacks & Countermeasures. Kluwer.
Menezes A, Oorschot PV, Vanstone S. 1996. Handbook of Applied Cryptography. CRC Press. Mulopulos GP, Hernandez AA, Gasztonyi LS. 2003. Peak Signal to Noise Ratio Performance Comparison of JPEG and JPEG 2000 for Various Medical Image Modalities. Compressus Inc. http://www.debugmode.com/imagecmp/ SCAR CompressionRatio - Jun 2003.pdf [07 Juni 2007]. Munir R. 2006. Kriptografi. Bandung: Informatika. Pfitzmann B. 1996. Information Hiding Terminology. Proceedings of First International Workshop. Cambridge, May-June 1996. Cambridge: Lecture Notes in Computer Science. hlm 347350.
Yadma SR. 2003. Steganography and Attacks Against the LSB Encoding in PNG Images. Indian Institute of Technology. http://data-hiding.com/ [23 Mei 2007].
16
LAMPIRAN
17 Lampiran 1 Perhitungan kompleksitas waktu algoritma penyembunyian pesan Algoritma Penyembunyian Pesan Input: Cover-image M1, Pesan M2, Kunci K Output: Stego-image S 1. Dari kunci K, didapatkan initial value yang akan digunakan dalam pembangkitan PRNG a. Konversi nilai ASCII dari kunci K ke binary; b. Lakukan Padding, sehingga panjang bit kelipatan nilaiblok=floor(log2 totalpix); c. Simpan nilai binary bit hasil konversi ke dalam temp; d. Bagi bit-bit kunci ke dalam blok–blok dengan panjang = nilaiblok; e. Lakukan operasi XOR pada blok-blok yang telah dibagi; f. Hasil akhir operasi XOR diubah ke dalam bentuk desimal(result); g. Initial value untuk LCG = result; h. Iterasilcg ← M2*8/3; level ← “ ” ; i. for i←0 to strlen(result) jika result[i]=1 level←1; jika result[i]=2 level←2; jika result[i]=3 level←3; jika result[i]=4 level←4; selainnya result [i+1]; j. jika level = “ ” dan i>= strlen(result) level←1; 2. Definisikan header yang terdiri atas boundary, level, iterasilcg, dan nama file pesan; 3. Ambil isi file pesan dan simpan pada temporary data (tempData); 4. Sisipkan header pada 55 posisi pertama. posisi[0] ← result; for p←0 to 54 posisi[p+1] ← ((a * posisi[p]) + b) mod totalpix; Sisipkan header pada 1 LSB untuk posisi ke-p; 5. Posisi berikutnya disimpan pesan Nilai awal untuk LCG ← posisi[54]; Jika level=1 for p←55 to ceil(iterasilcg) posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix; Sisipkan pesan pada 1 LSB untuk posisi ke-p; Jika level=2 for p←55 to ceil(iterasilcg) posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix; Sisipkan pesan pada 2 LSB untuk posisi ke-p; Jika level = 3 for p←55 to ceil(iterasilcg) posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix; Sisipkan pesan pada 3 LSB untuk posisi ke-p; Jika level = 4 for p←55 to ceil(iterasilcg) posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix; Sisipkan pesan pada 4 LSB untuk posisi ke-p; 6. Simpan hasil penyembunyian pesan pada S dengan format sama dengan M1; Total Keterangan : k = panjang initial value
# iterasi
Kompleksitas
O(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) T(k)
T(1) T(1)
O(1)
T(1)
O(1) O(1)
T(1) T(55)
O(n) T(1) T(n/3)
T(1) T((n/3)+69+k)=O(n)
O(1)
18 Lampiran 2 Cover-image dan pesan Cover-image (ilkom.png)
Pesan
Nama file : 29072.jpg Ukuran : 29.072 bytes Dimensi : 200 x 132 piksel Nama file : 37440.jpg Ukuran : 37.440 bytes Dimensi : 235 x 156 piksel Nama file : 46802.jpg Ukuran : 46.802 bytes Dimensi : 275 x 182 piksel Nama file : 52941.jpg Ukuran : 52.941 bytes Dimensi : 300 x 199 piksel Nama file : 64352.jpg Ukuran : 64.352 bytes Dimensi : 338 x 225 piksel Nama file : 75674.jpg Ukuran : 75.674 bytes Dimensi : 376 x 250 piksel
Nama file : 82.770.jpg Ukuran : 82.770 bytes Dimensi : 400 x 265 piksel
Nama file : 92753.jpg Ukuran : 92.753 bytes Dimensi : 428 x 285 piksel
Nama file : 104754.jpg Ukuran : 104.754 bytes Dimensi : 451 x 300 piksel
19 Lampiran 2 Lanjutan Nama file : 110022.jpg Ukuran : 110.022 bytes Dimensi : 475 x 315 piksel
20 Lampiran 3 Contoh hasil stego-image Nama File Pesan
Level 1
Kunci ilkomers
infohide
2
komputer
embedded
110022.jpg Stego-image (stegopngilkom.png)
21 Lampiran 3 Lanjutan 3 kualitas
pixel
4
steganog
password
22 Lampiran 4 Perhitungan kompleksitas waktu algoritma pengambilan pesan Algoritma Pengambilan Pesan Input: Kunci K, stego-image S Output: Pesan M2 1. Kunci K akan menghasilkan initial value pada PRNG a. Konversi nilai ASCII dari kunci K ke binary; b. Lakukan Padding, sehingga panjang bit kelipatan nilaiblok=floor(log2 totalpix); c. Simpan nilai binary bit hasil konversi ke dalam temp; d. Bagi bit-bit kunci ke dalam blok–blok dengan panjang = nilaiblok; e. Lakukan operasi XOR pada blok-blok yang telah dibagi; f. Hasil akhir operasi XOR diubah ke dalam bentuk desimal(result); g. Initial value untuk LCG = result; 2. Untuk mendapatkan jumlah iterasi maka ambil headernya, yaitu 55 posisi pertama posisi[0] ← result; a. for p←0 to 54 posisi[p+1] ← ((a * posisi[p]) + b) mod totalpix; pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap header=0; selainnya header=1; b. Dapatkan level, boundary, iterasilcg, dan nama file pesan; 3. Nilai awal untuk LCG ← posisi[54]; Jika level=1 for p←55 to iterasilcg posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix; pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap bitpesan=0; selainnya bitpesan=1; Jika level=2 for p←55 to iterasilcg posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix; pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap bitpesan= nilai indeks warna & 2; selainnya bitpesan= nilai indeks warna & 3; Jika level=3 for p←55 to iterasilcg posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix; pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap bitpesan= nilai indeks warna & 6; selainnya bitpesan= nilai indeks warna & 7; Jika level=4 for p←55 to iterasilcg posisi[p] ← ((a * posisi[p-1]) + b) mod totalpix; pada S ambil nilai indeks warna R, G, B pada setiap posisi ke-p; jika nilai R, G, B adalah genap bitpesan= nilai indeks warna & 14; selainnya bitpesan= nilai indeks warna & 15; 4. Konversi nilai bit ke dalam bentuk ASCII, kemudian nilai ASCII akan disimpan dalam bentuk file pesan dengan nama sesuai dengan nama file pesan; Total
# iterasi
Kompleksitas
O(1) T(1) T(1) T(1) T(1) T(1) T(1) T(1) O(1) T(1) T(55)
T(1) T(1) T(n/3)
O(n)
T(1)
O(1)
T((n/3)+66) = O(n)
23 Lampiran 5 Kuisioner analisis keamanan KUISIONER Kuisioner ini dibuat sebagai tahapan akhir dari penyelesaian Tugas Akhir (Skripsi), dengan tujuan untuk menilai keberhasilan sistem yang telah dibuat. Silahkan memberikan jawaban dengan membuat tanda silang (X) pada kotak yang telah disediakan. Tanggal pengisian : Nama : Umur : Departemen : Angkatan : Apakah terdapat perbedaan antara kedua gambar berikut?
No 1.
2.
3.
ilkom.png
Stegopngilkom.png
Berbeda
Sedikit berbeda
Tidak berbeda
24 Lampiran 5 Lanjutan 4.
5.
6.
7.
8.