• Tidak ada hasil yang ditemukan

KAJIAN PENERAPAN OPERASI BITWISE PADA STEGANOGRAFI

N/A
N/A
Protected

Academic year: 2021

Membagikan "KAJIAN PENERAPAN OPERASI BITWISE PADA STEGANOGRAFI"

Copied!
6
0
0

Teks penuh

(1)

KAJIAN PENERAPAN OPERASI BITWISE PADA

STEGANOGRAFI

Teady Matius Surya Mulyana

[email protected], [email protected] Teknik Informatika Universitas Bunda Mulia

Abstrak

Abstrak

Abstrak

Abstrak

Steganografi merupakan bagian dari pengolahan citra yang melakukan proses penyembunyian pesan pada masing-masing piksel pada citra. Pada model RGB pesan diuraikan bit per bit dan disembunyikan pada salah satu ataupun pada semua channel RGB. Proses menyembunyikan pesan pada steganografi dilakukan pada tingkat bilangan biner. Karena melibatkan bilangan biner, maka proses pada steganografi akan memerlukan operasi logika digital untuk melakukan proses bit per bit nya. Operasi bitwise sebagai bagian dari operasi logika digital untuk memproses nilai-nilai biner pada masing-masing bit yang akan dimanfaatkan pada operasi ini. Pada enkripsi data, proses tersebut akan terjadi pada pembacaan sel bitmap yang akan disisipi, proses pemisahan tiap-tipa bit dari karakter yang akan disembunyikan pada tiap-tiap sel bitmap, sampai proses penggabungan bit-bit yang sudah dipisahkan dari karakter-karakter yang akan di sembunyikan. Sedangkan pada proses dekripsi data, proses akan terjadi pada pembacaan bit-bit terakhir dari tiap piksel yang tersimpan pada bitmap dan penggabungan bit-bit tersebut menjadi nilai satu byte utuh yang diperlukan untuk menghasilkan sebuah karakter. Karya tulis ini akan rancangan algoritma yang akan memanfaatkan operasi-operasi logika SHIFT, AND dan OR untuk memproses bit-bit tersebut.

Kata Kunci: pengolahan citra, steganografi, enkripsi, dekripsi, bitmap, model RGB, operasi bitwise, bilangan biner

PENDAHULUAN

Steganografi sebagaimana yang dijelaskan oleh Ariyus (Ariyus, 2006) adalah cabang ilmu yang mempelajari tentang bagaimana menyembunyikan informasi di dalam informasi lainnya[1]. Lebih khusus, Sutoyo (Sutoyo, 2009) menjelaskan bahwa steganography dalam pengolahan citra adalah sebuah teknik penyembunyian pesan pada sebuah media berupa citra[5].

Pesan yang akan disembunyikan disebut sebagai plainteks, sedangkan kode yang dihasilkan dari enkripsi plainteks disebut sebagai cipherteks. Cipherteks pada steganografi tidak nampak sebagaimana cipherteks pada

kebanyakan kriptografi, karena cipherteks pada steganografi berupa paduan nilai-nilai pada bit-bit plainteks dengan lokasi piksel yang akan disisipinya.

Gambar 1 mengilustrasikan proses enkripsi. Pada teknik steganografi dilakukan dengan cara menguraikan plainteks karakter per karakter. Kemudian setiap karakter akan diuraikan bit perbit. Bit-bit yang diuraikan dari plainteks akan disisipkan pada salah satu atau semua channel RGB pada sel tertentu yang sudah ditentukan sesuai dengan kunci yang dipergunakan.

(2)

Gambar 1. Proses Enkripsi

Sutoyo (Sutoyo, 2009) menjelaskan bahwa bitmap adalah sekumpulan variabel linier yang terbentuk dari kolom dan baris. Dimana pada masing-masing sel tersimpan warna dari masing-masing piksel pada sel yang bersesuai dengan bitmap tersebut[5]. Proses penyisipan bit pada nilai piksel dilakukan dengan cara menyamakan nilai bit terakhir dari channel yang akan disisipi pada piksel tersebut dengan nilai bit dari plainteks yang akan disisipkan.

Kunci pada Steganografi dapat berupa suatu bilangan yang menentukan posisi piksel-piksel yang akan disisipi oleh bit-bit dari plainteks. Channel-channel RGB dapat pula dianggap sebagai posisi yang berdiri pada masing-masing channel RGB atau dapat juga dianggap sebagai satu kestuan posisi penyisipan bit plainteks.

