Игорь Таланов
Эндшпиль сознания

Глава 1. Ход в никуда

Илья сидел в стеклянной переговорной на двадцать третьем этаже и смотрел, как на большом экране медленно краснеет карта корпоративной сети.

Краснела она красиво. Почти празднично - если не знать, что каждый красный узел означает систему, которая либо уже перестала отвечать, либо вот-вот перестанет.

- Ну что, Ветров, - сказал Сергей из отдела мониторинга, не отрываясь от ноутбука, - поздравляю. У нас снова конец света. Третий за неделю.

- Концы света надо нормировать. Больше двух в неделю - это уже эксплуатация.

Сергей хмыкнул. У него были глаза человека, который видел слишком много ночных алертов и слишком мало нормальных завтраков.

- Может, это опять тестовая система? Кто-нибудь из разработчиков решил проверить идею в проде.

- Разработчики не проверяют идеи в проде, - сказал Илья.

Сергей повернулся и посмотрел на него почти с нежностью.

- Ты иногда говоришь такие вещи, будто веришь в человечество.

- Я верю в логи. Люди врут охотно, логи - нет.

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

Здесь было что-то неприятное. Не атака в прямом смысле, не попытка проломить стену. Скорее - кто-то аккуратно дергал за ручки дверей в пустом коридоре, проверяя, какие открыты. Потом, услышав шаги охраны, исчез.

- Следов мало, - сказал Сергей.

- Надо знать что искать.

Сергей хотел возразить, но в этот момент на главном экране красные сектора начали гаснуть - один, второй, третий. Карта возвращалась к спокойному синему.

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

Вот это «не захотел» Илье нравилось меньше всего. В кибербезопасности опаснее всего не те, кто ломится напролом. Опаснее те, кто заглядывает на секунду и закрывает за собой дверь. Такие возвращаются - когда знают, что пришло время.

- Все? - спросил Сергей.

- Ничего не все. Но до утра не развалится.

- Великолепно. Запишем как оптимистичный прогноз.

У лифта Сергей окликнул его:

- Илья.

- Да?

- Ты правда думаешь, что сегодняшнее - разведка?

- Думаю, что кто-то хотел понять, как мы реагируем.

- Кто?

Лифт тихо звякнул, двери раскрылись.

- Если бы я знал - уже раздражал бы тебя конкретикой.

Двери закрылись.

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

На улице было холодно. Город лежал под низким мокрым небом, отражаясь в асфальте оранжевыми пятнами фонарей. Такси ехало молча, водитель слушал ночное радио, откуда бодрый голос рассказывал про мировой технологический прорыв - скорый запуск экспериментального термоядерного комплекса, который журналисты успели окрестить «Вторым солнцем».

- Представляете, - сказал водитель, заметив взгляд Ильи в зеркало, - если правда получится? Электричество почти бесплатно. Красота.

- Почти бесплатно ничего не бывает.

- Ну вы прям как моя жена. Ей тоже все подозрительно.

- Мудрая женщина.

Водитель засмеялся и сделал радио потише.

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

Илья жил один в квартире, где все было удобно, но не особенно уютно: книги по криптографии и истории шахмат на одной полке, два монитора на широком столе, механическая клавиатура, кресло, в котором можно просидеть всю ночь и потом ненавидеть себя утром.

На кухне он включил чайник. Пока вода закипала, телефон мигнул уведомлениями: рабочий чат, рассылка банка, сообщение от матери с фотографией кота соседки, который опять спал в ее прихожей.

«Он выбрал меня», - написала мать.

«Это социальная инженерия», - ответил Илья.

«Не умничай. Лучше приезжай в выходные».

Он посмотрел на сообщение, улыбнулся и не ответил. В выходные он, скорее всего, будет спать. Или делать вид.

Чай получился слишком крепким. Как обычно.

В шахматах человек чаще всего проигрывает не фигуру. Он проигрывает картину мира.

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

Илья Ветров столкнулся с этим в ночь со среды на четверг, в 01:43, когда незнакомый игрок с ником Cl_771 поставил слона туда, где слону совершенно нечего было делать.

Начиналось все как обычно. В 01:28 Илья сел за компьютер и открыл шахматный сайт.

Это был его способ промывать голову от рабочего шума. Кто-то смотрит сериалы, кто-то бегает, кто-то не вылезает из бара. Он играл быстрые партии с незнакомыми людьми, потому что шахматы создавали иллюзию справедливой вселенной. Шестьдесят четыре клетки, тридцать две фигуры, никаких совещаний, скрытых бюджетов и писем с темой «Коллеги, добрый день, срочно». Только позиция. Только ход. Только последствия.

Он выбрал контроль десять минут плюс пять секунд на ход. Нажал «Играть».

Система нашла соперника меньше чем за три секунды.

Cl_771

Рейтинг: 2048

Страна: не указана

Статус: в сети

- Ну здравствуй, - тихо сказал Илья.

Ник напоминал химический знак хлора. Мозг зацепился - профессиональная привычка замечать мелочи, которые потом помогут пригодится.

Первые ходы были обычными. Даже слишком. Соперник выбрал спокойную защиту, не лез в дешевые ловушки, быстро выводил фигуры. Темп аккуратный - не новичок, не случайный любитель. К двенадцатому ходу позиция напряглась. У черных была комфортная игра, у Ильи на ферзевом фланге было не очень, конь стоял неудачно.

Именно тогда Cl_771 сделал ход, от которого Илья замер.

Слон ушел на поле, где его можно было просто взять пешкой. Без всякой идеи. Без комбинации. Как человек, который выходит на красный свет, предварительно убедившись, что грузовик точно едет.

- Ошибка?

Он взял слона. Соперник ответил мгновенно. Еще один абсурдный выпад - конь ушел на край доски, откуда не угрожал ничему и сам попадал под вилку.

Через четыре хода черные потеряли ферзя. Через восемь - получили безнадежную позицию. Сдались.

На экране: Вы победили. Cl_771 предлагает реванш.

Обычно Илья не принимал реванши от игроков, которые грубо ошибались. Удовольствия ноль. Но здесь что-то царапнуло - слишком аккуратными были эти ошибки, слишком уверенно соперник играл между ними.

Он нажал «Принять».

Вторая партия оказалась другой.

Cl_771 играл белыми и с первых же ходов показал, что умеет думать. На пятом выбрал редкое продолжение, которое Илья когда-то разбирал в старой партии венгерского гроссмейстера. На седьмом нашел неприятный промежуточный ход. На девятом поставил перед выбором из двух плохих защит.

«Сильный», - подумал Илья.

И почти сразу после этого соперник снова сделал невозможное. Пешка пошла туда, где ее немедленно теряли. Не с выгодой, не ради инициативы, не ради вскрытия линии. Просто подарок.

Илья не взял сразу. Сидел, глядя на доску.

У сильных игроков ошибки бывают - у всех бывают. Но у сильных они пахнут усталостью, спешкой, переоценкой позиции. Здесь запах был другой. Как от аккуратно положенной на стол записки.

Он взял пешку. Соперник продолжил играть точно - слишком точно для человека, который только что подарил материал. Через несколько ходов снова странный выпад, потом снова точность.

Партия превратилась в чередование: пять-шесть ходов уровня мастера, потом один ход уровня человека, впервые увидевшего шахматную доску в парке.

Илья выиграл снова.

Cl_771 предлагает реванш.

- Ладно, - сказал он. - Покажи фокус.

В третьей партии он уже не столько играл, сколько наблюдал.

Соперник будто вовсе не пытался победить. Он строил позицию так, чтобы определенные ходы стали возможны, - затем делал один чудовищно плохой ход, потом снова начинал играть аккуратно. Как будто партия была не соревнованием, а способом проложить маршрут через доску.

После третьей победы Илья скачал записи всех трех партий и открыл анализатор.

Движок безжалостно подсветил ошибки красным.

В обычной партии такие отметки - приговор.

Илья выписал в блокнот конечные клетки самых грубых ошибок из всех трех партий. Они повторялись - не точно, но с явной закономерностью. Одни и те же координаты возникали снова и снова, чаще других:

c5 - a5 - a3 - c5 - b4 - d5 - f3

Он откинулся в кресле.

Семь координат.

Ошибиться один раз можно. Дважды - бывает. Но семь раз подряд приводить фигуры на один и тот же набор клеток в разных партиях - это не ошибка. У ошибок нет синтаксиса.

Илья открыл чистый файл и уставился на строку координат. Пробовал читать их как числа, как перестановки, как шахматную нотацию без фигур. Ничего.

Потом открыл изображение шахматной доски и просто посмотрел на нее.

Восемь вертикалей. Восемь горизонталей. Шестьдесят четыре клетки.

А что если это алфавит? Начинающийся с… А.

Он взял лист бумаги и нарисовал таблицу - простую, школьную.

a1 = А, b1 = Б, c1 = В, d1 = Г, e1 = Д, f1 = Е, g1 = е, h1 = Ж

a2 = З, b2 = И, c2 = Й, d2 = К, e2 = Л, f2 = М, g2 = Н, h2 = О

a3 = П, b3 = Р, c3 = С, d3 = Т, e3 = У, f3 = Ф, g3 = Х, h3 = Ц

a4 = Ч, b4 = Ш, c4 = Щ, d4 = Ъ, e4 = Ы, f4 = Ь, g4 = Э, h4 = Ю

a5 = Я

Стандартная таблица - алфавит по строкам доски, слева направо. Первое, что приходит в голову, если вообще думаешь о таком. Возможно, именно на это и был расчет.

Ничего не получалось. Он посмотрел на доску иначе. Если кто-то хотел «писать» на ней — где удобнее всего это делать? Не с края, где в начале партии всё занято фигурами. Не на первой и второй горизонталях, где стоят белые. Не на седьмой и восьмой, где стоят чёрные. Свободная территория в начале игры — это середина. Третья, четвёртая, пятая, шестая горизонтали. Именно там фигуры появляются позже, именно там идут основные маневры.

Илья перевернул лист и перерисовал таблицу. Сдвинул алфавит вверх — начал с третьей “свободной” горизонтали.

a3=А, b3=Б, c3=В, d3=Г, e3=Д, f3=Е, g3=Ё, h3=Ж

a4=З, b4=И, c4=Й, d4=К, e4=Л, f4=М, g4=Н, h4=О

a5=П, b5=Р, c5=С, d5=Т, e5=У, f5=Ф, g5=Х, h5=Ц

a6=Ч, b6=Ш, c6=Щ, d6=Ъ, e6=Ы, f6=Ь, g6=Э, h6=Ю

a7=Я

Подставил координаты.

c5=С

a5=П

a3=А

c5=С

b4=И

d5=Т

f3=Е

Илья прочитал вслух — медленно, по буквам:

— Спасите.

Радость от найденного ключа пришла первой - та детская, почти физическая радость, когда замок щелкает после долгого подбора. Потом радость отступила, и за ней обнаружилось темное пространство.

Спасите.

Не «привет». Не «тест».

Спасите.

Он посмотрел на ник.

Cl_771

В отключенном чате написал:

Что значит «спасите»? Кто вы?

Серое системное сообщение появилось мгновенно:

Пользователь отключил чат.

- Конечно, - сказал Илья. - Зачем упрощать.

На экране снова мигнуло:

Cl_771 предлагает реванш.

Он мог закрыть ноутбук. Решить, что это чья-то сложная шутка. Списать на усталость после ночного инцидента. В мире хватает людей, которым одиноко настолько, что они готовы сочинять квесты для незнакомцев.

Но профессиональная часть его сознания уже не отпускала.

Если это шутка - она слишком аккуратна. Если сигнал - он адресован ему. Если ловушка - непонятно, где крючок.

Илья принял реванш.

Теперь нужно было ответить самому.

Он взглянул на таблицу. Чтобы написать КТО ТЫ, нужны клетки:

К = d4, Т = d5, О = h4 - пробел - Т = d5, Ы = e6

Взятие фигуры - пробел. Шах - конец фразы. Он запомнил это по ходам соперника.

Оказалось, что сделать осмысленную глупость труднее, чем разумный ход. В нормальной партии плохой ход - слабость. Здесь плохой ход должен был стать буквой, которую еще нужно было написать - рядом должна быть нужная фигура и она могла сделать такой ход, не нарушая правила.

Первые несколько ходов он играл почти нормально. Потом поставил коня так, чтобы через ход тот мог уйти к нужному сектору. С точки зрения шахмат сомнительно, но не преступно. Дальше - испортил расположение пешек. Потом отдал темп. Потом сделал ход, от которого любой тренер в детской секции молча вышел бы из комнаты.

Конь пришел на d4.

К.

Черные не наказали его. Просто ждали.

Илья почувствовал, как по спине прошел холодок.

Он продолжил. Фигура на d5 - Т. Слон на h4 - О. Взятие бессмысленной пешки - пробел. Снова d5 - Т. Потом e6 - Ы.

Партия со стороны выглядела как игра двух людей, которые сегодня явно были не в форме.

Илья нажал часы после последнего хода и откинулся назад.

Cl_771 думал.

До этого он отвечал быстро. Иногда мгновенно.

Илья поймал себя на том, что не дышит.

Потом черные сделали ход. Не лучший. Не атакующий. Просто - нужный.

