Steganografie mit Snap!

Die Steganografie ist die Kunst, zusätzliche Informationen in einem Medium zu verstecken. In der Digitaltechnik geschieht dies häufig dadurch, dass ein bestimmtes, für Aussenstehende unauffälliges Bitmuster hinterlegt wird.

Das folgende Snap!-Beispiel verwendet eine einfachere Methode und nutzt die Tatsache, dass in einem Computersystem jeder Buchstabe auch durch eine Zahl repräsentiert werden kann. Diese Zahl wird dann einfach in einen Farbkanal von Bildpunkten geschrieben.

In diesem Kunstwerk aus Quadraten versteckt sich eine geheime Botschaft.

Programmierung in Snap!

Das Programm besteht aus zwei Teilen:

  1. Im Hauptteil, welcher direkt beim Start aufgerufen wird, berechnet das Programm für jeden Buchstaben einer Geheimbotschaft den entsprechenden nummerischen Wert und verwendet diesen dann, um den Grünkanal der einzelnen Farbquadrate zu setzen. Damit diese Veränderungen im Grünkanal nicht so augenfällig sind, werden für den Blau- und den Rotkanal zusätzlich zufällige Werte gesetzt.
  2. Das Auslesen der Bildinformation wird gestartet, sobald die Leertaste gedrückt wird. Dazu wird der Grünwert eines jeden Quadrates bestimmt und wieder in einen Buchstaben umgerechnet.
Mit diesen Befehlen kann eine vorher festgelegte Botschaft in das Bild kodiert und anschliessend auch wieder ausgelesen werden.

Um die farbigen Quadrate auf den Bildschirm zu zeichnen werden drei ineinander verschachtelte for-Schlaufen verwendet:

  1. Die z-Schlaufe zeichnet die einzelnen Quadrate, deren Farbe durch jeweils einen einzelnen Buchstaben bestimmt wird.
  2. Die x-Schlaufe rechnet für jeden Buchstaben den passenden Farbwert (Grünkanal) aus und zeichnet jeweils eine Zeile von Quadraten.
  3. Die y-Schlaufen bestimmt, wo die Quadratzeile auf dem Bildschirm platziert wird.

Dabei benutzt das Programm zusätzliche Bibliotheken, welche erst über das Dateimenü importiert werden müssen:

Die Funktion „set pen color“ ermöglicht das einfache Festlegen der Quadratfarbe nach dem RGB-Schema.

Die Funktion „multiline“ aus der Bibliothek „allow multi-line text input into a block“ erleichtert die Texteingabe für die Geheimnachricht.

Verwendung der Steganografie

Bei der Verschlüsselung von Daten sorgt man heute meist für Offenheit, was bedeutet, dass die Verfahren zur Verschlüsselung offengelegt werden können und es einer Drittperson trotzdem nicht in nützlicher Frist gelingt, die Geheimbotschaft zu lesen. Bei der Steganografie hingegen versucht man die Tatsache zu verschleiern, dass überhaupt eine geheime Mitteilung besteht. Verwendung findet dieses Verfahren deshalb in folgenden Situationen:

  • Bei verschiedenen Medien kann mittels der Steganografie ein Wasserzeichen eingebaut werden, welches Rückschlüsse auf die Weitergabe eines solchen Mediums zulässt. Dies ist beispielsweise dann nützlich, wenn überprüft werden soll, ob ein Copyright eingehalten wurde.
  • Mittels des gleichen Verfahrens ist es aber beispielsweise auch möglich, einen Schadcode, z.B. für einen Virus, in eine dafür geeignete Computerdatei einzufügen.

Verwendung in der Schule

In der Informatik können mit dem Programmbeispiel die Konzepte Variable, verschachtelte Schlaufen und die Kodierung von Zeichen und Farben thematisiert werden. Fortgeschrittene Schülerinnen und Schüler können den Kodierungsalgorithmus so anpassen, dass das Auslesen der Informationen durch eine Drittperson erschwert wird, indem beispielsweise mehr als ein Farbkanal für die Verschlüsselung verwendet wird (Rotation oder Auswahl eines RGB-Kanals abhängig vom zuletzt verschlüsselten Buchstaben). Etwas einfacher ist die Anpassung des Farbraums durch geschicktes Auswählen der Zufallszahlen für die nicht kodierten Farbkanäle.

Natürlich können sich die Schülerinnen und Schüler auch mit Geheimbotschaften hinterlegte Bilddateien austauschen. Sie können die Bilder mit einem Rechtsklick auf die Bühnenfläche (stage) speichern.

Ein Bild kann mittels der eingebauten Speicherfunktionen gesichert werden.

Ebenso einfach kann ein Bild geladen werden, indem man dieses dem Hintergrund als neues Kostüm zuordnet.

Ein Bild lädt man, indem man dem Hintergrund oder wahlweise einem anderen Objekt ein neues Kostüm zuordnet.

Damit steht dem Austausch von geheimen Botschaften innerhalb einer Klasse nichts mehr im Wege.

Quellen

Representing Data with Images and Sound (Kurs der Rasperry Pi Foundation auf FutureLearn), https://www.futurelearn.com/courses/representing-data-with-images-and-sound

Wikipedia: Steganografie, https://de.wikipedia.org/wiki/Steganographie#Ziele_der_Steganographie

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert