Selbst als Kind kommt man sehr schnell dahinter, dass es gute und schlechte Verstecke gibt. Ein schlecht versteckter Spickzettel liegt im Mäppchen, ein gut versteckter klebt als Ettiket auf der gläsernen Sprudelflasche, wobei sich die hilfreichen Informationen selbstverständlich auf der Klebefläche befinden...
Hier geht es nicht um analoge Spickzettel. Vielmehr wollen wir untersuchen, wie man Nachrichten "digital verstecken" kann. Es werden täglich derart viele Digitalbilder hin und her geschickt, dass kaum jemand auf die Idee kommt, all diese Bilder auf geheime Nachrichten hin zu untersuchen. Dennoch setzen wir hohe Maßstäbe an unser "Versteck": Man darf dem Bild auch bei genauerer Untersuchung nicht ansehen, dass es verdächtige Unregelmäßigkeiten gibt. Und mehr noch: Selbst wenn erkannt wurde, dass das Bild Informationen enthält, soll es unmöglich sein, ohne bestimmte Schlüssel die Nachricht lesen zu können.
Um ein Versteck auszusuchen, sollte man die lokalen Gegebenheiten kennen. In unserem Fall sollte man daher wissen, wie Digitalbilder kodiert sind. Wir betrachten die zwei wichtigsten 8-Bit Farbmodi: RGB- und HSB. RGB steht für Rot, Grün und Blau, HSB für Hue (Farbton), Saturation (Sättigung) und Brightness (Helligkeit). In beiden Fällen gibt es im Fall von 32-Bit-Farben weitere 8 Bit für Transparenz (A). Als Versteck kommen sie nicht in Frage, denn bei fast allen Bildern steht dort 11111111 (keine Transparenz). Hier ein Überblick:
Die farbigen Pfeile zeigen, wie die Bits den Bildern zuzuordnen sind. Am Beispiel des blauen Pfeils: Alle niederwertigsten Bits (ganz rechts) der Farbe Blau sind im entsprechenden Bild dargestellt. Die schwarze Pixel stehen für Bit = 0, weiße Pixel für Bit = 1. Man kann unschwer erkennen, dass je höherwertig die dargestellten Bits sind, desto mehr erkennbare Struktur zeigt der das zugehörige schwarz-weiß Bild. Sollten Sie sich auch das Kapitel Kryptologie angesehen haben, dann fällt Ihnen vielleicht auf, dass eine dort verschlüsselte Nachricht dem Bit 1 -Bild von blau ähnelt. Und genau das werden wir im folgenden ausnutzen.
Zuvor sollten Sie den Sketch BitKontrolle runterladen. Testen können Sie den Sketch mit einem Bild (Name bild.jpg ), das Sie in den data-Ordner legen. Nach dem Start des Programms werden alle nötigen Informationen angezeigt. Wenn Sie zum Beispiel die Taste 4 drücken, werden alle sechs Kanäle im vierten Bit ausgerechnet und im data-Ordner als Bild gespeichert. Danach schauen Sie sich den Programm-Code an, um zu verstehen, wie man die einzelnen Bits der verschiedenen Kanäle auslesen kann.
Es fällt auf, dass lediglich die Bilder mit den niederwertigsten Bits nichts vom eigentlichen Bild verraten. Schon
bei den Bildern mit dem 2.Bit erscheinen erste kleine Bereichen mit Struktur. (Verwendet man allerdings
ein Foto mit flächigen, gleichfarbigen Elementen, dann sind selbst die Bilder mit dem 1.Bit nicht ganz strukturlos.)
Weshalb sind die Bilder aus den niederwertigsten Bits bei Verwendung eines geeigenten Fotos dermaßen chaotisch?
Unterscheiden sich zwei Farben um ein Bit, bedeutet das beispielsweise, dass ein Pixel 144 und das benachbarte 145
als Blauwert hat. Man muss schon sehr genau hinsehen, um den Unterschied zu sehen. Wenn aber in einem Foto die
Farbwerte um ein Bit verändert werden, sieht man keinen Unterschied zum ursprünglichen Bild. Ob nun bei der
Aufnahme des Bildes ein Pixel den Blauwert 144 oder 145 bekommt, ist fast schon zufällig zu nennen. Von daher
ist es nicht verwunderlich, dass die Bit-1-Kanal Bilder recht chaotisch aussehen.
Das bedeutet aber auch, dass man die niederwertigsten Bits zum Beispiel des Rot-Kanals alle auf 1 setzen kann, ohne dass das Bild eine erkennbare Veränderung erfährt. Dann muss man nur noch den Geheimtext auf diese weiße Ebene "legen": Liegt über dem Pixel Text, setzt man das Bit auf 0. Andernfalls belässt man es auf 1. (Mit dem erwähnten Sketch BitKontrolle lässt kann man mit Taste 0 dafür sorgen, dass alle niederwertigsten Pixel von Blau auf 1 gesetzt werden. Schauen Sie sich danach das Ergebnis mit Taste 1 an. Sie werden sehen, dass nun eine Ebene weiß geworden ist.)
Ein derartiges "Versteck" entspricht eher dem Spickzettel im Mäppchen! Es genügt ein Filter-Tool, wie BitKontrolle und man sieht den Klartext. Schauen Sie sich das folgende Bild an:
Links das schon bekannte Bild des niederwertigsten Bits im Blaukanal und rechts ein mit Arnold-Transformation plus Permutation verschlüsselter Text. Wenn wir den so verschlüsselten Text als Bit-1-Bild verwenden, fällt niemandem etwas auf. Um es noch klarer auszudrücken: Wir ersetzen das linke Bild durch das rechte. Das Foto wird hierdurch auf nicht wahrnehmbare Weise verändert. Und so soll der gesamte Verschlüsselungs-Versteck-Vorgang aussehen:
Die Aktionen, die durch die blauen Pfeile dargestellt sind, beziehen sich auf die "Cat-Map-Perm" Ver- und Entschlüsselung im Kapitel Kryptologie. Die roten Pfeile beschreiben den oben beschriebenen "Versteckvorgang". Dies alles ist im Sketch SteganoCrypt zusammengefasst. Testen Sie das Programm und versuchen Sie auch hier, die Algorithmen nachzuvollziehen.
Scatch BitKontrolle.