 |
 |
|
Overview |
 |
|
GCE |
 |
|
Marble Challenge |
 |
|
ASCIIroids |
 |
|
PSD (Second Life) |
 |
|
Gravity Bubbles |
 |
|
FractalNet |
 |
|
EcoSim |
 |
|
Cosmic Dust |
 |
|
LandMesh |
 |
|
Imagencrypter |
 |
|
Foxy Detector |
 |
|
MacDiff |
 |
|
Asteroid Belt |
 |
|
Matrix Attack |
 |
|
Solar Swarm |
 |
|
OS X Terminal |
 |
|
Tools |
 |
|
Names :-) |
|
 |
 |
 |
 |
Imagencrypter
The animation above requires JavaScript to be enabled (it uses
the move effect
in script.aculo.us). If you cannot see the
animation, click here for an alternative diagram.
Imagencrypter is a visual cryptography program I wrote
in Java. It takes a greyscale image for its input, and generates two black & white
images as its output. These output images appear to be just random patterns, but when they are overlaid (one on top of the other), the original greyscale image appears
as if by magic!
Explanation and examples
Each pixel in the original image is converted into a 4x4 grid of 16 pixels. In the first output image, 8 of those pixels are randomly coloured black, and the remaining 8 are coloured
white. In the second output image, 8 pixels are coloured black, according to the darkness of the source pixel in the original image, as illustrated in the example below:
Don’t assume that each output image contains half the information of the original image. Each output image is truly random – there’s no information in it
whatsoever. Therefore, if a third party intercepted only one of the images, there’s no way they could break the encryption, because there’s no hidden information to
find! Information is only stored in the difference between the two images, so both images are required for decryption. This is different from some other forms
of cryptography (such as public-key cryptography) where the encrypted message contains all the information
of the original message, and can potentially be decrypted by a third party.
My program supports input images with up to 8 levels of grey, so that greyscale photographs can be encrypted. Below is an example using a photograph
of Alan Turing, a famous cryptographer who worked
at Bletchley Park. Click on the picture for the full-size version.
Colour images (CMYK) can also be encrypted, by encrypting each of the colour channels separately as a
greyscale image. The example below uses “Colorful spring garden” by
annia316. Click on the picture for the full-size version.
Practical applications
Once Alice has encrypted a secret image, she prints the two encrypted output images onto two transparent acetate
sheets. She then sends these sheets to Bob using two different methods (eg. one via the normal postal service, and
one via a courier service). Even if a third party manages to intercept one of the sheets, it would be useless without the other one.
An alternative is to use a form of symmetric-key cryptography. Alice creates
a “master” decryption sheet, and delivers a copy of it to Bob by some very secure method (eg. by meeting him in person in some secure location). Alice then encrypts all her secret
images using this master sheet, and sends the encrypted sheets to Bob using a non-secure method. Bob overlays his master sheet on top of each encrypted sheet in turn, to decrypt them. If
a third party intercepts the sheets, they are undecypherable without the master sheet.
Video
| Automatic country lookup for comments powered by |
 |
 |
Comments
| No comments yet. Be the first to add a comment! |
Add a comment
|
 |
 |
 |
 |
|