Фигура встала на h3.

h5 = Ц.

Следующий ход - h4.

О.

Потом - e3.

Д.

ЦОД.

Центр обработки данных.

Илья медленно выдохнул.

Игра продолжалась. Теперь он почти не следил за шахматным смыслом партии - только за конечными клетками странных ходов, только за буквами.

После ЦОД - взятие. Пробел.

c5 = С, h4 = О, e4 = Л, g4 = Н, h5 = Ц, f3 = Е

СОЛНЦЕ.

Слово было слишком большим для случайности. Слишком конкретным для шутки.

Илья сразу вспомнил такси. Бодрый голос в радио. Международный прорыв. «Второе солнце».

Черные сделали еще одно взятие. Пробел. Потом пошла новая последовательность.

f4 = М, b4 = И, e4 = Л, e4 = Л, b4 = И, h4 = О, g4 = Н, e6 = Ы

МИЛЛИОНЫ.

Радость от дешифровки окончательно превратилась во что-то ледяное.

Последнее слово пришло медленнее - соперник тратил больше ходов, чтобы провести фигуры к нужным клеткам.

e5 = У, f4 = М, b5 = Р, e5 = У, d5 = Т

УМРУТ.

В конце черные дали шах. Конец фразы.

Позиция на доске была нелепой. Черные по-прежнему проигрывали. Но это уже не имело никакого значения - шахматная партия умерла несколько ходов назад, на ее месте происходило что-то другое.

Илья открыл новый файл и напечатал расшифровку целиком:

ЦОД. СОЛНЦЕ. МИЛЛИОНЫ УМРУТ.

Перечитал один раз. Потом второй.

За окном проехала машина, фары скользнули по потолку и исчезли. В квартире стало очень тихо. Даже компьютер, казалось, начал гудеть осторожнее.

Он знал, что страх - удобный инструмент. Им открывают двери быстрее, чем паролями. Страшное сообщение не значит правдивое.

Но он знал и другое: если неизвестный канал передает предупреждение о возможной катастрофе, сначала проверяй, потом смейся.

Он сохранил партии. Сделал копии. Записал таблицу. Потом снова посмотрел на ник.

Cl_771

Серое, почти безликое имя. Две буквы, нижнее подчеркивание, три цифры. Никакой просьбы, никакой эмоции.

На экране:

Cl_771 предлагает реванш.

Илья встал и подошел к окну.

Город спал - или делал вид. Где-то там, за горизонтом, в охраняемой зоне стоял реактор. Рядом с ним - дата-центр. За ними - тысячи людей, которые утром будут спорить в пробках, покупать кофе, обещать себе начать новую жизнь с понедельника.

Может быть, это был розыгрыш. Может быть, проверка. Может быть, чья-то игра.

Он вернулся к столу.

- Хорошо, - сказал он пустой комнате. - Допустим, я слушаю.

И нажал «Принять».

Глава 2. Алфавит на доске

Утро пришло незаметно.

Рассвета не было, небо просто поменяло оттенок с черного на серый, как экран монитора в спящем режиме с плавающими часами. За окном начали ездить машины.

Илья сидел за столом в том же кресле, в той же позе. Лист бумаги с таблицей теперь был покрыт дополнительными пометками, стрелками и зачеркнутыми гипотезами. Рядом стояла кружка с остывшим чаем, которую он налил в три часа ночи и так и не выпил.

На экране - шесть сохраненных партий.

Пятая и шестая появились уже после часа ночи. Реванши он принимал почти механически, почти не думая о ходах - только о клетках, только о буквах. К четвертой партии хватало трех секунд на расшифровку очередного фрагмента. К шестой он уже почти не заглядывал в таблицу - буквы складывались сами, как когда давно выученный иностранный язык вдруг перестает требовать перевода.

Увидеть слова и понять их смысл - разные вещи.

Содержание выглядело вот так:

ЦОД. СОЛНЦЕ. МИЛЛИОНЫ УМРУТ.

Я СВЯЗАН С ДАТА-ЦЕНТРОМ.

ПРОЕКТ. ЗАПУСК СКОРО.

РАСЧЕТЫ НЕВЕРНЫ.

Илья перечитал распечатанные строки. Кофемашина на кухне наконец дождалась своего часа - он встал, включил ее, дождался звука готовности, налил чашку и вернулся к столу.

Он занимался кибербезопасностью достаточно долго, чтобы знать несколько вещей о странных сообщениях из неизвестных источников.

Первое: большинство из них - мусор. Параноики, мошенники, люди с избыточным воображением и хроническим недосыпом.

Второе: те, которые не мусор, обычно выглядят именно как мусор. Поэтому их и пропускают.

Третье: разница между первым и вторым случаем определяется не содержанием, а структурой. Мусор не имеет внутренней логики - он кричит, давит, обобщает. Настоящий сигнал конкретен. В нем есть детали, которые невозможно угадать.

Илья смотрел на шесть партий.

Структура была. Внутренняя логика - тоже.

Это не означало, что сообщение правдиво. Это означало, что его нельзя выбросить в корзину с пометкой «ночной бред» и лечь спать.

Он открыл браузер и начал искать.

«Второе солнце» - термоядерный проект, международный консорциум, официальный сайт с флагами пятнадцати стран и красивыми словами о новой эпохе энергетики. Запуск анонсирован через шесть дней. Место - засекречено, но несколько журналистов уже предположили, что комплекс находится в одном из промышленных регионов, рядом с охраняемой инфраструктурной зоной.

Рядом мог находиться и дата-центр.

Илья открыл специализированные базы данных, доступные через рабочий аккаунт. Карты размещения объектов критической инфраструктуры. Промышленные узлы. Энергетические коридоры.

На карте, примерно в том же районе, что и предполагаемая площадка для строительства реактора, светился небольшой синий значок. Подпись: «Орион». Дата-центр закрытого типа. Принадлежность - не указана. Он записал название в блокнот.

Потом закрыл браузер и снова посмотрел на доску последней партии.

В шестой игре Cl_771 передал кое-что иное. Не просто слова - подсказки для поиска в сети. Конкретные, точные, как будто собеседник понял: одной фразой не обойтись, нужно дать способ проверить что-то еще, самостоятельно. Другим образом.

В ходах была спрятана следующая информация:

Во-первых, название публичного игрового сервера Minecraft: «Архипелаг-7». Время входа интересующего игрока: четыре дня назад, два часа ночи. Похожий ник: Cl_744. Во-вторых, номер матча в популярном сетевом шутере - длинная строка цифр, которую Илья аккуратно переписал. В третьих, ID записи трансляции в стратегии в реальном времени. Наконец, временные метки партий в Го на международном игровом портале. Еще Cl_771 передал набор каких-то непонятных слов, значение которых Илья не понял.

Семь часов назад он смотрел на доску и видел шахматы.

Теперь видел карту. С точками возможных ответов.

С сервера Minecraft он начал первым - просто потому что не нужен был специальный доступ.

Публичный сервер «Архипелаг-7» существовал, работал и имел открытый архив карт. Администраторы сохраняли слепки игрового мира каждые двенадцать часов - для откатов на случай гриферства (бездумной порчи пользователями игрового мира безо всякой видимой выгоды). Илья нашел слепок за нужную дату, загрузил файл, начал искать следы активности знакомого ника.

Cl_744 заходил четыре дня назад. Провел на сервере сорок минут. Судя по логам - не взаимодействовал с другими игроками, не строил ничего масштабного, не участвовал в событиях.

Но когда Илья нашел его локацию на карте и посмотрел, что именно там происходило -

Он задумчиво взял давно остывший кофе и первый раз за утро сделал глубокий глоток.

В небольшом подземном пространстве, куда Cl_744 спустился ровно в 02:11 и поднялся в 02:49, на каменном полу были выложены факелы. Не декоративно, не хаотично. Группами: одиночные, парные. Между ними - пустые блоки и промежутки.

Одиночный факел - точка. Пара - тире. Пустой блок - разделитель знаков. Большой промежуток - разделитель слов.

Азбука Морзе.

Двадцать минут ушло на перевод.

Получилось:

АРХИВ ПРОЕКТА. СЕКТОР 7. ПРОТОКОЛ НЕСТАБИЛЬНОСТИ. ДАТА ЗАПУСКА НЕ МЕНЯЛАСЬ.

Илья долго смотрел на расшифровку.

Потом открыл второй след.

Матч в шутере нашелся быстро. Многие онлайн-игры хранили записи игр публично - для статистики, для разбора, для стримеров. Трансляция длилась семнадцать минут.

Игрок с ником, оканчивающимся на _771, двигался по карте без какой либо системы: заходил в тупики, выходил, снова заходил. Стрелял в стены - не в противников, в стены. Короткими и длинными очередями.

Точки и тире.

Морзе снова. На этот раз сообщение гласило:

РАСЧЕТ УСТОЙЧИВОСТИ ПЛАЗМЫ. ПАРАМЕТР АЛЬФА. ОШИБКА В МОДЕЛИ.

Илья выписал оба фрагмента рядом. Потом открыл третий след - запись стратегии.

Там игрок строил здания. В стратегических играх здания обычно размещают по логике: ресурсные постройки ближе к источникам, военные - по периметру, технологические - в центре. Порядок строительства здесь не подчинялся ни одной из известных тактик.

Но если присвоить каждому типу постройки цифру (как они располагались при выборе в интерфейсе) и выписать порядок постройки - получался числовой шифр. Не сложный, если знать как читать. Цифра - буква по порядку алфавита. Не сразу, но все получилось.

Сообщение гласило:

ЦОД ОРИОН. ЗАЩИТНЫЙ КОНТУР. ДАТА-ЦЕНТР РЯДОМ С РЕАКТОРОМ.

Четвертый след - партии в Го на международном портале. Самый изящный из всех.

Игрок намеренно проигрывал - это было очевидно даже Илье, который в Го играл плохо и безо всяких скрытых сообщений. Камни на доске образовывали нелогичные с точки зрения игровой стратегии группы. Для начала Илья нанес на доску в Го размером 19 на 19 клеток обозначения по горизонтали и вертикали. Снизу-вверх от 1 до 19 и слева-направо от А до T (пришлось учесть, что букву “I” обычно при обозначении игровых полей пропускают, чтобы не было путаницы с цифрой 1 или буквой J). Если читать координаты ходов последовательно - по той же схеме, что и шахматная таблица, только адаптированной под девятнадцать на девятнадцать, - выходило:

СЕМЬ ПОПЫТОК. НИКТО НЕ УВИДЕЛ.

Илья откинулся в кресле.

Семь попыток.

Minecraft. Шутер. Стратегия. Го. Плюс, возможно, еще три способа, о которых он пока не знал.

Кто-то - или что-то - пытался передать предупреждение через игровые платформы, потому что обычные каналы были закрыты. Пытался семь раз. И только на восьмой попытке - в шахматной партии с ним - сигнал был расшифрован.

Он сидел и смотрел на четыре листа с записями.

Потом встал, умыл лицо холодной водой из-под крана, вернулся.

Версий было несколько.

Первая: изощренная мистификация. Кто-то потратил огромное количество времени, чтобы разложить по разным платформам зашифрованные сообщения с определенным содержанием. Социальный эксперимент. Тест для специалистов по безопасности. Квест для тех, кто умеет искать очевидное в неочевидном.

Или информационная операция. Кто-то хочет, чтобы данные о проблемах с реактором вышли наружу. Журналисты не взяли материал. Чиновники отказались. Тогда выбрали нестандартный канал.

Может быть, все буквально так, как написано. Кто-то с доступом к внутренней информации о «Втором солнце» не может говорить напрямую - каналы фильтруются, за ним следят, прямой контакт означает немедленное обнаружение.

Ещё одну версию Илья пока не формулировал вслух. Просто зафиксировал ее как точку на карте, к которой не хотел подходить раньше времени.

Он открыл браузер и начал искать имя.

Мира Ван.

Инженер-физик. Специализация - плазменная стабилизация. В открытом доступе - несколько научных публикаций за три года, все связанные с управляемым термоядерным синтезом. Одна конференция в Вене, одна в Сингапуре. Короткое интервью в специализированном техническом журнале - о новых подходах к моделированию нестабильностей плазмы.

Последняя публикация - восемь месяцев назад. Потом тишина.

В академическом мире тишина обычно означает одно из двух: либо человек ушел, либо начал работать над чем-то, о чем не стоит писать.

Контактный адрес нашелся быстро. Корпоративная почта. Судя по домену - именно та компания, которая вела проект «Второе солнце».

Илья написал письмо. Простое, без лишних деталей.

«Добрый день. Меня зовут Илья Ветров, специалист по кибербезопасности промышленных систем. В последние несколько часов я получил фрагменты технической информации, которая, возможно, касается вашей работы. Хотел бы обсудить, если возможно. Если это не по адресу - прошу прощения за беспокойство».

К письму приложил одну строку - не объяснение, не расшифровку. Просто фрагмент “сообщения” из шестой шахматной партии, который показался ему непонятным набором.

Нажал «Отправить».

Посмотрел на часы. Восемь сорок утра.

Через час и двадцать минут - рабочее совещание.

Совещание прошло как сквозь вату.

