Digital image steganography of encrypted text

In the fall of 2003, the Ubiquitous Software Engineers (U-S-E) created a steganography program under the direction of Professor Doug Tygar for the class "Software Engineering."
Paranoia allows a user to securely transfer a text message by hiding it in a digital image file. 128 bit AES encryption is used to protect the content of the text message even if its presence were to be detected. Currently, no methods are known for breaking this kind of encryption within a reasonable period of time (i.e., a couple of years). Additionally, compression is used to maximize the space available in an image.

To send a message, a source text, an image in which the text should be embedded, and a key are needed. The key is used to aid in encryption and to decide where the information should be hidden in the image. Either another image or a short text can be used as a key. To receive a message, a source image containing the information and the corresponding key are both required. The result will appear in the text tab after decoding.

Two common Internet-friendly formats are offered. The algorithm for GIF images is a solid implementation of a tried and tested steganography technique, while the JPEG algorithm is more experimental. It is inherently more difficult to hide information in a JPEG image because that is exactly what the designers of JPEG wanted to avoid: the transmission of extra information that doesn't affect the appearance of the image.

Try it out:

We used the waterfall software engineering method. These are the documents we submitted at each stage:

Please consult the Walk-through placed in the center of the main window for more help. The quality of the output images is dependent on the input images and the algorithm for the particular format. The following explains how to choose input images wisely such that encoding is successful and the output image does not look suspicious.

Hints for selecting GIF images:

Hints for selecting JPEG images:

This is a full-size screen shot of the program. Studies have shown that typical users do not understand how encryption works. Thus, we tried to make our interface as easy to use as possible. Instead of worrying about troublesome public and private keys, the user simply uses another image as the key.

And the credits go to...


GUIGary Gong, Sheng Li, Jason Murray, Yuriy Shkolnikov
SecurityTam Le, Hiep Nguyen
JPEGEdgar Berdahl, Joon Yul Lee
GIFSang Chung, Behrad Mozaffarian

Back to the top