Visuelle Kryptografie / Folienüberlagerung

Kategorisierung:Moderne Grafik-basierte Kryptografie
Herkunft / Verwendung: Die visuelle Kryptografie ist ein Verfahren, um ein Geheimnis unter mehreren Personen zu teilen, ohne das Einzelpersonen Informationen aus ihren Teil beziehen könnten. Ein bekanntes Beispiel für ein geteiltes Geheimnis ist etwa der Schlüssel beim RSA-Verfahren.

Bei der visuellen Kryptografie wird das Geheimnis, das aus einer schwarz/weiß Grafik besteht, auf Grafiken verteilt und auf Folien gedruckt, die übereinandergelegt das Geheimnis zeigen, aber einzeln keinen deutbaren Informationsgehalt aufweisen. Das Verfahren wurde 1994 erstmals von Adi Shamir, einem Experten auf dem Gebiet der Secret-Sharing Verfahren zusammen mit Moni Naor entwickelt und vorgestellt. Seinen Namen hat die visuelle Kryptografie von der Tatsache, dass die Aufdeckung des Geheimnisses allein durch visuelle Wahrnehmung geschieht. Es wird kein Computer dazu benötigt.

Die Folien (auch Shares genannt), auf die das Geheimnis verteilt wird, brauchen eine größere Fläche als die Ursprungsgrafik, ansonsten tritt ein Auflösungs- und Kontrastverlust ein. Jedes Pixel der Ursprungsgrafik wird durch Muster auf den Folien ersetzt, die übereinandergelegt ein Bild mit höherem oder niedrigerem Kontrast ergeben. So läss sich die Ursprungsgrafik alleine durch Betrachten wiedererkennen. Für ein 2 aus 2 Folien-Problem braucht man mindestens 2 Subpixel, was aber das Seitenverhältnis zerstören würde. Es empfiehlt sich deshalb die Benutzung von 4 Subpixeln.

Außer nur ein Geheimnis auf zwei Folien zu verteilen gibt es noch viele andere vorstellbare Konstellationen, je nachdem welche Muster als Ersatz man verwendet. Praktisches Beispiel wären zum Beispiel ein Aufsichtsrat aus 4 Personen, bei dem der Vorsitzende nur zusammen mit einem Ratsmitglied eine Tresorkombination aufdecken kann. Und zudem die Möglichkeit bestünde, dass sich alle 3 Ratsmitglieder zusammen über den Vorsitzenden hinweg setzen könnten und die Tresorkombination mit ihren 3 Folien aufdecken könnten.

Oder etwa drei Personen, die nur gemeinsam ein Bankschließfach öffnen dürfen. Jeder der drei Personen hätte im Voraus eine Folie erhalten. Und nur wenn sich alle drei absprechen und in der Bank zusammenkommen und samt ihrer Folie anwesend wären, kann man diese übereinander legen und den Öffnungscode erfahren. Mit beigefügten entsprechenden Anweisungen könnte man die Folie sogar weitergeben oder vererben. Genauso gut könnte es sich bei dem geteilten Geheimnis um den Schlüssel zu einem symmetrischen Verschlüsselungsverfahren handeln.

Das Verfahren ähnelt dem One-Time-Pad und bietet absolute Sicherheit, wenn für die Zufallsbitfolge echte Zufallszahlen (z. B. durch Münzwurf ermittelt) benutzt werden. Aus einer der Folien allein kann man dann unmöglich Rückschlüsse auf das Geheimnis ziehen. Sie erscheinen wie eine zufällige Folge von Pixeln, wobei weiße und schwarze Pixel gleichverteilt sind.

Beschreibung des Algorithmus

Allgemein:

Pro Pixel der Ursprungsgrafik wird ein Pixelmuster erzeugt, dass n*n Pixel groß sein sollte (n = Anzahl der Folien / Shares). Für die erste Folie wird ein Zufallsmuster (vergleichbar mit einem Null/Eins-Zufallsstrom wie der Schlüssel bei einem XOR-One-Time-Pad) erzeugt. Die weiteren Folien hängen vom Geheimnis (der Ursprungsgrafik) und dem Zufallsmuster ab und werden so gewählt, dass sie übereinandergelegt ein schwarzes Quadrat ergeben, falls die Ursprungsgrafik einen schwarzen Pixel an dieser Stelle hatte bzw. ein halb durchsichtiges ("graues") Pixel, falls der Ursprungspixel weiß war. Übereinandergelegt erscheinen die ursprünglich schwarzen Pixel mit 100% Kontrast (schwarz) und die ursprünglich weißen Pixel mit 50% Kontrast (grau).

Für ein zweigeteiltes Geheimnis:

Bei einem zweigeteilten Geheimnis wird die erste Folie mit einem Zufallsmuster bedruckt, wobei pro Pixel der ursprünglichen Grafik 4 (2*2) Pixel benötigt werden. Diese werden schräg angeordnet, also entweder oben links und unten rechts (\) oder oben rechts und unten links /. Die zweite Folie enthält dann eins von der Ursprungsgrafik und dem Muster der 1. Folie abhängiges Muster, so dass ein schwarzes (alle 4 Sub-Pixel verdeckt) bzw. graues Pixel (2 Sub-Pixel verdeckt) erreicht wird.



Theoretisch könnte man auch die komplementären Muster links/rechts oder oben/unten benutzen. Die entstehenden Folien sehen dann aber nicht so ästhetisch und gleichverteilt aus.

Es können weitere Folien (und Nachrichten) mit Folie 1 verknüpft werden, so dass mit einer Folie (Erstfolie) mehrere Nachrichten (Zweitfolien) entschlüsselt werden können, indem die Folie 1 an die entsprechenden Zweitfolien mit der selben Basis angelegt werden. Hierbei sollte allerdings beachten werden, dass die Geheimnisse der Zweitfolien teilweise offengelegt werden können, wenn die Zweitfolien übereinandergelegt werden. Man sieht dann die Differenzen der Zweitfolien im Bezug auf die Erstfolie. Dies verhält sich wie die Benutzung eines One-Time-Pads, bei dem ein Schlüssel für mehrere Nachrichten benutzt wurde.

Beispiel 2 Folien

Zweigeteiltes Geheimnis: Hier gibt es zwei Folien, die nur zusammen das Geheimnis aufdecken können.

Folie 1:



Folie 2:



Folie 2 über Folie 1:



Beispiel 2 aus 2 Folien, horizontal gestaucht

Das Geheimnis ist auf 2 Folien verteilt. Es werden beide Folien benötigt, um das Geheimnis aufzudecken.

Folien 1 bis 2:




Demo der Überlagerung:



Angezeigte Folien: 1 2 (Klicken Sie auf die Folien-Nr., um sie anzuzeigen oder auszublenden)

Beispiel 2 aus 2 Folien, vertikal gestaucht

Das Geheimnis ist auf 2 Folien verteilt. Es werden beide Folien benötigt, um das Geheimnis aufzudecken.

Folien 1 bis 2:




Demo der Überlagerung:



Angezeigte Folien: 1 2 (Klicken Sie auf die Folien-Nr., um sie anzuzeigen oder auszublenden)

Beispiel 2 aus 2 Folien, Größe der Ursprungsgrafik, aber Auflösungs/Kontrastverlust

Das Geheimnis ist auf 2 Folien verteilt. Es werden beide Folien benötigt, um das Geheimnis aufzudecken.

Folien 1 bis 2:




Demo der Überlagerung:



Angezeigte Folien: 1 2 (Klicken Sie auf die Folien-Nr., um sie anzuzeigen oder auszublenden)

Beispiel 3 Folien bei gleicher Erstfolie

