Fun With Visual Cryptography – Part One

I love browsing the blogs at datagenetics. I had never heard of visual cryptography until I read this page:

https://www.datagenetics.com/blog/november32013/

It’s a way to combine pixelated images to make another image. I have yet to research color visual cryptography, so for now all pictures need to be two color. Let’s take the following Judas Priest images I’ve converted to black and white.

I wrote a program to encrypt the images, so that you can ‘combine’ two of the images to make the third. You don’t need to use two images to make a third; you could just have two ‘white noise’ images to make the final image, but this is more fun. That the top picture will move with your mouse – no clicking necessary. Just slide the image on the top over the one at the bottom to reveal the third picture.



Pretty cool, huh?

After writing that program, it occurred to me that it would be possible to use one encrypted image as a key to reveal images on different encrypted images. So I wrote a program to do that. The end result is five images of a Kiss logo, but when one of them is placed on any of the others, you’ll get a picture of one of the band. (Images found on the net that I converted to black and white.)

Input images:

Output images:

Your mouse will move the top image over the others. Move it until it’s directly on top of the other images. If you’re within ten pixels, a hint will pop up to tell you which way to go. Lest you think there’s some kind of trickery afoot, download the pics and line them up yourself.


This was mostly an exercise in converting images to black and white (and keeping with the band theme). It’s more of an art than a process.

I’m currently working on how to make physical versions. The problem is that the images have to be lined up EXACTLY, and at their current resolution, that means within a fraction of a millimeter. Rather than hold up this post, I’ll label this Part One and post any successful results later (and/or fails).

I’m posting the software I wrote. Mind you, I didn’t write it with end users in mind, I wrote it to get results. There’s not really any error trapping, so there’s a probability it might crash on you if you do something it doesn’t expect. But if you start it again, is should work. For best results convert the images to black and white and make them all the same pixel size. Drag and drop the images on the appropriate areas; that’s the only input for pictures.

Download Visual Cryptography – 1.2M
MD5 for ZIP: 4aa834c7343c6ffa50a30ada6e1ae832

Download Visual Cryptography – One Key – 1.2M
MD5 for ZIP: 9487d96dab2114af93f01fd003f8df94

Legal crap (O brave new world that has such people in it.): THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.