Steganography is the art of hiding information
in ways that prevent the detection of hidden
messages. Steganography, derived from
Greek, literally means “covered writing.”
It includes a vast array of secret communications
methods that conceal the message’s very
existence. These methods include invisible inks,
microdots, character arrangement, digital signatures,
covert channels, and spread spectrum communications.
Steganography and cryptography are cousins in the
spycraft family. Cryptography scrambles a message so
it cannot be understood. Steganography hides the message
so it cannot be seen. A message in ciphertext, for
instance, might arouse suspicion on the part of the
recipient while an “invisible” message created with
steganographic methods will not.
In this article we discuss image files and how to hide
information in them, and we discuss results obtained
from evaluating available steganographic software.
For a brief look at how steganography evolved, see the
“Steganography: Some History” sidebar.
To a computer, an image is an array of numbers that
represent light intensities at various points (pixels).
These pixels make up the image’s raster data. A common
image size is 640 ´ 480 pixels and 256 colors (or
8 bits per pixel). Such an image could contain about
300 kilobits of data.
Digital images are typically stored in either 24-bit
or 8-bit files. A 24-bit image provides the most space
for hiding information; however, it can be quite large
(with the exception of JPEG images). All color variations
for the pixels are derived from three primary colors:
red, green, and blue. Each primary color is
represented by 1 byte; 24-bit images use 3 bytes per
pixel to represent a color value. These 3 bytes can be
represented as hexadecimal, decimal, and binary values.
In many Web pages, the background color is represented
by a six-digit hexadecimal number—actually
three pairs representing red, green, and blue. A white...