Image Steganography by photon Steganography is the art and science of hiding the existence of information from unintended recipients. Historical examples include hidden tattoos, invisible inks and microdots. Modern examples include hidden text, sounds and pictures in computer images. This article focuses on hiding information in computer images. The image In order to understand how information can be hidden in a computer image, it's best to understand a bit (pun intended) about how digital images are formed. Assume that an image is composed of a rectangular array of pixels (spots). Each pixel is defined by three bytes of eight bits each. Each byte represents a color (Red, Green, or Blue) to a maximum value of 255 for each color. If the colors have equal numbers, (like 110, 110, 110) the pixel looks gray. If 0, 0, 0 it looks very dark gray (black), and if 255, 255, 255 it looks very light gray (white). The range of colors for any single pixel, then, is 256x256x256 = 16,777,216 possible colors. The images look like photagraphs. A single olive-drab pixel might be represented as: 01101001 00110110 01001001 (binary bytes), equaling decimal values of 69, 110, 49 for the RGB bytes. Imagine how its color would change if one of the RGB bytes changed by only 1; only 1 in a range of over 16 million possible colors. The human eye wouldn't detect the difference. Also, imagine a black and white picture with shades of gray; and try to imagine the change in shade of a pixel that differed from equal RGB numbers by a value of 1 in one of the RGB bytes. The eye couldn't see that difference either. This type image is called a bit-map-picture, and usually has a file name with a .bmp suffix in a personal computer. The "wallpaper" used in Microsoft Windows is a .bmp image, as are the icons. There are other image types, but .bmp images are useful to describe Image Steganography. Hidden information To hide information in an image, one generates apparent visual "noise" to replace the normal visual "noise" of the image. To envision visual noise, consider the least significant bits (LSB) of each RGB byte. The setting of each LSB is not precise when the image is created because the difference in color or shade is so small at the LSB level. In effect, the bit-plane, consisting of all the LSB bits, looks very random. It looks somewhat like the visual "noise" of an empty TV channel. Since encryption makes a normally ordered stream of information (bits) look random, encryption is used as the noise generator for the information one wants to hide. And since a stream of bits can represent text, sound, or other pictures, we can hide any of those forms of information in a digital picture by encryption, and substituting the encrypted bit stream for normally occurring noise in the picture (the LSBs). An example The example used at the ACA convention hid a color picture of MAB hidden in a color picture of LEDGE and LIONEL. Since this publication is limited to black and white pictures, here's a different example. The small drawing you see is a reduced-size copy from David Kahn's "The Code Breakers" p.523 in his section on steganography. It contains a visual hidden message, described in Kahn's book, but it also contains the entire text of this article hidden in its LSBs. I prepared it with free software from the internet (S-Tools, version 4.0), using DES as the encryption algorithm. (image here) Unfortunately, this method of hiding information in images is very fragile. The printing process damaged the LSBs so you can't read the hidden text by scanning the printed page. You need a digital copy of the .bmp file. Also, compression algorithms like .jpg destroy the LSB information too. Digital watermarking methods are more durable, but are also more difficult to explain without complicated mathematics. Conclusions Steganography remains a viable method of hiding communications, but the methods have been augmented by advances in technology. The fundamental principle is the same; you must keep your adversary unaware of the existence of the hidden communications channel. Interestingly, the new technology requires encryption to hide information effectively, so it does double-duty as a hiding mechanism and as an encryption mechanism. Additionally, both the new and the old technologies require separate channels of information to pass the method of steganography and the tools needed to recover the information. Yet another common feature is that the hidden information is fragile. Just as a coat button containing a message can be lost or damaged, so can a hidden information be lost or damaged if the covering image is re-formatted. Fortunately, user-friendly programs are available to do the job right. The ACA won't be putting digital images in the solvers list any time soon. But it's nice to watch the development of newer cryptographic technologies.