Условия простые. Прямо под этим абзацем лежит сетка из точек и цифр. В ней зашито время. К концу этой короткой статьи вы сможете прочесть его сами, без всякого декодера. А по дороге, между главами, спрятан второй шифр. Но его я расшифровывать не буду. Кто первым выложит ответ в комментарии, тот молодец.

Сетка выше, на первый взгляд, скорее похожа на корявый рисунок в paint. И хотя это он и есть, похожий рисунок, на самом деле, вы уже видели раньше, но в другом виде. Есть он в каждом листе, который выходит из вашего цветного принтера. Только там он желтый и почти невидимый.

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

· · · ●

Сначала проверьте сами

Возьмите цветную распечатку, найдите пустое белое поле и посветите на него синим светодиодом. Подойдет даже фонарик телефона (если заклеить фонарик кусочком синей пленки).

Через пару секунд глаза поймают сетку мелких точек.

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

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

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

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

Если прочитать сетку, она говорит серийный номер принтера, а еще дату и время, когда лист вышел из машины. Эта стеганография, зашитая в железо, на просторах интернета, называется по-разному: yellow dots, tracking dots, а в литературе чаще Machine Identification Code, MIC.

● · · ●

Откуда взялось и кто вскрыл

Технологию придумали Xerox и Canon в середине восьмидесятых. Xerox первым размазал уникальное число точками по всей площади печати и поставил это в линейку DocuColor.

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

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

А узнала публика так. В октябре 2004-го голландские власти по точкам вычислили фальшивомонетчиков, печатавших на Canon, и история всплыла в прессе. А в 2005-м группа из Electronic Frontier Foundation разобрала схему DocuColor до конца. Собрали распечатки из разных копи-центров, подсветили синим, отсканировали, сопоставили рисунок точек с известными серийниками и вытащили кодировку.

● · · ●

А сейчас это делают?

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

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

· ● ● ·

Теперь как это читать. Возвращаемся к сетке из начала

Я ведь обещал, что вы прочитаете все сами.

У настоящего DocuColor блок это решетка 15 на 8 точек. Точка = единица, ее отсутствие = ноль. Дальше двоичная арифметика по столбцам. Верхняя строка обычно содержит не данные, а биты четности: контроль ошибок, чтобы при сканировании не потерять и не приклеить лишнюю точку. Остальные строки читаются по столбцам. Дата по своим столбцам, время по своим, серийник большим блоком, причем серийник пишут в двоично-десятичном виде, каждую цифру четырьмя битами.

Решетку 15 на 8 руками в статье не разобрать, было бы слишком долго. Поэтому в начале лежит урезанная версия, четыре столбца на четыре строки. Механика там такая же, а вот объема меньше.

Читаем по столбцам сверху вниз. Есть точка, прибавляем к числу вес ее строки.

Первый столбец: точка только в строке с весом 1. Итого 1. Второй: точка в строке 4. Итого 4. Третий: точка в строке 2. Итого 2. Четвертый: точки в строках 4 и 1. Итого 5.

Получается 1, 4, 2, 5. То есть 14:25. Это наше время.

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

В дополнение

А теперь про второй шифр. Вы скорее всего заметили между главами стоят короткие строчки из точек.

Каждая такая строчка это одна цифра. Берете тот же принцип, что и в сетке: четыре клетки, веса 8, 4, 2, 1, точка есть прибавляем вес. Их четыре по порядку сверху вниз по статье. Сложите и получите год. Только здесь каждая строчка читается целиком слева направо, это не столбцы, как в сетке выше.

Расшифровывать не буду, но год относится к статье. Слово комментаторам. Посмотрим, кто первый.

А, ну и ниже не самый короткий P.S. без которого статья была бы неполной.


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

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

Комментарии (6)


  1. Kodath
    05.06.2026 08:21

    1996


  1. foxmen
    05.06.2026 08:21

    неужели матрицы фотоаппаратов (и даже телефонов), могут так же метить фотографии?!)


    1. vesowoma
      05.06.2026 08:21

      Теоретически могут спрятать в RAW, но при конвертации с сжатием с потерями все эти точки скорее всего перестанут существовать. Можно конечно в готовый JPEG что-то добавить, но там это глазом не увидеть. Если сторонним софтом то уверен на 99% что ничего не сохранится при конвертации.

      А вот серийные номера пишутся в файл, но тоже легко удаляются вместе с EXIFом.


  1. pbw
    05.06.2026 08:21

    Ладно, со старыми цветными принтерами тема известная. А с современными что, можно поподробнее? Как дела обстоят с черно-белыми лазерниками?


  1. mamonov97
    05.06.2026 08:21

    Похоже на созвездие Евриона


  1. jetnet
    05.06.2026 08:21

    Не буду больше жёлтый катридж покупать.