Visual Cryptography is a special encryption technique to hide information in images in such a way that it can be decrypted by the human vision if the correct key image is used. The technique was proposed by Naor and Shamir in 1994. Visual Cryptography uses two transparent images. One image contains random pixels and the other image contains the secret information. It is impossible to retrieve the secret information from one of the images. Both transparent images or layers are required to reveal the information. The easiest way to implement Visual Cryptography is to print the two layers onto a transparent sheet.
When the random image contains truely random pixels it can be seen as a One-time Pad system and will offer unbreakable encryption.
Source: Rijmenants, Dirk. Cipher Machines & Cryptology: Visual Cryptography, http://users.telenet.be/d.rijmenants
In the image below you can see how you'd have to handle the sheets. You can also test the images on the source site in my program.
Image Source: Rijmenants, Dirk. Cipher Machines & Cryptology: Visual Cryptography, http://users.telenet.be/d.rijmenants
- Generating a cryptographic secure key
- Encryption of PNG, GIF and JPG images
- Decryption of PNG images
- Easy handling
Java2 version 6 or newer. You can check if you have it using this command line command (Windows: Start->run->cmd):
If you get nothing or if it's telling you that it doesn't know the command "java", you probably don't have java. If you get something, it should look like this:
java version "1.6.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0_06-b05)
If the number is 1.6 or larger, Visual Cryptography should run.
If you don't have Java or an old version, you can download the newest one at "Download".
If everything works, you can just double-click the jar file, but sometimes a compressing software like WinZip graps this file extension.
If that happens, open the jar with javaw (Windows: right click -> Open with... -> Browse -> javaw.exe in the java install directory (also tick the "always open with"-box))