Algoritma LSB (Least Significant Bit)


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
lena

Dan gambar teks yang akan dimasukkan adalah
lorem-ipsum


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)

lsb-hasil-akhir


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.

Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *