Perancangan Algoritma Fase workshop desain

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