• Tidak ada hasil yang ditemukan

T1 672011089 Full text

N/A
N/A
Protected

Academic year: 2017

Membagikan "T1 672011089 Full text"

Copied!
28
0
0

Teks penuh

(1)

Perancangan dan Implementasi Aplikasi Steganografi

pada Image PNG dengan Algoritma Shingling

Artikel Ilmiah

Peneliti:

Frendy Juniarto Baba (672011089) Magdalena A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

(2)

Perancangan dan Implementasi Aplikasi Steganografi

pada Image PNG dengan Algoritma Shingling

Artikel Ilmiah

Diajukan kepada

Fakultas Teknologi Informasi

untuk memperoleh gelar Sarjana Komputer

Peneliti:

Frendy Juniarto Baba (672011089) Magdalena A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

(3)
(4)
(5)
(6)
(7)

Perancangan dan Implementasi Aplikasi Steganografi pada Image PNG

dengan Algoritma Shingling

1) Frendy Juniarto Baba, 2) M. A. Ineke Pakereng

Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia

Email: 1)frendy_juniarto@yahoo.com, 2) inekep200472@yahoo.com

Abstract

The exchange of confidential information or personal, requires a method that limits access to this information. It aims to minimize the risk of interception of information by other parties. Restrictions can be done by withholding information on a media such as images, audio, or video. This technique is called steganography. The success of a steganography relies on flashy or whether the changes that occur on the cover. To minimize the changes, use the LSB of each pixel digital image, as insertion location information. This change risk can be further minimized by locating the proper insertion location, that location has a level of similarity with the message bits to be inserted. Search location "same" or "near duplicate" can be done by using algorithms Shingling. In this study produced a steganography application that utilizes Shingling algorithm to minimize changes to the cover due to the insertion process.

Keywords: Steganography, LSB, Shingling

Abstrak

Pertukaran informasi yang bersifat rahasia atau pribadi, memerlukan suatu metode yang membatasi akses ke informasi ini. Hal ini bertujuan untuk memperkecil resiko penyadapan informasi oleh pihak lain. Pembatasan dapat dilakukan dengan menyembunyikan informasi pada sebuah media seperti gambar, audio, atau video. Teknik ini disebut dengan steganografi. Keberhasilan suatu steganografi bergantung pada mencolok atau tidaknya perubahan yang terjadi pada cover. Untuk memperkecil perubahan, digunakan LSB pada tiap piksel citra digital, sebagai lokasi penyisipan informasi. Resiko perubahan ini dapat lagi diperkecil dengan cara mencari lokasi penyisipan yang tepat, yaitu lokasi yang memiliki tingkat kemiripan dengan bit-bit pesan yang akan disisipkan. Pencarian lokasi yang “sama” atau “mendekati sama” ini dapat dilakukan dengan menggunakan algoritma Shingling. Pada penelitian ini dihasilkan suatu aplikasi steganografi yang memanfaatkan algoritma Shingling untuk meminimalkan perubahan pada cover akibat proses penyisipan.

Kata Kunci: Steganografi, LSB, Shingling

(8)

1

1. Pendahuluan

Jaringan komputer dan internet mempermudah proses pertukaran informasi. 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]. Masalah yang muncul adalah informasi yang dilewatkan pada jaringan komputer adalah data plaintext. Hal ini beresiko ketika ada pihak lain yang berhasil menyadap informasi ini, akan dapat dengan mudah membaca isi informasi tersebut.

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.

Steganografi merupakan teknik menyembunyikan informasi pada sebuah media. Media tersebut umumnya berupa file gambar, audio, video atau file dengan format yang lain. Salah satu teknik steganografi yaitu LSB embedding [4], bekerja dengan cara menggantikan bit akhir (LSB) dari media, dengan bit informasi. Perubahan yang dihasilkan sangat kecil, sehingga tidak kasat oleh mata.

Keberhasilan suatu steganografi bergantung pada mencolok atau tidaknya perubahan yang terjadi pada cover dan kemampuan algoritma yang digunakan untuk menyembunyikan [5]. Untuk memperkecil perubahan, digunakan bit terendah (LSB) pada tiap piksel citra digital, sebagai lokasi penyisipan informasi.

