2013-05-06 4 views
0

Steganography ссылка показывает демонстрацию стеганографии. Мой вопрос в том, когда количество бит, подлежащих замене, n = 1, то метод необратим, т. Е. Покрытие не равно Stego (в идеальных и совершенных случаях используемая крышка должна быть идентична результату стеганографии). Он работает только отлично, когда количество бит, подлежащих замене, равно n = 4,5,6 !! Когда n = 7, изображение Stego становится шумным и отличается от используемого Обложки, и результат не становится незаметным. Итак, очевидно, что была операция стеганографии. Может кто-нибудь объяснить, почему это так и что нужно сделать, чтобы сделать процесс обратимым и без потерь.Операции с битовыми операторами и стеганография при обработке изображений

+1

JPEG представляет собой формат сжатия с потерями, который не пригоден для хранения одного бита на пиксел. Вместо этого попробуйте PNG. Хотя в этом случае, поскольку вы еще не записывали вывод в файл, это не имеет значения. –

+1

Извините, я не понял вашего ответа. Я вижу только результат после операции бит, который, согласно моему пониманию, должен быть независим от типа файла. Проблема, если с числом бит n, используемым в операции. – Chaitali

ответ

1

Итак, давайте посмотрим, что делает код. Из скрытого изображения вы извлекаете n наиболее значимых бит (MSB) и скрываете их в наименее значимых битах (LSB) в обложке. Об этом можно заметить два момента, которые отвечают на ваши вопросы.

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

Если вы хотите визуально проверить разницу между обложкой и изображениями stego, вы можете использовать уравнение пикового сигнала с шумом (PSNR). Говорят, что человеческий глаз не может отличить различия для PSNR> 30 дБ. Лично я бы не пошел на что-то меньше 40, но это зависит от вашей цели. Имейте в виду, что это не полный, все тип измерения. Качество вашего алгоритма зависит от многих факторов.

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

Идеальный поиск секретного изображения требует скрытия всех битов всех пикселей, что означает, что вы можете скрыть только скрытый 1/8 размер обложки. Обратите внимание, что это худший сценарий, который не учитывает шифрование, сжатие или другие методы. Это идея, но я не буду предоставлять фрагмент кода на основе вышеизложенного, потому что он очень негибкий.

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

  • робастности (как устойчивее скрытая информация для редактирования изображений)
  • неразличимости (как это тяжело для незнакомец, чтобы знать о существовании тайны, но не обязательно о самой тайне, например, хи-квадрат атаки)
  • тип среды обложки (например, тип файла определенного типа)
  • тип секретного сообщения (например,, Изображение, текст)
  • размер секретного
+0

Благодарим вас за подробное объяснение. Как вы сказали, чем больше бит будет изменено, тем более искаженным будет изображение обложки. Но в этом коде, если количество битов изменилось меньше 4, то искажение будет высоким! что только когда n = 4, покрытие = stego image? Есть ли способ определить оптимальное количество бит? – Chaitali

+0

Кроме того, MSE между Hidden и Exracted не равен нулю. MSE должен быть равен нулю, так как Extracted and Hidden должен быть одинаковым. Это огромная разница. – Chaitali

+0

Для низкого n stego больше похож на изображение обложки, но извлеченное является грубым приближением скрытого и наоборот для высоких n. Штего никогда не бывает одинаковым с обложкой и извлеченным скрытым. Просто для n = 4 вы получаете лучший компромисс от обоих миров. MSE между скрытым и извлеченным не равен нулю, потому что вы кодируете часть скрытого изображения (1 <= n <= 7), и это вся информация, которую вы можете получить. Я предлагаю использовать более универсальный алгоритм, будь то для обучения или проекта. Это столько, сколько вы можете выбраться из этого. – Reti43