Tinjauan Pustaka A. Ineke Pakereng,

1

1. Pendahuluan

Internet memberikan kemudahan untuk bertukar informasi. Informasi yang dilewatkan di Internet, berjalan dari satu komputer, ke komputer yang lain, hingga akhirnya sampai ke komputer tujuan. Proses tersebut berlangsung begitu cepat sekalipun melalui beberapa titik. Pada dasarnya, informasi melakukan perjalanan di internet dengan cara yang tidak aman. Ini berarti bahwa pesan dapat disadap atau dirusak pada setiap titik perangkat yang dilewati [1]. Untuk menjamin keamanan pertukaran informasi yang bersifat rahasia atau pribadi, diperlukan suatu metode yang membatasi akses ke informasi ini. Pembatasan dapat berupa penyandian informasi kriptografi [2], atau dengan menyembunyikan informasi pada media yang umum steganografi [3], sehingga tidak menyebabkan kewaspadaan awareness pihak lain yang mengakses informasi ini. Metode penyembunyian informasi pada media lain disebut dengan steganografi. Steganografi membutuhkan media sebagai cover, yang merupakan wadah penyembunyian informasi. Cover dapat berupa file image, audio, video ataupun jenis file yang lain. Informasi yang disembunyikan dapat berupa pesan singkat dalam bentuk kalimat, atau berupa file dokumen rahasia. Ukuran file dokumen rahasia yang disembunyikan bergantung pada ukuran cover tempat data rahasia disembunyikan. Keberhasilan suatu steganografi bergantung pada mencolok atau tidaknya perubahan yang terjadi pada cover dan kemampuan algoritma yang digunakan untuk menyembunyikan [4]. Untuk memperkecil perubahan, digunakan bit terendah LSB pada tiap piksel citra digital, sebagai lokasi penyisipan informasi. Steganografi pada citra digital pada umumnya mengganti bit-bit LSB tersebut secara berurutan, dari ujung kiri atas gambar, atau mundur dari ujung kanan bawah gambar. Hal ini memberikan kelemahan yaitu bit-bit informasi ini dapat diekstrak dengan mudah oleh pihak lain. Enkripsi dapat ditambahkan sebelum proses penyisipan, namun hal ini akan memberikan tambahan waktu proses. Pada penelitian ini diajukan suatu metode steganografi pada citra digital, yang menyisipkan informasi secara acak. Tujuannya adalah agar tanpa proses enkripsi sekalipun, informasi yang disisipkan akan lebih aman daripada steganografi LSB pada umumnya. Metode pengacakan yang digunakan adalah algoritma Fisher-Yates [5]. Data yang diacak adalah lokasi penyisipan.

2. Tinjauan Pustaka