Penyisipan informasi dengan cara mengganti bit LSB pada citra digital masih memiliki resiko untuk mengubah nilai piksel citra digital. Jika terdapat 30 karakter pesan (1 karakter = 1 byte = 8 bit), maka akan terjadi kemungkinan sampai dengan 160 (30x8) warna yang berubah yang berubah, atau 10 piksel yang berubah (1 piksel terdapat 3 warna). Resiko perubahan ini dapat lagi diperkecil dengan cara mencari lokasi penyisipan yang tepat. Lokasi yang tepat adalah lokasi yang memiliki tingkat kemiripan tinggi, dengan bit-bit pesan yang akan disisipkan. Pencarian lokasi yang “sama” atau “mendekati sama” ini dapat dilakukan dengan menggunakan algoritma Shingling [6].

Pada penelitian ini diajukan suatu metode steganografi pada citra digital, yang bertujuan untuk meminimalkan perubahan piksel pada citra digital. Metode yang digunakan untuk pencarian lokasi yang disisipi adalah algoritma Shingling.

2. Tinjauan Pustaka

(9)

`2

lokasi yang memberikan perubahan paling minimal. Sehingga kerusakan (perubahan) pada cover menjadi tidak semakin mencurigakan, untuk mencapai salah satu tujuan steganografi.

Pada penelitian yang berjudul "Identifying and Filtering Near-Duplicate Documents",dibahas tentang masalah mendeteksi kemiripan halaman web satu dengan web yang lain, pada proses web indexing skala besar yang dilakukan oleh AltaVista search engine[6]. Andrei Broder mengajukan algoritma untuk menyaring near-duplicate documents, dan sukses diimplementasikan selama kurang lebih tiga tahun pada AltaVista. Dokumen yang dibandingkan disederhanakan dalam bentuk set, melalui proses shingling. Pada penelitian tersebut, satu shingle terdiri dari 4 kata, sehingga disebut 4-shingling. Setiap shingle dibangkitkan sebuah fingerprint untuk kemudian dibandingkan dengan nilai fingerprint dari shingle pada dokumen kedua. Algoritma yang digunakan untuk membangkitkan nilai fingerprint adalah Rabin's fingerprint. Rabin's membangkitkan nilai fingerprint sebesar 64 bit (8 byte). Hingga pada waktu penelitian ini ditulis, belum ada penelitian sebelumnya yang membahas penggunaan algoritma Shingling pada area steganografi.

Berdasarkan penelitian - penelitian yang telah dilakukan tentang steganografi pada citra digital dengan teknik LSB, dan implementasi algoritma Shingling, maka dilakukan penelitian yang bertujuan untuk merancang dan mengimplemetasikan aplikasi steganografi pada image PNG dengan algoritma Shingling, sehingga diperoleh stego image. Pada penelitian ini digabungkan antara teknik steganografi LSB dengan Shingling. Steganografi LSB memiliki kelebihan dalam kecilnya perubahan yang tampak setelah proses penyisipan. Shingling berfungsi untuk memiliki lokasi penyisipan terbaik dengan cara mencari lokasi piksel yang memiliki bit paling mirip dengan bit pesan.

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 Shingling digunakan untuk memilih lokasi penyisipan terbaik. Sedangkan proses penyisipan dilakukan pada bit LSB di lokasi yang terpilih.

(10)

`3

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].

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].

(11)

`4

mata[10]. 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 [11]. Karena kelebihan - kelebihan dari algoritma LSB embedding, maka pada penelitian ini dipilih LSB embedding dalam proses penyisipan Digital signature dalam dokumen digital.

Algoritma Shingling merupakan algoritma yang ditemukan oleh Andrei Broder[6]. Algoritma ini bekerja dengan cara membuat sebuah shingle yang berisi beberapa kata dengan jumlah yang tetap. Angka yang menentukan jumlah kata dalam satu shingle ini disebut gram. Pada tiap shingle dibangkitkan nilai fingerprint. Proses shingling ini akan menghasilkan himpunan yang berisi sejumlah fingerprint. Himpunan ini kemudian dibandingkan dengan himpunan yang dihasilkan dari dokumen kedua. Nilai kemiripan diperoleh dengan cara membagi jumlah fingerprint yang sama(intersection) dari dua dokumen dengan jumlah fingerprint gabungan (union). Proses perhitungan tersebut didefinisikan sebagai berikut[6]:

(1)

Persamaan 1 Rumus Nilai Kemiripan [6]

Algoritma Shingling dilakukan melalui beberapa langkah berikut [6]: 1. Hilangkan tanda baca pada dokumen.

2. Dimulai dengan kata pertama, buat satu shingle berisi kata pertama tersebut sampai 3 kata berikutnya.

3. Pindah ke kata kedua, buat shingle berisi kata kedua dan 3 kata berikutnya. 4. Lakukan pembentukan shingle sampai dengan 4 kata terakhir dari

dokumen tersebut.

5. Untuk tiap shingle, bangkitkan nilai fingerprint.

6. Lakukan langkah 1 sampai dengan 5 untuk dokumen kedua.

7. Gunakan rumus nilai kemiripan dokumen (Persamaan 1) untuk menghitung nilai kemiripan dokumen.

Pada penelitian ini tidak digunakan proses menghitung nilai fingerprint. Nilai fingerprint yang digunakan untuk proses pembandingan, digantikan dengan membandingkan nilai-nilai bit.

(12)

`5

potongan dari file gambar. Potongan ini memiliki dimensi 6 x 6 piksel.Pada tiap piksel terdapat tiga bagian warna yaitu red, green dan blue. Pada lokasi piksel 1,1 terdapat warna red bernilai 96, green bernilai 143, dan blue bernilai 179. Pada lokasi piksel 1,2 terdapat warna red 61, green 125, dan green 198[12].

Gambar 1 Komponen RGB pada File Gambar 24 Bit Warna[12]

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 [13]. Pada penelitian ini, .NET Framework digunakan untuk membangun aplikasi steganografi. Beberapa pustaka pemrograman yang digunakan adalah pustaka untuk membuat Graphical User Interface (GUI), dan pustaka pemrosesan gambar (Bitmap). 3. Metode dan Perancangan Sistem

(13)

`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.

Proses penyisipan adalah proses menyembunyikan bit-bit informasi pesan ke dalam cover image. Gambar 3 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 kunci.

2. Pesan dienkripsi terlebih dahulu dengan algoritma XOR. Langkah ini dilakukan dengan melakukan operasi XOR antara pesan dengan kunci. Hasil dari langkah ini adalah ciphertext.

3. Mengubah ciphertext ke dalam bentuk kode ASCII, kemudian dari nilai kode ASCII diubah ke dalam bentuk biner.

4. Warna-warna pada cover dibaca, dan bentuk dalam shingle-shingle. Ukuran shingle bergantung dengan panjang bit ciphertext.

5. Pada tiap shingle, lakukan proses menghitung perbedaan antara shingle dengan bit ciphertext.

6. Pilih shingle dengan nilai perbedaan terkecil.

7. Sisipkan bit pesan ciphertext ke dalam shingle yang terpilih tersebut. 8. Output dari proses ini adalah citra digital yang telah disisipi, disebut

dengan stego image.

9. Output yang kedua adalah angka sebagai “kode rahasia”. Angka ini merupakan indeks posisi shingle dimana pesan tersebut disisipkan dan ukuran panjang shingle. Tanpa mengetahui angka ini, maka proses ekstraksi tidak dapat dilakukan.

(14)

`7

langkah-langkah ekstraksi dalam bentuk flowchart. Proses ini secara garis besar terdiri dari:

1. Input dari proses ini adalah stego image, kunci, dan kode rahasia.

2. Warna-warna pada cover dibaca. Berdasarkan kode rahasia yang dimasukkan, maka diperoleh posisi shingle dan panjang shingle.

3. Karena posisi ekstraksi sudah diketahui, maka tidak perlu dilakukan pembentukan shingle-shingle.

4. Lakukan proses ekstraksi pada posisi shingle yang telah diketahui pada langkah 2.

5. Bit hasil ekstraksi didekripsi dengan menggunakan kunci yang telah dimasukkan pada langkah 1.

6. Output dari proses ekstraksi adalah bit informasi pesan.

(15)

`8

Proses pembentukan shingle (Gambar 5) dilakukan sebelum proses embedding dilakukan. Proses ini bertujuan untuk mencari lokasi penyisipan yang memiliki bit-bit paling mirip dengan bit pesan yang akan disisipkan. Proses pembentukan shingle dilakukan dengan urutan:

1. Tentukan panjang shingle, dengan melihat panjang bit ciphertext. Sebagai contoh jika panjang bit ciphertext adalah 8 bit, maka shingle yang terbentuk adalah 8 byte.

2. Untuk mempermudah membuat shingle, maka warna-warna dalam gambar dikumpulkan dalam satu deret (satu himpunan). Sebagai contoh jika terdapat gambar berukuran 8x4 piksel, maka total piksel adalah 8 x 4 = 32 piksel. Di dalam 32 piksel terdapat 32x3 warna = 96 warna. Untuk menjelaskan langkah ini, 96 warna tersebut diberi nomor urut dari 0 sampai dengan 95.

3. Proses pembentukan shingle dimulai dari nomor urut 0. Dari langkah 1 diketahui bahwa panjang shingle adalah 8, maka shingle yang pertama berisi warna-warna dari nomor urut 0 sampai dengan 7.

a. Shingle 0 = {0, 1, 2, 3, 4, 5, 6, 7}

Catatan: angka 0, 1, 2 dst, adalah nomor urut warna. Isi shingle BUKAN nomor urut, tetapi adalah warna dengan nomor urut tersebut.

4. Pada akhir proses, akan terbentuk sejumlah S shingle. Nilai S bergantung pada jumlah warna pada gambar. Pada langkah 2 terdapat 96 warna, maka di akhir proses terbentuk 96 shingle, masing-masing berisi 8 warna.

Proses pencarian lokasi penyisipan (Gambar 6) terbaik dilakukan dengan cara membandingkan tiap shingle dengan bit pesan.

1. Baca shingle ke-0.

2. Baca LSB tiap-tiap warna di dalam shingle tersebut.

Contoh jika shingle 0 berisi 255, 10, 20, 255, 160, 155, 200, 160 Maka LSB nya adalah 1, 0, 0, 1, 0, 1, 0, 0.

3. Bandingkan bit LSB dari langkah 2, dengan bit ciphertext.

Contoh jika pesan adalah 1, 0, 1, 1, 0, 1, 0, 1, maka terdapat perbedaan sebesar 2 (bit posisi 2, dan bit posisi 7).

4. Ulangi langkah 1 sampai dengan 3 untuk shingle-shingle selanjutnya. 5. Pilih shingle dengan nilai perbedaan terkecil. Jika terdapat lebih dari satu

(16)

`9 Baca LSB tiap warna di dalam shingle tersebut

False

True

Gambar 5 Proses Pembuatan Shingle Gambar 6 Proses Pemilihan Shingle

Untuk menjelaskan proses embedding, diberikan contoh sebagai berikut. Jika diketahui potongan piksel pada suatu gambar adalah:

(17)

`10

R 100 01100100 0

G 0 00000000 0

B 255 11111111 1

Pesan yang disisipkan adalah “F”, Kunci yang digunakan adalah “R”. Maka proses penyisipan dilakukan dengan cara demikian:

1. Enkripsi pesan dengan menggunakan kunci Karakter Kode ASCII BINER

F 70 01000110 A 65 01010010 Hasil enkripsi XOR 00000111

2. Baca komponen warna dan buat shingle. Karena ukuran ciphertext adalah 8 bit, maka panjang tiap shingle adalah 8 bit. Nilai LSB warna yang diperoleh adalah 101101001000100. Kemudian dibentuk shingle sebagai berikut

Tabel 2 Contoh Hasil Shingle Nomor

Shingle Isi Shingle Keterangan 0 1 0 0 1 0 1 0 0 8 bit pertama dari LSB

3. Hitung jumlah bit yang berbeda antara tiap shingle dengan ciphertext. Tabel 3 Contoh Hasil Perhitungan Perbedaan

(18)

`11

4. Langkah 3 menghasilkan 1 shingle dengan nilai terkecil, yaitu shingle nomor 9. Proses penyisipan menghasilkan shingle demikian

Shingle Ciphertext Hasil Penyisipan

00000110 00000110 00000110

Tabel 4 Hasil Penyisipan

WARNA NILAI NILAI BINER LSB Posisi Penyisipan Keterangan

R 255 11111111 1 0 1

5. Hasil penyisipan tidak menyebabkan perubahan nilai piksel warna. Output dari proses penyisipan adalah stego image, dan kode rahasia. Kode rahasia dibentuk dari dua angka, yaitu angka posisi shingle, dan angka panjang shingle. Berdasarkan langkah 4, maka posisi shingle adalah 9 dan panjang shingle adalah 8, dan kode rahasia yang terbentuk adalah “9.8”.

Untuk menjelaskan proses ekstraksi, diberikan contoh sebagai berikut. Jika diketahui potongan piksel pada suatu gambar hasil penyisipan adalah:

(19)

`12

Kunci yang digunakan adalah “rahasia”. Maka proses ekstraksi dilakukan dengan cara demikian:

1. Baca komponen warna.

Tabel 5 Komponen Warna Proses Ekstraksi

WARNA NILAI NILAI BINER Posisi

2. Berdasarkan kode rahasia, yaitu “9.8” (posisi 9, panjang pesan 8), baca warna mulai posisi ke 9, 10, dan seterusnya sampai terkumpul 8 bit. Hasilnya adalah

Tabel 6 Hasil Ekstraksi

WARNA NILAI NILAI BINER LSB Posisi Penyisipan

R 255 11111111 1 0 1

3. Kemudian lakukan proses dekripsi. Hasil Ekstraksi 00000111

(20)

`13 Plain Text 01000110

01000110 jika diubah ke nilai decimal adalah 70, dan dalam kode ASCII berarti karakter “F”.

4. Hasil dan Pembahasan

Pada bagian ini dijelaskan tentang hasil penelitian yang telah dilakukan. Aplikasi diimplementasikan dalam bentuk aplikasi desktop. Pengembangan aplikasi dilakukan dengan menggunakan Visual Studio 2012 Express for Desktop. Visual Studio 2012 Express for Desktop merupakan satu dari serangkaian produk Microsoft yang dapat digunakan tanpa harus membayar lisensi. Di dalam Visual Studio sudah termasuk kerangka kerja pemrograman .Net Framework 4.5. Pustaka ini menyediakan pustaka-pustaka yang dapat digunakan untuk mengolah gambar, melakukan enkripsi/dekripsi, dan lain sebagainya.

Aplikasi terdiri dari dua bagian utama, yaitu bagian embedding dan bagian extracting. Gambar yang dapat digunakan sebagai cover adalah gambar dengan format PNG. PNG merupakan true color image, sehingga mudah diolah menggunakan pustaka Bitmap pada .Net Framework. Pustaka Bitmap menyediakan akses untuk membaca piksel gambar, dan lebih lanjut lagi, menyediakan akses untuk membaca dan menulis nilai warna R, G, B di dalam piksel tersebut.

Kunci yang digunakan dibatasi maksimal 6 karakter, dengan tujuan untuk menghindari kesalahan input. Kunci yang tidak terlalu panjang juga memudahkan untuk diingat. Kunci yang dimasukkan oleh user ini digunakan untuk menyandikan pesan, sebelum proses penyisipan. Kunci yang sama diperlukan ketika proses ekstraksi. Tanpa kunci yang sama, pesan yang diekstrak tidak akan menampilkan informasi yang berarti.

(21)

`14

Gambar 7 menunjukkan tampilan form embedding. Form tersebut menyediakan kontrol untuk memilih gambar cover, input pesan dan kunci. Stego image dan kode rahasia ditampilkan setelah proses embed selesai.

Pada Gambar 8, ditunjukkan form yang digunakan untuk proses ekstraksi. Form ini memerlukan input berupa gambar stego, kunci, dan kode rahasia. Output dari proses ekstraksi adalah data teks, yaitu pesan yang disisipkan sebelumnya. Kode Program 1 Perintah untuk membentuk suatu shingle

1. byte[] shingle = new byte[panjangShingle];

2. Array.Copy(colors, i, shingle, 0, shingle.Length); 3. char[] lsbWarna = ReadLSB(shingle);

4. int nilaiPerbedaan = CompareLSB(ciphertext, lsbWarna); 5. log[i] = new ShingleLog()

6. {

7. Index = i,

8. NilaiPerbedaan = nilaiPerbedaan, 9. LSBWarna = lsbWarna

10.};

Kode Program 1 merupakan perintah yang digunakan untuk membentuk suatu shingle. Panjang shingle sama dengan panjang ciphertext. Langkah pertama adalah membaca sejumlah deretan warna pada gambar. Kemudian baca nilai LSB dari deretan warna tersebut (baris 3). Hitung banyaknya bit yang berbeda dengan ciphertext (baris 4). Kemudian simpan dalam objek ShingleLog.

Kode Program 2 Perintah menghitung perbedaan shingle dengan ciphertext 1. private static int CompareLSB(char[] bits, char[] lsbWarna) 2. {

Kode Program 2 merupakan perintah untuk menghitung perbedaan bit antara shingle dengan ciphertext. Sebagai contoh jika shingle bernilai “1101”, dan ciphertext bernilai “1100”, maka terdapat satu perbedaan. Jika ciphertext bernilai “0001”, maka terdapat tiga perbedaan.

Kode Program 3 Perintah untuk menyisipkan informasi pada LSB warna

1. char[] binary = Convert.ToString(b, 2).PadLeft(8, '0').ToCharArray(); 2. binary[7] = p;

3. byte hasil = (byte)Convert.ToInt32(new string(binary), 2); 4. return hasil;

(22)

`15 Kode Program 4 Perintah untuk ekstraksi bit

1. char[] bitPesan = new char[panjangPesan]; 2. int b = 0; memerlukan dua angka, yaitu posisi awal ekstraksi, diwakilkan dengan variabel index (baris 3), dan panjang shingle atau panjang pesan, diwakilkan dengna variabel panjangPesan (baris 1). Perulangan dilakukan dari posisi index. Pada tiap warna di posisi index tersebut, ambil nilai LSB nya. Kemudian lakukan terus sebanyak “panjangPesan” kali.

Kode Program 5 Perintah untuk enkripsi/dekripsi

1. private static byte[] XOR(byte[] pesan, byte[] password)

7. (byte)(pesan[i] ^ password[i % password.Length]); 8. }

9. return result; 10.}

Kode Program 5 merupakan perintah enkripsi dan dekripsi. Karena operator XOR berlaku dua arah, maka proses enkripsi dan dekripsi menggunakan satu fungsi perintah. Operator XOR ditunjukkan pada baris 7, yaitu karakter “^”.

Sistem yang dikembangkan pada penelitian ini didasarkan pada latar belakang masalah yaitu bagaimana menyisipkan informasi pada gambar dengan meminimalkan perubahan pada cover. Berdasarkan hal tersebut, maka dilakukan beberapa pengujian. Pengujian pertama yaitu pengujian keberhasilan penyisipan pesan (uji integritas). Pengujian kedua adalah pengujian perbandingan perubahan piksel. Pengujian ketika adalah perbandingan kecepatan proses. Pengujian-pengujian tersebut dilakukan dengan menggunakan standart test images [15] yang biasa digunakan pada pengujian algoritma pengolahan gambar.

Pengujian pertama yaitu pengujian integritas pesan. Pengujian ini bertujuan untuk membuktikan bahwa proses penyisipan berhasil dilakukan, dan pesan yang diproses (embed dan extract), tidak mengalami perubahan.

Tabel 7 Hasil Pengujian Integritas pesan

No Gambar Pesan Masuk Pesan Keluar Sama

(23)

`16

2 Ya

3 Ya

4 Ya

1

Frendy Frendy

Ya

2 Ya

3 Ya

4 Ya

(24)

`17

2 Ya

3 Ya

4 Ya

Berdasarkan hasil pengujian integritas pesan, disimpulkan bahwa pesan yang telah melalui proses embed dan extract, tidak mengalami perubahan.

Ukuran gambar mempengaruhi panjang pesan yang dapat disisipkan. Pada gambar berukuran 200x200 piksel, kapasitas penyisipan adalah (200 x 200 x 3 warna) / 8 bit = 15000 byte.

Pengujian kedua adalah pengujian perbandingan perbedaan warna. Pengujian ini dilakukan dengan menyisipkan data pada 8 gambar berbeda dengan satu pesan yang sama, dan kunci yang sama “satya.wacana”. Pada pengujian ini dilakukan proses embedding dengan menggunakan dua jenis algoritma. Algoritma yang pertama adalah steganografi LSB biasa, dan algoritma yang kedua adalah steganografi dengan Shingling. Pesan yang disisipkan adalah: “teknologi informasi”.

Tabel 8 Hasil Pengujian Perbandingan Perubahan Piksel

No Gambar Asli Stego LSB Biasa

Perbedaan Warna dengan gambar asli

Stego Shingling

Perbedaan Warna dengan gambar asli

1. (0.077 %) 51 (0.041 %) 27

(25)

