Hackety hack hack

Atypisches Nutzerverhalten mit Rat und Tat.

Pad-Thai-Tag

Es fing damit an, dass ich dies hier auf Twitter schrieb:

Dann bekam ich Hunger. Phat Thai oder Pad Thai (Thai: ผัดไทย) ist ein traditionelles Nudelgericht der thailändischen Küche. Mit Reisnudeln, die zusammen mit ein paar Eiern, reichlich Knoblauch und Chili, Tofu, Hühnchen, Austernsauce, Fischsauce, Frühlingszwiebeln und ein bisschen Zucker im Wok gerührt, gebraten und mit nicht zu knapp Mungobohnensprossen und Erdnüssen garniert werden (die Shrimps, die noch dazu gehören, hatte ich nicht zur Hand) lässt sich schon etwas zaubern, was ganz lecker ist. Während des Entstehungsprozesses sah es so aus:

Auf meiner Liste von Dingen, die ich mir für 2014 vorgenommen habe, steht neben „Ukulele lernen“ auch „mehr Haskell programmieren“, also warum nicht mal schauen, wie das mit dem One-Time-Pad in Haskell geht. Ein One-Time-Pad, auch bekannt als Vernam-Chiffre, ist ein kryptographisches Verfahren:

Das One-Time-Pad (Abkürzung: OTP, deutsch: Einmalverschlüsselung oder Einmalschlüssel-Verfahren, wörtlich Einmal-Block, nicht zu verwechseln mit dem Einmal-Passwort-Verfahren) ist ein symmetrisches Verschlüsselungsverfahren zur geheimen Nachrichtenübermittlung. Kennzeichnend ist, dass ein Schlüssel verwendet wird, der (mindestens) so lang ist wie die Nachricht selbst. Das OTP ist informationstheoretisch sicher und kann nachweislich nicht gebrochen werden – vorausgesetzt, es wird bestimmungsgemäß verwendet.

Zunächst muss ich dazu den Key und den Eingabetext in Bytes umwandeln, damit ich die einzelnen Zeichen per XOR verbinden kann, um zu verschlüsseln. Das Internet bietet ja alles. Deshalb war es auch nicht besonders schwer, eine Webseite zu finden, die mir einiges über Bytestrings in Haskell erzählte und auch noch die Lösung für den OTP enthielt.

Das entsprechende Haskell-Package bytestrings zickte beim Installieren. Wie mir dann bei der weiteren Suche klar wurde, ist seit Ende letzten Jahres die Haskell-Plattform auf MacOS X 10.9 kaputt — Apple hat beschlossen, den Compiler gcc nicht mehr mit auszuliefern, weshalb bis zur nächsten Haskell-Version ein Fix benutzt werden muss, um GHC mitzuteilen, dass clang benutzt werden muss. Die Seite „Haskell Platform for Mac OS X“ half mir weiter.

Dann passierte noch weiteres Zeug, aber im Wesentlichen war es das mit dem Pad-Thai-Tag.

Comments