Gambar 2 mengilustrasikan proses dekripsi. Proses dekripsi dilakukan dengan cara mengambil nilai dari masing-masing posisi piksel sesuai dengan ketentuan kunci. Untuk setiap nilai yang diambil dari masing-masing piksel tersebut, diambil bit terakhir dan digabunggkan sampai terkumpul 8 bit. Setelah terkumpul 8 bit maka akan didapatkan sebuah karakter.

Gambar 2. Proses Dekripsi

Semua proses mulai dari penguraian plainteks menjadi nilai bilangan biner,

penyisipan nilai biner dari masing-masing bit dari plainteks maupun penggabungan dilakukan bit per bit pada bilangan biner. Dengan demikian beberapa operasi logika dapat dimanfaatkan pada teknik steganografi untuk penguraian bit-bit maupun untuk menyisipkan nilai bit-bit tersebut pada piksel-piksel yang dituju dalam proses enkripsi serta mengambil nilai pada bit terakhir dari masing-masing piksel yang menyimpan cipherteks serta menggabungkannya menjadi satu nilai byte dalam proses dekripsi.

Nilai data bertipe long, int, short, byte dab char pada JAVA dapat dioperasikan bit perbitnya dengan operator bit per bit. Operasi-operasi logika bit per bit yang akan dimanfaatkan pada karya tulis ini dalam melakukan enkripsi dan dekripsi adalah operasi SHIFT untuk pergeseran bit, operasi AND dan operasi OR.

Brookshear (Brookshear, 2007) menjelaskan mengenai operasi pergeserah (shift) untuk melakukan pergeseran bit per bit[2]. Yang mana dijelaskan oleh Cornell (Cornell, 1997) maupun Peter (peter, 1996) pada JAVA juga terdapat operator-operator bitwise seperti &, |, <<, >> dan >>>[3][4].

Operasi SHIFT akan menggeser bit per bit ke arah yang ditentukan. Pada JAVA terdapat 3 operator SHIFT yaitu operator ”>>”, ”>>>” dan ’<<”.

Operator >> akan melakukan operasi pergeseran bit perbit ke kanan, termasuk tanda plus minus.

Operator >>> akan melakukan operasi pergeseran bit perbit ke kanan, bit paling kiri akan diisi dengan nilai 0. Operator << akan menggeser bit per bit ke kiri.

Operator logika AND pada JAVA menggunakan operator ”&”. Operator ini akan melakukan operasi AND pada masing-masing bit.

Operator logika OR pada JAVA menggunakan operator ”|”. Operator

(3)

ini akan melakukan operasi OR pada masing-masing bit.

METODE

Untuk mengimplementasikan operator-operator logka bit per bit tersebut, disusun metode enkripsi dan dekripsi. Metode enkripsi disusun sebagai berikut:

1. Cari panjang plainteks.

2. Uraikan karakter dari plainteks dan simpan setiap nilai bitnya pada sebuah array.  misalkan array int b[]

3. Proses penguraian dapat dilakukan dengan mengambil nilai interger dari karakter yang di baca

4. Kemudian dari nilai integer tersebut di geser sejumlah 8-j-1 digit., dimana merupkan pencacah dari 0 sampai 7, sehingga untuk setiap bit ke j yang merupakan bit yang akan disimpan akan menempati bit terakhir.

5. Hasil pergeseran tersebut di AND kan dengan nilai biner 00000001 untuk memastikan nilai-nilai bit di sebelah kiri daribit terakhir akan bernilai 0 dan bit yang akan disimpan akan berisi nilai yang semestinya dari bit yang diinginkan. Algoritma menggunakan sintax JAVA untuk pergeseran tersebut dapat dilihat pada program 1.

Program 1. pengambilan bit-bit karakter

6. Untuk memeriksa apakah alamat bitmap adalah alamat sel yang dapat disisipi nilai biner b, lakukan dengan perintah

7. Dimana panjang adalah panjang karakter, lebar adalah lebar bitmap.

8. Bit terakhir dari nilai pada setiap bitmap pada channel R/G/B yang akan dipilih diambil dan disesuaikan dengan nilai bit yang tersimpan pada aray b.

9. Dengan cara mengeset 0 untuk bit terakhir. Dapat dilakukan dengan melakukan operasi AND terhadap nilai bitmap dengan nilai 11111110 (FE).

10. Langkah berikutnya hasilnya di OR dengan nilai bit yang tersimpan pada array b.

11. Hasilnya disimpan pada result Bitmapsesuai dengan alamat sel nya.

