Цифровая стеганография
Шрифт:
Рис. 5.10. Зависимость шума изображения (сплошная линия) и шума обработки (пунктирная линия) от частоты
Стегоканал можно декомпозировать на ряд независимых подканалов. Это разделение осуществляется за счет выполнения прямого и обратного преобразования. В каждом из L подканалов имеется по два источника шума. Пусть
Шум обработки появляется в результате квантования коэффициентов трансформанты. Значение этого шума легко получить, скажем, для пары ДКП — JPEG, если известны таблицы квантования. Однако, например, в случае преобразования Адамара один коэффициент ДКП будет влиять на несколько коэффициентов Адамара. Хотелось бы иметь более общее определение шума обработки. Его можно рассматривать как уменьшение корреляции между коэффициентами трансформанты исходного изображения и квантованными коэффициентами. Например, при высоких степенях сжатия может возникнуть ситуация, когда будут отброшены целые субполосы. То есть дисперсия шума в этих субполосах, вообще говоря, бесконечна. Налицо уменьшение корреляции между коэффициентами субполосы до квантования и после. Конечно для получения приемлемых результатов необходимо усреднить значение шума обработки по многим изображениям.
Выбор значения визуального порога основывается на учете свойств СЧЗ. Известно, что шум в ВЧ областях изображения более приемлем, чем в НЧ областях. Можно ввести некоторые взвешивающие коэффициенты,
Рис. 5.11. Различные преобразования, упорядоченные по достигаемым выигрышам от кодирования
В работе [15] были произведены многочисленные эксперименты, которые позволили дать определенные рекомендации по выбору преобразования для стеганографии. Известно, что преобразования можно упорядочить по достигаемым выигрышам от кодирования (см. рис. 5.11). Под выигрышем от кодирования понимается степень перераспределения дисперсий коэффициентов преобразования.
Наибольший выигрыш дает преобразование Карунена-Лоэва (ПКЛ), наименьший — разложение по базису единичного импульса (то есть отсутствие преобразования). Преобразования, имеющие высокие значения выигрыша от кодирования, такие как ДКП, вейвлет-преобразование, характеризуются резко неравномерным распределением дисперсий коэффициентов субполос. Высокочастотные субполосы не подходят для вложения из-за большого шума обработки, а низкочастотные — из-за высокого шума изображения. Поэтому приходится ограничиваться среднечастотными полосами, в которых шум изображения примерно равен шуму обработки. Так как таких полос немного, то пропускная способность стегоканала невелика. В случае применения преобразования с более низким выигрышем от кодирования, например, Адамара или Фурье, имеется больше блоков, в которых шум изображения примерно равен шуму обработки. Следовательно, и пропускная способность выше. Неожиданный вывод: для повышения пропускной способности стеганографического канала лучше применять преобразования с меньшими выигрышами от кодирования, плохо подходящие для сжатия сигналов.
Эффективность применения вейвлет-преобразования и ДКП для сжатия изображений объясняется тем, что они хорошо моделируют процесс обработки изображения в СЧЗ, отделяют «значимые» детали от «незначимых». Значит, их более целесообразно применять в случае активного нарушителя. В самом деле, модификация значимых коэффициентов может привести к неприемлемому искажению изображения. При применении преобразования с низкими значениями выигрыша от кодирования существует опасность нарушения вложения, так как коэффициенты преобразования менее чувствительны к модификациям. Однако, существует большая гибкость в выборе преобразования. И если преобразование неизвестно нарушителю (хотя учет этого момента и противоречит принципу Керхгофа), то модификация стего будет затруднена.
5.3.2. Скрытие данных в коэффициентах дискретного косинусного преобразования
Впервые использование ДКП для скрытия информации было описано в работе [17]. При этом ДКП применялось ко всему изображению в целом.
Обычно же контейнер разбивается на блоки размером 8х8 пикселов. ДКП применяется к каждому блоку, в результате чего получаются матрицы коэффициентов ДКП, также размером 8х8. Коэффициенты будем обозначать через
А1. (Koch [17]). В данном алгоритме в блок размером 8х8 осуществляется встраивание 1 бита ЦВЗ. Описано две реализации алгоритма: псевдослучайно могут выбираться два или три коэффициента ДКП. Здесь мы рассмотрим вариацию алгоритма с двумя, а ниже, при описании следующего алгоритма — вариацию с тремя выбираемыми коэффициентами.
Встраивание информации осуществляется следующим образом: для передачи бита 0 добиваются того, чтобы разность абсолютных значений коэффициентов была бы больше некоторой положительной величины, а для передачи бита 1 эта разность делается меньше некоторой отрицательной величины:
Таким образом, исходное изображение искажается за счет внесения изменений в коэффициенты ДКП.
Для чтения ЦВЗ в декодере выполняется та же процедура выбора коэффициентов, и решение о переданном бите принимается согласно правилу:
А2. (Benham [18]). Этот алгоритм можно рассматривать как улучшенную версию предыдущего. Улучшения проведены по двум направлениям: во-первых, для встраивания используются не все блоки, а лишь «пригодные» для этого, во-вторых, внутри блока для встраивания выбираются не два, а три коэффициента, что уменьшает искажения, как будет показано далее. Разберем подробнее эти усовершенствования.
Пригодными для встраивания информации считаются блоки изображения, не являющиеся слишком гладкими, а также не содержащие малого числа контуров. Для первого типа блоков характерно равенство нулю высокочастотных коэффициентов, для второго типа — очень большие значения нескольких низкочастотных коэффициентов. Эти особенности и являются критерием отсечения непригодных блоков.
Встраивание бита ЦВЗ осуществляется следующим образом. Псевдослучайно выбираются три коэффициента ДКП блока. Если нужно вложить 1, коэффициенты изменяются так (если требуется), чтобы третий коэффициент стал меньше каждого из первых двух; если нужно встроить 0 он делается больше других. В том случае, если такая модификация приведет к слишком большой деградации изображения, коэффициенты не изменяют, и этот блок просто не используется.
Изменение трех коэффициентов вместо двух, а тем более отказ от изменений в случае неприемлемых искажений уменьшает вносимые ЦВЗ погрешности. Декодер всегда сможет определить блоки, в которые ЦВЗ не встроен, повторив анализ, выполненный в кодере.
А3. (Podilchuk [19]). При обнаружении ЦВЗ этот алгоритм требует наличия у детектора исходного изображения. Встраиваемые данные моделируются вещественным случайным процессом с нормальным распределением, единичной дисперсией и нулевым средним. Для каждого коэффициента ДКП определяется значение порога, изменение сверх которого может привести к деградации изображения. Этот порог зависит от позиции коэффициента в матрице (то есть частотного диапазона, за который он отвечает). Кроме того, порог обуславливается и свойствами самого изображения: контрастностью и яркостью блока.