Darios Geburtstagsgeschenk

Anfang diesen Jahres hatte Dario seinen Geburtstag gefeiert und mein Geschenk war letztendlich ein Amazon-Gutschein über 13,37 Euro. Damit das aber nicht zu langweilig wird, hatte ich den Gutschein in einem Geocache versteckt und die Koordinaten ein wenig verschleiert. Konkret hatte ich Dario auf seiner Feier nur einen Zettel überreicht, auf dem neben einem QR-Code folgender Text stand:

Lieber Dario,

zu deinem Geburtstag wünsche ich dir alles Gute! Das Geschenk für dich ist zwar nicht besonders einfallsreich, aber dafür ist der Weg dahin umso kreativer ;).

Viel Spaß! Felix

PW: DarioWirdLangsamAlt

Der QR-Code führte zu einem Download für ein passwortgeschütztes ZIP-Archiv (das Passwort steht im Text). Entpackt man das ZIP-Archiv, findet man folgendes Bild als Bitmap:

Dario_SteganographieDas Originalfoto ist während einer gemeinsamen Geschäftsreise in den USA entstanden. Wir waren bei einer Firma zu Besuch und am Eingang gab es ein großes Schild mit dem Firmenlogo, neben dem wir uns gegenseitig fotografiert haben :). Das Firmenlogo habe ich im Bild entfernt und gegen den Text „LSB(R)“ in der Schriftart Wingdings ersetzt.

Was soll nun LSB(R) bedeuten? LSB steht für Least Significant Bit, also niederwertigstes Bit. Dario hatte zunächst das R als ASCII-Wert interpretiert, aber da bliebe ja nur ein einzelnes Bit als Information über. Stattdessen steht das R für Rot. Im Bitmap war nämlich in den niederwertigsten Bits der Rotwerte ein Text kodiert. Dies ist eine sehr klassische Form der Steganographie. Wenn man sich also die Mühe macht die entsprechenden Bits aus der Datei auszulesen, erhält man folgenden Text:

Soweit so gut …

Chiffre = XTEA
Modus = ECB
Key = k1 | k2 | k3 | k4

f(7)  = 1 7
f(10) = 1 2 1 5
f(23) = 1 23
f(24) = 3 2 1 3
f(99) = 3 3 1 11

f(k1) = 1 5 2 13 1 47 1 89 1 443
f(k2) = 4 2 1 7 3 17 1 67 1 101
f(k3) = 1 743 1 1091 1 1171
f(k4) = 2 103 2 139

hex(ciphertext) = F31019A5E998B13E5F0296FA1CB533C92E338E3469F475E9D
CDBECA06892D27687E694297FD0584A659EC03BA5930EE28
3A4A5076FD932B23A40C8FCE87DC35D2EAF37A4B95AAF6E8
A0658916F074A460CA8DD75D1592BCC75CA70CCCA16834FE
3BE77511CA5C89089BB5838B389BDE2D77665E700F49CC1A6
7D12307303A212

Hier muss ich direkt zugeben, dass der obige Text schon korrigiert ist. Ursprünglich hatten sich da diverse Fehler eingeschlichen. Naja, das passiert halt, wenn man mit dem Geschenk erst zwei Tage vorher beginnt ;). Bei diesem Teil handelt es sich um eine Verschlüsselung, bei dem der Schlüssel aus vier Teilen besteht (k1 bis k4). Diese Teile sind nicht direkt angegeben, sondern nur als Ergebnis der Funktion f(), die nicht erläutert, sondern nur durch Beispiele veranschaulicht wird. Die Lösung dazu war folgende: f() gibt eine Zerlegung in Primfaktoren an. Zum Beispiel ist f(24) = 3 2 1 3, d.h. 3 mal der Primfaktor 2 und 1 mal der Primfaktor 3 (24 = 2 * 2 * 2 * 3). Entschlüsselt man dann das gegebene Chiffrat, erhält man folgenden Text:

RmFzdCBnZXNjaGFmZnQhDQpXbz8gVzEgKyBXMg0KVzE6ID
MxLjEyLiwgYWJlciBuaWNodCBtaXQgaQ0KVzI6IGtsZWluZXM
gT3JjaGVzdGVyDQpHcm9lc3NlPyAxZS05

Das ist jetzt nicht mehr verschlüsselt, sondern nur noch kodiert. Und zwar mit BASE64. Ich habe dabei extra darauf geachtet, dass die Zeichen des zu kodierenden Textes ein Vielfaches von drei sind. Dadurch hat man dann keine verräterischen „=“-Zeichen am Ende ;). Das Dekodieren ist einfach und dafür gibt es jede Menge online-Tools. Am Ende kommt dann folgender Text raus:

Fast geschafft!
Wo? W1 + W2
W1: 31.12., aber nicht mit i
W2: kleines Orchester
Groesse? 1e-9

„Größe“ soll dabei andeuten, dass es um einen Nano-Cache handelt. Ich bin jetzt kein erfahrener Geocacher und mir auch nicht sicher ob ich diesen Begriff richtig verwende. Auf jeden Fall war der Cache sehr klein ;). Als „Wo“ kommt die Sylvesterkapelle in Bochum raus. Dort gibt es drei solche Steinplatten:

P1010084

Oben ist ein kleiner Metallbeschlag und darunter hatte ich den Amazon-Gutschein versteckt (nur der Code auf einem schmalen Streifen Papier, das zusammengerollt in Plastik eingewickelt war).

P1010085Eigentlich war es ja nicht so clever den ganzen Gutscheincode dort zu verstecken, aber scheinbar war der Cache gut genug versteckt um nicht gefunden zu werden. In der Nähe scheint es noch einen weiteren Geocache zu geben, der aber deutlich größer sein müsste.

Dario hatte sich teilweise sehr lange Zeit gelassen mit dem Geburtstagsgeschenk. Wir waren erst vor wenigen Wochen gemeinsam dort und hatten viel Spaß bei Darios Suche. Anschließend war ich dran und musste meinen Geocache suchen, denn ich hatte von Dario und einigen Arbeitskollegen etwas ähnliches geschenkt bekommen. Dazu mehr im nächsten Blog-Eintrag :).

Advertisements
Dieser Beitrag wurde unter Allgemein abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s