Vecna - A tool for turning images into secret keepers

Ever wanted to send a secret message without others noticing that it is a secret message? With this tool it is easy to achieve. If you send an encrypted message, others can see that it is encrypted. This tool hides a secret message inside an image. After this process the image looks exactly the same for a human.

Vecna is written completely in Java which makes it platform independant. It is licensed under the GPL. If you have any comments or improvements, feel free to contact me.

How does it work?

Vecna stores the information of the secret message in the least significant bits of each channel of a pixel. That means, that the color of a pixel can change, if it contains an amount of data. The change of color is so much insignificant, that the human eye can't see the difference.

Currently vecna can read every image-format that Java can read (including GIF, JPG and PNG). It always exports a PNG-image with alpha channel. Since we have 4 channels, one pixel can hold 4 bits of data. The absolute amount of data a pixel can hold is (width * height) / 2 - 20. That means a wallpaper (1024 x 768) can hold about 380 KB of data. The 20 bytes are overhead. They consist of the actual size of the message (4 bytes) and the checksum for the stored message (16 bytes).

The information is not stored in a serial way, it is scattered around the image randomly. To achieve this, a pseudo random number generator is used. To ensure to have the same random order for encoding and decoding, this random number generator uses a passphrase for calculating the initial value. The type of information that can be stored in an image is not limited to text. You can hide anything that will fit into the image.

Features

Download

Known bugs and issues

Planned features for next release(s)