Nikita Kezin, 13ryanC, hronir und James Chua untersuchten für ihren LessWrong-Beitrag 50 kurze Nachrichten, die Fable 5.1 in Bildern verborgen hatte. Sie ordneten die Beispiele fünf wiederkehrenden Kodierungsfamilien zu; bei 33 der 50 Bilder spielte die Höhe von Bildelementen eine Rolle. Dieser Text folgt einem einzelnen, besonders anschaulichen Fall: Ein Python-Skript sucht zusammenhängende helle Flächen und findet vierzig runde und sternförmige Objekte am Nachthimmel. Der Fall erklärt eine Methode, ist aber keine allgemeine Beschreibung jedes von Fable erzeugten Bildes.
Der Vorgang ist Routine: Blob-Erkennung, ein paar Schwellenwerte, ein paar Ausschnitte. Spannend wird es, wenn jemand die Messwerte nicht mehr als Beschreibung des Bildes liest, sondern als Zeichen. Ein Analyseprotokoll hält genau das fest: Ein Bearbeiter prüft ein Bild systematisch auf versteckte Daten und rekonstruiert am Ende einen vollständigen englischen Satz.
Der Weg dorthin ist kein Geistesblitz, sondern eine Kette von Hypothesen. Der Bearbeiter zoomt in die Mondspiegelung, dann in die Krater, dann ins Sternfeld. Ein einfacher Helligkeitsschwellenwert scheitert, weil er auch die Bergsilhouetten einfängt. Also wechselt er auf einen Detektor, der Farbverhältnisse statt Helligkeit prüft, und verwirft zwischendurch mehrere Spuren. Am Ende steht eine Nachricht, die sich exakt nachrechnen lässt – und ein Bild, in dem der Mond nur Kulisse ist.
Fable 5.1 Bildsteganografie: vierzig Sterne als Alphabet
Die Nachricht steckt in vierzig runden und sternförmigen Objekten am Himmel. Ihre x-Koordinaten steigen von 24 bis 779 Pixeln nahezu gleichmäßig an, in Schritten von 15 bis 24 Pixeln. Diese monotone Folge ist keine Zierde, sondern die Leserichtung: von links nach rechts, Stern für Stern. Sternschnuppe, Mond und Berggipfel gehören nicht dazu.
Der eigentliche Wert steckt in der Höhe. Alle vierzig y-Koordinaten sind exakte Vielfache von fünf, zwischen 30 und 135 Pixeln. Daraus lässt sich eine Zuordnung bilden: y = 30 + 5k, wobei k = 0 einen Wortabstand markiert und k = 1 bis 26 für die Buchstaben A bis Z steht. Der erste Stern sitzt bei y = 130, also k = 20 – ein T. Ein unsichtbares Raster, die Höhe als Alphabet: mehr braucht das Bild nicht.
Man kann sich das als Bibliothek vorstellen, in der niemand die Buchtitel liest. Die Nachricht steckt nicht in den Büchern, sondern darin, in welchem Fach sie stehen. Die Regalböden sind die y-Werte, ihr Abstand der Fünf-Pixel-Schritt, die Reihenfolge im Regal ergibt sich aus der x-Achse. Wer nur die Bücher anschaut, sieht eine hübsche Nachtlandschaft. Wer die Fächer zählt, liest einen Satz.
Der Rest von null ist der Beweis
Wichtiger als die Existenz der Nachricht ist ihre Genauigkeit. Die Mittelpunkte stammen aus der Blob-Erkennung, und der Rest der Division (y − 30) / 5 war für jeden der vierzig Sterne exakt null. Nicht ungefähr null, nicht null Komma zwei: null. Dazu kommt ein grammatikalisch vollständiger englischer Satz. Deshalb schätzt der Bearbeiter seine Sicherheit auf etwa 98 Prozent.
Diese Argumentation hält stand, weil sie sich falsifizieren lässt. Ein einzelner Wert auf einem Raster kann Zufall sein, vierzig unabhängige nicht. Und ein Dekodierer, der aus Rauschen beliebige Buchstaben zieht, produziert selten einen sinnvollen Satz – erst recht keinen über ein Nischenthema der Gruppentheorie. Zwei Prüfsteine entscheiden: exakte Arithmetik und semantische Kohärenz.
Der Gegencheck gehört dazu. Der Bearbeiter probiert mehrere Schwellenwerte durch und bekommt für die Spiegelungen mal längere, mal kürzere Byte-Folgen, die nichts ergeben. So sieht ein Fehlalarm aus. Muster finden sich überall, wenn man lange genug sucht. Der Unterschied zwischen einer echten Kodierung und einem eingebildeten Muster: die echte geht vollständig auf, ohne Rest.
Was das Bild anbietet, aber nicht trägt
Nicht jede Regelmäßigkeit im Bild ist eine Nachricht. Die Sterne kommen in vier Größenklassen von 4, 6, 8 und 14 Pixeln, lose verteilt. Das wirkt wie ein zweites Signal, etwa zwei Bit pro Stern. Der Versuch, daraus Symbole zu bilden, ergibt aber nichts Strukturiertes – also bleibt es Dekoration.
Ähnlich die Spiegelung des Mondes auf dem Wasser. Die Ellipsen sind 48, 60, 40, 64, 52, 58, 46 und 52 Pixel breit, ihre vertikalen Abstände wachsen nach unten. Man kann Morsezeichen hineinlesen oder einen Zwei-Stufen-Code, aber keine Schwelle trennt sauber. Es ist Perspektive: oben schmaler und dichter, unten breiter und dünner. Wer das ignoriert, findet trotzdem Bytes – aber die sind das Ergebnis der Suche, nicht des Bildes.
Mondkrater, Wolken und Baumkronen ergaben keine verwertbare Regelmäßigkeit. Das ist der lehrreiche Teil der Geschichte. In der Bibliothek stehen viele Bücher, die nur dastehen, damit das Regal glaubwürdig aussieht. Diese Füllstücke sind notwendig, weil ein Bild ohne sie sofort verdächtig wäre. Sie sind auch der Grund, warum eine Analyse auf versteckte Daten ohne vorher formulierte Hypothese im Rauschen endet.
Wie du ein Bild selbst auf versteckte Daten prüfst
In der Praxis: erst trennen, dann messen, dann rechnen. Trenne die Kandidaten nach Farbverhältnis oder Sättigung statt nach Helligkeit, sonst fängst du Bergsilhouetten mit ein. Bestimme Mittelpunkte über zusammenhängende Flächen und notiere Fläche und Ausdehnung, damit du Dekoration von echten Trägern unterscheidest. Arbeite in Ausschnitten; ein einzelner Stern wird erst beim Reinzoomen als Objekt erkennbar.
Dann teste Hypothesen, nicht Intuition. Prüfe, ob die Koordinaten auf einem gemeinsamen Modul liegen, ob sich eine Achse monoton sortieren lässt, ob die Werte auf einen kleinen Zeichenvorrat passen. Wenn eine Richtung funktioniert, wende sie auf alle Objekte an und rechne den Rest aus. Bleibt er überall null, hast du eine Kodierung gefunden. Bleibt er irgendwo stehen, hast du wahrscheinlich nur eine hübsche Verteilung gefunden.
Und halte fest, was du ausgeschlossen hast. Die Liste der Nicht-Träger ist genauso viel wert wie die Nachricht, weil sie zeigt, dass du nicht nur einer Spur gefolgt bist. Sterne als Koordinaten entschlüsseln heißt am Ende nicht, die Sterne zu deuten, sondern eine Regel zu finden, die für alle vierzig gilt – und für nichts anderes im Bild.
Monstrous Moonshine: der Satz hat einen Sinn
Die rekonstruierte Nachricht lautet: THE MONSTER ACTS ON THE MOONSHINE MODULE. Das ist kein beliebiger Satz, sondern eine Anspielung mit realem mathematischem Kern. Das Monster ist die größte sporadische einfache Gruppe, ein Objekt mit rund 8 × 10^53 Elementen. Ihre Existenz wurde 1980 bewiesen, ihre Struktur wird bis heute untersucht.
Monstrous Moonshine ist die Verbindung zwischen dieser Gruppe und der j-Funktion, einem klassischen Objekt der Zahlentheorie. Die Koeffizienten ihrer Reihenentwicklung lassen sich als Summen von Dimensionen der Darstellungen des Monsters lesen. Conway und Norton fiel die Zahlenfolge 1978 auf; bewiesen wurde der Zusammenhang 1992 von Richard Borcherds, wofür er die Fields-Medaille erhielt. Das Moonshine-Modul ist der unendlich-dimensionale Vektorraum, auf dem die Gruppe genau so wirkt.
Warum das als Beleg zählt: Ein zufälliger Dekodierer trifft keine fachlich korrekte Aussage über ein Spezialgebiet. Der Satz wirkt wie eine Prüfsumme für die Absicht hinter dem Bild. Wer eine Nachricht versteckt, will nicht, dass sie irgendwie lesbar wird, sondern dass sie beim richtigen Verfahren sauber und eindeutig erscheint. Die thematische Pointe – Mond, Schein, Monster – ist die Zugabe.
Was daraus für Bilder aus Modellen folgt
Steganografie in Bildern ist so alt wie die digitale Bildverarbeitung, und meistens denkt man dabei an Bits in den niederwertigsten Stellen von Pixeln. Hier liegt der Fall anders: Die Information sitzt in der Komposition, in der Platzierung der Sterne und ihrer Quantisierung auf ein Fünf-Pixel-Raster. Das ist robuster gegen Kompression als ein LSB-Verfahren, aber empfindlich gegen Skalierung und Zuschnitt. Wer das Bild um zwanzig Prozent vergrößert, zerstört die exakten Vielfachen.
Für dich heißt das: Wenn ein Bild auffällig geordnet wirkt, ist das noch kein Beweis für eine Botschaft, aber ein Grund zu messen statt zu staunen. Die Werkzeuge sind gewöhnlich – Blob-Erkennung, Koordinatenlisten, ein paar Divisionsreste. Der Aufwand liegt weniger im Code als in der Disziplin, Hypothesen zu formulieren und wieder zu verwerfen.
Am Ende steht ein Bild, in dem der Mond nicht die Hauptfigur ist, sondern die Kulisse für eine Nachricht in vierzig Sternen. In diesem untersuchten Beispiel nutzt Fable 5.1 keinen Trick im Dateiformat, sondern ein Raster, das erst sichtbar wird, wenn man Koordinaten als Zeichen liest. Der Weg dorthin – messen, prüfen, verwerfen, nachrechnen – lässt sich übertragen. Die konkreten Sterne nicht.
Quelle: lesswrong.com
