Hacker News new | past | comments | ask | show | jobs | submit login
Visual Cryptography (users.telenet.be)
45 points by superberliner on June 28, 2010 | hide | past | favorite | 9 comments



Visual XOR against random data using the supplied "information pixels" instead of actual pixels (2x2 pixel groups). Cryptography at its most simple and most effective, with a visual twist.

Makes me want to fiddle, and make something which lets you hide information in the interference between 3 such images... one message for each pair, and one for all three stacked.


A few years ago, these James Bond magazines for kids came out, and i bought a bunch of them. I seem to remember them using this idea in the magazine to hide "secret" messages, which you could only decrypt if you had the transparent key that came with the magazine. Pretty awesome stuff.


Whenever I read about this technique, I can't help but think of the sunglasses in They Live.


[side topic]

The last-linked "additional information" mentions rotated 1/2-circles with black & white halves to define greyscale images. There's an easier way, and it'll scale to as many layers and colors as you want:

pixel(r,g,b) = ((r1^r2), (g1^g2), (b1^b2)). (bit-level xoring) More layers just add in their values. Until you add all of them, there's no way to know what the final value for a pixel will be.

As for the "general access structures"... maybe this can be tweaked, haven't looked closely enough and my brain is tired.

---

edit: fixed algorithm. wrote quick ruby script. first attempt at something like this, glad it works.

edit again: and for those interested, the last linked "additional info" article describes how to make multi-layer images like the one in the main article. It's kinda interesting.


You can avoid the waste of space implied by the circles by using ½×1 rectangles instead: http://lists.canonical.org/pipermail/kragen-hacks/2007-March...

The interesting thing about the original technique (to me) is that you can do the decryption without a computer. If you want to do this in color, I think you need to use the LCD approach of having red, green, and blue subpixels next to each other.


How is this different from a combination of one time pads and steganography?


I think that's what it is. One could use this with the least significant bit of an image to do a watermark.


I was thinking steganography too initially, but that's strictly information hiding. This "encrypts" it by XOR-ing it with random data. Without the "key" image, there is no information in the actual "data" image because it's literally just random data. In steganography the data is "discoverable", it's just hard to find; in this, it's impossible to derive the data without the key.


even better: they could have use vector graphics so each layer must be correctly zoomed, overlayed and rotated to restore the original.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: