
Полная версия:
Владислав Махьянов УЖЕ
- + Увеличить шрифт
- - Уменьшить шрифт
— Я знаю.
После звонка он заметил уведомление, скрытое под карточкой Ирины. Не пропущенный вызов — автоматическое напоминание календаря: «Позвонить Лиде». Оно было создано шесть месяцев назад и повторялось каждую субботу. Даниил всякий раз переносил его на неделю. Сегодня снова была суббота.
Он показал Глебу, когда тот вернулся.
— Вот откуда можно угадать звонок, — сказал Глеб. — Доступ к календарю или статистика твоих привычек. Ты собираешься ей звонить каждую неделю и не звонишь. Очень прогнозируемый человек.
— В файле указано, что звонок будет от неё.
— Значит, отправитель мог связаться с ней.
— Зачем?
— Чтобы она позвонила. Это проще, чем изгибать пространство-время.
Даниил открыл контакт Лиды. Палец завис над кнопкой.
— Не надо, — сказал Глеб.
— Почему?
— Потому что сейчас ты звонишь не сестре. Ты проводишь опыт на человеке без её согласия.
Даниил убрал телефон.
Журналы открытия утверждали, что README смотрели три дня назад, индекс с именем Даниила — четыре, а будущую запись — девять месяцев назад. Это была не хронология, а ещё один ненадёжный набор полей.
Но внутри контейнера обнаружился манифест с контрольными суммами, подписанный старым сертификатом Савельева. Данные после подписания не менялись. Время подписи ничего не доказывало, однако заменить персональный файл без закрытого ключа было нельзя.
— Надо разделить два вопроса: кто имел закрытый ключ и когда подписал файл, — сказал Глеб. — Ранняя дата в поле не отвечает ни на один из них.
— Либо подпись сделана раньше, а персональный файл лежал во вложенном незаверенном контейнере.
Они проверили структуру. Персональный файл входил в подписанный манифест.
Хеш Данииловой карточки входил в подписанный список из двадцати восьми одинаково устроенных записей.
— Теперь границы, — сказал Глеб. — Подпись подтверждает целостность набора относительно ключа. Не автора, не время и не правдивость текста.
— Ключ выдан Савельеву.
— Двенадцать лет назад. Подписать мог любой, у кого ключ оказался потом.
— После семинара?
— Да.
Доверенной отметки времени не было: программа вписала локальные часы. Зато номер её сборки указывал на версию, выпущенную только в 2024 году.
— Старым ключом подписали недавно, — сказал Даниил.
— Не раньше 2024-го, если номер настоящий и библиотеку не модифицировали.
— Значит, легенда старого архива ложная.
— README прямо говорит, что метаданные восстановлены. Источник не обещал старую упаковку. Старым может быть содержание.
Перевод часов тестовой машины на месяц вперёд дал будущую дату подписи; перепаковка воспроизвела остальные противоречия за пять минут.
— И что теперь? — спросил Даниил.
— Теперь мы знаем, что странность дешёвая.
— А персональный текст?
— Текст по-прежнему дорогой. Его кто-то составил под тебя.
В свободном пространстве образа Глеб нашёл обрывки старых файлов и шаблон будущей карточки.
Имени Даниила там не было: только {subject_fullname}, {first_question}, {first_expert}, {first_private_contact}. Персональные данные подставлялись из отдельной таблицы.
— Вот механизм, — сказал Даниил. — Карточку собрали программой.
— Это механизм создания файла, не получения данных.
Последняя из двадцати восьми сборок имела номер Даниила; её место в журнале противоречило времени. Источники полей назывались profile, event, observer, route. Первые два вели к таблице на накопителе и журналу семинара, остальные — к отсутствующим сетевым адресам.
— Значит, карточка могла собраться после вопроса из журнала мероприятия, — сказал Глеб. — Имя — из профиля, эксперт — из базы связей, звонок — из маршрута. Не нужно знать будущее. Нужна хорошая слежка и быстрый экспорт.
— Накопитель передали через несколько минут.
— Если сборка автоматическая, хватит секунд.
— Подписать, скопировать на SSD, прийти в пресс-комнату?
— Носитель мог быть подключён к машине в здании. Мужчина мог ждать сигнала. Или персональный файл был готов заранее, а вопрос угадан.
В журнале сборки индекс и карточка шли после основной выгрузки. Это допускало позднее добавление, но сам журнал тоже можно было переписать. Счётчики SSD не позволяли датировать запись отдельных файлов.
— Если карточка обновится без сети, — сказал Даниил, — тогда будет интересно.
— Она не обновится. А если обновится, сначала проверим, не записал ли что-то просмотрщик.
Глеб записал три версии происхождения: карточку подготовили заранее, собрали после вопроса или подменили при копировании. Первая требовала подготовленного сценария и знания его привычек, вторая — сообщника и доступа к ключу, третья — незамеченной компрометации машины.
— Ни одна не требует будущего, — сказал он.
— И ни одна пока не доказана.
— Так выглядит нормальная работа. Поздравляю.
Глеб выругался тихо и уважительно.
— Всё равно не будущее, — сказал он. — Ключ мог быть у источника сегодня.
— Но зачем тогда ставить старую подпись?
— Чтобы мы сидели здесь до утра и задавали этот вопрос.
В свойствах сертификата был указан рабочий адрес ликвидированной лаборатории. Домен больше не существовал. Телефон принадлежал теперь магазину светильников. Даниил нашёл старую страницу университета: Савельев, руководитель проекта; Вельская, научный сотрудник; тема — «Влияние формализованных ожиданий на последовательность целевого поведения». В описании не было ни архивов, ни наблюдателей, ни подтверждений.
Зато в списке публикаций отсутствовал итоговый отчёт. Проект шёл три года, получил финансирование и закончился без статьи.
— Завтра она либо всё объяснит, либо выгонит меня снова, — сказал Даниил.
— Сначала поспишь.
— После редакции.
— Поэтому научная журналистика выглядит уставшей.
В пять утра они выключили машину и запечатали две копии. Глеб расписался на пакетах, Даниил поставил время. Оригинал остался в сейфе студии.
На улице светлело. Метро ещё не открылось, такси стоило как половина гонорара за заметку. Даниил пошёл пешком до Садового кольца. Город был пуст настолько, что любой автомобиль казался следующим за ним. Он трижды заметил серый седан, хотя в Москве половина седанов были серыми.
У подъезда он наконец включил звук телефона. Лида не звонила.
Дома Даниил поставил чайник и открыл рабочую почту на старом планшете. Письмо Марине он написал коротко: «Есть документы с электронной подписью В. С. Савельева и формулировками исследования 2011–2014 годов. Нужна очная проверка. Без публикации до вашего согласия». Приложений не добавил.
Перед отправкой он вернулся к распечатке персонального файла. В служебном слое PDF Глеб нашёл скрытую строку и прислал с пометкой: «Это могло быть добавлено когда угодно. Не драматизируй».
Строка содержала имя Марины и точное время письма, которое Даниил ещё не отправил. Время наступало через две минуты.
Он мог подождать, сломать совпадение или отправить сейчас и быстрее получить встречу. Любой выбор уже происходил внутри чужой рамки.
Даниил подождал до указанного времени, затем ещё три минуты и нажал «Отправить».
В скрытой строке время осталось прежним. Прогноз не сбылся на сто восемьдесят семь секунд. Это была первая настоящая неудача архива, и она принесла ему неожиданное облегчение.
Через минуту Марина ответила: «Сегодня, 19:00. Ничего не пересылайте. И не звоните Савельеву».
Вторым сообщением Глеб прислал продолжение скрытого слоя: там дословно стояла тема письма Марины. Отправитель мог знать её привычки или читать почту. Никакого будущего.
Но в персональной карточке следом стояла другая последовательность: звонок Алексею Мельникову, затем Лиде, затем Ирине с вопросом, следует ли прекращать материал.
Он не собирался звонить Лиде. Он уже решил позвонить Алексею раньше Марины. И Ирине он никогда не задавал вопрос, прекращать ли расследование.
Если файл действительно создали до семинара, кто-то не просто ждал его расследования, но заранее знал, какой именно вопрос он задаст первым и кому позвонит после возвращения из редакции домой.
Глава 3. Справка
Марина Вельская не любила, когда незнакомые мужчины сообщали ей, что нашли её прошлое.
Особенно если делали это утром в субботу, писали с адреса научного журнала и обещали не публиковать документы «до согласия». Последняя формулировка означала, что после согласия опубликуют, а если согласия не будет — начнут обсуждать общественный интерес.
Она ответила Даниилу Корневу раньше, чем успела решить, стоит ли отвечать. Потом перечитала письмо и отменила занятие в бассейне.
В десять ей позвонила Ника Орлова, координатор их новой группы. По голосу было слышно, что она идёт: короткое дыхание, светофор, гул проспекта.
— Ты видела правки комиссии? — спросила Ника.
— Какие именно?
— Они хотят убрать публикацию нулевых результатов из обязательных условий. Формулировка: «в пределах ресурсов проекта».
Марина открыла на планшете последнюю версию заявки. Их исследование не обещало сенсаций. Они собирались проверить, насколько заранее сформулированное ожидание меняет решения участников, если экспериментатор не знает их целей, а результат регистрируется до анализа. Двести сорок человек, три группы, открытый код, заранее описанные исключения. Никакой Вселенной. Именно поэтому фонд торговался за каждую строку: аккуратный отрицательный результат плохо выглядел в годовом отчёте.
— Не убирай, — сказала Марина.
— Тогда совет может перенести решение на осень.
— Пусть переносит.
— У нас договоры у четырёх человек заканчиваются через месяц.
— Знаю.
— Ты всегда говоришь «знаю» тем голосом, после которого платить всё равно приходится мне.
Марина молчала. Соблазн согласиться был не теоретическим. Без финансирования Ника уйдёт в коммерческие исследования, два аспиранта вернутся к руководителям, которым нужны красивые эффекты, аренду кабинета придётся закрыть. Если заменить одно обязательное слово на расплывчатую оговорку, проект стартует в срок.
— Нулевой результат должен существовать на тех же правах, что положительный, — сказала она. — Иначе мы снова проведём исследование, которое исчезнет, потому что никому не понравился итог.
Ника услышала в слове «снова» то, чего Марина не собиралась объяснять.
— Это про Савельева?
— Это про процедуру.
— Конечно. Тогда подпиши отказ от правок до двенадцати. Я отправлю.
После звонка Марина внесла в заявку жёсткую строку: полный обезличенный массив публикуется независимо от направления эффекта. Нажала электронную подпись. Решение стоило группе месяца неопределённости, но возвращало ей одну вещь, которой не было в старом исследовании: результат нельзя будет забрать из шкафа и объявить повреждённым.
Через пять минут Марина снова открыла письмо Корнева: «Есть документы с электронной подписью В. С. Савельева».
Марина посмотрела на только что подписанную заявку и поняла, почему не может просто переслать журналиста юристу. Если старые формы действительно оказались у Арсеньева, новый проект начинался не с чистой процедуры. Любая публикация могла превратить её участников в материал для чужой охоты за подтверждениями. Любое молчание оставляло систему без проверки.
Она позвонила университетскому архивариусу, представилась и попросила поднять опись проекта 2011–2014 годов.
— В выходные хранилище закрыто, — ответила женщина.
— Мне нужна только карточка передачи.
— Письменный запрос в понедельник.
— Кто указан ответственным хранителем?
Клавиши щёлкали долго.
— Вадим Сергеевич Савельев. Передача временная, до завершения повторного кодирования.
— Есть отметка о возврате?
— В электронной описи нет.
— А о списании?
— Тоже нет. Но старая опись могла быть неполной.
Марина записала номер карточки. Попросила ничего не менять и сохранить журнал запроса. Архивариус рассмеялась:
— Я и не могу менять. У меня только чтение.
Эта простая защита данных показалась Марине почти роскошью.
К полудню в лаборатории никого не осталось. Двое аспирантов ушли проводить онлайн-сессию, администратор закрыла кабинет и напомнила про сигнализацию. Марина сказала, что задержится из-за отчёта. Это не было ложью: вся её профессиональная жизнь в последние годы состояла из отчётов, которые задерживали другие разговоры.
Она нашла статью Корнева о «Практике факта». Старую, полуторагодичной давности. Текст был умным, злым и недостаточно честным: он точно разобрал слабые ссылки на нейронауку, но представил всех участников одинаково внушаемыми. В середине был анонимный случай женщины после выгорания. Детали выглядели слишком личными для иллюстрации, и Марина подумала, что автор либо получил полное согласие, либо убедил себя, что получил.
В комментариях его обвиняли в заказе конкурентов, материализме и неспособности принять «новую физику». Корнев отвечал только на вопросы об источниках. Это было в его пользу.
В девятнадцать ноль три он вошёл в переговорную с опозданием на три минуты и положил на стол запечатанный пакет.
— Вы специально? — спросила Марина.
— Что?
— Время.
Он замер, потом понял.
— Специально. Проверял одну строку.
— Уже плохо.
— Почему?
— Вы позволили документу изменить ваше поведение до проверки документа.
Он снял куртку. Тридцать семь, может быть тридцать восемь; уставший, небритый, с лицом человека, который всю ночь спорил и ни разу не победил. Она знала его по конференциям: задавал вопросы так, будто ответчик уже присягнул.
— Поэтому я пришёл к вам, — сказал он.
— Нет. Вы пришли ко мне потому, что моё имя было в файле.
— И потому, что там подпись Савельева.
Имя сделало именно то, ради чего он его произнёс. Марина почувствовала, как внимание сузилось до пакета.
— Покажите.
— Сначала условия.
— Вы назначаете условия в моей лаборатории?
— Там личные данные. Я не оставлю копию, вы ничего не фотографируете, имён участников не записываете. Если узнаете документы, говорите только то, что готовы подтвердить под запись. Диктофон включаю с вашего разрешения.
— Как предусмотрительно.
— Редактор у меня предусмотрительная.
— А вы?
— Я принёс неизвестный архив человеку, чьё имя в нём указано.
— Наконец проверяемое утверждение.
Марина разрешила запись. Он включил два диктофона, положил их по краям стола и зафиксировал время вслух. Потом разрезал пакет. Внутри лежали распечатки, отдельный чистый ноутбук и акт копирования с контрольными суммами.
— Вы решили произвести впечатление цифровой гигиеной?
— Специалист запретил подключать носитель к сети.
— Это разумно.
— Ему будет приятно узнать, что вы одобрили.
Даниил открыл первый протокол.
Марина увидела фразу и не сразу поняла, что задержала дыхание.
Опишите результат так, чтобы два независимых проверяющих одинаково решили, наступил он или нет.
— Откуда это? — спросила она.
— Папка «Протоколы». Ранняя версия. Автор в свойствах V. S., манифест подписан сертификатом Савельева.
— Сертификат можно украсть.
— Можно.
— Дату можно изменить.
— Можно.
— Текст мог перепечатать любой, кто видел форму.
— Кто видел?
Марина продолжила читать.
Второй пункт: Укажите событие, которое будет считаться отсутствием результата.
Третий: Зафиксируйте срок до обсуждения маршрута.
Она перевернула страницу. Внизу стоял индекс 01–А, которого не было ни в одной публикации лаборатории.
— Вы узнаёте? — спросил Корнев.
— Узнаю тип документа.
— Это не ответ.
— Это предел ответа на данном этапе.
— Формулировка принадлежит Савельеву?
— Первая — нет.
Он чуть подался вперёд.
— Кому?
— Мне.
Комната стала теснее. За стеклянной стеной автоматически погас свет в коридоре. Марина не пошевелилась, и датчик не включил его снова.
— Она публиковалась? — спросил Корнев.
— Нет.
— В диссертации, отчёте, заявке?
— Внутренней методичке. Я написала её для кодировщиков. Изначально было: «Два независимых оценщика должны прийти к одинаковому заключению о наличии исхода». Савельев сказал, что участники не поймут, я переписала.
— Сколько экземпляров?
— Не знаю. Электронная версия была на сервере группы, бумажные — у исследователей.
— Кто имел доступ?
— Двенадцать человек точно. Возможно, администраторы, этический комитет, аудиторы фонда.
— Арсеньев?
— Тогда я о нём не слышала.
— А позже?
— Позже слышали все.
Корнев не улыбнулся. Он передал следующую страницу — позднюю редакцию. Исследовательский язык сменился инструкциями наблюдателю. Но скелет оставался тем же: конкретный исход, заранее заданное неподтверждение, срок, препятствие, план действия, цена.
— Это не манифестация, — сказала Марина.
— На сцене Арсеньев называет это маршрутом факта.
— Он взял ментальное сопоставление, реализационные намерения, постановку целей и упаковку для людей, которые покупают надежду.
— Пока совпадаем.
— Не радуйтесь. В вашей прошлой статье вы назвали сам метод бессмысленным.
— Я назвал бессмысленным космическое объяснение.
— Вы написали: «Формулировка не меняет результат».
— Формулировка сама по себе.
— Слов «сама по себе» там не было.
Он посмотрел на неё с раздражением человека, пойманного на своей же пунктуации.
— Вы запомнили?
— Я использовала вашу статью на занятии. Как пример того, что фактчекинг не спасает от лишнего вывода.
— Рад быть полезным.
— Вы не были.
Марина взяла ранний протокол снова. Бумага была новой, печать — сегодняшней, но взгляд цеплялся за порядок полей. Не за слова. Порядок она составляла вместе с Савельевым в декабре 2011 года, после первых двадцати интервью, когда участники задним числом превращали частичные совпадения в полные. Тогда это казалось обычной методологической проблемой.
— Где полный архив? — спросила она.
— На носителе. Оригинал у специалиста. Есть подтверждения, отказы, наблюдатели и папка исследования.
— Вы открывали исследование?
— Только индекс и подписи.
— Почему?
— README велел не сообщать вам о папке до проверки первой формулировки.
Марина резко подняла голову.
— И вы подчинились?
— Я сообщил.
— После проверки.
— Да.
— Значит, подчинились.
— Я собирался показать протокол первым независимо от инструкции.
— Теперь вы уже не можете это проверить.
Он замолчал. В этом молчании впервые не было заготовленного возражения.
— Кто передал носитель? — спросила Марина.
Даниил описал мужчину в серой футболке, бейдж «Отсутствие», отключённую камеру. Имени не было. Лица на записи — тоже. История звучала ровно так, как звучат истории, которые журналисты обычно вырезают из материалов: слишком удачная неизвестность, слишком своевременная поломка.
— Вы ему поверили?
— Я проверяю содержимое.
— Это не ответ.
— Тогда нет. Но я поверил, что он хочет, чтобы содержимое проверили.
— Уже точнее.
Марина попросила открыть индекс исследования. На экране появились названия сессий и коды участников. Она узнала структуру проекта, хотя часть номеров не соответствовала официальной системе. После сессии 118 шла 118-А, затем 119. В опубликованном реестре дополнительных индексов не было.
— Что означает «А»? — спросил Даниил.
— Не знаю.
Он посмотрел так, будто давал ей возможность исправиться.
— Не помню, — сказала она. — Это другое утверждение. Но я не помню таких номеров.
Они открыли карточку 118-А. Почти всё было закрыто серыми прямоугольниками — источник сам удалил личные данные. Остались дата, формулировка результата и пометка: «Подтверждено до вмешательства».
— Какого вмешательства? — спросил Даниил.
— В нашем исследовании вмешательством была процедура: участник формулировал цель, сопоставлял её с препятствием, составлял план.
— А здесь есть поле «оператор».
— У нас не было операторов.
— Уверены?
— Я руководила сбором данных.
— Савельев руководил проектом.
— Вы хотите обвинить его сейчас или сначала собрать факты?
— Я хочу понять, почему итоговый отчёт не опубликован.
Марина закрыла карточку.
— Исследование не дало устойчивого эффекта по основному исходу.
— Какому?
— Целевому поведению через двенадцать недель. Были небольшие изменения на коротком сроке, сильная неоднородность, проблемы с выбыванием участников. Ничего, что оправдывало бы громкие выводы.
— Поэтому три года работы закончились без статьи?
— Статья была подготовлена.
— Где она?
— Савельев отозвал рукопись до рецензирования.
— Почему?
— Сказал, что обнаружена ошибка в кодировании исходов.
— Обнаружена?
— Да.
— Какая?
Марина помнила письмо. Не текст целиком — время, когда увидела его на телефоне: 02:14. «Категория подтверждения неустойчива. Публикацию приостанавливаю». Утром Савельев забрал бумажные формы из шкафа. Через неделю сервер очистили после «миграции». Она протестовала, но недостаточно громко, чтобы это стало официальным протестом.
— Часть участников меняла критерии после исхода, — сказала она. — Частичное совпадение кодировали как подтверждение. Мы собирались провести повторную слепую оценку.
— Провели?
— Нет.
— Данные исчезли?
— Серверный массив признали повреждённым.
— А бумажные формы?
— Архив передали Савельеву на хранение.
— Вы проверяли?
— Нет.
Корнев сделал отметку. Марина услышала скрип ручки и разозлилась именно на звук.
— Не превращайте это в признание соучастницы, — сказала она. — На тот момент речь шла о неудачном исследовании поведенческой процедуры, а не о людях, которые тайно устраивают чужие повышения.
— Вы сами выбрали слово «соучастница».
— Потому что знаю, как строится ваш жанр. Сначала специалист говорит, что не уверен. Потом из текста исчезает «не», остаётся эффектный абзац о годах молчания.
— Запись у вас будет.
— Запись не защищает от монтажа.
— Тогда сформулируйте условие, при котором вы готовы участвовать.
Марина посмотрела на него внимательнее. До сих пор Корнев пытался получать ответы. Теперь впервые предложил ей определить правила.
— Не одно условие. Первое: ни одна карточка с участником не выходит из этой комнаты без обезличивания, которое проверяю я или независимый специалист по данным. Второе: вы не связываетесь с человеком, пока не установите, что согласие на контакт не было получено через манипуляцию. Третье: отрицательные случаи получают в материале столько же аналитического веса, сколько подтверждения.
— «Столько же» — непроверяемо.
— Тогда публикуете знаменатель и правила исключения.
— Если найдём полный массив.
— Если не найдём, прямо пишете, что оценить долю невозможно.
— Ещё?
— Вы не используете старое исследование как мистическую предысторию.
— Даже если в нём останутся необъяснённые случаи?
— Особенно тогда.
— Это уже контроль вывода.
— Это защита от вашего привычного вывода.
Даниил отодвинул блокнот.
— А ваше условие для себя?
— Что?
— Вы отлично знаете, что должен делать журналист. Что будете делать вы, если архив настоящий?
Вопрос оказался грубым, но не пустым. Марина могла ограничиться идентификацией фразы и вернуться к заявке. Репутационный риск относился к ней, конфиденциальность — к участникам, коммерческое использование методики — ко всем, кто покупал продукт. Эти интересы не совпадали.
— Я восстановлю исходный протокол и опись данных, — сказала она. — Установлю, какие формы действительно существовали до Арсеньева. Если выяснится, что Савельев передал материалы без согласия участников, сообщу этическому комитету и самим участникам до публикации.
— Это может занять месяцы.
— Ваша дата номера не является законом природы.
— За месяцы архив можно уничтожить.
— Поэтому мы фиксируем его существование сейчас, передаём хеши нотариусу и помещаем зашифрованную копию двум независимым хранителям. Без персональных ключей.
— Вы это быстро придумали.
— Я один раз уже согласилась подождать, пока руководитель сам разберётся с данными.
Корнев потянулся к диктофону, вспомнил, что тот включён, и остановил руку.
— Это можно цитировать?
— Нет.
— Почему?
— Потому что сначала я хочу проверить, не переписываю ли собственную роль задним числом. У меня были письма. Возможно, я возражала меньше, чем помню.
Ему явно не понравился отказ, но он кивнул.



