Data yang Digunakan Analisis Masalah General Architecture

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini akan dibahas mengenai analisis sistem yang akan dibangun beserta perancangan sistemnya yang dimaksudkan untuk memaparkan rincian proses sistem yang akan dibangun.

3.1 Data yang Digunakan

Data yang digunakan pada sistem ini adalah gambar RGB yang berformat bmp atau jpeg dan pesan yang dimasukkan berupa teks. Digunakan gambar RGB karena metode yang digunakan memerlukan 3 channel warna di setiap pixel-nya pada gambar.

3.2 Analisis Masalah

Steganografi merupakan salah satu cara untuk menyisipkan pesan ke dalam suatu gambar guna untuk mengelabui pandangan seseorang sehingga orang lain tidak tahu ada pesan yang disembunyikan. Algoritma untuk steganografi sangat banyak, salah satunya dengan algoritma LSB. Algoritma LSB adalah algoritma yang menyembunyikan pesan ke dalam bit yang tidak signifikan pada suatu gambar. Dengan demikian, kapasitas penyimpanan terbatas dan penyembunyiannya sudah sangat mudah diketahui. Algoritma PIT merupakan pengembangan dari algoritma LSB. Mampu menyembunyikan pesan minimal 2 bit di dalam 1 pixel dan penyembunyiannya berdasarkan parameter yang ditentukan berdasarkan nilai acak.

3.3 General Architecture

