What is Steganography?




Steganography comes from the Greek word meaning “covered writing.”  Dictionary.com defines steganography as the hiding of a message within another so that the presence of the hidden message is indiscernible<  The key concept behind steganography is that the message to be transmitted is not detectable to the casual eye.  In fact, people who the are not intended to be the recipients of the message should not even suspect that a hidden message exists.

The difference between steganography and cryptography is that in cryptography, one can tell that a message has been encrypted, but he cannot decode the message without knowing the proper key.  In steganography, the message itself may not be difficult to decode, but most people would not detect the presence of the message.  When combined, steganography and cryptography can provide two levels of security.  Computer programs exist which encrypt a message using cryptography, and hide the encryption within an image using steganography.


Historical methods of steganography

In ancient Greece, people used to write on wax-covered tablets.  The first documented occurrence of steganography was in the document The Histories of Herodotus, when Demeratus sent a secret message past guards by removing the wax from the tablet, writing on the tablet itself, and covering the tablet with wax again to disguise the message.  Invisible ink is a form of steganography used in recent centuries. 

Another form of steganography is in null ciphers, or unencrypted text messages.  For example, one could hide a text message within a paragraph of words, so that by isolating every 10th word, the secret message can be detected.  The paragraph itself would sound innocent to escape detection.  This form of steganography was often used in wars among spies.

Recently, computerized steganography has become popular.  Using different methods of encoding, secret messages can be hidden in digital data, such as .bmp or .jpg images, .wav audio files, or e-mail messages.  These methods are described below.  Authors are able to watermark their property in this manner.  Unfortunately, steganography is also suspected to play a role in the communication among terrorist groups around the world.  In the past year, several suspected that Osama Bin Laden may have been posting images on Ebay with hidden messages inside to send to different terrorist groups.  Recent attempts to detect the presence of such images on Ebay have not uncovered anything, though.



Types of encoding

Least Significant Bit encoding

This method is the more popular one among encoding images.  Programs that use the Least Significant Bit, or LSB, method encode the message in the least significant bit of every byte in an image.  By doing so, the value of each pixel is changed slightly, but not enough to make significant changes to the image.  In a 24-bit image, 3 bytes are used for each pixel, so each pixel could encode 3 bits of a secret message.  The altered image would look identical to the human eye, even when compared to the original.  However, 24-bit images are quite large, and are not a popular method of sending images around the web, so the fact that they are so large would arouse suspicion.  A more plausible “container image” would be a 256 color image, where 1 byte is used for each pixel.  A 640 x 480 image of this quality would be able to store 300 kilobits of data.  With a large enough image, one could even hide an image within another image.  Popular commercial programs that use LSB encoding include White Noise Storm and S-Tools.



Frequency Domain encoding

This method encodes messages within images by working with the 2-dimensional Fast Fourier Transform, or 2-D FFT of the container image.  The 2-D FFT separates the frequencies of the image into rings centered around an axis.  Those rings closest to the axis represent the low frequencies of the image, and those furthest away represent the high frequencies.  In the frequency domain encoding method, the secret message is encoded in the middle frequencies of the image.  This is done by converting the message text to bits and overlaying these bits in a ring shape in the desired frequency band on the 2-D FFT.  Although the ring of bits appears dark and outstanding on the 2-D FFT, the effect on the image itself is very slight.  Also, an image encoded by this method is able to better withstand noise, compression, translation, and rotation, than images encoded by the LSB method.  All of the images we worked with in this project were encoded by the nPhaze Boys in this manner using Matlab.