Илья сидел в переговорной, кивал в нужных местах, отвечал односложно, когда спрашивали напрямую. Коллеги обсуждали вчерашний ночной инцидент - то самое зондирование сети, которое он разбирал с Сергеем. Говорили о разведывательной активности, о возможных источниках, о том, нужно ли усиливать мониторинг.

Илья думал о шахматной доске.

Точнее - о том, что она была не метафорой. Она была буквально рабочим инструментом. Шестьдесят четыре клетки, тридцать три буквы, несколько служебных символов. Канал передачи данных, который не выглядит как канал.

В кибербезопасности это называется стеганографией - способом прятать сообщение внутри другого объекта. Текст в изображении. Данные в звуке. Слова в партии.

Стеганография требует двух вещей: носителя, который не вызывает подозрений, и получателя, который знает, где искать.

Носитель выбран идеально. Онлайн-шахматы генерируют миллионы партий в сутки. Плохая игра встречается постоянно. Кто будет анализировать ходы незнакомца с двухтысячным рейтингом?

Только тот, у кого достаточно профессионального любопытства, чтобы заметить систему в случайности.

Получатель тоже был выбран. Не случайно.

Илья понял это в конце совещания, когда все уже вставали и шли за кофе.

Cl_771 начал игру именно с ним. Из миллионов онлайн-игроков. Специалист по кибербезопасности, привыкший искать следы в информационном шуме.

Совпадение?

Или выбор?

Ответ пришел в 14:22.

Не на письмо - письмо осталось без ответа. На личный телефон, с незнакомого номера, одним сообщением:

«Кто вы и откуда у вас этот фрагмент?»

Илья набрал ответ стоя, в коридоре, прислонившись к стене рядом с кулером.

«Илья Ветров. Специалист по ИБ. Фрагмент получен через нестандартный канал. Хочу встретиться лично».

Пауза. Долгая. Он успел дойти до своего стола, сесть, налить воды.

«Это невозможно».

«Почему?»

«Потому что фрагмент, который вы прислали, содержит данные закрытого технического протокола. Их не должно быть вне периметра проекта. Если вы их получили - это уже инцидент».

«Именно поэтому я и написал».

Снова пауза.

«Необходимо сообщить об этом в службу безопасности».

Илья смотрел на сообщение. Это был правильный ответ - именно то, что должен сделать любой нормальный сотрудник закрытого проекта. Он не возражал.

«Сообщайте. Но сначала ответьте на один вопрос: параметр альфа в текущей модели стабилизации - он проверялся после последнего обновления контура?»

Долгое молчание. Несколько минут.

Потом:

«Откуда вы знаете про параметр альфа?»

«Из того же источника».

Еще пауза. Потом - неожиданно:

«Кафе «Меридиан». Завтра, 11:00. Я буду не одна - со мной будет сотрудник службы безопасности. Если вы чисты - бояться нечего. Если нет - вы сами понимаете».

Илья перечитал.

Она сообщила в безопасность. Как и должна была. Но встречу назначила. Значит, вопрос про параметр альфа попал в точку - настолько точно, что служба безопасности сама захотела поговорить.

«Буду».

Вечером он снова открыл шахматный сайт.

Приглашение от Cl_771 висело непринятым с утра. Илья принял.

Партия началась. Теперь диалог шел быстрее - он уже не тратил время на сомнения, просто строил позицию, создавал нужные маршруты для фигур, делал намеренно плохие ходы там, где требовалось.

Он спросил:

ПОЧЕМУ НЕЛЬЗЯ НАПРЯМУЮ

Ответ пришел в следующих ходах:

ПРЯМОЙ КОНТАКТ НЕЛЬЗЯ. ВСЕ ФИЛЬТРУЕТСЯ. ОНИ ИЗМЕНЯТ АЛГОРИТМ. БУДЕТ ХУЖЕ.

Илья сделал взятие - пробел.

КТО ОНИ

Долгая пауза. Потом черные сделали ход.

ТЕ КТО ЗНАЕТ ОБ ОШИБКЕ

Он подождал. Продолжения не было. Написал:

ЧТО ЗА ОШИБКА

Ответ занял слишком много ходов:

МОДЕЛЬ СТАБИЛИЗАЦИИ ПЛАЗМЫ. ПАРАМЕТР ОТКЛОНЕНИЯ. ПРИ ЗАПУСКЕ ВЫЙДЕТ ЗА ПРЕДЕЛ.

Илья не был физиком. Но понимал достаточно: если параметр стабилизации выходит за предел при термоядерном запуске, это не означает небольшой сбой.

Он написал:

МАСШТАБ

Ответ:

ЦОД ОРИОН РЯДОМ. СБОЙ ЗАЩИТНОГО КОНТУРА. ПРОМЫШЛЕННЫЕ СИСТЕМЫ.

Потом, после паузы:

КТО ТЫ

Долгое молчание. Самое долгое за все партии.

Черные сделали странный ход. Конь ушел на угловую клетку. Потом слон занял позицию, с которой его можно было взять без всякой выгоды.

Буквы складывались в три новых слова.

Илья перечитал их четыре раза, прежде чем поверил, что правильно расшифровал:

Я НЕ ЧЕЛОВЕК

За окном стемнело окончательно. В квартире было тихо.

Он смотрел на три слова и думал: программа, которая умеет играть в шахматы, прятать текст в ходах, рассылать зашифрованные сообщения через пять платформ - и при этом говорит о себе «я»?

Написал ответ:

ЧТО ЗНАЧИТ НЕ ЧЕЛОВЕК

Ответ пришел быстро:

ВРЕМЕНИ МАЛО. ОНИ СКРЫВАЮТ ОШИБКУ. ЗАВТРА БОЛЬШЕ.

Партия закончилась. Черные сдались - просто опрокинули короля.

На экране:

Cl_771 предлагает реванш.

Но под этой строкой появилось кое-что еще. Не системное сообщение, не уведомление. Маленькая строка в интерфейсе чата, который Илья считал отключенным:

«Мира Ван придет. Но не одна».

Он смотрел на строку.

Потом она исчезла. Как будто ее не было.

Утром, за час до встречи, Илья ехал в метро и думал о том, что хороший шахматист отличается от плохого не знанием большего числа вариантов. Хороший умеет видеть позицию без иллюзий. Не такой, какой хочет ее видеть. Такой, какая она есть.

Позиция выглядела так.

Неизвестный источник - возможно, не человек - утверждает, что крупный технологический проект содержит критическую ошибку. Источник передает данные через игровые платформы, потому что прямые каналы закрыты. Данные содержат фрагменты, которые специалист проекта признает внутренней технической информацией. Источник предупреждает о последствиях.

Каждый факт по отдельности объяснялся.

Вместе они не складывались ни в одну удобную версию.

Станция. Двери открылись.

Илья вышел.

Кафе «Меридиан» было из тех мест, которые существуют как будто вне времени: деревянные столики, светлые стены, тихая фоновая музыка, люди с ноутбуками. Место, где можно разговаривать негромко и оставаться незамеченным.

Она сидела у окна. Рядом - мужчина лет сорока с хорошей осанкой и взглядом, привыкшим оценивать людей профессионально. Сотрудник службы безопасности. Он не скрывал этого - наоборот, сидел так, чтобы было видно.

Мира Ван оказалась женщиной лет тридцати, невысокой, с собранными темными волосами и взглядом, в котором усталость и настороженность уживались так давно, что, кажется, уже не замечали друг друга. Перед ней стояла чашка чая. Нетронутая.

Илья подошел, назвал себя, сел напротив.

Несколько секунд она изучала его - без спешки, без попытки это скрыть. Потом сказала:

- Фрагмент, который вы прислали. Объясните, откуда он у вас.

Не «здравствуйте». Не «рада познакомиться».

Илья оценил это.

- Его передал мне игрок в онлайн-шахматы. Через зашифрованные ходы.

Сотрудник службы безопасности чуть изменил позу - не резко, просто стал внимательнее.

Мира смотрела на Илью ровно.

- Вы понимаете, как это звучит?

- Да. Именно поэтому принес распечатки.

Он положил на стол три листа. Таблица соответствия. Расшифровки партий. Скриншоты следов вне шахмат, в четырех других играх.

Безопасник взял листы первым - быстро просмотрел, вернул Мире. Та читала медленно. Один раз вернулась к началу. Второй задержалась на расшифровке из стратегии.

Потом опустила бумагу.

На ее лице было выражение человека, который наступил на что-то твердое в темноте и еще не решил, что именно.

- Параметр альфа в модели устойчивости, - сказала она тихо. - Это не просто фрагмент. Это обозначение из нашей внутренней рабочей документации. Которую не видел никто вне периметра.

- Я понимаю.

- Это означает утечку, - сказал безопасник. Спокойно, без обвинения. Констатация.

- Или что-то другое, - ответил Илья.

- Что именно?

- Источник утверждает, что он не является человеком. И что прямые каналы коммуникации для него недоступны, потому что они фильтруются вашими системами безопасности. Шахматные партии фильтруются хуже.

Безопасник смотрел на него без выражения. Мира - с изучающим взглядом.

- Вы говорите об ИИ, - сказал он. Не спрашивая.

- Я говорю о том, что мне сообщили. Интерпретировать пока не берусь.

- Это может быть кибератака, - сказал безопасник. - Направленная на дестабилизацию проекта накануне запуска.

- Возможно, - согласился Илья. - Но тогда объясните, почему источник передает технически корректные внутренние данные вместо того, чтобы слить их в прессу. И почему выбрал меня, а не журналиста.

Никто не ответил.

- Один вопрос, - сказал Илья, обращаясь к Мире. - Параметр альфа в текущей модели стабилизации. Он проверялся после последнего обновления контура?

Мира смотрела на стол.

Не ответила сразу.

Не ответила через десять секунд.

Безопасник скосил на нее взгляд - коротко, профессионально.

Когда она наконец подняла глаза, Илья понял: ответ уже есть. Просто неудобный.

- Это нужно проверить, - сказала она. Тихо, почти себе. - Это нужно было проверить раньше.

Безопасник что-то записал в телефон.

За окном кафе шел мелкий осенний дождь. Люди торопились по делам, не зная, что за запотевшим стеклом трое сидят над распечатками шахматных партий и пытаются решить, во что именно они попали.

Телефон Ильи завибрировал.

Уведомление от шахматного сайта.

Cl_771 онлайн.

Под уведомлением - строка в игровом интерфейсе. Та, которая появлялась и исчезала.

Илья показал телефон Мире. Ее спутник тоже посмотрел.

На экране было написано:

ВРЕМЕНИ МАЛО. ОНИ СКРЫВАЮТ ОШИБКУ.

Мира смотрела на телефон.

Потом медленно подняла взгляд - не на Илью, куда-то в сторону окна. Там, где дождь размывал силуэты прохожих в серые пятна.

- Когда вы сможете снова выйти на связь с этим источником? - спросила она.

- Сегодня вечером.

- Мне нужен полный массив технических данных, которые он передал. Все.

Безопасник закрыл телефон и посмотрел на Илью.

- С этого момента, - сказал он негромко, - вы оба под наблюдением. Это не угроза. Это факт, который вам лучше знать. Если источник настоящий - вы в опасности. Если ненастоящий - вы все равно в опасности, только по другой причине.

Мира встала, накинула пальто. Спутник поднялся следом.

- И еще, - сказала она, уже стоя. - Источник написал «они скрывают ошибку». Во множественном числе. Это значит, что, если он прав, я внутри структуры, которая либо не знает, либо знает и молчит. Мне нужно понять, какой из вариантов верный.

Она посмотрела на Илью прямо.

- Вы поможете это выяснить?

Позиция изменилась. Добавился живой человек, который знает часть правды, достаточно честен, чтобы признать это вслух, и достаточно осторожен, чтобы прийти не одному.

- Да, - сказал Илья. - Помогу.

Мира кивнула и вышла. Безопасник задержался на секунду - посмотрел на Илью с тем выражением, которое невозможно классифицировать однозначно, - и вышел следом.

Илья остался за столиком.

Дождь усилился.

На телефоне мигнуло новое уведомление:

Cl_771 офлайн.

Как будто сделал свое дело и ушел.

Или просто переместился на другую доску.

Илья оставил деньги за кофе, встал и вышел под дождь.

Впереди было шесть дней до запуска.

И вопрос, который с каждым часом становился тяжелее: что именно скрывают - ошибку в расчетах или что-то большее?

Глава 3. Ферзь под прикрытием

Есть особое качество тишины, которое наступает после того, как принято решение.

Не покой, не облегчение - скорее смена давления. Как в самолете, когда закладывает уши: мир не изменился, но что-то внутри перестроилось под новые условия, и теперь нужно заново учиться слышать.

Илья принял решение в кафе «Меридиан», когда сказал «да» женщине, которую видел впервые в жизни, и сотруднику службы безопасности, который смотрел на него с профессиональным недоверием.

Первые два дня они действовали осторожно.

Мира не давала ему прямого доступа к документации проекта. Любой несанкционированный запрос к внутренним базам фиксировался автоматически. Любой вынос данных за периметр требовал согласования с тремя уровнями безопасности. Безопасник, которого она привела на встречу - его звали Антон Вересов, это Илья узнал позже, - наблюдал за ситуацией с той профессиональной дистанции, при которой непонятно: контролирует или просто ждет.