Pada penelitian yang berjudul “Implementasi Teknik Steganografi dengan Metode LSB pada Citra Digital”, disebutkan tentang perlunya pengamanan pengiriman pesan melalui jaringan Internet. Pada penelitian tersebut digunakan media gambar sebagai cover. Hasil penelitian tersebut adalah sebuah aplikasi steganografi dengan algoritma LSB Embedding, yang dapat menyembunyikan pesan, sehingga orang lain tidak menyadari keberadaan pesan di dalam media. [6] Berbeda dengan penelitian ini adalah, pada penelitian ini sebelum pesan disisipkan, digunakan algoritma Fisher-Yates Shuffle untuk mengacak lokasi 2 penyisipan. Hal ini dilakukan dengan tujuan untuk meningkatkan keamanan pesan yang disisipkan. Pada penelitian “Perancangan dan Implementasi Kriptografi Menggunakan Vigenere Cipher dan Fisher-Yates Shuffle Pada Data Citra Digital” [7], diimplementasikan algoritma Fisher-Yates shuffle untuk melakukan enkripsi dan dekripsi citra digital. Algoritma Fisher-Yates dimanfaatkan untuk melakukan pengacakan piksel pada citra digital, kemudian untuk meningkatkan keamanan ditambahkan proses enkripsi dengan algoritma Vigenere. Beda dengan penelitian tersebut, pada penelitian ini, Fisher-Yates digunakan bukan untuk mengacak informasi yang perlu diamankan, namun mengacak lokasi penyisipan, sehingga sukar ditebak. Berdasarkan penelitian - penelitian yang telah dilakukan tentang steganografi pada citra digital dengan teknik LSB, dan implementasi Fisher-Yates untuk pengamanan informasi, maka dilakukan penelitian yang bertujuan untuk merancang dan mengimplemetasikan aplikasi steganografi pada image PNG dengan algoritma Fisher-Yates Shuffle, sehingga diperoleh stego image. Pada penelitian ini digabungkan antara teknis steganografi LSB dengan Fisher-Yates shuffle. Steganografi LSB memiliki kelebihan dalam kecilnya perubahan yang tampak setelah proses penyisipan. Fisher-Yates shuffle berfungsi untuk meningkatkan keamanan, dengan cara mengacak posisi penyisipan bit. Proses pengacakan dilakukan sebelum proses penyisipan. Batasan masalah dalam penelitian ini adalah sebagai berikut: 1 Pengamanan data dilakukan dengan cara menyembunyikan ke dalam citra digital; 2 Citra digital yang digunakan memiliki format PNG 24 bit warna; 3 Algoritma Fisher-Yates Shuffle digunakan untuk mengacak lokasi penyisipan, bukan untuk mengacak pesan yang akan disisipkan. Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui. Steganografi berasal dari bahasa Yunani, yaitu “steganos” yang artinya “tulisan tersembunyi covered writing” [8]. Steganografi yang dibahas adalah penyembunyian data di dalam citra image. Meskipun demikian, penyembunyian data dapat juga dilakukan pada media berupa suara digital, teks, ataupun video. Penyembunyian data rahasia ke dalam image akan mengubah kualitas image tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah: 1 Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia. Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung. Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak; 2 Data yang disembunyikan harus dapat diungkapkan kembali recovery. Dalam penyembunyian pesan, steganografi menggunakan dua properti yaitu pesan rahasia dan media penampung. Ada beberapa tipe media yang dapat digunakan untuk menyisipkan pesan rahasia. Tipe media ini dapat berfungsi sebagai media pembawa pesan rahasia, yang disebut dengan host message. Terdapat beberapa media yang dapat digunakan sebagai media steganografi, media penampung tersebut dapat berupa text, image, audio, atau video [9]. 3 Cara untuk mengaplikasikan steganografi pada file image terdiri dari beberapa cara yang lazim digunakan dan prinsip kerja atau algoritma yang digunakan sama seperti pada metode steganografi pada data audio. Berikut adalah beberapa teknik yang digunakan: 1 Least Significant Bit Insertion LSB adalah metode yang digunakan untuk menyembunyikan pesan pada media digital tersebut berbeda-beda. Contohnya, pada berkas audio, pesan dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan LSB pada data piksel yang menyusun file tersebut; 2 Redundant Pattern Encryption adalah menggambar pesan kecil pada kebanyakan image. Keuntungan dari metode ini adalah dapat bertahan dari cropping kegagalan. Kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar; dan 3 Spread Spectrum steganografi terpencar-pencar sebagai pesan yang diacak encrypted melalui image tidak seperti dalam LSB. Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses image gambar [9]. Cara paling mudah untuk menyembunyikan pesan adalah dengan memanfaatkan Least Significant Bit LSB. Jika digunakan image 24 bitcolor sebagai cover, sebuah bit dari masing-masing komponen Red, Green, dan Blue, dapat digunakan, sehingga tiga bit dapat disimpan pada setiap piksel. Sebuah image 800 x 600 piksel dapat digunakan untuk menyembunyikan 1.440.000 bit 180.000 bytes data rahasia. Misalkan terdapat piksel-piksel dari image 24 bit color : 00111000 01010110 11000111 00110011 Jika ada pesan rahasia yang memiliki nilai 1101, maka dihasilkan: 00111001 01010111 11000110 00110011 Dapat dilihat bahwa bit-bit pesan rahasia mengubah bit-bit terakhir citra gambar. Perubahan pada LSB ini akan terlalu kecil untuk terdeteksi oleh mata manusia sehingga pesan dapat disembunyikan secara efektif. Akan lebih baik jika digunakan grayscale image karena perubahan warnanya akan lebih sulit dideteksi oleh mata manusia. Proses ekstraksi pesan dapat dengan mudah dilakukan, yaitu dengan mengekstrak LSB dari masing-masing piksel pada stego secara berurutan dan menuliskannya ke output file yang akan berisi pesan tersebut. Kekurangan dari metode modifikasi LSB ini adalah bahwa metode ini membutuhkan tempat penyimpanan yang relatif besar. Kekurangan lain adalah bahwa stego yang dihasilkan tidak dapat dikompres dengan format lossy compression [9]. Pada penelitian ini digunakan algoritma shuffle Fisher-Yates. Fisher-Yates shuffle diambil dari nama Ronald Fisher dan Frank Yates atau juga dikenal dengan nama Knuth shuffle diambil dari nama Donald Knuth, adalah sebuah algoritma untuk menghasilkan suatu permutasi acak dari suatu himpunan terhingga, dengan kata lain untuk mengacak suatu himpunan tersebut [10]. Jika diimplementasikan dengan benar, maka hasil dari algoritma ini tidak akan berat sebelah, sehingga setiap permutasi memiliki kemungkinan yang sama. Metode dasar yang digunakan untuk menghasilkan suatu permutasi acak untuk angka 1 sampai N adalah sebagai berikut [5]: 1. Tuliskan angka dari 1 sampai N. 4 2. Pilih sebuah angka acak K di antara 1 sampai dengan jumlah angka yang belum dicoret. 3. Dihitung dari bawah, coret angka K yang belum dicoret, dan tuliskan angka tersebut di lain tempat. 4. Ulangi langkah 2 dan langkah 3 sampai semuat angka sudah tercoret. 5. Urutan angka yang dituliskan pada langkah 3 adalah permutasi acak dari angka awal. Pada versi modern yang digunakan sekarang, angka yang terpilih tidak dicoret, tetapi posisinya ditukar dengan angka terakhir dari angka yang belum terpilih. Contoh pengerjaan dari versi modern ditunjukkan pada Tabel 1. Range adalah jumlah angka yang belum terpilih, roll adalah angka acak yang terpilih, scratch adalah daftar angka yang belum terpilih, dan result adalah hasil permutasi yang akan didapatkan. Tabel 1 Contoh Langkah Fisher-Yates Shuffle Range Roll Scratch Result 1 2 3 4 5 6 7 8 1 – 8 6 1 2 3 4 5 8 7 6 1 – 7 2 1 7 3 4 5 8 2 6 1 – 6 6 1 7 3 4 5 8 2 6 1 – 5 1 5 7 3 4 1 8 2 6 1 – 4 3 5 7 4 3 1 8 2 6 1 – 3 3 5 7 4 3 1 8 2 6 1 – 2 1 7 5 4 3 1 8 2 6 LSB embedding merupakan teknik steganografi yang menggunakan pendekatan tergolong sederhana dan langsung. Sesuai dengan namanya, teknik LSB embedding menyisipkan pesan ke dalam LSB least significant bit. Hal ini hanya akan mempengaruhi nilai warna pada piksel sebesar + 1, maka secara umum diasumsikan bahwa degradasi warna yang terjadi dapat tidak dikenali oleh mata[11]. LSB embedding memiliki kelebihan dibandingkan dengan algoritma EOF steganography [3], dalam hal perubahan ukuran dokumen yang disisipi. LSB embedding tidak menambahkan ukuran dokumen, karena proses yang terjadi adalah mengganti bit akhir tiap warna. EOF bekerja dengan menambahkan informasi pada akhir dokumen. Algoritma steganografi yang lain adalah algoritma DCT. Algoritma ini menggunakan frekuensi domain dari citra digital untuk menyisipkan informasi. Kelemahan dari algoritma DCT adalah mata manusia dapat mengenali perubahan yang terjadi pada frekuensi rendah [12]. Karena kelebihan - kelebihan dari algoritma LSB embedding, maka pada penelitian ini dipilih LSB embedding dalam proses penyisipan Digital signature dalam dokumen digital. Pada penelitian ini, format file citra digital yang digunakan adalah PNG. PNG merupakan True Color image, yang berarti tiap piksel direpresentasikan dengan 3 byte, terbagi ke dalam red, green, dan blue masing-masing 1 byte. Hal ini sering disebut dengan warna RGB, atau True Color 24 bit. Selain 24 bit warna, file PNG juga mendukung 32 bit warna. True Color 32 bit sama dengan 24 bit, 5 dengan perbedaan adalah adanya 1 byte tambahan yang disebut komponen alpha [13][14]. Gambar 1 True Color 24 bit dan 32 bit [14] Microsoft .NET Framework merupakan sebuah perangkat lunak kerangka kerja yang berjalan pada sistem operasi Microsoft Windows. Saat ini .NET Framework umumnya telah terintegrasi dalam distribusi standar Windows mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru. Kerangka kerja ini menyediakan sejumlah besar pustaka pemrograman komputer dan mendukung beberapa bahasa pemrograman serta interoperabilitas yang baik sehingga memungkinkan bahasa-bahasa tersebut berfungsi satu dengan lain dalam pengembangan sistem. Berbeda halnya dengan tipikal aplikasi konvensional umumnya, program yang ditulis dengan memanfaatkan .NET Framework berjalan pada lingkungan perangkat lunak melalui Common Language Runtime, dan bukan perangkat keras secara langsung. Hal ini memungkinkan aplikasi yang dibuat di atas .NET secara teoritis dapat berjalan pada perangkat keras apapun yang didukung oleh .NET Framework. Perangkat lunak ini adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows [15]. Pada penelitian ini, .NET Framework 4.5 digunakan untuk membangun aplikasi steganografi. Beberapa pustaka pemrograman yang digunakan adalah pustaka untuk membuat Graphical User Interface GUI, pustaka pemrosesan gambar Bitmap, dan pustaka pembangkitan bilangan acak Random. 3. Metode dan Perancangan Sistem Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: 1 Identifikasi masalah dan studi literatur, 2 Perancangan sistem, 3 Perancangan Prototype sistem, dan 4 Pengujian prototype sistem dan analisis hasil pengujian. 6 Identifikasi Masalah dan Studi Literatur Perancangan Sistem Implementasi Sistem Pengujian Sistem dan Analisis Hasil Pengujian Gambar 2 Tahapan Penelitian Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut. Tahap pertama: identifikasi masalah, yaitu rentannya informasi yang dilewatkan di InterNet, dan diperlukan mekanisme untuk mengamankan informasi tersebut; Tahap kedua: perancangan sistem yang meliputi perancangan proses penyisipan dan proses ekstrasi; Tahap ketiga: perancangan prototype sistem, yaitu membuat aplikasi sesuai perancangan proses pada tahap kedua; dan Tahap keempat: pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap proses yang telah dirancang, dan melihat kesesuaian solusi terhadap masalah yang telah teridentifikasi sebelumnya. Aplikasi dikembangkan melalui tahap pengembangan perangkat lunak prototype model [16]. Pada proses implementasi dihasilkan beberapa prototype yang dapat dijelaskan sebagai berikut. Tahap pertama: mengetahui kebutuhan sistem. Hal ini dapat dicapai dengan cara mendengarkan atau wawancara customeruser; Tahap kedua; merancang program kemudian membuat perbaikan terhadap hasil yang diperoleh; Tahap ketiga: melakukan evaluasi ke customer atau user dimana pada tahap ini proses akan kembali lagi ketahap pertama. Diagram prototype model ditunjukkan pada Gambar 3. Gambar 3 Prototype Model[16] Proses penyisipan adalah proses menyembunyikan bit-bit informasi pesan ke dalam cover image. Gambar 5 menunjukkan langkah-langkah penyisipan dalam bentuk flowchart. Proses ini secara garis besar terdiri dari: 1. Input dari proses ini adalah citra digital sebagai cover image, pesan dalam bentuk string, dan user key. 7 2. Memetakan koordinat warna pada cover image. Yaitu proses pemberian indeks pada tiap-tiap warna pada cover image. Pada 1 piksel terdapat 3 warna. Jika suatu gambar terdapat 10 piksel, maka terdapat 30 warna dengan indeks dari 0 sampai dengan 29. 3. Mengacak shuffle angka-angka indeks tersebut dengan algoritma Fisher- Yates. Fisher-Yates memerlukan algoritma random, dan .NET Framework telah menyediakan kelas ini. Class random memerlukan seed sebagai nilai inisialisasi proses pembangkitan bilangan acak. Nilai seed diperoleh dengan cara menjumlahkan nilai ASCII tiap-tiap karakter pada kunci yang dimasukkan oleh user. Kemudian class random digunakan pada proses shuffle, untuk membangkitkan indeks-indeks acak. Lebih jelasnya, ditunjukkan pada Kode Program 3. 4. Mengubah pesan ke dalam bentuk kode ASCII, kemudian dari nilai kode ASCII diubah ke dalam bentuk biner. 5. Lakukan sub proses berikut: a. Inisialiasi variabel indeks I dengan nilai 0 I=0. b. Berdasarkan hasil pengacakan, ambil koordinat warna indeks ke-I. c. Ambil bit pesan pada indeks ke-I. d. Sisipkan bit tersebut ke dalam warna pada koordinat indeks ke-I e. Lanjutkan proses penyisipan untuk bit indeks selanjutnya, pada koordinat warna indeks selanjutnya I=I+1. 6. Proses berhenti ketika semua bit pesan telah disisipkan. 7. Output dari proses ini adalah citra digital yang telah disisipi, disebut dengan stego image. 8 Gambar 4 Proses Penyisipan Gambar 5 Proses Ekstraksi Proses ekstraksi adalah proses mendapatkan kembali bit informasi pesan yang sebelumnya telah disisipkan ke dalam stego image. Gambar 4 menunjukkan langkah-langkah ekstraksi dalam bentuk flowchart. Proses ini secara garis besar terdiri dari: 1. Input dari proses ini adalah stego image, dan user key. 2. Memetakan koordinat warna cover image. Yaitu proses pemberian indeks pada tiap-tiap warna pada cover image. 3. Mengacak shuffle angka-angka indeks tersebut dengan algoritma Fisher- Yates. Proses shuffle dilakukan dengan menggunakan user key, sebagai random seed. Penggunaan user key yang sama akan menghasilkan urutan 9 shuffle yang sama. Sehingga proses ekstraksi dapat dilakukan dengan urutan yang sama dengan proses penyisipan. 4. Lakukan sub proses berikut: a. Inisialiasi variabel indeks I dengan nilai 0 I=0. b. Berdasarkan hasil pengacakan, ambil koordinat warna indeks ke-I. c. Baca nilai LSB dari warna tersebut ekstraksi bit pesan. d. Lanjutkan proses ekstraksi pada warna selanjutnya I=I+1. 5. Bit-bit pesan yang telah terkumpul, diubah ke dalam bentuk kode ASCII, kemudian diterjemahkan ke dalam karakter ASCII untuk tiap-tiap kode ASCII. 6. Output dari proses ini adalah pesan yang disisipkan. Untuk menjelaskan proses embedding, diberikan contoh sebagai berikut. Jika diketahui potongan piksel pada suatu gambar adalah: R G B R G B R G B R G B R G B R G 200 200 100 0 255 255 160 155 200 160 155 200 0 0 255 10 20 Kunci yang digunakan adalah “rahasia”. Maka proses penyisipan dilakukan dengan cara demikian: 1. Tentukan nilai seed dari kunci yang dimasukan. Seed diperoleh dengan cara melakukan menjumlahkan nilai ASCII tiap-tiap karakter. Hasil operasi ini adalah satu bilangan, yaitu 729. Tabel 2 Mencari nilai Seed r a h a s i a 114 97 104 97 115 105 97 =729 2. Nilai seed kemudian digunakan untuk melakukan shuffle. Tabel 3 Hasil Shuffle Indeks Warna R G B R G B R G B R G B R G B R G 200 200 100 0 255 255 160 155 200 160 155 200 0 0 255 10 20 INDEKS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 INDEKS SHUFFLE 8 12 7 11 15 3 13 0 16 1 5 6 14 2 4 10 9 3. Pesan yang disisipkan diubah ke bentuk binary. Jika pesan adalah huruf “F”, maka nilai ASCII nya adalah 70, dalam bentuk biner 01000110. 4. Sisipkan bit pesan satu per satu, ke dalam warna, dengan menggunakan urutan indeks acak. Tabel 4 Hasil Penyisipan BIT PESAN Embed ding Indeks acak Nilai warna sesuai indeks acak Hasil Penyisipan pada LSB  8 200 200 1  12 1  7 155 154  11 200 200  15 10 10 10 1  3 1 1  13 1  200 200 Pada baris pertama, Tabel 4, yang terjadi adalah bit pesan “0” disisipkan pada warna indeks ke 8, yaitu warna dengan nilai 200. Sehingga 200 binernya: 11001000 disisipi dengan nilai bit “0” pada posisi LSB, hasilnya adalah tetap 11001000. Baris kedua, nilai warna 0 binernya: 00000000 disisipi dengan nilai bit “1”, hasilnya adalah 1. Untuk menjelaskan proses extracting, diberikan contoh sebagai berikut. Jika diketahui potongan piksel pada suatu gambar hasil penyisipan adalah: R G B R G B R G B R G B R G B R G 200 200 100 1 255 255 160 154 200 160 155 200 1 1 255 10 20 Kunci yang digunakan adalah “rahasia”. Maka proses ekstraksi dilakukan dengan cara demikian: 5. Tentukan nilai seed dari kunci yang dimasukan. Seed diperoleh dengan cara melakukan menjumlahkan nilai ASCII tiap-tiap karakter. Hasil operasi ini adalah satu bilangan, yaitu 729. Tabel 5 Mencari nilai Seed r a h a s i a 114 97 104 97 115 105 97 =729 6. Nilai seed kemudian digunakan untuk melakukan shuffle. Tabel 6 Hasil Shuffle Indeks Warna R G B R G B R G B R G B R G B R G 200 200 100 1 255 255 160 154 200 160 155 200 1 1 255 10 20 INDEKS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 INDEKS ACAK 8 12 7 11 15 3 13 0 16 1 5 6 14 2 4 10 9 7. Berdasarkan urutan indeks acak, baca bit LSB pada tiap warna. Tabel 7 Hasil Ekstraksi Indeks acak Nilai Warna Ekstraksi BIT PESAN 8 200  12 1  1 7 154  11 200  15 10  3 1  1 13 1  1 200  Setelah diperoleh keseluruhan bit pesan, maka bit-bit tersebut diubah ke nilai ASCII, kemudian diperoleh karakter ASCII yang bersesuaian. 01000110  70  “F”. 11

4. Hasil dan Pembahasan