`18

3. (0.077%) 50 (0.048%) 32

4. (0.080%) 53 (0.053%) 35

5. (0.0854%) 56 (0.050%) 33

Rata-rata 52.2 32.4

Hasil pengujian perbandingan perbedaan piksel menunjukkan bahwa dengan menyisipkan dengan menggunakan algoritma Shingling, memberikan perubahan yang lebih kecil daripada steganografi LSB biasa. Panjang pesan “teknologi informasi” adalah 19 byte (152 bit). Pada steganografi LSB biasa, dari 152 bit, terdapat 52.2 bit yang menyebabkan perubahan ((52.2 / 152) x 100% = 34%). Pada steganografi Shingling, terdapat 32.4 bit yang menyebabkan perubahan ((32.4 / 152) x 100% = 21%). Algoritma Shingling menyisipkan lebih efektif sebesar 37.9% ((52.2-32.4)/52.2 x 100%) daripada steganografi LSB biasa. Pengujian ketiga menggunakan scenario yang sama dengan pengujian kedua. Perbedaanya adalah pada pengujian ketiga, yang dicatat adalah waktu proses embedding dan ektraksi

Tabel 9 Hasil Pengujian Pengaruh Kunci

No Gambar Asli Penyisipan Stego LSB Biasa Stego Shingling (milidetik) (milidetik) Ekstraksi Penyisipan (milidetik) (milidetik) Ekstraksi

1. 216.824 82.4886 5090.2735 82.6086

(26)

`19

3. 215.0775 80.6686 4965.9698 81.5886

4. 216.1975 75.5286 5360.8706 76.5086

5. 214.4201 87.6686 5155.566 87.4786

Berdasarkan hasil pengujian ketiga, diketahui bahwa algoritma shingling memerlukan waktu penyisipan yang lebih lama dibandingkan dengan algoritma steganografi LSB biasa. Hal ini karena pada algoritma steganografi LSB biasa, informasi langsung disisipkan dari posisi awal warna cover. Pada steganografi Shingling, dilakukan proses pembentukan shingle, dan pencarian shingle, sehingga lebih memerlukan waktu proses. Proses ekstraksi kedua algoritma menunjukkan perbedaan waktu yang kecil. Hal ini dikarenakan pada kedua algoritma, proses ekstraksi dilakukan langsung pada lokasi penyisipan. Pada algoritma steganografi LSB biasa, ekstraksi dimulai dari posisi pertama warna. Sedangkan pada algoritma steganografi Shingling, ekstraksi dimulai dari posisi indeks sesuai dengan kode rahasia yang dimasukkan, dan tanpa ada proses pembuatan shingle-shingle.

Penggunaan algoritma Shingling memberikan keuntungan yaitu meminimalkan perubahan piksel yang terjadi pada cover. Perubahan kecil penting karena akan mengurangi kecurigaan pada cover yang disisipi.

Pengujian keempat adalah untuk menguji panjang pesan maksimal yang dapat disisipkan pada gambar.

Tabel 10 Hasil Pengujian Maksimal Panjang Pesan

(27)

`20 16. 1024 x 1024 3,145,728 100,000 800,000 Berhasil Berhasil 17. 1024 x 1024 3,145,728 200,000 1,600,000 Berhasil Berhasil 18. 1024 x 1024 3,145,728 300,000 2,400,000 Berhasil Berhasil 19. 1024 x 1024 3,145,728 393,216 3,145,728 Berhasil Berhasil 20. 1024 x 1024 3,145,728 500,000 4,000,000 Gagal Gagal

Berdasarkan Tabel 10, penyisipan berhasil jika panjang bit pesan kurang dari atau sama dengan jumlah warna. Hal ini berhubungan dengan proses penyisipan yaitu, 1 bit pesan disisipkan ke dalam 1 byte warna. Sehingga maksimal panjang pesan dapat dihitung berdasarkan rumus P x L x 3. P adalah panjang piksel gambar, L adalah lebar piksel warna, dan 3 adalah konstanta yang menunjukkan banyaknya warna dalam 1 piksel.

5. Simpulan

Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut: (1) Steganografi pada citra digital dapat diimplementasikan dengan menggabungkan metode penyisipan yang memanfaatkan LSB, dan penentuan lokasi penyisipan terbaik dengan menggunakan algoritma Shingling; (2) Proses penyisipan dengan algoritma Shingling berhasil meminimalkan perubahan yang terjadi pada cover, tanpa merusak integritas pesan yang disisipkan; (3) Kecepatan proses penyisipan algoritma Shingling lebih lambat daripada proses penyisipan algoritma LSB biasa, karena terdapat proses pencarian lokasi terbaik; (4) Untuk proses ekstraksi, diperlukan informasi seperti lokasi ekstraksi dan panjang pesan/shingle. Hal ini dapat dipenuhi dengan cara membangkitkan kode rahasia ketika proses penyisipan selesai. Kode rahasia berisi indeks posisi warna tempat penyisipan dimulai, dan nilai panjang bit pesan yang disisipkan.

(28)

`21

