Backenzähnen explodieren, aber dann würde sein Kiefer zuschnappen und all die unzertrümmerten Nuggets geradewegs hoch an seinen Gaumen schieben, wo ihr Panzer aus rasiermesserscharfen Traubenzuckerkristallen massive Kollateralschäden verursachen, den Rest der Mahlzeit in eine Art schmerzverhangenen Todesmarsch verwandeln und den Neuling für drei Tage in Novocain-Stummheit versetzen würde. Randy dagegen hat inzwischen eine wahrhaft teuflische Cap’n-Crunch-Essstrategie entwickelt, die im Kern darin besteht, die tödlichen Eigenschaften der Getreideklümpchen gegeneinander auszuspielen. Die Klümpchen selbst haben die Form kleiner Kissen und sind als Anklang an Piratenschatztruhen schwach gemasert. Mit flockenartigen Zerealien würde Randys Strategie niemals funktionieren. Allerdings wären Cap’n Crunchs in Flockenform ohnehin selbstmörderischer Wahnsinn; das Eintauchen in Milch würden sie ungefähr so lange überdauern wie Schneeflocken die Landung in einer Friteuse. Nein, die Zerealien-Entwickler bei General Mills mussten eine Form mit möglichst geringer Oberfläche finden, und als eine Art Kompromiss zwischen der von der euklidschen Geometrie vorgeschriebenen Kugel und den wie auch immer gearteten, an einen versunkenen Schatz erinnernden Formen, vermutlich eine lautstarke Forderung der Zerealien-Ästhetiker, dachten sie sich dieses schwer zu definierende gestreifte Kissengebilde aus. Dabei ist für Randys Zwecke am wichtigsten, dass die einzelnen Cap’n Crunch-Stücke bei großzügiger Betrachtung eine gewisse Ähnlichkeit mit Backenzähnen haben. Die Strategie besteht nun darin, Cap’n-Crunch sich selbst kauen zu lassen, indem die Klümpchen sich in der Mitte der Mundhöhle gegenseitig abschleifen wie Steine in einer Scheuertrommel. Genau wie beim gehobenen Gesellschaftstanz sind verbale Erklärungen (dasselbe gilt für das Vorführen von Videofilmen) hier nur bis zu einem gewissen Grad von Nutzen; dann muss der Körper die Bewegungen einfach lernen.
Bis Randy eine befriedigende Menge Cap’n Crunch (ungefähr ein Drittel einer Siebenhundertfünfzig-Gramm-Packung) gegessen und seine Bierflasche leer getrunken hat, ist er zu der Überzeugung gelangt, dass man ihm mit dieser ganzen Tanzgeschichte einen Streich gespielt hat. Wenn er ins Hotel kommt, werden Amy und Doug Shaftoe ihn mit einem schadenfrohen Grinsen erwarten. Sie werden ihm sagen, dass sie ihn nur auf den Arm genommen haben, und ihn mit in die Bar nehmen, um ihn unter den Tisch zu reden.
Randy zieht die noch fehlenden Teile seines Anzugs an. An diesem Punkt sind Verzögerungstaktiken erlaubt und so wirft er noch einen Blick in seine E-Mail.
An:
[email protected] Von:
[email protected] Betreff: Die Pontifex-Transformation, wie gewünscht
Randy,
Sie haben natürlich Recht – wie die Deutschen auf schmerzhafte Weise erfahren mussten, kann man einem neuen Kryptosystem erst trauen, wenn es veröffentlicht worden ist, damit Leute wie Ihre Freunde, die Heimlichen Bewunderer, den Versuch unternehmen können, es zu knacken. Ich wäre Ihnen sehr verbunden, wenn Sie das mit Pontifex machen könnten.
Die Transformation im Kern von Pontifex weist verschiedene Asymmetrien und Spezialfälle auf, die eine Darstellung in wenigen sauberen, eleganten mathematischen Zeilen schwierig machen. Man müsste sie fast als Pseudo-Code aufschreiben. Aber warum sollen Sie sich mit Pseudo zufrieden geben, wenn Sie die echte Fassung haben können? Im Folgenden finden Sie Pontifex als Perl-Skript. Die Variable $D enthält die 54-Elemente-Permutation. Das Unterprogramm e erzeugt den nächsten Schlüsselstromwert, während es $D entwickelt.
#!/usr/bin/perl -s $f=$d?-1:1;$D=pack (‘C*’,33..86); $p=shift; $p=~y/a-z/A-Z/;$U=‘$D=~s/(.*)U$/U$1/; $D=~s/U(.)/$1U/;‹;($V=$U)=~s/U/V/g; $p=~s/[A-Z]/$k=ord($&)-64,&e/eg;$k=0; while (<>) {y/a-z/A-Z/; y/A-Z //dc;$o.=$_}$o.=‘X’ while length ($o)%5&&!$d; $o=~s/./chr(($f*&e+ord($&)-13)%26+65)/eg; $o=~s/X*$//if $d;$0=~s/.{5}/$&/g; print»$o\n«;sub v{$v=ord(substr($D,$_[0]))-32; $v>53?53:$v} sub w{$D=~s/(.{$-[0]})(.*)(.)/$2$1$3/} sub e{eval»$U$V$V«;$D=~s/(.*)([UV].*[UV](.*)/$ 3$2$1/; &w(&v(53));$k?(&w($k)):$c=&v(&v(0)),$c>52? &e:$c)}
Außerdem ist noch eine Nachricht von seinem Anwalt in Kalifornien gekommen, die er ausdruckt und in seine Brusttasche steckt, um sie sich zu Gemüte zu führen, wenn er im Stau steckt. Er fährt im Aufzug nach unten und nimmt ein Taxi zum Manila Hotel. Das (nämlich im Taxi durch Manila