CODEERMACHINES EN CRYPTOGRAFIE
Visual Cryptography
Home


Wat is Visual Cryptography

Visual Cryptography is een speciale coderingstechniek om informatie in afbeeldingen te verbergen, waarbij ontcijfering mogelijk is met het menselijke oog. De techniek was voorgesteld door Naor en Shamir in 1994. Visual Cryptography gebruikt twee transparante afbeeldingen of layers. Eén layer bevat willekeurige beeldpunten of pixels, de andere layers bevat de geheime informatie. Het is onmogelijk om de verborgen informatie uit één layer te halen, beide layers zijn noodzakelijk. De eenvoudigste toepassing van Visual Cryptografie is het printen van de layers op transparante bladen. Als de eerste layer werkelijk willekeurige pixels bevat kan Visual Cryptography aanzien worden als een one-time pad systeem met absolute veiligheid. In de overlay animatie kunt u het zien hoe de twee layers over elkaar schuiven tot ze excact gelijnd zijn en de verborgen informatie verschijnt. Om dit zelf te proberen kunt u de layers 1 en 2 uit het voorbeeld kopiëren en afdrukken op de transparant blad of dun vel papier. Gebruik steeds een programma dat de witte en zwarte pixels nauwkeurig weergeeft en stel de printer zodanig in dat de pixels correct worden afgedrukt (geen diffusie, foto-verbetering etc). U kunt de beide layers ook kopiëren en plakken in een tekenprogamma zoals Paint en het resultaat onmiddellijk bekijken, maar u dient dan wel transparant tekenen te gebruiken en beide layers exact over elkaar te leggen.

Layer 1

Layer 2

Overlay

Hoe Visual Cryptography werkt

Elke pixel van een afbeelding is verdeelt in kleinere blokjes. Er zijn steeds hetzelfde aantal witte (transparante) en zwarte blokjes. Als een pixel in twee verdeeld is zullen er één wit en één zwart blokje zijn. Is de pixel in vier gelijke delen verdeeld zullen er twee witte en twee zwarte blokjes zijn. Het Visual Cryptography voorbeeld van hierboven gebruikt pixels met vier blokjes.

In de tabel rechts zien we dat een pixel, verdeeld in vier blokjes, zes verschillende toestanden kan hebben. Als een pixel op layer 1 een bepaalde toestanden heeft kan diezelfde pixel op layer 2 twee toestanden hebben: identiek aan of het negatief van de pixel op layer 1. Als de pixel van layer 2 identiek is aan die van layer 1 zal de overlay half wit en half zwart zijn. Zo'n overlay resultaat noemen we een grijze of lege pixel. Als de pixel van layer 1 en 2 tegenovergesteld of negatief zijn zal het overlay resultaat een volledig zwarte pixel zijn. Dit is een informatie pixel.

We kunnen nu de twee layers creëren. Eén transparante afbeelding, layer 1, is volledig samengesteld met pixels in één van de zes willekeurige toestanden. Layer 2 is identiek aan layer 1, met uitzondering van de pixels die zwart (informatie) moeten zijn bij overlay. Deze pixels hebben een toestand die tegenovergesteld is aan die van layer 1. Als beide afbeeldingen exact over elkaar worden uitgelijnd zullen de gebieden met identieke pixels grijs zijn en gebieden met tegenovergestelde pixels zwart.

Het systeem va pixel verdeling kan op verschillende manieren toegepast worden. In ons voorbeeld zijn de pixels in vier verdeeld, maar u kunt ze ook enkel in twee rechthoeken verdelen, of zelfs in gedeelde cirkels. Het speelt ook geen rol of de verdeling horizontaal of verticaal is. Er zijn pixel systemen met hogere resolutie, beter contrast of zelfs met kleuren.

Indien de toestanden van de pixels in layer 1 werkelijk willekeurig (crypto secure random) zijn, zullen zowel de lege als informatie pixels van layer 2 ook werkelijk willekeurig zijn. Men kan nooit weten of een pixel uit layer 2 gebruikt wordt om een grijze of zwarte pixel te creëren, aangezien we de toestand van die pixel in layer 1 (die willekeurig is) nodig hebben om het overlay resultaat te kennen. Als aan alle voorwaarden voor werkelijke willekeur is voldaan biedt Visual Cryptografie absolute veiligheid volgens de Informatie Theory .

Als Visual Cryptography gebruikt wordt voor veilige communicatie zal de verzender één of meerdere willekeurige layers 1 op voorhand overmaken aan de ontvanger. Als de verzender een bericht wil sturen zal hij een layer 2 creëren voor een specifieke layer 1 en deze verzenden aan de ontvanger. De ontvanger legt de twee layers exact over elkaar en de geheime informatie wordt zichtbaar, zonder gebruik van een codeertoestel, computer of manuele berekeningen. Zolang niet beide layers in verkeerde handen vallen biedt dit systeen absolute veiligheid en is onbreekbaar. De verborgen informatie kan onmogelijk uit slechts één van de layers gehaald worden.

Bijkomende informatie

Visual Crypto - One-time Image door Robert Hansen
Visual Crypto Java Applet op de Universiteit van Regensburg
Visual Cryptography Kit Software om layers te creëren
Visual Crypto Page door Doug Stinson
On-line Visual Crypto Applet van Leemon Baird
Extended Visual Cryptography (pdf) door Mizuho Nakajima en Yasushi Yamaguchi
Visual Cryptography Paper door Moni Noar and Adi Shamir
Visual Crypto Talk (pdf) door Frederik Vercauteren ESAT Leuven


© Copyright 2004 - 2016 Dirk Rijmenants

Home