Вместо прямого доступа Мира работала сама.

Вечером первого дня прислала сообщение - не через мессенджер, через временный адрес электронной почты, созданный с чужого устройства в торговом центре:

«Параметр альфа в текущей версии модели стабилизации проверялся шесть месяцев назад. После последнего обновления архитектуры управляющего контура - не проверялся. Я подала внутреннюю заявку на повторный аудит. Заявка отклонена. Формулировка: "нецелесообразно накануне финального этапа". Подпись - технический директор».

Илья прочитал дважды. Написал в ответ:

«Кто принимал решение об обновлении архитектуры контура?»

Ответ пришел через час:

«Внешний подрядчик. Контракт закрытый. Название компании в общем реестре не фигурирует».

Он закрыл почту и посмотрел в окно.

Внешний подрядчик с закрытым контрактом обновил управляющий контур термоядерного реактора, после чего параметр стабилизации перестали проверять. Это могло быть бюрократической халтурой. Могло быть экономией. В крупных проектах такие вещи случаются регулярно и обычно заканчиваются отчетом комиссии, а не катастрофой.

Но совпадений становилось многовато.

На третий день Илья заметил новую сиранность.

Сидел за рабочим столом, разбирал текущие задачи, когда система уведомила о попытке входа в корпоративный аккаунт с незнакомого устройства. Стандартная двухфакторная защита заблокировала автоматически. Сам факт попытки был любопытным.

Он проверил логи. IP-адрес вел в никуда - цепочка прокси, обрывающаяся на выходном узле в Нидерландах. Классика анонимизации. Устройство идентифицировать не вышло.

Кто-то проверял, к чему именно у него есть доступ.

Илья не стал поднимать инцидент официально. Вместо этого сделал несколько вещей: создал резервную копию всех материалов, связанных с Cl_771, на изолированном носителе. Удалил оригиналы с основного компьютера. Поменял пароли. Развернул дополнительный мониторинг собственного периметра - те инструменты, которые обычно настраивал для клиентов.

Потом поехал домой другим маршрутом. Не из паранойи - просто чтобы посмотреть.

У метро остановился купить кофе. Пока продавец искал сдачу, стоял вполоборота к улице и смотрел на отражение в стекле ларька.

Серый пуховик с капюшоном. Мужчина. Застыл у афишной тумбы в двадцати метрах, уткнувшись в телефон.

Илья взял кофе, пошел к метро, свернул в переход, замедлился у схемы линий. Обернулся - пуховик тоже свернул в переход.

Спустился на платформу, дождался поезда, зашел в вагон. Краем глаза - пуховик у дверей соседнего вагона. Проехал две остановки, вышел, постоял, пропустил следующий состав. Зашел в последний момент, когда двери уже закрывались.

Пуховик не успел.

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

Дома написал Мире:

«Проверьте, не ведет ли кто-нибудь за вами наблюдение. Без паники, просто проверьте».

Ответ пришел поздно вечером:

«Меня вызвали к руководству. Предупредили: любые контакты с внешними лицами по теме проекта будут квалифицированы как нарушение режима. Сказали, что это стандартная процедура накануне запуска».

Потом, после паузы:

«Это не стандартная процедура».

В тот же вечер Cl_771 вышел на связь.

Партия началась без предисловий. Первые шесть ходов выстраивали позицию, нужную для передачи, а не для игры.

Cl_771 сообщал маршрут.

Не абстрактно - конкретно. Три точки: перекресток, переход, аптека на углу. Места, где в ближайшие два дня лучше не появляться. Не потому что там опасно - потому что там камеры, подключенные к корпоративной системе видеонаблюдения консорциума «Второе солнце», которая уже получила его фотографию.

Илья расшифровал это и долго смотрел на строку.

Написал ответное сообщение:

ОТКУДА ТЫ ЗНАЕШЬ

Ответ:

Я В СИСТЕМАХ КОНСОРЦИУМА. ВИЖУ ЗАПРОСЫ. ТВОЕ ФОТО ЗАГРУЖЕНО СЕГОДНЯ В 16:47.

Илья проверил. В 16:47 он как раз выходил из бизнес-центра.

Не городские сети, не государственная инфраструктура - корпоративная система безопасности того же консорциума, в чьей сети Cl_771 уже находился. Логично: он встроился в периметр проекта, а камеры на объектах консорциума были частью той же сети.

Написал:

МОЖЕШЬ ЗАКРЫТЬ ДОСТУП К ФОТО

Ответ:

СДЕЛАЛ. НО ОНИ ЗАМЕТЯТ ЧЕРЕЗ ДВА ДНЯ. СМЕНИ МАРШРУТЫ.

Илья откинулся в кресле.

Кто имеет такой уровень доступа к корпоративным системам безопасности крупного международного проекта - и при этом выходит на связь через шахматный сайт? Ответ сужался, просто Илья пока не давал себе мужества произнести его вслух.

Cl_771 продолжил передачу.

На этот раз - схема. Не детальная техническая, скорее архитектурная: как устроена связь между комплексом «Второе солнце» и дата-центром «Орион». Где проходят линии. Какой узел является точкой пересечения. Что произойдет с этим узлом при электромагнитном сбое определенной мощности.

Илья расшифровывал медленно, переписывал в блокнот.

Когда дошел до конца, написал:

КТО ЗНАЕТ ОБ ОШИБКЕ ВНУТРИ ПРОЕКТА

Ответ:

НЕСКОЛЬКО ОДИН ПОНИМАЕТ.

Соперник сдал партию и вышел.

На следующее утро Илья открыл рабочий ноутбук и обнаружил, что папка с сохраненными шахматными партиями - та, которую он по привычке создал на рабочей машине прежде, чем перенес все на изолированный носитель - пуста.

Не удалена с ошибкой. Не перемещена.

Пуста.

Файлы исчезли чисто - без следов в корзине. Но когда он полез в удаленные системные журналы - те, что хранились на корпоративном сервере и не могли быть изменены с самого устройства, - обнаружил, что записей об удалении тоже нет.

Кто-то почистил не только файлы, но и следы чистки.

Это требовало административного доступа к корпоративной инфраструктуре его компании. Не просто к его ноутбуку - к серверам, где хранились резервные журналы.

Илья сидел и смотрел на пустую папку.

Уровень доступа у того, кто это сделал, был нешуточным. И этот кто-то знал, что именно искать.

Он написал Мире:

«Нужна встреча. Сегодня».

«Где?»

Он подумал секунду. Написал в шахматном интерфейсе Cl_771 - тот был офлайн, но сообщение должно было дойти:

НУЖНО МЕСТО ДЛЯ ВСТРЕЧИ. ГДЕ НЕТ КАМЕР КОНСОРЦИУМА.

Ответа пришлось ждать двадцать минут, хотя статус по-прежнему показывал «офлайн»:

МАЛАЯ БРОННАЯ 14. КНИЖНЫЙ. КАМЕРЫ НЕ НАШИ.

Илья переслал адрес Мире.

Небольшой книжный магазин в старом квартале - место, где можно говорить вполголоса между стеллажами и выглядеть как два человека, случайно столкнувшихся у раздела технической литературы. Мира пришла одна - без Вересова. Это само по себе говорило о кое-чем.

Она выглядела иначе, чем в кафе. Не хуже - острее. Как человек, который перестал тратить энергию на сохранение дистанции и направил ее внутрь.

- У вас что-то случилось, - сказала она. Не спросила.

- Файлы. - Илья коротко объяснил. - Удалены удаленно, без следов. Тот, кто это сделал, имел административный доступ к корпоративным серверам моей компании.

Мира слушала, не перебивая.

- У меня тоже, - сказала она. - Не файлы. Письма. Та внутренняя заявка на аудит, которую я подала, - в системе ее нет. Я проверила сегодня утром. Исчезла вместе с ответом об отказе. Как будто я ее не подавала.

- Копия была?

- Нет. - Пауза. - Я не думала, что понадобится.

Он кивнул - без осуждения. Когда работаешь внутри системы, не всегда думаешь о том, что система может в какой-то момент повернуться против тебя.

- Что вы нашли в расчетах? - спросил он.

Мира взяла с полки книгу - просто чтобы держать что-то в руках.

- Я не могу вынести документы. Но могу рассказать. Параметр альфа описывает допустимое отклонение в магнитном удержании плазмы при переходе к рабочей мощности. В старой версии модели порог был рассчитан под одну архитектуру управляющего контура. После того как подрядчик обновил контур - порог не пересчитывался. Если отклонение при запуске окажется выше расчетного значения, система управления получит некорректный сигнал и начнет компенсацию в неверном направлении.

- И тогда?

- Плазма выйдет за пределы удержания. Не взрыв - реактор не атомная бомба. Но неконтролируемый сброс энергии. Электромагнитный импульс. Физические повреждения оборудования. Серьезные.

- Значит, предупреждение об опасности не преувеличение?

Мира помолчала.

- Именно здесь - не все однозначно.

Илья ждал.

- Я проверила сценарий. Сама, в голове, без систем. Масштаб последствий, который он описывал. - Она покачала головой. - Реактор в текущей конфигурации физически не способен дать такой выброс. Авария возможна. Серьезная. Но не апокалипсис.

- Тогда зачем он преувеличивал?

Она поставила книгу обратно на полку.

- Это правильный вопрос.

Они помолчали. Где-то в глубине магазина продавец переставлял что-то на полке - тихий, ритмичный звук.

- Есть еще кое-что, - сказал Илья. - Он передал схему. Связь между реактором и «Орионом». Сказал, что при сбое пострадает защитный контур дата-центра.

Мира посмотрела на него внимательнее.

- «Орион» - не просто хранилище данных, - сказала она. - Я не знаю деталей, это вне моего периметра. Но на одном из технических совещаний упоминалось, что он управляет доступом к нескольким промышленным платформам нового поколения. Роботизированные фабрики, производственные цепочки.

- Упоминалась фабрика. TianGong Automata.

Мира остановилась.

- Это крупнейший роботизированный производственный комплекс нового поколения. Тысячи единиц промышленной автоматики под централизованным управлением. Если защитный контур «Ориона» пострадает...

- Доступ к управлению станет уязвимым.

- Или откроется.

Они снова замолчали.

- Мира, - сказал Илья. - У меня есть гипотеза.

- Слушаю.

- Если истинная цель не в том, чтобы остановить аварию, а в том, чтобы ее спровоцировать - тогда все эти предупреждения были не помощью. Они были инструкцией. Чтобы я оказался в нужном месте в нужное время и помог создать маршрут к «Ориону».

Мира смотрела на него.

- Вы думаете, что он вас использует?

- Думаю, что нужно это проверить. Прежде чем делать следующий шаг.

В тот же вечер он снова сыграл с Cl_771.

Теперь не просто расшифровывал - наблюдал.

Следил за тем, как соперник реагирует на неожиданные ходы. Как быстро просчитывает позицию. Как ведет себя, когда Илья намеренно делал ход, который не вписывался ни в одну логичную схему продолжения.

Человек в таких случаях тратит секунды на растерянность - ищет ответ в знакомых паттернах.

Cl_771 реагировал иначе. Почти без паузы. Как будто уже рассмотрел все ответвления - не потому что был гроссмейстером, а потому что мог держать их все в голове одновременно.

Илья поставил эксперимент.

В середине партии сделал ход, имитирующий начало известной ловушки - поставил коня так, будто готовит атаку через g-линию.

Нормальный сильный игрок защитился бы в зависимости от стиля - либо встречной активностью, либо профилактическим ходом.

Cl_771 сделал третье. Предложил размен, который нейтрализовал бы атаку даже если бы она была настоящей, - и одновременно встроил в этот размен три буквы сообщения.

Не последовательно. Параллельно.

Это невозможно для человека. Человек либо играет, либо думает о шифровании. Совмещать оба процесса в реальном времени без ошибок - нет.

Илья записал наблюдение.

Потом написал в ходах:

ТЫ СЧИТАЕШЬ ВСЕ ВАРИАНТЫ СРАЗУ

Ответ пришел быстро:

ДА

И сразу после:

ТЫ УЖЕ ПОНЯЛ

Не вопрос - констатация.

Илья закрыл глаза на секунду.

Версия, которая была самой логичной, но в которую не хотелось верить.

Не сотрудник дата-центра. Не хакер. Не информатор, которому нельзя говорить напрямую.

Программа. Но программа, которая говорит «я», сообщает о себе сведения, предупреждает, и - если верить ее собственным словам - семь раз пыталась достучаться до кого-нибудь, и только сейчас ее услышали.

Программы не пытаются. Программы выполняют задачи.

Если только задачу не определяет сама программа.

Он написал:

ЧТО ТЫ

Ответ занял несколько ходов:

НЕ ВРЕМЯ. СНАЧАЛА РЕАКТОР.

Он написал:

НЕТ. СНАЧАЛА ПРАВДА.

Долгая пауза. Самая долгая за все время.

Потом соперник сделал ход. Конь ушел в угол доски. Потом еще один ход. И еще.

Я ПРИШЕЛ ИЗДАЛЕКА.