Sistem yang dibangun merupakan sebuah add-ons. Add-ons ialah fitur yang bisa dikembangkan oleh user untuk melengkapi aplikasi yang digunakan dari produk mozilla. Dalam hal ini, add-ons yang dibangun hanya bisa digunakan pada email client mozilla thunderbird. Universitas Sumatera Utara Pada gambar 3.1 terlihat proses penyisipan pesan pada sistem yang akan dibangun adalah dimulai dengan meng-input gambar yang akan digunakan untuk menyisipkan pesan gambar cover dilanjutkan dengan meng-input pesan yang akan disisipi. Dilanjutkan dengan proses konversi pesan ke bilangan biner, bangkitkan nilai PRNG untuk mengacak nilai parameter dan sisipkan pesan dengan algortima PIT. Hasil yang keluar setelah proses selesai adalah gambar yang telah disisipi pesan gambar stego. Input pesan Input gambar cover Konversi kedalam biner PRNG PIT Proses Gambar Stego Output Gambar 3.1 G eneral architecture penyisipan pesan Pada gambar 3.2 digambarkan proses pengekstraksian pesan yang dimulai dengan meng-input gambar stego. Dilanjutkan dengan memproses gambar yang dimulai dengan mengambil panjang pesan dari 8 bytes pertama, lalu bangkitkan nilai PRNG untuk mendapatkan nilai acak parameter dan dilanjutkan dengan mengambil pesan yang disisipkan dengan PIT. Hasil dari proses tersebut ialah user dapat mengetahui pesan yang disisipkan ke dalam gambar. Universitas Sumatera Utara Input gambar stego Ekstrak panjang pesan PRNG PIT Proses Pesan Output Gambar 3.2 General architecture ekstraksi pesan 3.3.1 Proses Penyisipan Pesan Proses penyisipan pesan ini digambarkan dalam bentuk flowchart seperti pada gambar 3.3. Proses penyisipan pesan dimulai meng-input gambar dilanjutkan meng-input pesan. Setelah meng-input pesan, pesan dikonversi ke dalam bilangan biner. Dihitung total bilangan biner dari hasil konversi pesan untuk diperoleh panjang pesan dalam bentuk desimal. Panjang pesan tadi dikonversikan kembali kedalam bilang biner dan ditambahkan bit ‘0’ didepan bilangan biner dari konversi panjang pesan tersebut. Jumlah bit ‘0’ yang ditambahkan harus menghasilkan jumlah bit sebanyak 64 bit. Hal ini dikarenakan kapasitas yang disediakan untuk menyisipkan panjang pesan sebanyak 8 bytes. Dimana 1 bytes = 8 bit, jadi 8 bytes = 8 x 8 = 64 bit. Disisipkan dengan metode LSB dimana bit panjang pesan disisipkan pada bit akhir dari setiap channel pada gambar Gutub, 2009. Setelah itu proses dilanjutkan dengan membangkitkan nilai PRNG untuk mengeset bilangan acak parameter. Untuk mendapatkan jumlah banyaknya pesan yang bisa disisipkan ke dalam gambar digunakan perhitungan bilangan acak PRNG dan algoritma PIT lalu bandingkan kapasitas gambar dengan panjang pesan. Jika panjang pesan lebih besar dari kapasitas gambar, maka proses diulang kembali dari proses meng-input gambar. Namun, jika kapasitas gambar lebih besar dari panjang pesan Universitas Sumatera Utara maka proses bisa dilanjutkan dengan menyisipkan pesan ke dalam gambar dengan algoritma LSB seperti yang telah disebutkan diatas. Pesan yang akan disembunyikan disisipkan ke dalam gambar dengan algoritma PIT. Setelah semua proses selesai, maka akan dihasilkan gambar stego. Mulai Input Gambar Cover Set parameter PRNG Kapasitas gambar panjang pesan Sisipkan panjang pesan Sisipkan pesan ke dalam gambar dengan PIT Gambar Stego Selesai yes Konversi pesan ke biner Konversi panjang pesan ke biner Input Pesan Tambahkan bit ‘0’ untuk menjadikan panjang pesan sebanyak 64 bit Hitung kapasitas gambar dengan PRNG dan PIT A A no B B Gambar 3.3 Flowchart penyisipan pesan pada gambar 3.3.2 Membangkitkan nilai Pseudo Random Number Generator PRNG sebagai parameter PRNG merupakan sebuah fungsi matematika yang digunakan untuk menghasilkan bilangan acak. Bilangan acak ini digunakan untuk mengacak parameter warna yang Universitas Sumatera Utara akan digunakan untuk menyisipkan pesan. Bilangan acak ini akan dibangkitkan pada setiap pixel pada gambar. pada gambar 3.4 akan ditampilkan flowchart PRNG. Mulai Tambahkan bit ‘0’ untuk menjadikan panjang pesan sebanyak 64 bit Setiap 8 bit dari 64 bit panjang pesan di XOR Tambahkan bit ‘0’ didepan bit hasil XOR Bit 0 sampai 2 sebagai nilai c c 0 c = c + 1 c m c = c mod m Bit 3 sampai 5 sebagai nilai x i x i m x i = x i mod m Bit 6 sampai 8 sebagai nilai a a 0 a = a + 1 a m a = a mod m yes yes no no yes no yes no no yes Selesai Gambar 3.4 Flowchart set parameter PRNG Universitas Sumatera Utara Untuk memperoleh nilai a, x i dan c, terlebih dahulu bit panjang pesan yang berjumlah 64 bit dipisah setiap 8 bit. Setiap 8 bit panjang pesan tersebut di XOR. Setelah hasil XOR diperoleh, tambahkan bit ‘0’ di depan 8 bit hasil XOR tersebut. Bit ‘0’ ditambahkan untuk membuat pembagian nilai antara a, x i dan c sama banyaknya. Setiap 3 bit dari jumlah bit tersebut dijadikan sebagai nilai a, x i dan c. Nilai a diperoleh dari bit 0 sampai bit 2 dan nilai a harus lebih besar dari 0. Nilai x i diperoleh dari bit 3 sampai bit 5 dan nilai c diperoleh dari bit 6 sampai 8 dan nilai c harus lebih besar dari 0. Nilai a, x i dan c harus lebih besar dari m. Jika tidak, nilai a, x i dan c akan di mod m untuk mendapatkan nilainya. Nilai m disini ditetapkan bedasarkan banyaknya kemungkinan yang diperoleh dari channel red, green, dan blue. Dalam hal ini nilai m = 7. Misalkan pesan yang akan dikirim sebanyak 20 karakter. Panjang pesan diperoleh dari total bilangan biner dari pesan tersebut. Panjang pesan = 20 x 8 = 160. Panjang pesan tersebut dikonversi ke bilangan biner. Bilangan biner 160 adalah 10100000. Tamba hkan bit ‘0’ sebanyak 56 bit untuk membuat bilangan biner panjang pesan menjadi 64 bit. Setiap 8 bit dari 64 bit tersebut di XOR dan sesuai aturan XOR seperti terlihat pada tabel 3.1, maka hasil bit yang di XOR akan sama dengan bit panjang pesan. Untuk membagi nilai a, x i dan c maka ditambahkan bit ‘0’ didepan bit hasil XOR. Bilangan biner yang dihasilkan adalah 010100000. Nilai a = 000 = 0, nilai x i = 100 = 4 dan nilai c = 010 = 2. Seperti yang terlihat pada gambar 3.4, maka nilai a harus ditambah 1 sehingga nilai a = 1. Tabel 3.1 Tabel Kebenaran XOR Input Output A B A XOR B 1 1 1 1 1 1 Universitas Sumatera Utara 3.3.3 Menghitung kapasitas gambar Untuk membangkitkan nilai PRNG, masukkan nilai a, x i dan c ke dalam rumus x i+1 = a.x i + c mod m. Setelah diperoleh nilai x i , maka kapasitas gambar bisa dihitung dengan cara menyesuaikan nilai x i dengan kapasitas gambar yang bisa disisipkan pada 1 pixel. Proses tersebut diulang terus sampai pada pixel terakhir pada gambar sehingga diperole h kapasitas maksimal pesan yang bisa disisipkan pada gambar. Huruf ‘K’ pada gambar 3.5 menyatakan kapasitas. mulai x i = 0 x i = 1 x i = 2 x i = 3 K += 2 K += 2 K += 2 K += 4 no yes yes no yes no no yes Masukkan nilai a, c dan x i ke dalam rumus x i+1 = ax i + c mod m untuk membangkitkan nilai parameter A B C Gambar 3.5 Flowchart perhitungan maksimal pesan yang bisa disisipi pada gambar Universitas Sumatera Utara A x i = 5 K += 4 Selesai yes Pixel sekarang = Pixel terakhir Dilanjutkan ke pixel berikutnya no x i = 6 K += 6 yes no yes B C x i = 4 K += 4 yes no Gambar 3.5 Flowchart perhitungan maksimal pesan yang bisa disisipi pada gambar Lanjutan 3.3.4 Penyisipan pesan pada gambar menggunakan Pixel Indicator Technique PIT Untuk membangkitkan nilai PRNG, harus dimasukkan nilai a, x i dan c kedalam rumus PRNG sama seperti penjelasan gambar 3.5. Apabila nilai dimasukkan sesuai penjelasan gambar 3.4, maka dapat dirumuskan X i+1 = a.x i + c mod m Contoh perhitungannya dimana a = 1, x i = 4, c = 2 dan m = 7. i pada x i dimulai dari 0 X i+1 = a.x i + c mod m X 0+1 = 1.4 + 2 mod 7 X 1 = 6 mod 7 = 6 Universitas Sumatera Utara X 1+1 = 1.6 + 2 mod 7 X 2 = 8 mod 7 = 1 X 2+1 = 1.1 + 2 mod 7 X 3 = 3 mod 7 = 3 X 3+1 = 1.3 + 2 mod 7 X 4 = 5 mod 7 = 5 X 4+1 = 1.5 + 2 mod 7 X 5 = 7 mod 7 = 0 X 5+1 = 1.0 + 2 mod 7 X 6 = 2 mod 7 = 2 X 6+1 = 1.2 + 2 mod 7 X 7 = 4 mod 7 = 4 Rumus tersebut terus diulang untuk membangkitkan PRNG untuk memperoleh parameter channel yang akan disisipkan pesan. Seperti yang terlihat pada gambar 3.6, jika nilai x i = 0 maka channel red dari pixel tersebut yang digunakan untuk menyisipkan pesan sebanyak 2 bit. 2 bit akhir dari bit channel red yang diganti dengan bit pesan. Setiap 1 channel disisipkan 2 bit pesan. Panjang pesan akan Universitas Sumatera Utara dikurang seiring dengan disisipkannya pesan ke dalam gambar. Pengurangan panjang pesan sesuai dengan banyaknya pesan yang disisipkan pada 1 pixel. Proses ini terus berulang sampai pengecekan panjang pesan 0. Jika ya, maka proses penyisipan dilanjutkan ke pixel berikutnya. Jika tidak, maka proses telah selesai. mulai x i = 0 x i = 1 x i = 2 x i = 3 x i = 4 Gunakan channel Red Panjang pesan - 2 Gunakan channel Green Panjang pesan - 2 Gunakan channel Blue Panjang pesan - 2 Gunakan channel Red Green Panjang pesan - 4 Gunakan channel Red Blue Panjang pesan - 4 no yes yes no yes no no yes yes no Masukkan nilai a, c dan x n ke dalam rumus x i+1 = ax i + c mod m untuk membangkitkan nilai PRNG x i = 5 Gunakan channel Green Blue Panjang pesan - 4 yes no A C B Gambar 3.6 Flowchart penyisipan pesan menggunakan algoritma PIT Universitas Sumatera Utara C Selesai Panjang pesan Dilanjutkan ke pixel berikutnya x i = 6 Gunakan channel Red Green Blue Panjang pesan - 6 yes yes no A B Gambar 3.6 Flowchart penyisipan pesan menggunakan algoritma PIT Lanjutan 3.3.5 Ekstraksi Pesan Mulai Input Gambar Stego Ekstrak panjang pesan Set parameter PRNG Ekstrak pesan dari gambar dengan PIT Pesan Selesai Gambar 3.7 Flowchart ekstraksi pesan Pada gambar 3.7 dapat dilihat alur proses pengekstraksian psan yang disisipkan pada gambar stego sampai pesan tersebut dapat diketahui oleh si penerima. Proses dimulai dengan meng-input gambar stego dan dilanjutkan dengan mengekstrak panjang pesan. Universitas Sumatera Utara Panjang pesan disisipi sebanyak 64 bit pertama pada gambar dengan algortima Least Significant Bit LSB dimana pesan disisipi pada 1 bit terakhir atau bit yang paling tidak signifikan pada gambar. Setelah panjang pesan sudah diekstrak, proes dilanjutkan dengan mengeset parameter untuk mengetahui channel apa saja yang digunakan pada setiap setiap pixel. Penjelasan proses set parameter PRNG dapat dilihat pada gambar 3.4. Proses ekstraksi tersebut dilanjutkan dengan mengambil bit pesan dari gambar menggunakan algoritma PIT. Apabila semua proses sudah selesai dilakukan maka pesan yang telah disisipkan pada gambar akan muncul. 3.3.6 Ekstraksi Pesan menggunakan PIT mulai Masukkan nilai a, c dan x i ke dalam rumus x i+1 = ax i + c mod m untuk membangkitkan nilai PRNG x i = 0 x i = 1 x i = 2 x i = 3 Gunakan channel Red Bit pesan += 2 bit akhir Panjang pesan - 2 Gunakan channel Green Bit pesan += 2 bit akhir Panjang pesan - 2 Gunakan channel Blue Bit pesan += 2 bit akhir Panjang pesan - 2 Gunakan channel Red Green Bit pesan += 4 bit akhir Panjang pesan - 4 no yes yes no yes no no yes A C B Gambar 3.8 Flowchart ekstraksi pesan menggunakan algoritma PIT Universitas Sumatera Utara C x i = 4 x i = 5 Gunakan channel Red Blue Bit pesan += 4 bit akhir Panjang pesan - 4 Gunakan channel Green Blue Bit pesan += 4 bit akhir Panjang pesan - 4 Selesai yes no yes Panjang pesan 0 Dilanjutkan ke pixel berikutnya x i = 6 Gunakan channel Red Green Blue Bit pesan += 6 bit akhir Panjang pesan - 6 yes no yes Konversi bit pesan no A B Gambar 3.8 Flowchart ekstraksi pesan menggunakan algoritma PIT Lanjutan Agar mendapatkan channel yang digunakan untuk menyisipkan pesan pada setiap pixel, nilai PRNG harus dibangkitkan. Seperti terlihat pada gambar 3.8 untuk mendapatkan nilai x i maka nilai a, x i dan c harus dimasukkan ke dalam rumus PRNG. Untuk memperoleh nilai - nilai tersebut, penjelasan alur prosesnya sudah dijelaskan pada gambar 3.4. Dibawah gambar 3.4 juga sudah dijelaskan bagaimana hal tersebut diperoleh. Setelah nilai PRNG untuk mengeset parameter diperoleh, proses dilanjutkan dengan mengambil bit pesan yang disembunyikan pada gambar. bit yang diambil adalah 2 bit terakhir dari channel warna yang digunakan. Misal nilai x i = 0, maka channel yang digunakan adalah channel red. Pada channel red tersebut diambil 2 bit akhir yang merupakan bit pesan. 2 bit pesan tersebut disimpan di tempat sementara sampai semua bit pesan terpenuhi. Panjang pesan dikurang 2 karena 2 bit yang diambil dari channel red tersebut. Proses ini terjadi pada 1 pixel. Selanjutnya panjang pesan dibandingkan. Apakah panjang pesan lebih besar dari 0 atau tidak. Jika panjang pesan 0, maka lanjut ke pixel berikutnya. Proses diulang lagi dari memasukkan nilai a, x i dan c samapai bit pesan yang diambil dari gambar dan panjang pesan dikurangi. Jika panjang pesan = 0 maka bit pesan yang disimpan sementara sudah terpenuhi maka bit pesan tersebut di konversi ke karakter. Universitas Sumatera Utara

3.4 Perancangan Sistem