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