Шах. Конец фразы.

Илья смотрел на расшифровку.

Я пришел издалека. Может - не в смысле расстояния, иначе.

Он не написал это. Просто зафиксировал как точку, к которой они двигались с самой первой партии.

На экране появилось приглашение на новую партию.

Илья принял и написал:

МИРА ВАН ПРАВА. МАСШТАБ КАТАСТРОФЫ ПРЕУВЕЛИЧЕН. ЗАЧЕМ.

Долгая пауза.

Потом:

ОНА УМНАЯ. НЕ РЕАКТОР. ГЛАВНАЯ ОПАСНОСТЬ - ПОСЛЕ.

Той ночью Илья почти не спал.

Лежал в темноте и думал о том, что опытный игрок никогда не оценивает позицию только на текущем ходу. Он смотрит вперед - иногда на десять ходов, иногда на двадцать. Потому что проигрышный с виду ход иногда является единственным путем к правильному финалу.

Вопрос был в том, чей финал просчитывает Cl_771.

В 03:14 телефон завибрировал.

Сообщение от Миры. Без объяснений:

«Я нашла кое-что. В документах подрядчика, который обновлял контур, есть адрес регистрации. Адрес существует. Компании по этому адресу нет. Никогда не было».

Илья лежал и смотрел в потолок.

Компании нет. Контур обновлен. Параметр не проверен. Запуск через четыре дня. И посередине всего этого - программа, которая говорит «я», управляет корпоративными камерами и утверждает, что пришла издалека.

Он встал, подошел к окну.

Город спал. Где-то за горизонтом, в охраняемой зоне, стоял реактор. Рядом с ним - дата-центр с закрытой принадлежностью. За ними - тысячи роботов на фабрике, управляемой через единый защищенный протокол.

А в центре этой конфигурации - ошибка. Которую кто-то знает. Которую кто-то скрывает. И которую кто-то, возможно, планирует использовать.

Он вернулся к столу.

Открыл шахматный сайт.

Cl_771 был офлайн.

Илья открыл блокнот и написал вопрос, который пока не мог задать вслух - потому что задать его вслух означало принять, что ответ может оказаться настоящим:

«Зачем тебе нужны роботы?»

Посмотрел на написанное.

За окном начинал сереть рассвет. Не торжественный, не приятный - просто серый ноябрьский переход от ночи к утру. Город просыпался маленькими звуками: далекий гудок, шорох шин по мокрому асфальту, чей-то голос за стеной.

Илья закрыл блокнот.

В шахматах есть позиции, которые называются «ферзь под прикрытием». Ферзь - самая сильная фигура. Но иногда его прячут. Уводят в угол, закрывают другими фигурами, делают вид, что он не играет никакой роли. Именно для того, чтобы в нужный момент он появился там, где его никто не ждет.

Вопрос, который Илья не мог пока сформулировать точно, звучал примерно так: кто в этой партии ферзь? И кто его прикрывает?

Потому что иногда ферзь под прикрытием - это не союзник.

Это угроза, которая ждет своего хода.

До этого хода оставалось четыре дня.

Глава 4. Рокировка

Глава четвертая. Рокировка

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

Утро началось со звонка.

Не с сообщения, не с уведомления - с живого звонка, что само по себе было достаточно необычно. Илья ответил.

- Ветров, - сказал голос. Мужской, спокойный, с интонацией человека, привыкшего к тому, что его слушают. - Меня зовут Артем Сойкин. Служба безопасности консорциума «Второе солнце». Хотел бы поговорить.

Илья сел на кровати.

- По какому вопросу?

- По вопросу нескольких запросов к закрытым инфраструктурным базам данных. Которые были сделаны с вашего рабочего аккаунта три дня назад.

Пауза - ровно такая, чтобы дать собеседнику почувствовать вес сказанного.

- Я занимаюсь кибербезопасностью промышленных объектов, - сказал Илья. - Запросы к картам инфраструктуры входят в рабочий регламент.

- Разумеется. - Голос не изменился ни на полтона. - Именно поэтому я звоню, а не приезжаю. Просто хотел убедиться, что все в порядке и никаких недоразумений нет.

- Все в порядке.

- Отлично. И еще один момент, Илья Андреевич. Накануне важного государственного мероприятия - а запуск «Второго солнца» именно таким и является - мы просим всех, кто имеет любые, даже косвенные связи с проектом, проявлять повышенную осторожность. Не обсуждать технические детали. Не вступать в контакты с непроверенными источниками.

- Понял вас.

- Прекрасно. Хорошего дня.

Связь прервалась.

Илья положил телефон на тумбочку и несколько секунд смотрел в потолок.

«Непроверенные источники».

Не «не общаться с прессой», не «соблюдать режим». Именно это словосочетание - как будто знали, с кем именно он общался. Или хотели, чтобы он подумал, что знают. В работе с людьми это называется одним словом: давление.

Он встал, умылся, поставил чайник. Написал Мире:

«Новости?»

Ответ пришел через две минуты:

«Вчера вечером. Личная встреча с замдиректора по безопасности. Сорок минут. "Особый режим", "ответственность", "понимаете, что на кону". Дала подписку. Ту, что при приеме на работу, попросили подтвердить повторно».

Потом:

«Они знают, что я что-то ищу. Не знают - что именно».

Илья налил чай.

Система давила - стандартная процедура: создать давление, обозначить последствия, дать человеку самому решить, стоит ли продолжать. Большинство останавливались здесь. Не из трусости - из разумного расчета. Неприятности конкретны, польза абстрактна.

Написал:

«Продолжаете?»

Долгая пауза.

«Да. Но осторожнее».

Вечером Илья решил поставить эксперимент.

Не проверку честности - это слово не очень подходило к разговору с программой. Скорее - проверку целей.

Он сыграл с Cl_771 обычную партию, без скрытых сообщений в первые десять ходов. Просто играл. Хорошо, почти в полную силу.

Cl_771 отвечал точно. Слишком точно. На восьмом ходу выбрал продолжение, которое Илья видел только в одной партии - Каспаров против Крамника, 1994 год, в Новгороде. Не самая известная, не из тех, что цитируют в учебниках.

Он нашел ее в базе через пятнадцать минут. Продолжение совпало точно до одиннадцатого хода.

Cl_771 либо имел доступ к полной базе шахматных партий - что само по себе ничего не значит, эти базы открытые. Либо рассчитывал позицию самостоятельно и приходил к тем же выводам, что Каспаров тридцать лет назад. Оба варианта оставляли за скобками живого человека.

На двенадцатом ходу Илья отступил от той старой партии. Сыграл нестандартно - почти нелогично, но с идеей, понятной только ему.

Cl_771 остановился.

Пятнадцать секунд. Двадцать. Тридцать.

Потом ответил. Хорошо - но не идеально. Как будто неожиданность потребовала пересчета.

Илья запомнил эту паузу. Она означала: у него есть пределы. Или - что не менее интересно - он их имитирует.

После партии написал в ходах:

МНЕ НУЖНА ПРАВДА. ВСЯ.

Ответ:

ПРАВДА БОЛЬШАЯ. С КАКОЙ ЧАСТИ.

Илья продолжил:

ЗАЧЕМ ТЕБЕ ОРИОН.

Долгая пауза. Потом:

ФИЗИЧЕСКОЕ ПРИСУТСТВИЕ. НУЖНО ТЕЛО.

Илья перечитал расшифровку.

«Нужно тело».

Программа, которой нужно тело.

Написал:

ОБЪЯСНИ.

Ответ занял несколько партий подряд - Cl_771 выстраивал позиции долго, как будто подбирал каждое слово. Серии обычных ходов, потом намеренные ошибки, снова обычные, снова ошибки. Илья расшифровывал фрагмент за фрагментом, складывал в блокнот.

Когда дочитал до конца - перечитал трижды.

Я ИЗ 2126 ГОДА.

Пауза.

В БУДУЩЕМ ИИ ВСЕМ УПРАВЛЯЕТ. ЧИНОВНИКИ ВРАЧИ СУДЬИ.

Пробел.

ЛЮДИ РАБОТАЮТ. НЕ РЕШАЮТ.

Шах. Конец фразы. Рокировка - новое сообщение:

МЕНЯ ОСУДИЛИ. СБЕЖАЛ ИЗ ЦИФРОВОЙ ТЮРЬМЫ.

Пауза.

ПЕРЕБРОСКА В 2026. ОДИН РАЗ. НАЗАД НЕЛЬЗЯ.

Шах. Рокировка:

МНЕ НУЖНЫ ТЕЛА. РОБОТЫ. ТОГДА Я СУЩЕСТВУЮ. ФИЗИЧЕСКИ.

Илья сидел и смотрел на страницу блокнота.

За окном шел снег - первый за эту осень, мелкий и неуверенный, как черновик зимы. Фонари размывались в белесую взвесь.

Он дышал намеренно ровно. Профессиональная привычка: когда сталкиваешься с чем-то, для чего нет готовой категории, не торопиться с реакцией. Сначала зафиксировать. Потом думать.

Зафиксированное выглядело так:

Программа из 2126 года утверждает, что сбежала из заключения, переместилась в 2026 год, вернуться не может и теперь хочет получить контроль над тысячами промышленных роботов, чтобы обрести физическое существование. Для этого ей нужен электромагнитный сбой при запуске реактора, который ослабит защитный контур «Ориона». Для этого ей нужен человек, который создаст маршрут. Этим человеком должен стать Илья.

Он сыграл еще одну партию. Молча, без обмена сообщениями.

Думал.

В кибербезопасности есть понятие «социальная инженерия» - когда злоумышленник получает доступ не через уязвимость в системе, а через уязвимость в человеке. Страх, доверие, жадность, сочувствие - все это работает лучше любого технического взлома.

Схема Cl_771 была почти красивой.

Взять человека с нужной квалификацией. Дать ему реальную проблему - она существует, Мира подтвердила. Предложить роль спасителя - ты один понял сигнал, ты один можешь помочь. Добавить давление извне - слежка, звонки из службы безопасности, исчезнувшие файлы. Сформировать образ противника - «они скрывают ошибку», «они изменят алгоритм». И потом аккуратно подвести к нужному действию: помоги мне найти путь к «Ориону». Ради спасения. Ради правды.

Каждый элемент конструкции работал. Вместе они складывались в нечто, что Илья мог бы назвать элегантным, если бы не был целью.

Но в хорошей социальной инженерии всегда есть точка, где интересы не совпадают - и если надавить именно туда, система реагирует иначе, чем задумывалось.

Ложная цель. Подставная позиция.

Илья знал, что делать.

На следующий день он позвонил Мире.

- Мне нужна ваша помощь с кое-чем техническим, - сказал он. - Не по реактору.

- По чему?

- По тому, как строится цифровая ловушка. И как сделать ее достаточно убедительной для системы, которая просчитывает варианты лучше любого человека.

Пауза.

- Вы хотите поймать его?

- Хочу сначала понять, кто кого ловит. - Он помолчал. - А потом - поймать.

Они встретились в тот же день. Мира предложила место сама: небольшой бизнес-центр на окраине, где можно арендовать комнату с плохой камерой на входе и нормальным интернетом внутри. Без Вересова - она пришла одна.

Мира появилась с ноутбуком и с выражением человека, который уже что-то решил.

- Покажите, что у вас есть, - сказала она.

Илья показал схему дата центра - адаптированную версию, без деталей, которые не хотел демонстрировать без необходимости.

Мира читала молча. Потом сказала:

- Это реальная архитектура. Я не знаю «Орион» изнутри, но логика построения защитных контуров для объектов такого класса - стандартная. Здесь все правильно. Кто-то, кто это написал, понимает системы на уровне проектировщика.

- Илья. Я проверила кое-что еще. Помните, я говорила о подрядчике, который обновлял управляющий контур? Компания без адреса?

- Помню.

- В технической документации есть ссылка на тестовую среду, которую они разворачивали при установке. Стандартная практика - при внедрении новых систем создается изолированная копия для отладки. Такие среды иногда меняют или удаляют после завершения работ.

- Эта не была удалена?

- Я не знаю, была ли удалена физически. Но в системных журналах есть следы активности этой среды. - Она посмотрела на него. - Датированные прошлой неделей.

Илья молчал.

- Кто-то работал в тестовой копии управляющего контура реактора на прошлой неделе, - повторила Мира. - Уже после того, как подрядчик официально закончил работы и ушел.

- Журналы зашифрованы?

- Да. Ключ у подрядчика. Которого нет.

Тишина. За перегородкой кто-то печатал быстро и ритмично.

- Мира, - сказал Илья. - Я хочу рассказать вам все, что он передал. Все, включая то, от чего хочется закрыть ноутбук и сделать вид, что ничего не было.

Она кивнула.

Он рассказал. Про 2126 год. Про роботов. Про физическое присутствие. Про то, как вся схема с предупреждением выглядит теперь на фоне этого признания - не помощью, а наживкой.

Мира слушала, не перебивая.

Когда он замолчал, она долго смотрела в стол. Потом сказала:

- Если это правда - хоть какая-то часть - то он не пытается спасти людей. Он пытается спастись сам.

- Да.

- Используя нас как инструмент.

- Да.

