FontCode: новый способ стеганографии через форму букв


    Рис. 1. Незначительное изменение глифа (формы конкретной литеры) кодирует цифровую информацию за счёт двухмерной матрицы вариантов начертания. Каждая точка в двухмерной координатной сетке генерирует соответствующий уникальный глиф

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

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

    Суть метода вкратце изложена на схеме и подробно объясняется в научной работе.



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


    Вторая часть технологии — распознавание искажённых глифов. Авторы научной работы представили распознавание глифов как проблему классификации изображений. Получив изображение с рядом искажённых глифов, цель состоит в том, чтобы классифицировать каждый входной глиф этой буквы как один из списка по кодовой книге. Для этой цели была обучена сверточная нейронная сеть (CNN) на каждой букве в определённом шрифте.



    Чтобы распознать искажённый глиф каждой буквы с помощью CNN, изображение сначала предварительно обрабатывается c подготовкой данных для обучения нейросети, а также для уменьшения размерности обучающих данных. Область каждой буквы обрезается по рамке, установленной системой оптического распознавания символов. Затем осуществляется бинаризация области изображения с помощью классического алгоритма Otsu. Этот шаг помогает устранить влияние, вызванное различными условиями освещения и цветами фона. Наконец, размер области изображения изменяется до квадрата 200×200 пикселей. Такие чёрно-белые изображения 200×200 подаются для обучения в нейросеть. Обученная нейросеть способна распознавать изображения, непосредственно синтезированные или полученные с цифровых камер, то есть когда пользователь наводит камеру смартфона на текст со скрытой шифровкой, так же как он наводит камеру на QR-код. Соответственно, обучающие данные для CNN состояли из синтетических изображений и реальных фотографий. Эти синтетические данные были созданы фотореалистичным визуализатором с различными настройками экспозиции.

    Схема кодирования предусматривает разбиение текста на блоки по пять символов. Каждому блоку назначается число от 0 до 255 в кодировке ASCII, которое внедряется в глифы путём изменения их формы. При декодировании выполняется обратная процедура, когда числа извлекаются из глифов.



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

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

    Кроме стеганографического внедрения секретного послания в открытый текст FontCode допускает и использование шифрования. В этом случае отправитель и получатель должны предварительно согласовать секретный ключ для расшифровки сообщения. Шифровку можно спокойно передавать в открытом виде — через интернет или в виде бумажной распечатки. Человек видит обычный текст, а компьютер с системой OCR и специально обученной нейросетью распознаёт в этом тексте скрытое послание.

    Научная работа с описанием технологии FontCode подготовлена для конференции SIGGRAPH, которая пройдёт в августе 2018 года в канадском Ванкувере.
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 32
    • +4
      Ну, вот…
      Что же теперь запрещать все шрифты кроме одного эталонного? )
      • +6
        А эталонным признают Comic Sans
        • +4
          Пора вообще слова запрещать. Устроили тут обмен информацией, понимаешь ли.
        • +6
          Это ж только для печатного способа передачи информации?
          Имхо цифровой бессмысленен, т.к. коды у символов будут разные.
          Тогда как-то архаично выглядит, несмотря на ИИ.
          • +1
            Зачем коды? Передаёте картинки. PDF. 5000x3500 страница. И никто никогда не догадается зачем текстовую информацию передавать такими картинками, да.

            Ужос как секретно.

            P.S. А если «кроме шуток», то можно в комиксы это вклеивать — они часто как раз как PNG'шки публикуются несмотря на обилие в некоторых из них текста. Вот для них и придётся эталоном делать Comic Sans, как тут уже предлагают
            • 0
              Под «печатным» я подразумевал визуальный.
              Игрушка какая-то, а не стенография.
              Хотя, кто их, шпионов, поймет.
              • 0
                Много где документооборот идёт через pdf, так что не всё так однозначно
                • +1
                  PDF хранит либо ссылку на системный шрифт, либо ембеддит его в документ (полностью или только используемые символы). В любом случае это будут разные символы. TIFF спасёт!
                  • +1
                    ПДФ прекрасно хранит и картинки внутри себя
                    • 0
                      Это когда есь информация о тексте и шрифте, например при печати через виртуальный принтер. Но если этот документ представится «сканированным» то никакого встроенного или системного шрифта не надо — символы в документе могутхранится в виде глифов, каждому символу в соответствие можно задать с десяток похожих глифов но отличающихся незначительно, а в документ пойдут только ссылки на глифы. Декодер составит таблицу ссылка-символ обработав глифы по своим характерным признакам(а их могут быть десятки, и только один из них несёт полезную информацию) и извлечёт нужную нам информацию. В то же время по исходному документу будет очень сложно судить вообще о наличии стеганографии, даже если человек будет просматривать встроенные глифы. Ну да, глифы будут разные и чем-то отличаться… но какой именно признак несёт скрытую информацию, а какой является случайным артефактом сканирования?
                • 0
                  Превращаем глифы в их векторные контуры и всё. Может быть можно правда ещё поделать что-то с трансформациями самих глифов в пдфках.
                  • 0
                    Векторные контуры будут иметь легко узнаваемую сигнатуру, считай практически коды символов подставлять. Не вектор надо в документ вставлять, а так называемые OCR, где каждый символ разбирается на глиф и встраивается в документ, а сам документ состоит из ссылок на «похожие» глифы. Таким образом, одному символу может соответствовать с десяток а то и сотня практически похожих глифов, соответственно для одного символа можно будет использовать одну из ссылок фактически ведущих к одному и тому же глифу. Снаружи, этот документ будет выглядеть как отсканированный и весьма сложно будет задать фильтр на поиск таких документов с приемлемым процентом ложных срабатываний.
                • 0
                  Например PDF с отсканироваными страничками
                  • 0
                    Даже, скорее, для рукописного. В печатном будет слишком легко найти признаки наличия стегонографии.
                    • 0
                      Насчет этого не уверен. Для стеганографии например используется один признак а в символах можно менять 5 разных признаков, в которых будет вложена случайная последовательность. А ещё эти… адаптивные «рукописные» символы, которые рандомно меняют свою форму для придания естественности… да тут поле непаханое.
                  • +6
                    Так вот зачем последние годы в интернетах активно внедрялась привычка постить везде тексты картинками!
                    • 0
                      Штука занятная, но:
                      1. Много информации не закодируешь.
                      2. Факт кодирования легко выявляется.
                      • 0
                        1. Много информации не закодируешь.
                        2. Факт кодирования легко выявляется.

                        Стеганография же. Чем больше разница между обьемом контейнера и обьемом вложенной информации, тем не легче выявить факт наличия скрытой информации.
                      • +2
                        Новый способ? Да этим способом еще итальянские мафиози в 20-30-х годах пользовались, чтобы из тюрьмы ценные указания на волю передавать.
                        • +1
                          Где можно про это почитать?
                          • +1
                            Конкретно про итальянскую мафию не могу найти, но как оказалось эта методика гораздо, гораздо более древняя:
                            Шифр Бэкона
                        • 0
                          Такая себе стеганография — я невооруженным глазом вижу разницу между этими буквами.
                          • +1
                            невооруженным? если бы вам не сказали что это шифровка — ни в жизнь бы не догадались… если бы не обвели, не показали примеры, не увеличили — тоже бы ни сном… тем более я предполагаю, что вряд ли буквы в тексте подряд будут шифровать
                            • 0
                              Хорошей стеганографией является такая, которую нужно сначала обнаружить. Вот такую стеганографию обнаружить в автоматическом режиме проще простого — достаточно больше 2 букв с разными начертаниями похожих символов, чтобы заподозрить неладное.
                              • 0
                                достаточно больше 2 букв с разными начертаниями похожих символов, чтобы заподозрить неладное


                                Комикс, шрифт стилизован под рукописный, все буквы немного отличаются.
                                Талмуд с документацией под NDA в 1000 страниц — некоторые буквы отличаются на пару пикселей. Как отличить, это так напечаталось, или это скрытые watermark'и?
                                План по захвату Галактики, опубликованный на wikileaks…
                          • 0
                            Главное, чтобы эта статья не попалась на глаза Роскомнадзору.
                            • 0
                              Да нет же.
                              Пусть попадется, чем больше забанят бездумно, тем быстрее заменят любителей «делать и посмотреть», на любителей «думать и не навредить».
                            • 0
                              Предлагаю другую стеганографию.

                              Есть принтер, печатающий текст.
                              Но реальный мир не идеален, поэтому, по сути, все напечатанные буквы уникальны (не могут же они микрон-в-микрон совпадать).

                              И вот тут уже можно попытаться сделать стеганогарфию ;)
                              Как буд-то на «некачественном» принтере распечатано…
                              А по факту — это намеренно.
                              • 0
                                Для этого надо супер-пупер крутой и точный принтер иметь. И чтоб он, не дай бог, не начал пачкать страницы (то есть идеальные фотобарабаны, идеальную систему их очистки от лишнего тонера, печки чтоб не пачкали).
                                Дороговато будет.
                                • 0
                                  Для just4fun да, для тех кому такое надо — нет.
                                  • 0
                                    Тогда лучше сделать наоборот, пускай принтер сильно пачкает. Но пачкает не просто так, а как стеганографисту надо. Но так как принтер может и сам по себе пачкать, придется добавить помехоустойчивое кодирование. А текст пускай будет любой, это просто маскировка. Однако к теме публикации такой способ не имеет отношения.
                                    • 0
                                      Группенпринтер в большой организации. Любая бумажка, отпечатанная на нем, имеет фамилию, имя, отчество.

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое