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 ihrem 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 Teil-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 (2x1) pro ursprünglichen Pixel, was aber das Seitenverhältnis zerstören würde. Es empfiehlt sich deshalb die Benutzung von 4 Subpixeln (2x2) pro Original-Pixel. Dadurch wird die Folien-Grafik doppelt so breit und doppelt so hoch wie die Original-Grafik. 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:
Sie sollten lesen können: "Es geht weiter bei Nord 53° 34.123 und Ost 12° 12.345"
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. Falls Sie mit allen eingeblendeten Folien nichts erkennen können, setzen Sie den Browser-Zoom auf 100%)
Sie sollten lesen können: "Die nächste Station ist bei N53° 34.123 E 12° 56.345"
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. Falls Sie mit allen eingeblendeten Folien nichts erkennen können, setzen Sie den Browser-Zoom auf 100%)
Sie sollten bei voller Bildschirmbreite (> 1000 Pixel) lesen können: "Die nächste Station ist bei N53° 34.123 E 12° 56.345"
Verschmälern Sie dann das Fenster, indem Sie das Browserfenster in der Breite mit der Maus verkleinern. Die zweite Folie verschiebt sich dann gegenüber der ersten und schon ab einer kleiner Verschiebung zwischen den beiden ist der Text nicht mehr zu lesen; die + Markierungen müssen ziemlich exakt übereinander liegen. Bei geringen Abweichungen lässt sich der Text noch erahnen.
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. Falls Sie mit allen eingeblendeten Folien nichts erkennen können, setzen Sie den Browser-Zoom auf 100%)
Sie sollten lesen können: "Die nächste Station ist bei N53° 34.123 E 12° 56.345"
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 Unterschied 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
Bei diesem Verfahren ist zu beachten, dass auch ohne die Primärfolie durch Kombination der weiteren Folien Geheimnisse der Erstfolie aufgedeckt werden können. Diese werden in den Unterschieden sichtbar, legt man die Sekundärfolien übereinander.
In obigen Beispiel kann man an erster Stelle eine 3 und eine 4 erkennen, an 2. Stelle eine 1 und eine 8, weiter mit 7 und 2 usw. Liegen noch weitere Folien vor, kann man auch bestimmen auf welcher Folien welche Zahlen gestanden haben müsse (jeweils durch Übereinanderlegen zweier Folien und Ausschlussverfahren).
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. Falls Sie mit allen eingeblendeten Folien nichts erkennen können, setzen Sie den Browser-Zoom auf 100%)
Sie sollten lesen können: "123456"
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. Falls Sie mit allen eingeblendeten Folien nichts erkennen können, setzen Sie den Browser-Zoom auf 100%)
Sie sollten lesen können: "123456"
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"-ProblemFolien 1 bis 4:
Demo der Überlagerung:
Angezeigte Folien: 1 2 3 4 (Klicken Sie auf die Folien-Nr., um sie anzuzeigen oder auszublenden. Falls Sie mit allen eingeblendeten Folien nichts erkennen können, setzen Sie den Browser-Zoom auf 100%)
Sie sollten lesen können: "3.1415926"
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. Falls Sie mit allen eingeblendeten Folien nichts erkennen können, setzen Sie den Browser-Zoom auf 100%)
Sie sollten lesen können: "957381"
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 werdenQuellen, Literaturverweise und weiterführende Links
Shamir, Adi und Naor, Moni: Visual Cryptography, Eurocrypt 1994Klein, Andreas: Visuelle Kryptographie, Springer Verlag 2007