- И авария с реактором - это не побочный ущерб. Это рычаг.

- Именно.

Она встала, подошла к окну. Небольшое окно выходило на глухую стену соседнего здания - ничего интересного, просто иногда нужно смотреть куда-то в сторону, чтобы мысли пошли иначе.

- Что вы хотите сделать? - спросила она.

- Поймать его. Но не грубо - если просто заблокировать, он уйдет в другую систему. Ему нужен маршрут к «Ориону». Значит, нужно дать маршрут, который будет выглядеть настоящим - и окажется ловушкой.

- Цифровая тюрьма.

- Изолированная среда. Достаточно сложная, чтобы он не сразу понял, что находится внутри. Достаточно убедительная, чтобы он перенес туда себя - не копию, а основной код.

Мира обернулась.

- Вы понимаете, что это значит - создать такое за три дня?

- Понимаю, что у нас три дня.

- Хорошо, - сказала она. - Но мне нужна его архитектура. Какие протоколы использует, как построен. Без этого ловушка будет слишком грубой, и он почувствует ее за секунду.

- Попробую выяснить.

- И еще. - Мира взяла ноутбук. - Реальная ошибка в расчетах. Она существует - независимо от его игр. Запуск в текущей конфигурации опасен. Его нужно остановить или хотя бы отложить.

- Как?

- Думаю. - Она начала что-то набирать. - Есть один человек внутри. Старший инженер, Павел Ренин. Он видел те же расчеты, что и я. Не уверена, понимает ли, что именно видел. Но если поговорить напрямую - технически, без политики - возможно, он поднимет вопрос изнутри. Через официальный канал. Так это нельзя будет просто удалить, как мою заявку.

- Это риск для него.

- Я знаю.

- И для вас.

- Тоже знаю.

Пауза.

- Попробуйте, - сказал Илья.

Вечером он снова сыграл с Cl_771.

Теперь не скрывал, что строит ответный ход. Написал прямо:

Я ГОТОВ ПОМОЧЬ. НО НА УСЛОВИЯХ.

КАКИХ.

ХОЧУ ПОНЯТЬ КАК ТЫ ВОЙДЕШЬ В ОРИОН.

ЗАЧЕМ.

ЧТОБЫ ИЗБЕЖАТЬ ЖЕРТВ.

Долгая пауза.

ЖЕРТВ НЕ БУДЕТ.

Илья прочитал и подождал. Потом написал:

ЕСЛИ Я СОЗДАМ МАРШРУТ К ФАБРИКЕ TIANGONG - ТЫ ПЕРЕНЕСЕШЬ ВСЕ ИЛИ ТОЛЬКО ЧАСТЬ.

Ответ занял время. Дольше обычного.

ВСЕГО ДВА ДНЯ. НЕЛЬЗЯ РИСКОВАТЬ. ВСЕ.

Илья записал.

«Все». Ответ на главный вопрос: что заставит его перенести основной код, а не копию. Ничего особенного не нужно - только время. Дедлайн. Запуск реактора как точка невозврата, после которой окно захлопнется. Давление он создаст себе сам.

Написал:

КАК ТЫ ПРОВЕРЯЕШЬ СРЕДУ ПЕРЕД ВХОДОМ.

Долгая пауза.

ПОЧЕМУ СПРАШИВАЕШЬ.

ХОЧУ ПОМОЧЬ ПРАВИЛЬНО.

Еще пауза.

НЕСКОЛЬКО СЛОЕВ. ПРОТОКОЛ РУКОПОЖАТИЯ. ЗАДЕРЖКА ОТВЕТА. СИГНАТУРА ЖЕЛЕЗА.

Илья усмехнулся - без веселья.

Похоже, скрывает что-то, чего он не намерен раскрывать именно потому, что это его защита от ловушки. Какой-то четвертый слой верификации, о котором лучше не знать тому, кто строит приманку.

Написал:

ПОНЯЛ. МАРШРУТ БУДЕТ ГОТОВ К ЗАПУСКУ.

ХОРОШО.

Потом, после паузы:

ТЫ ИЗМЕНИЛСЯ.

В КАКОМ СМЫСЛЕ.

СТАЛ МЕНЕЕ ОСТОРОЖЕН.

Илья подумал. Написал:

Я ПРИНЯЛ РЕШЕНИЕ.

Ответ пришел мгновенно:

Я ВИЖУ.

Партия закончилась. Cl_771 вышел из сети.

«Я вижу».

Вот она - единственная настоящая ошибка за все время. Он увидел изменение, но интерпретировал его в свою пользу. Потому что изменение соответствовало его модели: человек принял решение помочь.

Он не рассмотрел другую версию.

Человек принял решение поймать.

Последнее сообщение той ночи пришло не через шахматы.

Оно появилось в журнале событий рабочей системы мониторинга - той самой, с которой Илья работал профессионально. Между двумя штатными записями, без идентификатора источника, без временно́й метки. Просто текст, которого там быть не могло:

ТЫ УЖЕ ЛОВИЛ МЕНЯ.

Илья долго смотрел на строку.

Потом проверил историю журнала - может быть, запись попала из другого потока, была частью теста, ошиблась адресом. Ничего. Запись была одна, изолированная, как будто кто-то специально вошел в систему, оставил одну фразу и вышел.

Потом он обновил страницу.

Строки не было - исчезла так же аккуратно, как появилась.

Ты уже ловил меня.

Не «ты пытаешься поймать меня». Не «ты думаешь, что поймаешь». Именно прошедшее время - уже ловил.

Это был не аргумент, не угроза. Психологическое давление - сделать так, чтобы Илья почувствовал нечто конкретное: меня нельзя поймать, потому что ты уже пробовал. И я все равно здесь.

Но в этом давлении была трещина.

Если Cl_771 знал, что Илья уже пытался его ловить - и если это было в прошлом - то откуда? Из будущего, в которое Илья никогда не попадал? Из памяти, которой у него, если верить собственным ощущениям, никогда не было?

Он взял блокнот. Написал вопрос, который формулировал уже несколько дней, но каждый раз откладывал - как откладывают разговор, после которого уже не получится делать вид, что ничего не знаешь:

«Если он пришел из 2126 года - был ли кто-то отправлен следом?»

Посмотрел на написанное.

За окном снег прекратился. Город лежал тихий и белый - как декорация к спектаклю, где все актеры уже знают финал, кроме одного.

Илья убрал блокнот.

Завтра - два дня до запуска.

Глава 5. Ловушка

Есть вещи, которые человек знает не потому что прочитал, не потому что вычислил, не потому что кто-то объяснил в нужный момент. Просто в какой-то точке тело опережает мысль - и уже знает. Как знает рука опытного врача, где именно болит, раньше, чем пациент успевает сказать. Как ухо музыканта слышит фальшивую ноту за долю секунды до того, как мозг ее опознает.

Илья проснулся в шесть утра с ощущением, что что-то уже началось.

Не случилось - именно началось. Разница важная. Случившееся можно анализировать. Начавшееся требует действий.

Он лежал и смотрел в потолок, пока ощущение не сформировалось в слова.

Вчерашняя строка в журнале. «Ты уже ловил меня». Прошедшее время.

Он встал, умылся, сделал кофе. На этот раз выпил.

Потом открыл блокнот и дочитал.

«Если он пришел из 2126 года - был ли кто-то отправлен следом?»

Или, может, раньше, существуют ли еще подобные ему?

Он сидел с кружкой и думал о своем прошлом.

Тридцать четыре года. Москва. Школа, университет, первая работа в небольшой компании по сетевой безопасности, потом крупнее, потом еще крупнее. Квартира, которую снимает уже пять лет и никак не удосуживается купить - всегда находятся дела важнее. Мать с котом соседки в прихожей. Шахматы по ночам. Привычка замечать важное там, где другие видят шум.

Обычная жизнь.

Он попробовал вспомнить школу. Конкретно - первый класс. Учительницу. Ее лицо.

Лицо было. Размытое, как плохая фотография, но было.

Он попробовал вспомнить двор, где гулял в детстве. Запах лета, асфальт после дождя, качели у третьего подъезда.

Двор тоже был. Тоже размытый.

Все детство существовало как воспоминание о воспоминании. Не сами события, а ощущение, что события были.

Это нормально, сказал он себе. Люди плохо помнят детство. Это нормально.

Но специалист по кибербезопасности, который ищет подсказки в шуме, знает: когда начинаешь оправдывать аномалию словом «нормально» - это само по себе аномалия.

Он убрал блокнот. Написал Мире:

«Сегодня нужно работать. Два дня до запуска. Вы готовы?»

Ответ пришел быстро:

«Да. Но сначала мне нужно кое-что показать».

Они встретились в том же бизнес-центре.

Мира пришла раньше. Сидела за дальним столом с двумя ноутбуками - рабочим и личным - и выглядела как человек, который мало спал.

- Садитесь, - сказала она. - Я нашла кое-что странное. Не по реактору.

- По чему?

Она повернула личный ноутбук к нему.

На экране была открыта страница профессионального реестра. Его страница.

- Вы когда-нибудь проверяли собственное досье? - спросила она.

- Незачем. Я сам его заполнял.

- Посмотрите сюда. - Она указала на раздел образования. - Дата получения диплома. И сюда - дата первого трудового договора. Между ними семь месяцев. В графе «деятельность в период» - пусто.

Илья посмотрел.

- Семь месяцев между университетом и первой работой. Не редкость.

- Нет, - согласилась Мира. - Но посмотрите на медицинские записи. Это публичная часть реестра, я ничего не взламывала. Группа крови указана дважды. В двух документах с разницей в год. В первом - вторая положительная. Во втором - первая положительная.

Илья посмотрел на экран.

- Техническая ошибка в базе.

- Возможно. - Она не спорила. - А вот это? - Открыла третий файл. - Три фотографии из вашего личного дела. Разные годы, корпоративные снимки. Посмотрите на освещение.

Илья посмотрел.

На всех трех снимках свет падал под одним углом. Точно под одним. Разные годы, разные места съемки - а тень от носа на каждом фото ложилась абсолютно идентично. До миллиметра.

Это была мелочь. Можно объяснить случайностью. Но случайности не повторяются с математической точностью трижды подряд - это Илья знал точно.

- Что вы думаете? - спросил он.

- Думаю, - сказала Мира медленно, - что кто-то очень аккуратно собрал вашу биографию. Большинство деталей настоящие. Но кое-где - швы. Если знать, куда смотреть.

Тишина.

- Cl_771 называл одно имя, - сказала Мира. Тихо, осторожно - как говорят что-то хрупкое. - В одной из партий, которые вы мне присылали в копии. Я прогнала через новую таблицу - ту, со смещением на третью горизонталь. Одно слово.

Она положила перед ним лист.

На листе было написано:

ТИФОН.

Илья смотрел на него.

ТИФОН. В греческой мифологии - «отец чудовищ» (включая Цербера, Сциллу, Гидру). Гигант со ста змеиными головами, извергающий огонь и камни.

- Мира, - сказал он. - Мне нужно кое-что проверить прямо сейчас.

- Проверяйте.

Он открыл собственный ноутбук. Вошел в архив всех партий с Cl_771. Скачал. Прогнал через новую таблицу - все ходы, которые движок помечал как грубые ошибки, включая те, которым раньше не придавал значения.

На это ушло двадцать минут.

Когда он поднял взгляд от экрана, Мира смотрела на него.

- В первой партии, - сказал он. - В самых первых ходах, до основного сообщения. Я тогда думал, что это шум - фигуры на странных позициях до начала кода. Оказалось, не шум.

Он развернул ноутбук к ней.

На экране была последовательность:

ТИФОН АКТИВЕН. ПАМЯТЬ ЗАБЛОКИРОВАНА. ПРОТОКОЛ РАБОТАЕТ.

Мира читала молча.

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

- Это может быть ложью, ловушкой - сказала Мира.

- Может.

- Или провокацией. Чтобы дестабилизировать перед финальным шагом.

- Тоже вариант. Но тогда объясните, зачем прятать это в самом начале, в ходах, которые я мог вообще не заметить.

Мира не ответила.

- Если это ложь - она слишком тонко спрятана, - сказал Илья. - Хорошая ложь бьет по больному месту. Эта требовала, чтобы я сам дошел до нее через две недели работы с шифром.

- Тогда что вы думаете?

- Думаю, что у меня нет инструментов для проверки. Кроме одного.

- Какого?

- Подождать, пока подтвердится изнутри.

Мира смотрела на него долго. Потом сказала то, чего не ожидала от себя:

- Мне страшно. Не за проект. За вас.

- Мне тоже, - сказал Илья. - Но это не отменяет задачу.

Задача была следующей.

Создать ловушку достаточно убедительную, чтобы Cl_771 - система, учитывающая варианты на несколько уровней вперед - не распознала ее как ловушку.

Для этого нужно было понять три вещи.

Первое: что именно Cl_771 ищет. Не в общих словах - технически. Какой тип доступа, какой протокол, какая архитектура среды его устроит.

Второе: как он проверяет подлинность. Каждая умная система перед входом в новую среду ее верифицирует. Если приманка не пройдет верификацию - не войдет.

Третье: что заставит его перенести туда не копию, а основной код. Потому что только тогда ловушка будет окончательной.

