Hiding data within content rich media is easier than ever with modern powerful computers. This section of L33t.uk will contain information on Steganography and how it can be implemented using Java. The key to having a secure Steganographic application is to encode your secret data in random way that does not leave an application footprint that can be detected by boundary scanners or automated processes. This can be difficult to achieve as data extraction must be possible by the person that has the shared secret; this shared secret will be the knowledge needed to extract the secret data in the same way as someone will need an encryption key to decrypt a cipher.
Most Steganographic applications on the internet are insecure and either leave an application footprint or introduces noise in to the carrier image creating a high PSNR value that can be used to detect a stegogram or used to detect where the data is stored within the stegogram.
A Java application called Bitmap Morph can be downloaded below for education purposes to explore how steganography will affect bitmap images.
The application uses a command line, to get started you will need to navigate to the applications folder and type;
java -jar Bitmap_Morph.jar help
This will display a list of commands that you can use. If you want a menu which is easier to use enter the CLI by typing the following;
java -jar Bitmap_Morph.jar cli
This will display a menu where you can use the application to generate stagger codes, create stegograms and extract secret data. All this will be done using stagger codes that control the encoding and extraction of secret data.
I have also included a user manual that details how to use each command with examples and more detail regarding how the encoding process works.
The application also contains some simple steganalysis tools to see how bitmaps are affected when secret data is inserted.
For this application to work you will need the latest version of the Java Runtime Environment.