Криптономикон, часть 2 - Страница 21


К оглавлению

21

На этом месте кассеты Рэнди всегда гадает, не поставил ли пиво на кнопку ускоренной перемотки или что-нибудь вроде того, потому что танцоры переходят от пародии на Рэнди прямиком к профессиональному исполнению. Конечно, они выполняют номинально те же движения, что и раньше, но убей его бог, если он может узнать их в творческом варианте. Нет никакого внятного перехода. Это всегда бесило и бесит его в обучении бальным танцам. Любой дебил способен разучить основные движения. На это требуется примерно полчаса. Инструкторы ждут, что по истечении этих тридцати минут с тобой произойдет чудесное превращение, какое случается только в бродвейских мюзиклах, и ты начнешь порхать, как на крыльях. Наверное, примерно так чувствуют себя люди, которым не дается математика: учитель пишет на доске несколько простых уравнений и через десять минут выводит из них скорость света в вакууме.

Рэнди одной рукой наливает молоко, а другой сжимает ложку, чтобы не пропустить ни одно золотое мгновение, когда молоко и «Капитанские кранчи» уже вместе, но еще сохранили в чистоте свою стихийную сущность: два платоновских идеала, разделенных границей в молекулу толщиной. Там, где струйка молока касается ложки, нержавейка запотевает. Рэнди, разумеется, берет цельное молоко, иначе зачем было бы огород городить. Обезжиренное неотличимо от воды, кроме того, он считает, что жир в цельном молоке как своего рода буфер замедляет процесс размокания. Огромная ложка отправляется в рот раньше, чем молоко успевает ровно растечься по тарелке. Несколько капель попадают на эспаньолку (Рэнди отпустил ее в попытке найти компромисс между бородатостью и ранимостью). Он ставит пакет с молоком, хватает салфетку и, не втирая капельки в бороду, аккуратно снимает их с волосков. Тем временем все его внимание сосредоточено на ротовой полости, которую он, разумеется, не видит, но может вообразить в трех измерениях, как на компьютерной 3-D модели. Здесь новичок утратил бы терпение и принялся жевать. Несколько подушечек раздавились бы между зубами, однако затем челюсти, смыкаясь, прижали бы неразмолотые хрустики к нёбу. Броня из острых как бритва кристаллов декстрозы причинила бы значительный сопутствующий ущерб, превратив остаток трапезы в мучительный марш смерти и вызвав онемение ротовой полости по меньшей мере на три дня.

По счастью, Рэнди выработал совершенно умопомрачительную стратегию поедания «Капитанских кранчей», основанную на взаимонейтрализации их самых опасных свойств. Подушечки формой смутно напоминают пиратские сундучки. С хлопьями эта стратегия не сработала бы. С другой стороны, выпускать «Капитанские кранчи» в виде хлопьев — самоубийственная глупость: они бы таяли в молоке, как снежинки в кипящем масле. Нет, проектировщики готовых завтраков из «Дженерал Миллз» стремились найти форму, которая минимизировала бы площадь поверхности. В качестве компромисса между сферой, которую диктует Евклидова геометрия, и формой пиратского сундучка, за которую, вероятно, ратовал отдел эстетики готовых завтраков, они пришли к поперечно-полосатым подушечкам. Для целей Рэнди важно, что отдельные составляющие «Капитанских кранчей», в очень грубом приближении, имеют форму коренных зубов. Стратегия заключается в том, чтобы «Капитанские кранчи» сами себя жевали, размалывая подушечки друг о друга внутри ротовой полости, словно камни в галтовочном барабане. Здесь, как в профессиональных бальных танцах, словесное описание (или видеокассета) может дать лишь общее представление — дальше тело должно учиться само.

К тому времени как съедено удовлетворительное количество «Капитанских кранчей» (примерно треть семисотпятидесятиграммовой коробки), а пиво допито, Рэнди приходит к выводу, что вся история с танцами — просто розыгрыш. Ами и Дуг Шафто встретят его в вестибюле ехидными улыбками и поведут убалтывать в бар.

Рэнди надевает пиджак и галстук. Годятся любые предлоги, чтобы оттянуть время, поэтому он проверяет почту.

...

Кому: randy@epiphyte.com

От: root@eruditorum.org

Тема: Трансформация «Понтифик», как обещано Рэнди.

Разумеется, Вы правы — как немцы убедились на горьком опыте, ни одной криптосистеме нельзя доверять, пока она не обнародована, чтобы люди вроде Ваших друзей попытались ее взломать. Буду очень признателен, если Вы сделаете это с «Понтификом».

В «Понтифик» заложены некоторые асимметрии и особые операторы выбора, которые трудно выразить в нескольких элегантных математических строчках. Он почти просится, чтобы его записали псевдокодом. Но зачем сочинять псевдо, если можно написать настоящий? Ниже прилагается программа «Понтифика» на языке Perl. Переменная $D содержит 54-элементную перестановку. Подпрограмма e генерирует следующий элемент ключевого потока, изменяя этим $D.

#!/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; $o=~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)}

Еще одно письмо — от адвокатши, которая занимается разделом имущества с Чарлин. Рэнди распечатывает его и кладет в карман, чтобы посмаковать на досуге, когда будет стоять в пробке. Спускается вниз, ловит такси до гостиницы «Манила». Если бы он впервые ехал по Маниле, то, наверное, считал бы, что переживает захватывающее приключение; однако это уже миллионная его поездка, и мозг ничего не регистрирует. Например, он видит два столкнувшихся автомобиля прямо под огромным указателем «НЕТ ПОВОРОТА», но не обращает внимания.

21