2 zweigeteilte Geheimnisse mit der gleichen Erstfolie (durch gleichen Startvektor Zufallszahlengenerator): Je eine Zweitfolie (2, 3) zusammen mit der Erstfolie (1) deckt eines von zwei unterschiedlichen Geheimnissen auf. Die Zweitfolien übereinander zeigen den Unterscheid zwischen den Geheimnissen.

Folie 1:



Folie 2:



Folie 3:



Folie 2 über Folie 1: Erste Nachricht



Folie 3 über Folie 1: Zweite Nachricht



Folie 2 über Folie 3: Differenz der beiden Nachrichten



Beispiel 2 aus 3 Folien

Das Geheimnis ist auf 3 Folien verteilt. Es werden 2 beliebige Folien benötigt, um das Geheimnis aufzudecken.

Folien 1 bis 3:




Demo der Überlagerung:



Angezeigte Folien: 1 2 3 (Klicken Sie auf die Folien-Nr., um sie anzuzeigen oder auszublenden)

Beispiel 4 Folien Vorsitzender und Ratsmitglieder

Das Geheimnis ist auf 4 Folien verteilt. Der Vorsitzende (Erstfolie, Folie 1) kann zusammen mit einem Ratsmitglied (Folie 2, 3, 4) das Geheimnis aufdecken. Oder die drei Ratsmitglieder können ohne Beteiligung des Vorsitzenden das Geheimnis aufdecken. Zwei Ratsmitglieder allein reichen nicht. Die Lesbarkeit ist abhängig von der gewählten Schriftart / Strichdicke. Ggf. muss man sich die Überlagerung ein wenig aus der Ferne betrachten, damit das Geheminis deutlich wird.

Folien 1 bis 4:




Demo der Überlagerung:



Angezeigte Folien: 1 2 3 4 (Klicken Sie auf die Folien-Nr., um sie anzuzeigen oder auszublenden)

Beispiel 3 aus 4 Folien (gleichzeitig auch 3 aus 3 Folien)

Das Geheimnis ist auf 4 Folien verteilt. Es werden 3 beliebige Folien benötigt, um die Nachricht erkennen zu können. Eine oder zwei Folien reichen nicht aus. Das klarste Bild ergibt sich mit allen 4 Folien. Verteilt man nur 3 der 4 Folien an 3 Personen, erhält man eine Lösung für das "3 aus 3"-Problem

Folien 1 bis 4:




Demo der Überlagerung:



Angezeigte Folien: 1 2 3 4 (Klicken Sie auf die Folien-Nr., um sie anzuzeigen oder auszublenden)

Beispiel 4 aus 4 Folien

Das Geheimnis ist auf 4 Folien verteilt. Es werden alle 4 Folien benötigt, um die Nachricht erkennen zu können. Eine, zwei oder drei Folien reichen nicht aus.

Folien 1 bis 4:




Demo der Überlagerung:



Angezeigte Folien: 1 2 3 4 (Klicken Sie auf die Folien-Nr., um sie anzuzeigen oder auszublenden)

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)

Als Parameter kann eine Zahl eingegeben werden, die als Initialisierungsvektor für den Pseudozufallszahlengenerator benutzt wird. Wird immer die gleiche Zahl eingegeben, so sieht das Muster für Folie 1 immer gleich aus. Dadurch kann sie als Master-Folie zur Dekodierung mehrerer Zweitfolien dienen, wobei jedesmal ein anderer Text zu sehen ist. Es ist lediglich darauf zu achten, dass die größte Masterfolie ausgedruckt wird. Daran können dann alle anderen Zweitfoien (auch kleinere, dann nur linkes Ausrichtekreuz verwenden) angelegt werden



Quellen, Literaturverweise und weiterführende Links

Shamir, Adi und Naor, Moni: Visual Cryptography, Eurocrypt 1994
Klein, Andreas: Visuelle Kryptographie, Springer Verlag 2007