Посмотрите на это изображение:
На первый взгляд, с ним всё нормально, но на самом деле всё оно покрыто невидимым для глаз стеганографическим шумом.
Наверное, абсолютно все вы видели всевозможные водяные знаки, которые добавляют на изображения. Они видны всем и портят качество изображения своим присутствием:
В свою очередь стеганографический шум, хоть и не заметен для человеческого глаза, может быть найден специальной программой.
Можно считать стеганографический шум более продвинутой версией вотермарки.
Стеганография изображений нужна для сокрытия данных внутри графических файлов, чтобы скрыть сам факт наличия информации, не меняя внешний вид картинки.
Так вот, в данном случае тут используется искусственный шум, намеренно добавленный в цифровое изображение. Он имитирует естественный шум и позволяет выявить использование созданного вами изображения, минимально изменяя данные пикселей.
В отличие от естественного шума, представляющего собой случайные искажения яркости/цвета пикселей и ухудшающего качество, вызванный физикой сенсора, высоким ISO, длительной выдержкой и температурой.
Чтобы обнаружить добавленный стеганографический шум, используют анализ аномалий в шумовом паттерне, поскольку у оригинала шум однороден, а после редактирования он нарушается. Для решения этой задачи применяют такие методы, как анализ энтропии шума и использование ИИ, например сверточных нейросетей, для поиска статистических несоответствий.
Теперь как же добавить стенографический шум на любое изображение? Для примера я возьму OpenStego (https://github.com/syvaidya/openstego/releases).
Для демонстрации беру оригинальную фотографию:
Вначале я должен сгенерировать файл подписи.
В качестве подписи я решил использовать этот текст:
Vse taynoe stanovitsya yavnym
Дальше я добавляю стеганографический шум на оригинальное изображение, выбирая его и файл подписи:
И всё, невидимая подпись добавлена.
Мы можем проверить проверить наличие шума до и после.
До обработки процент обнаружения нашей подписи равен нулю:
А после добавления невидимой подписи у нас уже все 100 процентов: