4.2. Fase workshop desain
4.2.1. Perancangan Algoritma
Algoritma yang penulis kembangkan adalah menggabungkan metode steganografi LSB insertion dan metode kriptogafi RC4 strem cipher
dalam mengencode dan mendecode file. Proses encode dan decode dapat dilihat melalui gambar 4.1 di bawah ini :
40
1. Algoritma RC4 stream cipher
Algoritma kriptografi RC4 merupakan salah satu algoritma berjenis stream cipher. Algoritma ini akan memproses data dalam
ukuran byte demi byte 1 byte = 8 bit. Algoritma ini dapat melakukan enkripsi dan dekripsi pada panjang data yang variabel atau dinamis tanpa
perlu adanya penambahan byte padding. Kunci utama RC4 maksimal sepanjang 2048 bit 256 byte,
namun yang biasa digunakan hanya sepanjang 40 bit atau 128 bit. Sisanya 2048 – 40 = 2008 bit atau 2048 – 128 = 1920 bit diisi dengan
perulangan kunci tersebut. Jadi jika kuncinya berupa 16 byte 128 bit K = 0123456789abcdef dimana setiap angka merupakan bilangan
hexadesimal maka byte ke-17 sampai byte ke-256 berisi K tersebut secara berulang.
RC4 mempunyai sebuah S-Box, S0, S1, ... , S255, yang berisi permutasi dari bilangan 0 sampai 255, dan permutasi merupakan fungsi
dari kunci K dengan panjang yang variabel. Langkah – langkah algoritma kriptografi RC4 sebagai berikut :
1. Inisialisasi S-Box
• Isi S-Box secara berurutan, yaitu S0=0, S1=1, ... , S255=255. • Lakukan padding kunci K sehingga panjang kunci K = 256.
• Lakukan pertukaran dan pengisian pada S-Boxdengan kunci K, sebagai berikut :
j = 0
41
for i = 0 to 255
j = j + S
i
+ K
i
mod 256 swap
S
i
dan S
j
Fungsi swap merupakan fungsi yang menukarkan nilai S ke-i dengan nilai S ke-j
2. Proses enkripsi atau dekripsi RC4 :
i = 0 j = 0
for idx = 0 to len-1 i = i + 1 mod 256
j = j + S
i
mod 256 swap
S
i
dan S
j
t = S
i
+ S
j
mod 256 k = S
t
buff
idx
= k XOR buff
idx
Keterangan: • buff merupakan pesan yang akan dienkripsi atau dekripsi
• len merupakan panjang dari buff Hasil akhir dari proses di atas ialah buff yang berisi pesan yang telah
dienkripsi atau dekripsi.
42
2. Algoritma Steganografi
Pada file gambar BMP 24 bit setiap pixel pada gambar terdiri dari susunan tiga warna yaitu merah, hijau, biru RGB yang
masing-masing disusun oleh bilangan 8 bit 1 byte dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Informasi
dari warna biru berada pada bit pertama sampai bit delapan, dan informasi warna hijau berada pada bit sembilan sampai dengan bit
16, sedangkan informasi warna merah berada pada bit 17 sampai dengan bit 24. Metode penyisipan LSB least significant bit ini
adalah menyisipi pesan dengan cara mengganti bit ke 8, 16 dan 24 pada representasi biner file gambar dengan representasi biner pesan
rahasia yang akan disembunyikan. Dengan demikian pada setiap pixel file gambar BMP 24 bit dapat disisipkan 3 bit pesan, misalnya
terdapat data raster original file gambar adalah sebagai berikut : 00100111 11101001 11001000
00100111 11001000 11101001 11001000 00100111 11101001
Dan nilai biner untuk A adalah 10000011. Sisipan nilai biner untuk A dalam tiga pixel tersebut akan menghasilkan :
00100111 11101000 11001000 00100110 11001000 11101000
11001000 00100111 11101001
43
Bit-bit yang digaris bawahi hanya tiga perubahan secara aktual dalam 8 byte yang digunakan. Secara rata-rata, LSB
membutuhkan hanya setengah bit dalam suatu perubahan gambar. Kita dapat menyembunyikan data dalam least dan second least
significant bit dan mata manusia masih belum dapat membedakannya.
Berikut algoritma steganografi LSB insertion : 1.
Sepanjang jumlah huruf, lakukan langkah 2 sampai 4 2.
Konversi huruf dalam pesan yang akan disisipkan menjadi biner 3.
Baca informasi warna dari tiap pixel pecah menjadi 3 : R, G ,B. 4.
Tukar biner terakhir yang didapat dari pixel-pixel tersebut sesuai dengan biner huruf yang akan disisipkan disisipkan.
Ukuran data yang akan disembunyikan bergantung pada ukuran citra penampung. Pada citra 8-bit yang berukuran 256
× 256 pixel terdapat 65536 pixel, setiap pixel berukuran 1 byte. Setelah
diubah menajdi citra 24-bit, ukuran data bitmap menjadi 65536 × 3 =
196608 bit. Karena setiap byte hanya bisa menyembunyikan satu bit di LSB-nya, maka ukuran data yang akan disembunyikan di dalam
citra adalah 1966088 = 24576 byte. Semakin besar data disembunyikan di dalam citra, semakin besar pula kemungkinan data
tersebut rusak akibat manipulasi pada citra penampung.
44
4.2.2. Perancangan Flowchart