Нил Стивенсон - Криптономикон, часть 1
Как-то в три часа ночи Пекка переключил режим. Экран погас, щелкнул и взорвался ему в лицо. Передняя часть кинескопа была, естественно, из толстого стекла — ее осколки вошли Пекке в лицо, тело, торс. Тот самый люминофор, который светился под бегущим электронным лучом, передавая информацию глазам Пекки, теперь впился в его тело. Один осколок уничтожил глаз и остановился, не дойдя до мозга самую малость. Другой перерезал связки, третий просвистел рядом с головой и выкусил аккуратный треугольник из левого уха.
Другими словами, Пекка стал первой жертвой Дигибомбера. Он едва не умер от потери крови, и его друзья-евтропийцы несколько дней толклись у больничной койки с баллонами фреона, готовые немедленно приступить к делу, если он умрет. Однако Пекка не умер и вызвал новую шумиху тем, что оказался не застрахован. Местные газеты долго заламывали руки по поводу того, как бедный наивный мальчик из страны бесплатной медицины не нашел в себе духа потратиться на медицинскую страховку. В итоге несколько хайтечных магнатов скинулись на оплату медицинских счетов и компьютерный голосовой аппарат, как у Стивена Хокинга.
И вот теперь Пекка сидит у Кантрелла в номере. Виолончель стоит в углу, в районе кобылки еще видна канифолевая пыль. К стене изолентой приклеены проволочные петли и загогулины. Они тянутся к каким-то явно самопальным платам, те, в свою очередь, подключены к ноутбуку.
«Здравствуй Рэнди поздравляю с успехом», — говорит компьютерно сгенерированный голос, как только за Кантреллом и Рэнди закрывается дверь. Это маленькое приветствие Пекка, очевидно, набрал заранее. Все вполне в порядке вещей, удивляет другое: Пекка думает, что корпорация «Эпифит» уже добилась каких-то успехов.
— Как продвигается? — спрашивает Кантрелл.
Пекка печатает ответ. Потом подносит одну руку к изуродованному уху, а другой жмет на кнопку голосового генератора: «Он в душе. (И впрямь слышно, как в стене шумят трубы.) Его компьютер излучает».
— Ой, — удивляется Рэнди. — Том Говард — в соседней комнате?
— Через стенку от нас, — кивает Кантрелл. — Я нарочно так попросил, чтобы выиграть пари. Его номер — зеркальное отражение моего, так что компьютер всего в нескольких дюймах, сразу за стеной. Идеальные условия для ван-эйковского перехвата.
— Пекка, ты прямо сейчас получаешь сигналы с его компьютера? — спрашивает Рэнди.
Пекка кивает, печатает, жмет кнопку: «Настраиваю. Калибрую». Вводное устройство голосового генератора — MIDI-клавиатура под одну руку, пристегнутая к бедру. Пекка вслепую пробегает по нему пальцами, через несколько мгновений слышится голос: «Нужен Кантрелл».
— Извини. — Кантрелл садится рядом с Пеккой. Рэнди некоторое время смотрит им через плечо. Он примерно понимает, что они делают.
Если положить лист белой бумаги на старый могильный камень и провести карандашом черту, вы получите одну горизонтальную линию, где-то темнее, где-то светлее, однако ничего особенного не означающую. Если провести вплотную вторую черту, и так раз за разом, начнет проступать рисунок. Технарь назвал бы этот процесс разверткой или сканированием. В обычном мониторе — электронно-лучевой трубке — электронный луч действительно пробегает по стеклу от шестидесяти до восьмидесяти раз за секунду, в дисплее ноутбука, как у Рэнди, ничего по-настоящему не бегает, отдельные пиксели включаются и выключаются прямую. Однако процесс развертки все равно имеет место: при этом считывается и отображается на дисплее определенная область компьютерной памяти, называемая экранным буфером. Содержимое экранного буфера должно передаваться на дисплей шестьдесят-восемьдесят раз за секунду, иначе (1) экран будет мерцать, (2) изображение — дергаться.
Компьютер, общаясь с вами, не управляет экраном непосредственно, а манипулирует с битами экранного буфера, зная, что другие подсистемы передадут информацию на реальный дисплей. Шестьдесят-восемьдесят раз за секунду система говорит себе: «Блин, пора обновлять экран», лезет в начало буфера — а это, не забывайте, просто часть памяти — и считывает первые несколько байтов, определяющих, какого цвета будет пиксель в верхнем левом углу экрана. Информация отправляется тем, кто, собственно обновляет экран, будь то электронный луч или что-то такое в ноутбуке. Потом считываются следующие несколько байтов, обычно для пикселя справа от первого, и так до правого края экрана. Проводится первая черта натирки с могильного камня.
Теперь, когда достигнут правый край экрана, в этом направлении пикселей больше нет. Значит, следующие несколько байтов отвечают за крайний левый пиксель второй строки. В электроннолучевой трубке возникает небольшая заминка: луч на правом краю экрана, а его просят нарисовать пиксель на левом краю. Он должен переместиться обратно. Это занимает время — небольшое, но дольше, чем на переход между соседними пикселями. Называется — время обратного хода по строке. Так продолжается, пока не будет достигнут последний пиксель в нижнем правом углу и натирка с могильного камня не будет завершена. Однако теперь пора начинать по новой; электронный луч (если он есть) должен скользнуть по диагонали к верхнему левому пикселю. Тут тоже налицо заминка, которая называется временем обратного хода по кадру.
Все это происходит от того, что реальный электронный луч по-настоящему движется в электронно-лучевой трубке. Для дисплея как в ноутбуке, который Том Говард поставил через стенку от Пекки, такие ограничения вроде бы сняты. Однако тайминг сигнала у такого дисплея все равно взят у электронно-лучевой трубки. (Просто потому, что старая технология всем, кому надо, понятна и нормально работает, под нее сделаны и протестированы все программные и электронные технологии, а лучшее враг хорошего, особенно если прибыль у тебя настолько мала, что различить ее можно только с помощью методов квантовой механики, и любые помехи в совместимости подкосят компанию на корню.)
В ноутбуке Тома каждая секунда разделена на семьдесят пять абсолютно одинаковых интервалов, в каждый из которых полностью укладывается натирка с могильного камня плюс время обратного хода по кадру. Как понял Рэнди из разговора Пекки с Кантреллом, они уже установили по идущему через стенку сигналу, что Том настроил дисплей на разрешение 768 строк и 1024 пикселя в строке. Для каждого пикселя из буфера считываются и передаются по проводу на экран четыре байта. (Том выставил максимальное цветовое разрешение. Это значит, что нужно по байту на яркость каждого из основных цветов — красного, зеленого и синего. Один байт лишний, но его все равно оставляют, потому что компьютеры любят степени двойки, а мощность и быстродействие у них сейчас такие, что лишний байт решительно ничего не меняет.) Каждый байт — восемь двоичных разрядов или битов, значит, 1024 раза за строку из экранного буфера считываются 4 х 8 = 32 бита.
Неведомо для Тома, его компьютер стоит рядом с антенной. Проволока, которую Пекка прилепил к стене, читает электромагнитные волны, постоянно испускаемые компьютером.
Томов ноутбук продавался как компьютер, а не как радиопередатчик, и может удивить, с какой стати он что-то испускает. Дело в том, что компьютеры — двоичные существа. Всякое общение чипа с чипом, подсистемы с подсистемой внутри машины — все, что движется по проволочкам, заключенным в плоские ленты, и тонюсеньким металлическим линиям на платах — состоит из переходов от нуля к единице и обратно. Биты получаются, когда вы меняете напряжение на проволочке туда-обратно, от нуля до пяти вольт. В учебниках эти скачки рисуются идеальными прямоугольными импульсами: у вас есть идеально ровная линия при V = 0, представляющая двоичный ноль, потом она прыгает вверх под идеально прямым углом, достигает V = 5, снова поворачивает ровно на девяносто градусов и остается на пяти вольтах, пока не приходит время снова скакнуть на ноль, и так далее.
Это платоновский идеал того, как работает цепь. Однако инженеры вынуждены строить реальные цепи в мрачном аналоговом мире. Куски металла и кремния не способны к платоническому поведению, описанному в книгах. Напряжение и впрямь перескакивает с нуля до пяти вольт, но если проследить за ним на осциллографе, вы увидите, что это не вполне прямоугольный импульс. Вашим глазам предстанет что-то примерно такое:
Затухающие колебания называются звон: переход между двоичным цифрами ударяет по цепи, как било по колоколу. Напряжение прыгает, потом еще некоторое время колеблется возле нового значения. Когда в проводнике вот так колеблется напряжение, значит, в пространство разбегаются радиоволны.
Соответственно каждая проволочка в работающем компьютере — маленький радиопередатчик. Сигналы, которые она посылает, полностью определяются тем, что происходит в машине. Поскольку проволочек не счесть, а происходит много чего разного, разобрать все радиопередачи со стороны практически невозможно. Большая часть того, что творится в машине, абсолютно неинтересна с точки зрения шпионажа. Однако есть некая последовательность сигналов, которая (1) вполне предсказуема, (2) являет собой именно то, что Пекка хочет увидеть. Это поток битов, считываемых с экранного буфера и отправляемый по проводу экранному железу. В случайном шуме из компьютера время обратного хода по строке и по кадру — как бой тамтама в густонаселенных джунглях. Теперь, когда Пекка настроится на этот ритм, он сможет ловить излучение кабеля, соединяющего экранный буфер с видеооборудованием, и переводить его обратно в последовательность нулей и единиц, которую можно вывести на собственный монитор. Тогда он увидит то же, что Том Говард, с помощью шпионского метода, называемого ван-эйковский перехват.