Project Developer: Madeline Krajewski
Steganography is the science of hiding information. There are a large number of steganographic methods that most of us are familiar with (especially if you watch a lot of spy movies!), ranging from invisible ink and microdots to secreting a hidden message in the second letter of each word of a large body of text. Steganography today, however, is significantly more sophisticated, allowing a user to hide large amounts of information within image and audio files.
One of the most widely used applications is for so-called digital watermarking. For example, a graphic artist might post sample images on her website complete with an embedded signature so that she can later prove her ownership in case others attempt to portray her work as their own.
Project Description: Develop an application that employs various techniques of steganography to embed and recover hidden messages that are (i) images within another image file or (ii) multiple images that when combined display a hidden message/image.
General Requirements:
- Research steganography giving examples of techniques and usage.
- Compare the use of steganography versus cryptography.
- The application should allow the user to choose from at least two steganography algorithms to embed or recover a hidden message in an image file(s).
- Display the original image and the altered image(s) side-by-side for visual comparison, with a zoom feature for close examination.
- Compare efficiency, effectiveness and quality of the different algorithms.
- Consider issues like size of the message, modification of image size and distortion.
Algorithm 1: Hide a secret image in a host image, creating a third image. The third image could be sent to a remote user who can recover the secret image (ie, you must provide the ability to “decrypt” as well).
Algorithm 2: Construct k images from a given image so that the “secret” of the original image can be obtained by super-imposing t or more of the k images within the program. Examine the cases (i) t = k = 2, (ii) general k, and (iii) t < k .
(Reference: “Visual Cryptography and Threshold Schemes” by Doug Stinson)