Navigation

Libraries

Defunct

Visual Cryptography

Contents

Description
Screenshots
Features
System requirements
How to start
Download

Post comment

Description

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.

Example of decryption
Image Source: Rijmenants, Dirk. Cipher Machines & Cryptology: Visual Cryptography, http://users.telenet.be/d.rijmenants

New in version 2.0 (17.02.2017) is the implementation of Visual Steganography as described in this blog post by datagenetics.com. With Visual Steganography you can hide one picture in two others, see screenshots for an example.

Back to contents

Screenshots

Encryption:

GUI Visual Cryptography

Steganography:


First image

Second image

Result of overlaying image 1 & 2

Download them and try yourself! Or, if your browser supports that, just drag and drop one over the other - gotta be pixel perfect though!

Back to contents

Features

Back to contents

System requirements

Java2 version 8 or newer. You can check if you have it using this command line command (Windows: Start->run->cmd):

java -version

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.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)

If the number is 1.8 or larger, Visual Cryptography should run.

If you don't have Java or an old version, you can download the newest one at "Download".

Back to contents

How to start

If everything works, you can just double-click the jar file, but sometimes a compressing software like WinZip graps this file extension or Java doesn't register itself properly.
If that happens, try running Jarfix first.

Back to contents

Download

Visual Cryptography 2.0 (All operating systems - jar)
Sourcecode Visual Cryptography 2.0

Java:
Oracle pulled a fast one on us, newest (Oracle) Java versions have horrible licencing. So either choose 1.8, the last proper version, or chose OpenJDK:
Java 1.8 via Java.com
Newest Java via adoptOpenJDK.com

Back to contents
blog comments powered by Disqus
Back to contents