Algoritma LSB (Least Significant Bit) adalah salah satu algoritma yang dapat digunakan untuk melakukan Steganografi. Contoh yang dibahas kali ini adalah mengenai pengolahan file gambar.
Steganografi adalah proses untuk memasukkan teks dalam bentuk gambar ke dalam gambar utama, sehingga teks dapat disembunyikan dan tidak terlihat dari gambar utama. Untuk mengetahui isi teks yang tersembunyi, maka kemudian harus dilakukan proses ekstraksi untuk mengambil teks tersebut.
Tentukan gambar utama dan gambar teks yang akan digunakan dalam perhitungan
Perlu diingat bahwa gambar utama dan gambar teks harus memiliki ukuran yang sama
Diasumsikan gambar utama yang digunakan adalah
Dan gambar teks yang akan dimasukkan adalah
Langkah-langkah penggunaan algoritma ini adalah
1. Tentukan nilai bit LSB yang digunakan
Nilai yang direkomendasikan adalah berada diantara 1 sampai dengan 4
Jika nilai lebih dari 4, maka gambar utama akan mulai tertutup oleh gambar teks
Diasumsikan dalam kasus ini, nilai yang digunakan adalah 3
bitLSB = 3;
2. Lakukan implementasi LSB dengan memasukkan gambar teks ke dalam gambar utama
outputLSB = uint8(bitor( ... bitand( imgGambarUtama, myBITCMP(2^bitLSB-1,8) ), ... bitshift(imgGambarTeks,bitLSB-8) ) ... );
* Gunakan fungsi ini untuk melakukan perhitungan komparasi bit menggunakan teknik sendiri
function output = myBITCMP(x,N) if nargin < 2 output = bitcmp(x); else maksN = 2^N-1; % This is the max number you can represent in 4 bits fmt = 'uint8'; % You can change uint8 to uint16 or 32 output1 = eval(['bitcmp(',fmt,'(x)',',''',fmt,''')']); output2 = eval(['bitcmp(',fmt,'(maksN)',',''',fmt,''')']); output = output1 - output2; end
3. Lakukan ekstraksi gambar teks berdasarkan hasil output sebelumnya
outputEkstraksi = uint8(bitand(255,bitshift(outputLSB,8-bitLSB)));
4. Hitung PSNR dan MSE antara gambar hasil ekstraksi dengan gambar awal
Proses ini bukan bagian dari LSB, sehingga hanya bersifat optional saja
imgGambarAwal = double(imgGambarTeks); imgGambarAkhir = double(outputEkstraksi); [panjang, lebar, dim] = size(imgGambarAwal); imgGambarEkstraksi=imresize(imgGambarAkhir,[panjang lebar]); error = imgGambarAwal - imgGambarEkstraksi; MSE = sum(sum(error .* error)) / (panjang * lebar); if(MSE > 0) PSNR = 10*log10(panjang*lebar./MSE); else PSNR = 99; end
Hasil akhir adalah: (klik untuk perbesar gambar)
Contoh modul / source code menggunakan Matlab dapat didownload disini:
Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.