Back to IF4020 Kriptografi

Metode LSB dan Variannya

Questions/Cues

  • Mengapa mengubah bit LSB tidak terlihat oleh mata manusia?
  • Bagaimana proses penyisipan dan ekstraksi pesan dengan LSB?
  • Berapa ukuran pesan maksimum yang dapat disembunyikan pada citra tertentu?
  • Apa saja varian LSB (sequential, acak, m-bit, dengan enkripsi)?
  • Apa trade-off memakai lebih dari 1 bit LSB per byte?

Reference Points

  • IF4020 Kriptografi — Steganografi Bagian 1 (Slides 40-59)

Citra Digital Singkat

Citra tersusun dari pixel; citra berarti pixel. Tiap pixel berukuran bit: biner 1 bit/pixel, grayscale 8 bit/pixel, true color 24 bit/pixel (3 byte: komponen R, G, B, masing-masing 0-255).

Prinsip LSB

Bit sebuah byte disusun dari MSB (most significant bit, paling kiri) hingga LSB (least significant bit, paling kanan). Contoh 11010001 = 209. Mengubah LSB hanya mengubah nilai byte sebesar : 11010001 (209) 11010000 (208). Pergeseran warna 1 dari 256 tingkat tidak dapat dibedakan mata manusia; bahkan membalik seluruh bit LSB sebuah citra (01) tampak tanpa beda.

Contoh Penyisipan

Satu pixel 24-bit = 10000010 01111011 01110101, pesan 3 bit 101:

Byte asliBit pesanByte stegoNilai
10000010 (130)110000011131
01111011 (123)001111010122
01110101 (117)101110101117 (tetap)

Pixel berubah dari menjadi : tetap “ungu”, hanya sedikit bergeser. Contoh pesan 10 bit 1110010111 pada 10 byte berurutan mengubah LSB tiap byte menjadi bit-bit pesan; hanya byte yang LSB-nya berbeda yang benar-benar berubah.

Ekstraksi: baca byte-byte stego, ambil LSB tiap byte, rangkai kembali menjadi bit pesan (1110010111).

flowchart LR
    subgraph EMB["Penyisipan"]
        direction LR
        A["byte cover<br/>b7..b1 b0"] --> B["ganti b0<br/>dengan bit pesan"] --> C["byte stego"]
    end
    subgraph EXT["Ekstraksi"]
        direction LR
        D["byte stego"] --> E["ambil b0<br/>(AND 1)"] --> F["rangkai<br/>bit pesan"]
    end
    EMB --> EXT

Kapasitas

Kapasitas bergantung ukuran cover; tiap byte menampung 1 bit:

CoverBytePesan maksimum
Grayscale (1 byte/pixel)65.53665.536 bit = 8192 byte = 8 KB
24-bit (3 byte/pixel)196.608196.608 bit = 24.576 byte = 24 KB

Varian Metode LSB

  1. Sequential: bit pesan disisipkan pada pixel berurutan mulai pixel pertama; ekstraksi membaca berurutan sampai bit terakhir. Sederhana tetapi pola perubahan terkonsentrasi di awal citra sehingga mudah dicurigai.
  2. Acak: posisi pixel dipilih oleh PRNG (pseudo-random number generator); seed menjadi stego-key. Ekstraksi memakai seed yang sama sehingga memperoleh urutan posisi yang sama. Lebih aman karena bit tersebar.
  3. -bit LSB: memakai bit terakhir tiap byte (mis. 2-bit LSB = ). Trade-off: makin banyak bit LSB, makin besar kapasitas tetapi makin turun kualitas stego-image. Dapat sequential atau acak.
  4. Dengan enkripsi: pesan dienkripsi dahulu (mis. XOR dengan bit kunci acak sepanjang pesan; lihat Kriptografi Modern dan Operasi XOR). Jika posisi pixel juga acak, ada dua stego-key: satu untuk membangkitkan bit kunci, satu untuk posisi pixel.

Summary

Metode LSB mengganti bit paling tidak signifikan tiap byte cover dengan bit pesan; perubahan hanya sehingga tak terlihat mata (mis. pixel ). Ekstraksi cukup mengambil LSB tiap byte dan merangkainya. Kapasitas 1 bit per byte: citra grayscale menampung 8 KB, citra 24-bit menampung 24 KB. Varian: sequential, acak (PRNG dengan seed sebagai stego-key), -bit LSB (kapasitas naik, kualitas turun), dan dengan enkripsi (pesan di-XOR dengan kunci acak, sehingga bisa ada dua stego-key).