Криптономикон, часть 2 (Стивенсон) - страница 43

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

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

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

Кому: [email protected]

От: [email protected]

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

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

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

#! /usr/bin/perl — s

$f=$d? -l:l; $D=pack(`C*´'.33..86); $p=shift;

$p=~y/a-z/A-Z/; $U=´$D=~s/(.*)U$/U$l/;

$D=~s/U(.)/$lU/; ´; ($V=$U)=~s/U/V/g;