Сочетание семакодов и стеганографии?

Обновление Я задал этот вопрос довольно давно, и мне было любопытно, было ли что-то подобное разработано с тех пор, как я задал вопрос?

Я даже не знаю, есть ли термин для такого рода алгоритма, и я думаю, что не будет, если никто еще не изобрел его. Однако это также затрудняет поиск в Google. Кто-нибудь знает, есть ли еще термин для этого алгоритма / принципа?


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

стеганография

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

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

Таким образом, в принципе, стеганография обеспечивает следующее:

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

http://www.cs.vu.nl/~ast/books/mos2/zebras.jpg

Semacodes

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

Таким образом, семакоды имеют следующие свойства:

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

Сочетая это

Поэтому моя идея состоит в том, чтобы создать нечто, объединяющее эти два свойства со всеми объединенными свойствами. Это означает, что это должно было бы:

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

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

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

Обновить

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

3 ответа

Решение

Я полагаю, что частью устойчивости семакода к повреждению / загрязнению / затенению является высокая контрастность между двумя состояниями любой "ячейки". Читатель все еще может сделать хорошее предположение относительно фактического состояния, даже с некоторым искажением.

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

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

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

Боюсь, я не могу помочь, но если кто-нибудь добьется этого, я буду чертовски впечатлен!:)

Это не полный ответ, но вы должны посмотреть на водяные знаки. Эта техника решает ваши первые две цели (встраиваемые в печатное изображение и читаемые даже при частично поврежденном сканировании).

Часть надежности водяных знаков в отношении ошибок искажения и транскрипции (от перехода от цифрового к аналоговому и обратно) обусловлена ​​избыточностью (например, повторение данных несколько раз). Это сделало бы водяной знак обнаруживаемым даже без ключа. Однако вы можете использовать более тонкие методы резервирования, например, связанные с кодированием стирания или совместным использованием секрета.

Я знаю, что это не полный ответ, но, надеюсь, эти выводы укажут вам правильное направление!

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

(необязательно, сначала растяните растровое изображение с семакодом до тех же размеров в пикселях с белым цветом)

Другие вопросы по тегам