Selasa, 19 Mei 2015

Steganografi Pesan dengan Teknik Least Significant Bit-LSB

Teknik LSB (Least Significant Bit) sudah sangat luas digunakan untuk modifikasi sebuah bit-bit pixel untuk diganti dengan bit-bit pesan, dalam proses LSB nilai bit akhir yang dimodifikasi, penulis menggunakan .NET 4.0 dengan bahasa C# dan IDE sharp develop untuk mengimplementasikan teknik LSB.
Berikut alur dari teknik LSB yaitu, misalkan kita mempunyai string ‘C’ dan pixel citra yaitu 11,12,13,14,5,16,17,18
Diubah kedalam ASCII



 

String ‘C’ diubah kedalam ASCII dan code binary
Juga bit pixel pun diubah kedalam code binary
Langkah selanjut nya adalah mengganti bit terakhir dari bit pixel dengan bit string, seperti berikut





Terlihat bahwa bit pixel telah dimodikasi + 1
Hal inilah keunggulan dari LSB karena sedikit sekali perubahan nilai pixel nya.
Berikut adalah tampilan dari Aplikasi Kriptogragi LSB nya



Penggunaan Library


     

public static void ContohLSB()
{
 String pesan = "c";
 Console.WriteLine("Karakter : " + pesan);
 int[,] matrix = new int[,] { { 11, 12, 13, 14, 15, 16, 17, 18 } };
 Console.WriteLine("Matrix asli ");
 Program.Print(matrix);
 LSB lsb = new LSB(); //panggil class LSB
 int[,] setelahDisipi = lsb.SisipkanPesan(matrix, pesan); //proses untuk penyisipan!
 Console.WriteLine("Matrix setelah diubah ");
 Program.Print(setelahDisipi);
 String ambil = lsb.EkstrakPesan(setelahDisipi);
 Console.WriteLine("Karakter yang di ekstrak:  " + ambil);            
}

       
 

Menghasilkan



Implementasi menggunakan gambar

       

public static void ContohLSBGambar()
{
 String lokasiFile = "D:/bunga.bmp";
 Console.WriteLine("File : " + lokasiFile);
 Bitmap gambar = (Bitmap)Bitmap.FromFile(lokasiFile);
 ReadImage bacaGambar = new ReadImage(gambar);

 ushort[][,] pixelMatrix = bacaGambar.Matrix;//ambil nilai pixel nya!
          //jika gambar tersebut bertype true color!

 ushort[,] matrix = pixelMatrix[0];//maka ambil matrix red nya!
 LSB lsb = new LSB(); //panggil class LSB
 
 String pesan = "ini pesan ku";
 Console.WriteLine("Pesan : " + pesan);
 String tandaAkhirPesan = "#";
 int jumlahTanda = 10;
 matrix = lsb.SisipkanPesan(matrix, pesan, tandaAkhirPesan, jumlahTanda); //lakukan proses penyisipan
 //jangan lupa modifikasi  lagi!
 pixelMatrix[0] = matrix;

 CreateImage buatGambar = new CreateImage();
 buatGambar.Create(pixelMatrix); //bikin matrix gambar!

 Bitmap gambarDisisipi = buatGambar.Btmp;//jangan lupa ubah ke bitmap
 gambarDisisipi.Save("D:/gambar rahasia.bmp", ImageFormat.Bmp); //jangan lupa untuk disimpan ke file!

 /* setelah disisipi! maka kita juga melakukan ekstrak!
  */

 Bitmap gambar2 = (Bitmap)Bitmap.FromFile("D:/gambar rahasia.bmp");
 bacaGambar = new ReadImage(gambar2);
 pixelMatrix = bacaGambar.Matrix;//ambil nilai pixel nya!
      //jika gambar tersebut bertype true color!

 matrix = pixelMatrix[0];//maka ambil matrix red nya!
 String pesanTersembunyi = lsb.EkstrakPesan(matrix, tandaAkhirPesan, jumlahTanda);
 Console.WriteLine("Pesan yang diambil yaitu : " + pesanTersembunyi);
 
 
}

       
 

Menghasilkan

tanda # dengan jumlah nya 10 sebagai mark - penanda akhir sebuah pesan! 

GUI



Format citra yang digunakan nya harus berupa lossless (*.bmp)bukan type lossy (*.jpg,*.jpeg) karena perubahan nilai pixel.


Download
https://www.dropbox.com/s/3i6y8mhwz3v3e8b/release%20biner%20-%20demo%20least%20bit%20significant%20-%20maret%202014.rar
Posting Komentar