12. Untuk kondisi nilai karakter yang dibaca berupa 0 dapat dilakukan dengan

13. Sedangkan untuk mengeset nilai 0 pada 8 piksel terakhir cukup dengan melakukan operasi AND terhadap nilai bitmap dengan nilai 11111110 (FE).

14. Sisa piksel setelah didapatkan karakter penutup 0, dapat diisi dengan nilai sesuai dengan nilai bitmap asal.

Metode dekripsi disusun sebagai berikut:

1. Untuk setiap sel bitmap yang berisi bit diambil nilai terakhirnya dengan cara di AND kan dengan 0x1 atau 00000001. sehingga hanya tersisa nilai bit terakhirnya. 2. Kemudian masukkan ke sebuah

penampung nilai karakter.

3. Setiap kali akan memasukkan nilai bit yang didapat tersebut, pastikan sudah menggeser bit-bit yang terdapat pada penampung sebanyak 1 bit ke kiri.

Program 2. memasukkan bit-bit ke penampung karakter

(4)

4. Kemudian pastikan setiap 8 piksel yang terbaca, akan dimasukkan sebagai karakter ke dalam variabel penampung string.

5. Lakukan proses pembacaan cipher teks sampai didapat 8 bit terakhir dari nilai bit terakhir pada 8 piksel terakhir yang dibaca berisi nilai 00000000.

PEMBAHASAN

Untuk mengkaji penggunaan operator logika bit-perbit “>>>”, “<<”, “&” dan “|” dibuat program menggunakan pemrograman JAVA untuk melakukan proses enkripsi dan dekripsi. Program dipanggil melalui command prompt, disertai argumen nama file yang akan diproses. Pemanggilan program dari command prompt dapat dilihat pada gambar 3.

Gambar 3. Pemanggilan Program

Tampilan program dapat dilihat pada gambar 4. Citra dari file gambar yang dipanggil akan ditampilkan pada panel di sisi sebelah kiri. Di sebelah kanan ada dua buah panel, panel yang ditengah akan berisi penggambaran dari bitmap asli, sedangkan yang sebelah kanan nantinya akan berisi citra dari bitmap hasil pengolahan.

Gambar 4. Tampilan Program

Pada bagian bawah terdapat kombo box untuk memilih proses. Di sebelah kanan comboBox tersebut terdapat sebuah editText yang akan di pergunakan untuk menuliskan teks yang akan di enkripsi, juga sekaligus sebagai tempat hasil dekripsi untuk proses dekripsi. Button ”Abu-abu” merupakan button untuk memproses dan menampilkan hasil proses dalam citra abu-abu. Button ”Warna” merupakan button untuk memproses dan menampilkan hasil proses dalam citra warna.

Button “Simpan” merupakan button untuk melakukan proses penyimpanan sesuai dengan format file citra yang dipilih pada comboBox format. ComboBox format akan berisi pilihan tipe format file citra.

Untuk proses enkripsi, pilih Enkrip, kemudian plaintext yang akan dienkripsi diketikkan pada editText yang tersedia. Sebagai contoh dapat dilihat pada gambar 5.

Gambar 5. Pilihan Proses Enkripsi

Gambar 6. Hasil Enkripsi Pada Gambar abu-abu

(5)

Gambar 7. Hasil Enkripsi Pada Gambar berwarna

Kemudian penekanan button “Abu-abu” akan melakukan proses enkripsi teks pada editText ke dalam file gambar. Panel di tengah akan menampilkan citra yang belum berisi teks hasil enkripsi, sedangkan panel di kanan akan menampilkan citra yang berisi teks hasil enkripsi. Contoh hasil enkripsi berupa stego abu-abu dapat dilihat pada gambar 6. Sedangkan contoh hasil enkripsi berupa stego berwarna dapat dilihat pada gambar 7.

Dari gambar 6 dan gambar 7, dapat dilihat secara kasat mata, tidak ada perbedaan antara citra di sebelah kiri yang merupakan citra asli dan citra di sebelah kanan yang merupakan stego. Untuk percobaan proses dekripsi nantinya, citra abu-abu dan citra berwarna yang semuanya berisi pesan tersembunyi akan disimpan dalam format ”png”.

Proses dekripsi akan dilakukan dengan memanggil file gambar yang berisi pesan rahasia. Dapat dilihat pada gambar 8, dimana pada contoh, sebagai parameter ke 0 adalah nama file hasil.png yang berisi citra yang sudah disusupi pesan rahasia.

