Image Steganography

CS 463 Lecture, Dr. Lawlor

Steganography (secret writing) is a way to make cryptanalysis more difficult, by concealing the fact that a message is being conveyed.

There are thousands of places messages could be concealed in digital files, but one of the simplest is in an image file.  Since most image sensors operate at the limit of quantum detection, photon shot noise means the low bits of most images are basically random.

For example, here's an aurora image I shot this weekend:


Extracted bit 7 of red channel:

Extracted bit 6:

Extracted bit 5:

Extracted bit 4:

Extracted bit 3:

Extracted bit 2:

Extracted bit 1:

Extracted bit 0:

Note that nearly nothing useful is happening in bits 0 and 1 of each pixel.

We can thus overwrite the low bits, and our message is not easy to detect by eye.
Inserted into bit 7:

Inserted into bit 6:

Inserted into bit 5:

Inserted into bit 4:

Inserted into bit 3:

Inserted into bit 2:

Inserted into bit 1:

Inserted into bit 0:


Original image:


There are several complications with this simple technique:
My quick and dirty PPM-binary image format stego source code: Zip or Tar-gzip.