Вопрос

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

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


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

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

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

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

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

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


(источник: cs.vu.nl)

Семакоды

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

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

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

Объединив это

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

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

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

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

Обновлять

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

Это было полезно?

Решение

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

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

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

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

Боюсь, я не смогу помочь, но если кто-нибудь добьется этого, я буду ЧЕРТОВО впечатлен!:)

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top