Gambar 8. Pemanggilan Program Dengan parameter file Citra yang berisi pesan

Gambar 9. Tampilan File Citra yang berisi pesan

Setelah frame muncul, pengguna dapat memilih proses dekrip, contoh dapat dilihat pada gambar 9. pada gambar tersebut, tampak editText masih kosong belum terisi, sedangkan panel gambar di tengah dan di kanan juga belum terisi. Pengguna akan menekan button “Abu-abu” atau button “Warna” untuk melakukan proses dekripsi. Setelah proses dekripsi selesai, maka pada EditText yang tersedia sudah muncul teks yang tersembunyi pada file citra yang di panggil. Pada Gambar 10. memperlihat teks yang dimunculkan dari hasil dekripsi terhadap teks tersembunyi.

Gambar 10. Pesan Yang Tersimpan pada File Citra ditampilkan

SIMPULAN

Berikut ini kesimpulan dari pemanfaatan operasi-operasi bitwise pada steganografi:

1. Untuk mendapatkan bit-bit berupa nilai biner dari suatu nilai integer tidak harus dengan melakukan konversi ke bilangan biner.

(6)

2. Untuk menggabungkan bit-bit dari sebagian bilangan integer dan menggabungkannya mendapatkan bit-bit berupa nilai biner dari suatu nilai integer tidak harus dengan melakukan konversi ke bilangan biner.

3. Untuk mendapatkan bit-bit dan menguraikan bit-bit tersebut dapat mempergunakan operasi-operasi bitwise yang disediakan oleh bahasa pemrograman.

4. Dengan memanfaatkan operasi-operasi bitwise, mempermudah penguraian ataupun penggabungan bit-bit bagian dari suatu bilangan integer, karena tidak perlu melakukan proses oeprasi aritmatika yang panjang.

Saran

Karya tulis ini membahas mengenai pemanfaatan operasi bitwise untuk memisahkan bit perbit maupun menggabungkan bit-bit pada proses enkripsi maupun dekripsi pada steganografi dengan asumsi kunci yang

dipergunakan adalah 0 atau tanpa kunci. Saran untuk kajian lain dapat pula membahas mengenai implementasi kunci dengan memanfaatkan operasi bitwise yang sudah dibahas pada karya tulis ini.

DAFTAR PUSTAKA

[1] Ariyus. Donny, 2006, Kriptografi, Graha Ilmu, Yogyakarta

[2] Brookshear. J. Glenn, 2011, Computer Science ed 11, Addison Wesley - Pearson Education, USA

[3] Cornell. Gary, S. Horstmann. Cay, 1997, Core JAVA, Prentice Hall PTR, USA

[4] Peter van der Linden, Tcheslavski, 1996, Just Java, Prentice Hall PTR, USA

[5] Sutoyo, T., mulyanto, E., Suhatono V., Nurhayanti OD., Wijanarto., 2009, Teori Pengolahan Digital, Andi Offset, Semarang.

Gambar

Gambar 1. Proses Enkripsi
Gambar 8. Pemanggilan Program Dengan  parameter file Citra yang berisi pesan

Referensi

Dokumen terkait

Salah satunya teknologinya adalah metoda radar penembus tanah ( Ground Penetration Radar / GPR ) adalah suatu metode pendeteksian objek-objek di dalam tanah dengan menggunakan

Pada penelitian ini dibuatlah Sistem Pakar Identifikasi Hama dan Penyakit Tanaman Tebu Menggunakan Metode Naïve Bayes , yang merupakan bagian dari teknik

[r]

S1 (Sarjana) Memiliki pengetahuan yang memadai terkait dengan cara kerja sistem komputer dan mampu merancang dan mengembangkan berbagai algoritma dasar untuk memecahkan

Puji dan syukur penulis ucapkan kepada Allah SWT yang telah melimpahkan rahmat-Nya sehingga penulis dapat menyelesaikan tugas akhir dengan judul “RANCANG BANGUN

Dengan menggunakan metode pembelajaran problem solving ini, diharapkan siswa dapat lebih aktif karena pembelajaran problem solving ini difokuskan untuk

Tangga partisipasi Arnstein ini terdiri dari delapan anak tangga tersebut dibagi ke dalam 3 (tiga) kategori besar. Kategori pertama yakni non partisipasi, terdiri dari manipulasi

Tujuan penelitiannya sebagai berikut (1) Un- tuk mengetahui pengaruh jenis dan massa mordan terhadap hasil pewarnaan alami buah galing (cayratia trifolia) pada jaket batik