Proposal: Steganography Using Computer Images

William Barratt

Steganography is a form of information hiding in which some kind of data is hidden within some medium, ranging from text to images to many other media. In recent years, steganography with computers has grown in popularity because of the ability to more easily place steganographic data within images, audio files, etc. This project's goal is to investigate steganography by creating a system to write steganographic data into image files (most likely the PNG format).

To use the PNG format effectively, it is necessary to research the PNG specification and devise a method for modifying an image without affecting its appearance noticeably.

Once a method for secreting the data has been created, it will naturally follow to create a reverse process to decode the data in the image file. If time allows, a Web-based interface for encoding and decoding images may be developed

Potential Users
The market for steganographic software is currently small. The main users are the paranoid and people in foreign countries whose governments control Internet communication, though the government or security markets may open up at some point.

Existing Steganography Software
There are multiple steganographic programs available for download on the Internet. These include GZSteg and JSteg, JPHIDE (and its companion JPSEEK). It will be necessary in the course of the research project to analyze the methods that these and other steganographic programs use.

Procedure
More than one scheme for steganography will be attempted. The first scheme is a simple method that involves modifying the values of some pixels in a black-and-white image by one. An image detailing this scheme can be found here. The research performed during the course of this project will include devising, selecting, and implementing different schemes. Most or all of the programming for this project will be in the C++ language on a Linux system.

Expected Results
The final product will be a program, accessible from the command line, which takes an input image in a format such as PNG and outputs an image that appears identical but includes hidden data. A companion program will be able to extract the hidden data from an image. If possible, the first program will use a steganography scheme that is difficult to detect without byte-by-byte comparison with the original.

Back to Techlab home