QR visual cryptography

in #programming8 years ago

Some time ago, I wrote a script that implements visual cryptography for QR codes. From an input text, it generates a QR code, and then, it splits it into random image shares. When the shares are superposed, they reveal the QR code.

This way, I thought it would be cool to print them on transparent film (slides) so that they will reveal the QR code only when superposed in the right orientation.

This is an example:

and this is the result when the slides are superposed:

Alignment has to be done in the right orientation (out of 8 possible) and needs sub-millimeter adjustment to form an image.

Some QR code readers will read it directly; others might need some contrast forcing:

The crypto

Individually, each share leaks no information about the resulting image. There is hence no risk in using QR's error correction, even at its 30% maximum. The formalism can be adapted to N-of-M schemes, but I implemented only the 2-of-2 (shown above) and 2-of-3 cases. There is also the possibility of a steganographic mode where the individual slides can show decoy images.

This is the script.

I did not know it at first, but I was made aware that the implementation I followed was a case of Naor and Shamir's Visual Cryptography.

There is also a video showing the criticality of alignment and a simulation of a 2-of-3 example.

When I posted it some time ago (in another forum), it started rather interesting discussions.

Anyway, enjoy it!

(and feel free to ask me anything about this)

Sort:  

Excellent posts! I've suddenly seen a new perspective; thanks.

cani5boh
Thanks for the post

bullionstackers

Coin Marketplace

STEEM 0.21
TRX 0.24
JST 0.039
BTC 94308.59
ETH 3252.61
USDT 1.00
SBD 3.13