6. Daftar Pustaka

[1]. FLOSS Manuals 2015. Understanding Basic Internet Security. http://en.flossmanuals.net/basic-internet-security/ch003_understanding-basic-internet-security/. Diakses pada 7 Juli 2015

[2]. Forouzan, B. A. 2007. Cryptography & Network Security. McGraw-Hill, Inc.

[3]. Weiss, M. 2009. Principles of Steganography. n, d.[Online]. Available: http://www. math. ucsd. edu/~ crypto/Projects/MaxWeiss/steganography. pdf.[Accessed: March 15, 2009]

[4]. Patil, S. A. 2012. Hiding Text in Audio Using LSB Based Steganography. 2, 8–15.

[5]. Potdar, V. M. & Chang, E. 2004. Grey level modification steganography for secret communication. In Industrial Informatics, 2004. INDIN’04. 2004 2nd IEEE International Conference on, pp. 223–228.

[6]. Broder, A. 2000. Identifying and filtering near-duplicate documents. Combinatorial pattern matching , 1–10.

[7]. Alatas, P. 2009. Implementasi Teknik Steganografi dengan Metode LSB pada Citra Digital. Universitas Gunadarma

[8]. Munir, R. 2006. Kriptografi. Informatika, Bandung [9]. Arusbusman, Y. R. 2007. Image Steganografi.

[10]. Chandramouli, R. & Memon, N. 2001. Analysis of LSB based image steganography techniques. In Image Processing, 2001. Proceedings. 2001 International Conference on, pp. 1019–1022.

[11]. Rafferty, C. 2005. Steganography & Steganalysis of Images. National University of Ireland, Galway

[12]. Parvez, M. T. & Gutub, A. A.-A. 2008. RGB Intensity Based Variable-Bits Image Steganography. 2008 IEEE Asia-Pacific Services Computing Conference , 1322–1327. (doi:10.1109/APSCC.2008.105)

[13]. Microsoft 2015. Overview of the .NET Framework. https://msdn.microsoft.com/id-id/library/zw4w595w(v=vs.110).aspx. Diakses pada 4 November 2015.

[14]. Pressman, R. S. & Jawadekar, W. S. 1987. Software engineering. New York 1992

Gambar

Gambar 1 Komponen RGB pada File Gambar 24 Bit Warna[12]
Gambar 2 Tahapan Penelitian
Gambar 3 Proses Penyisipan
Gambar 5 Proses Pembuatan Shingle
+7

Referensi

Dokumen terkait

Dengan demikian, Persib akan dapat secara perlahan keluar dari permasalahan klasik yang melanda nyaris seluruh klub sepakbola di Indonesia: tidak berprestasi dan

Dengan demikian kepuasan masyarakat pengguna layanan pengadilan, ruang lingkup maklumat pelayanan berada pada kategori sangat baik.. Adapun hasil jawaban kuesioner

Hal ini akan berpengaruh terhadap konsentrasi unsur-unsur kimia airtanah, yang sangat menentukan nilai DHL, kualitas dan tipe hidrokimia airatanah.. Genesis atau asal-usul daerah

emasangan in&us dilakukan untuk men#egah syok. ada penderita dewasa, resusitasi #airan dapat diberikan pada luka bakar derajat 2 atau % yang mengenai  20< luas

Penelitian ini merupakan penelitian deskriptif yang bertujuan untuk mendeskripsikan pengelolaan pembelajaran oleh guru, aktivitas siswa, hasil belajar siswa, dan

Black hole (Indonesia: lubang hitam) merupakan bagian dari alam semesta yang menempati ruang Black hole (Indonesia: lubang hitam) merupakan bagian dari alam semesta yang menempati

Mangrove Sonneratia alba yang diambil di sekitar pantai Desa Nunuk Kecamatan Pinolosian, memiliki kandungan bioaktif alkaloid, flavonoid, fenolik, tanin, saponin,

Setelah dilakukan uji laboratorik bilangan peroksida dengan menggunakan metode iodometri terhadap sampel minyak goreng jelantah, maka diperoleh hasil penelitian