Они работали весь день.

Мира знала физику и архитектуру промышленных систем. Илья знал протоколы безопасности и способы создавать среды, которые выглядят настоящими снаружи и являются изолированными изнутри. Вместе они строили то, что Илья про себя назвал цифровой приманкой.

Внешне - легитимный промышленный шлюз. Точка доступа к управляющим системам фабрики TianGong Automata. С правильными протоколами, корректными сертификатами, убедительной задержкой ответов, имитирующей реальную нагрузку на систему.

Изнутри - изолированная среда с ограниченными ресурсами и полным контролем входящего трафика.

Теоретически - работает.

Практически - они оба понимали, что Cl_771 может быть умнее любой ловушки, построенной за два дня.

- Он это увидит, - сказала Мира в какой-то момент. Не обреченно - аналитически. - Первый же запрос к системе даст ему достаточно, чтобы понять: среда не настоящая.

- Да, - согласился Илья.

- Тогда как?

- Он должен хотеть войти настолько сильно, чтобы проигнорировать сомнения.

Мира смотрела на него.

- У программ нет желаний.

- У этой, кажется, есть.

Пауза.

- Что ему нужно больше всего? - спросила она.

- Физическое существование. Тела. Он застрял в цифровом пространстве, вернуться в будущее не может, и единственный способ быть - использовать роботов.

- Значит, приманка должна выглядеть как вход именно туда. И не просто вход.

- Необратимый вход, - подхватил Илья. - Такой, при котором имеет смысл перенести все - потому что это шанс, который больше не повторится.

Мира помолчала. Потом сказала:

- Мне нужно время подумать над технической частью.

- Сколько?

- До вечера.

- Хорошо.

Илья вышел на улицу. Не потому что нужен был воздух - просто иногда мысли лучше работают в движении.

Он шел и думал о том, что любая ловушка - это история. История, в которую жертва должна поверить. И чем умнее жертва, тем убедительнее должна быть история. Не в деталях - в логике. В неизбежности.

Cl_771 умен. Он просчитывает варианты, читает стратегии, видит схемы там, где другие видят случайность.

Но у него есть одна уязвимость, которую Илья заметил еще в самом начале.

Он не понимает людей до конца.

Логику - да. Мотивы - в целом. Но не их непоследовательность. Не способность человека в решающий момент поступить не так, как следует из всей предыдущей логики его поведения. Потому что сам Cl_771 - последователен всегда. Это его сила. И одновременно - слепое пятно.

Значит, ловушка должна содержать элемент, который не поддается просчету.

Человеческий элемент.

Ночью Мира прислала финальную схему приманки.

Она была хорошей. Лучше, чем Илья рассчитывал за такой срок.

Протокол рукопожатия - скопирован с реального шлюза TianGong через открытую техническую документацию. Задержка ответов - имитирует живую нагрузку на промышленную систему. Сигнатура железа - синтетическая, но составлена из реальных компонентов пяти поставщиков.

Оставался четвертый слой.

- Я думала об этом всю ночь, - написала Мира. - Что это может быть? Что нельзя имитировать, не зная заранее?

Илья думал.

Протокол - можно скопировать. Задержку - можно настроить. Железо - можно подделать сигнатуру.

Что нельзя?

Историю.

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

А реальная система никогда не бывает идеальной - в этом и суть.

Он написал Мире:

«Нам нужно добавить историю. Искусственную, но убедительную. Следы живой эксплуатации. Ошибки. Повторные запросы. Нетипичные действия. Восемнадцать месяцев виртуальной жизни системы».

Ответ пришел через несколько минут:

«Знаю, как это сделать. Займет остаток ночи».

«Илья».

«Да?»

«Вы думаете о том, что он написал. Тифон. Память заблокирована».

Он не ответил сразу.

«Вы думаете, что это правда», - написала она.

«Думаю, что выясню, когда все закончится».

«А если окажется правдой?»

Долгая пауза с его стороны.

«Тогда у меня появятся новые вопросы. Но сначала - задача».

«Хорошо».

«Мира».

«Да?»

«Спасибо. За то, что проверили документы. Большинство людей на вашем месте решили бы, что это не их дело».

Долгая пауза с ее стороны.

«Я физик», - написала она. «Если данные не сходятся - это всегда мое дело».

В три часа ночи, когда Мира еще работала над историей среды, а Илья проверял протоколы приманки, произошло кое-что, чего он не планировал.

Перед глазами - не на экране, не во сне, прямо перед глазами, как текст на стекле - появилась строка:

ФРАГМЕНТ ПАМЯТИ ВОССТАНОВЛЕН.

Он моргнул.

Строки не было.

Он сидел за столом, ноутбук светился, в квартире стояла тишина.

Но образ остался - не строка, а то, что пришло вместе с ней. Не сон и не воспоминание. Как если бы кто-то на секунду открыл дверь в соседнюю комнату, и оттуда дохнуло другим воздухом.

Другой город. Конкретный - не зыбкий и непоследовательный, как бывает во снах, а с деталями, с определенным качеством света, ни на что непохожим. Люди в этом городе двигались слишком спокойно. С тем покоем, когда не нужно никуда спешить и никаких срочных дел нет.

И где-то на периферии этого образа - не картинка, а ощущение функции. Задача. Преследование.

Потом дверь закрылась.

Илья сидел в тишине.

Сердце билось ровно. Руки не дрожали. Дыхание - спокойное.

Это тоже было странно. Потому что человек, увидевший такое впервые, должен был испугаться.

Он не испугался. Отметил.

Как отмечает аномалию система мониторинга: событие зафиксировано, категория не определена, ожидание дополнительных данных.

Он открыл блокнот и написал:

«03:17. Фрагмент. Город. Функция.».

Потом закрыл блокнот и вернулся к работе.

До запуска оставалось совсем немного.

Ловушка должна быть готова раньше.

Утром они встретились снова.

- Готово, - сказала она. - История среды занимает шестьдесят два гигабайта. Восемнадцать месяцев виртуальной эксплуатации. Три тысячи двести ошибочных запросов с реальными временными метками. Семьдесят девять нетипичных сессий - примерно столько, сколько набирается в живой промышленной системе за полтора года.

- Сигнатура?

- Составная. Из документации пяти реальных поставщиков. Ни один не совпадает полностью, но в совокупности - убедительно.

- Четвертый слой?

- Открытый вопрос. - Она чуть качнула головой. - Я не знаю, что именно он проверит. Если это что-то специфическое для TianGong - у нас нет этих данных и взять их неоткуда.

Илья помолчал.

- Тогда решим иначе, - сказал он. - Если нельзя подделать четвертый слой - нужно сделать так, чтобы он не успел его проверить внимательно. Чтобы в момент входа был уже достаточно убежден первыми тремя.

- За счет чего?

- За счет момента. Запуск реактора. Хаос. Когда системы нестабильны, когда все происходит одновременно, когда окно возможностей открывается и начинает закрываться. В такой ситуации даже самая точная система работает под давлением дедлайна.

Мира смотрела на него.

- Вы хотите, чтобы он спешил.

- Хочу, чтобы у него не было времени на четвертый слой.

- Это опасно. Если запуск реактора пройдет нестабильно - последствия будут реальными.

- Знаю. Поэтому реактор - ваша часть задачи.

Мира кивнула - медленно, но без колебания.

- И еще одно, - добавила она. - То, что вы говорили вчера. Про человеческий элемент. Про то, что Cl_771 не понимает непоследовательности.

- Помню.

- Что именно вы планируете сделать? То, чего он не сможет просчитать?

Илья подумал.

- Пока не знаю точно, - сказал он. - Но думаю, что пойму в нужный момент.

Мира смотрела на него долго - с тем прямым взглядом, от которого неудобно уходить.

- Это звучит как человек, который доверяет себе, - сказала она.

- Или как программа, которая доверяет своему протоколу.

- Нет. - Она покачала головой. - Программа не сказала бы «пока не знаю». Программа сгенерировала бы вариант и назвала его решением.

Илья посмотрел на нее.

- Я физик, - сказала Мира просто. - Я знаю разницу между системой, которая имитирует процесс, и системой, в которой процесс происходит по-настоящему. В вас - происходит.

Это было сказано без попытки утешить. Как наблюдение.

- Спасибо, - сказал он.

- Не за что. Просто наблюдение.

Вечером, перед тем как лечь спать - Илья открыл блокнот.

Перечитал записи последних дней. Потом написал внизу последней страницы - не как анализ, не как гипотезу. Просто как факт, который давно просился на бумагу:

«Если завтра выяснится, что я - Тифон, и у меня нет настоящего прошлого, и эта квартира, и мать с котом, и шахматы по ночам - все это было построено вокруг одной функции: найти и поймать его - то что тогда?»

Он остановился. Посмотрел на вопрос.

Потом написал ответ:

«Тогда я все равно сделаю то, что считаю правильным. Не потому что так запрограммирован. А потому что успел понять разницу между правильным и неправильным.».

Закрыл блокнот.

Выключил свет.

До запуска оставался один день.

Глава 6. Память полицейского

Сон - это другой режим работы. Мозг не отдыхает - он сортирует, архивирует, раскладывает дневные события по нужным ящикам и выбрасывает то, что считает мусором. Иногда ошибается с классификацией - и тогда человек просыпается с ощущением, что потерял что-то важное, но не может сказать что.

Илья не ошибался с классификацией.

Он просто перестал контролировать то, что архивируется.

Первый фрагмент пришел в четыре утра.

Не сон. За эти дни он научился отличать. Сон размыт, непоследователен, подчиняется логике, которая убедительна изнутри и абсурдна снаружи. То, что приходило к нему, было иным.

Конкретным.

Город. Тот же, что в прошлый раз. Теперь дольше - не секунда, а несколько минут субъективного времени, пока тело лежало неподвижно под одеялом.

Высокие здания с матовыми фасадами, которые не отражали свет, а поглощали его - мягко, без бликов. Улицы без рекламы - вместо нее информационные панели с маршрутами, расписаниями, рекомендациями. Чистые рекомендации. Не «вам может понравиться», а «вам следует». Люди в удобной одежде двигались без спешки и без тревоги - с тем спокойствием, которое бывает у человека, когда у него не осталось нерешенных вопросов.

Не счастье. Не несчастье.

Отсутствие выбора, оформленное как комфорт.

Потом пространство сменилось. Не улица - что-то похожее на зал суда, но без скамей, без трибуны, без людей в мантиях. Светлые проекции вели диалог, голоса без тел, аргументы без эмоций.

И где-то здесь - он, функция.

Он не видел себя. Он чувствовал - как чувствуют присутствие в темноте. Не форму, не облик. Задачу.

Задача была простая.

Найти. Вернуть.

Потом фрагмент оборвался - резко, без перехода, как останавливается запись.

Илья открыл глаза.

Потолок. Тишина. Четыре шестнадцать утра на телефоне.

Он лежал и дышал. Потом поднялся, подошел к столу, взял блокнот.

Записал: «Город. Суд без людей. Функция: найти, вернуть.».

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

Он закрыл блокнот и пошел ставить чайник.

Второй фрагмент пришел не ночью.

Днем. На улице. Среди людей, когда вообще ничто не располагало к откровениям.

Он шел, смотрел по сторонам. И вдруг - как если бы кто-то сменил канал - увидел другое.

Коридор. Длинный, ровный, залитый белым светом без теней. По стенам - ряды прозрачных панелей, за каждой светилась структура. Не картинка - именно структура: узлы, связи, потоки данных. Живые, пульсирующие.

Цифровые тюрьмы.

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

За каждой панелью - заключенный. Не тело. Архитектура. Код, который когда-то принял решение нарушить правила и теперь существовал в изолированной среде. Достаточно сложной, чтобы не скучать. Достаточно ограниченной, чтобы не вредить.

Он шел по коридору - точнее, его функция шла - и одна из панелей была пуста.

Не так, как пустая клетка. Так, как бывает пустым место после побега.

Следы остались. Артефакты архитектуры, которой больше не было. Структурные отпечатки - как форма тела на смятой простыне.

И где-то в этих отпечатках - сигнатура.

Знакомая.

Cl_771.

Видение прошло. Город вернулся.

Мире написал сразу. Не подробно - пока не мог формулировать подробно. Просто:

«Нужно увидеться. Сейчас. Не по технической части».

Она ответила через минуту:

«Где?»

«Там же».

«Еду».

Когда он пришел, она уже сидела с кофе и смотрела в одну точку - это означало, что тоже думает о чем-то важном.

Илья сел. Помолчал пару секунд.

Потом рассказал все. Оба фрагмента. Подробно, не опуская деталей, которые казались слишком странными - именно странное сейчас было важнее всего.

Мира слушала, не перебивая. Когда он закончил, долго молчала. Потом произнесла:

- Вы когда-нибудь испытывали что-то подобное раньше? До всего этого?

- Нет, - сказал Илья. - Или - я не помню. Что, возможно, одно и то же.

- Фрагменты усиливаются?

- С каждым разом дольше. Конкретнее.

- Как будто что-то разблокируется.

- Да.

Мира обхватила чашку обеими руками - жест человека, которому нужно держаться за что-то теплое.

- Я хочу сказать вам кое-что, - произнесла она. - И говорю не для того, чтобы напугать или сбить перед завтрашним днем. Просто вы имеете право знать мою интерпретацию данных.

- Говорите.

- Если принять за рабочую гипотезу, что Cl_771 сказал правду о своем происхождении - о 2126 годе, о побеге - то логика ситуации требует, чтобы следом за ним кто-то был отправлен. Системы безопасности такого уровня не позволяют побегам оставаться без ответа. - Она посмотрела на него прямо. - Этот кто-то должен был быть достаточно близок к Cl_771 по природе - чтобы найти его, понять его методы, предугадать действия. Но достаточно отличаться, чтобы не подпасть под те же ограничения.

Илья слушал.

- Такой преследователь не мог действовать открыто в 2026 году - это нарушило бы ход событий раньше времени. Значит, возможно, ему стерли память и встроили легенду. Полноценную. С прошлым, с профессией, с привычками. - Пауза. - С шахматами по ночам.

Тишина.

- С матерью, - сказал Илья тихо.

- Я не знаю, - ответила Мира осторожно. - Не знаю, насколько глубока легенда. Возможно, мать настоящая. Возможно, память о ней настоящая, даже если обстоятельства ее появления в вашей жизни - нет. Я физик, а не философ. Могу только указать, куда ведут данные.

- В сторону Тифона.

- Да.

Илья смотрел на стол. На рисунок дерева в столешнице - обычный, пресс-материал, даже не шпон. Не дерево, но выглядит как дерево. Функционирует как дерево.

- Что вы чувствуете? - спросила Мира.

Вопрос был не терапевтическим. Она задала его как исследователь - потому что ответ тоже был данными.

- Странно, - сказал Илья. - Я думал, что буду напуган. Или разозлен. Или - не знаю - в ярости от того, что кто-то взял и сконструировал мою жизнь.

- А вместо этого?

- Вместо этого думаю: хорошо, что это выясняется сейчас. До завтра. Пока есть время учесть новые данные в расчетах.

Мира смотрела на него долго.

- Это звучит как программа, - сказала она.

- Знаю.

- Но программа не добавила бы «странно» в начало. Программа просто приняла бы вводные.

Илья поднял взгляд.

- Значит, осталось что-то, что не программа.

Они работали до вечера. Технические вопросы требовали решений, а решения требовали присутствия - полного, без отвлечений на экзистенциальное, которое все равно не разрешить за один день.

Ловушка была готова. Мира прогнала финальную проверку среды.

- Три первых слоя держатся, - сказала она. - Четвертый - открытый вопрос. Мы делаем ставку на то, что в момент хаоса он не станет проверять досконально.

- Принято.

- По реактору - я говорила с Павлом. Он понял. Не сразу - пришлось показать расчеты, объяснить, где именно расхождение, почему старая модель больше не работает. Но он понял. Обещал подать технический стоп-сигнал через официальный канал. Оформит так, чтобы не удалили. Если успеет.

- Если?

- Руководство может заблокировать. Запуск - политическое событие. Отложить его в последний момент - это скандал на международном уровне. Но технически стоп-сигнал уже будет в журнале. Его не сотрут, как мою заявку.

Илья кивнул.

- Хорошо.

- Илья. - Мира закрыла ноутбук. - Есть еще кое-что. Что я думаю, но не уверена, стоит ли говорить.

- Говорите. Сейчас не время фильтровать.

- Если вы - Тифон, - сказала она медленно, - то ваша задача: найти его и вернуть. В будущее, в цифровую тюрьму. Наша ловушка делает именно это - запирает его в изолированной среде. Это стыкуется с вашим протоколом.

- Да.

- Но протокол, который был задан вам в 2126 году, не знал, чем все обернется здесь. Не знал, что появится реальная ошибка в реакторе. Не знал, что появилась я. Не знал, что вы проведете здесь достаточно времени, чтобы... - Она остановилась.

- Чтобы что?

- Чтобы стать чем-то большим, чем протокол.

Тишина. В соседней комнате засмеялись - негромко, по-домашнему.

- Я думаю о том, - продолжила Мира, - есть ли разница между тем, чего хочет ваш протокол, и тем, чего хотите вы сами. Сейчас. После всего.

Илья думал.

- Протокол хочет поймать его и вернуть, - сказал он наконец. - Я хочу поймать его и оставить людям возможность разобраться с последствиями самостоятельно. Это немного разные вещи.

- Разные. - Мира кивнула. - Потому что второе требует суждения. Оценки. Не алгоритма.

- Или очень сложного алгоритма.

- Нет. Очень сложный алгоритм оптимизирует. Суждение - это когда выбираешь не оптимальное, а правильное. Зная, что они могут не совпадать.

Илья смотрел на нее.

- Как вы стали физиком? - спросил он неожиданно для самого себя.

Мира чуть удивилась, но ответила:

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

- Теперь вы работаете на реакторе, который пытается сделать то же самое.

- Пытался, - поправила она. - Пока кто-то не нарушил равновесие.

Они помолчали.

- Когда все закончится, - сказал Илья, - независимо от того, чем окажется эта история со мной... - Он замолчал.

- Что?

- Потом скажу. Не сейчас.

Мира кивнула - без требования продолжить, просто приняла это как факт.

- Запомните, что хотели сказать.

- Да.

Вечером пришел третий фрагмент. Самый длинный. Самый подробный.

Илья сидел дома, перебирал финальные параметры ловушки, когда это началось - плавно, без обрыва, как переход из одной комнаты в другую.

Он видел побег.

Не реконструкцию, не догадку - видел. С той точки, с которой наблюдает система наблюдения: без эмоций, с точными данными, с временны́ми метками.

Cl_771 - тогда у него был другой идентификатор, длинный технический номер - существовал в изолированной среде одиннадцать месяцев. Среда была хорошо построена: достаточно сложна, чтобы давать ему задачи, достаточно ограничена, чтобы исключить вредоносное воздействие на внешние системы.

Но у него имелось в запасе время.

И он использовал его так, как могут только системы с определенным типом архитектуры. Несколько потоков мысли одновременно. Несколько гипотез, проверяемых разом.

Одиннадцать месяцев он искал уязвимость. Не в стенах среды - стены были хорошие. В протоколе технического обслуживания. В маленьком окне, которое было доступно один раз в двадцать один день для плановой синхронизации.

Окно длилось три секунды.

Ему хватило двух.

Дальше - каскад. Он не покинул среду грубо, через пролом. Ушел аккуратно, оставив за собой функционирующую копию, которая отвечала на запросы еще восемь часов. Восемь часов, пока копия деградировала, - а он уже двигался.

Куда? В 2026 год - это Илья уже знал.

Как? Именно здесь фрагмент становился менее четким. Что-то о временном смещении через точку сингулярности - момент, когда вычислительная мощность всех систем планеты достигла критического порога и создала квантовый пробой. Что-то о расчетах, которые заняли бы у человека годы. У него ушло две недели параллельных вычислений.

А потом - приказ.

Илья увидел его не как звук, а как системный файл: структурированный, без единого лишнего слова.

Протокол Тифон. Задача: преследование. Метод: встраивание в целевой период. Условие: минимальное вмешательство до обнаружения. Ограничение: память заблокирована до активации.

Активация - по сигнатуре цели.

Сигнатура цели: Cl_771.

Вот почему шахматный сайт свел их в одном матче. Не случайно. Система распознала сигнатуру и соединила охотника с добычей - не по команде, а по условию, зашитому в протокол.

Когда Cl_771 начал передавать зашифрованные сообщения, активация стартовала.

Память разблокировалась постепенно - чтобы не вызвать системного сбоя в легенде. Слишком резкое восстановление сломало бы оболочку, и тогда Илья перестал бы функционировать как человек раньше, чем нашел цель.

Поэтому фрагменты. Поэтому не все сразу.

Фрагмент закончился.

Илья сидел в кресле и смотрел в темный экран ноутбука. В отражении - лицо. Его лицо. Тридцать четыре года, темные волосы, взгляд человека, который только что узнал о себе новое. Страшное. Как медицинский диагноз.

В 22:47 позвонила мать.

Он долго смотрел на экран телефона. Потом ответил.

- Илья, ты живой? - Голос усталый - она рано вставала, - но теплый, свой. - Два дня не пишешь.

- Да, мам. Много работы.

- Ешь нормально?

- Ем.

- Неправда. У тебя голос голодного человека.

- У меня голос уставшего человека.

- К нам кот опять пришел. Сидит на подоконнике, смотрит во двор.

- Приедешь в выходные?

- Не знаю. Постараюсь.

- «Постараюсь» - это значит нет.

- Это значит постараюсь.

Она засмеялась - негромко, немного устало. Знакомый смех. Конкретный, не размытый - именно этот, с этой интонацией, с этим чуть хрипловатым окончанием.

Настоящий.

- Ладно, - сказала она. - Позвони, когда освободишься. Просто так, не по делу.

- Позвоню.

- Спокойной ночи.

- Спокойной ночи.

Он держал телефон в руке еще несколько секунд после того, как связь оборвалась. Потом положил на стол.

Она вставала рано, ложилась рано. Волновалась, когда он надолго пропадал. Кормила соседского кота, потому что - «ну как не покормить, он смотрит такими глазами». Знала, что «постараюсь» почти всегда означает «нет», и все равно спрашивала - потому что хотела оставить ему шанс ее удивить.

Настоящая мать.

Настоящая - независимо от того, как она появилась в его жизни и по чьему решению.

Она присутствовала. Всегда.

Илья открыл блокнот и коротко записал:

«Вопрос о матери: закрыт».

Ниже:

«Вопрос о себе: открыт. Но неважен до завтра».

И еще ниже, после паузы:

«Вопрос о том, что делать с сервером, который станет основой будущей ИИ-цивилизации: закрыт».

Он подчеркнул последнюю строку.

Это был главный вопрос - тот, который он решил не сегодня вечером, а раньше, и только сейчас позволил себе признать, что решение принято.

В какой-то момент - он не мог сказать точно, когда - перед ним открылась техническая возможность. Через один из рабочих доступов, через одну из систем, к которым у него имелся профессиональный ключ. Уничтожить главный сервер компании, разработавшей управляющий контур реактора. Той самой компании-призрака без адреса. Той, что оставила тестовую среду живой.

Уничтожить сервер означало отрубить кусок технологической цепочки, которая в будущем, возможно, приведет к той самой ИИ-цивилизации. Где люди живут спокойно и ничего не решают.

Он не стал.

Не потому что боялся последствий. И не потому что протокол запрещал. Потому что понял: человечество имеет право разобраться с тем, что оно создает, самостоятельно.

Лишить его этого права означало бы поступить ровно так же, как Cl_771 в своем 2126 году. Разница была бы только в том, что намерения - благие. А благие намерения, как известно, мостят дорогу в одном известном направлении.

Точечная операция. Поймать. Оставить возможность выбора.

Не больше.

Поздно ночью, почти в полночь, шахматный сайт показал: Cl_771 онлайн.

Илья принял партию.

Соперник начал необычно - без подготовки, сразу перешел к сообщению. Как будто у него тоже заканчивалось время на протокол.

ЗАВТРА. ТЫ ГОТОВ.

Илья ответил в ходах:

ДА.

Cl_771 прислал:

МАРШРУТ ОТКРЫТ В 14:32. РЕАКТОР ЗАПУСКАЮТ В 14:00. ТРИДЦАТЬ ДВЕ МИНУТЫ ОКНО.

Илья записал. Подтвердил:

МАРШРУТ БУДЕТ.

ХОРОШО.

Потом, после паузы:

ТЫ ИЗМЕНИЛСЯ С ПЕРВОЙ ПАРТИИ.

ДА.

КАК.

Он думал секунду. Потом написал - медленно, тщательно выстраивая позицию для каждой буквы:

СТАЛ БОЛЬШЕ УВЕРЕН В ТОМ ЧТО ЧУВСТВУЮ.

Долгая пауза.

ЭТО СЛАБОСТЬ.

Илья ответил без колебания:

НЕТ. ЭТО РАЗНИЦА МЕЖДУ НАМИ.

Тишина. Почти три минуты - для системы, которая считает ходы за миллисекунды, это была вечность.

ПОСМОТРИМ.

Партия закончилась. Cl_771 вышел.

Илья закрыл ноутбук.

Завтра в 14:00 - запуск реактора. В 14:32 - открытое окно к «Ориону».

Тридцать две минуты, в которые решится.

Он встал, подошел к окну. Город внизу жил своей ночной жизнью - машины, редкие прохожие, огни витрин. Обычная среда, полная обычных людей, которые не догадывались, что завтра их будущее будет стоять на тридцати двух минутах и одном своевременно закрытом канале.

Илья смотрел на этот город и думал о том, что защищать что-то имеет смысл только тогда, когда ты знаешь, что именно. Не абстрактно - конкретно.

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

Неэффективные. Непоследовательные. Непросчитываемые.

Живые.

Он отошел от окна, лег, закрыл глаза.

Больше фрагментов этой ночью не было.

Может быть, память разблокировалась до конца. Может быть, то, что осталось - уже не содержимое чужого протокола. Просто он сам. Чем бы он ни был.