Вадим Грибунин - Цифровая стеганография
В работе [15] были произведены многочисленные эксперименты, которые позволили дать определенные рекомендации по выбору преобразования для стеганографии. Известно, что преобразования можно упорядочить по достигаемым выигрышам от кодирования (см. рис. 5.11). Под выигрышем от кодирования понимается степень перераспределения дисперсий коэффициентов преобразования.
Наибольший выигрыш дает преобразование Карунена-Лоэва (ПКЛ), наименьший — разложение по базису единичного импульса (то есть отсутствие преобразования). Преобразования, имеющие высокие значения выигрыша от кодирования, такие как ДКП, вейвлет-преобразование, характеризуются резко неравномерным распределением дисперсий коэффициентов субполос. Высокочастотные субполосы не подходят для вложения из-за большого шума обработки, а низкочастотные — из-за высокого шума изображения. Поэтому приходится ограничиваться среднечастотными полосами, в которых шум изображения примерно равен шуму обработки. Так как таких полос немного, то пропускная способность стегоканала невелика. В случае применения преобразования с более низким выигрышем от кодирования, например, Адамара или Фурье, имеется больше блоков, в которых шум изображения примерно равен шуму обработки. Следовательно, и пропускная способность выше. Неожиданный вывод: для повышения пропускной способности стеганографического канала лучше применять преобразования с меньшими выигрышами от кодирования, плохо подходящие для сжатия сигналов.
Эффективность применения вейвлет-преобразования и ДКП для сжатия изображений объясняется тем, что они хорошо моделируют процесс обработки изображения в СЧЗ, отделяют «значимые» детали от «незначимых». Значит, их более целесообразно применять в случае активного нарушителя. В самом деле, модификация значимых коэффициентов может привести к неприемлемому искажению изображения. При применении преобразования с низкими значениями выигрыша от кодирования существует опасность нарушения вложения, так как коэффициенты преобразования менее чувствительны к модификациям. Однако, существует большая гибкость в выборе преобразования. И если преобразование неизвестно нарушителю (хотя учет этого момента и противоречит принципу Керхгофа), то модификация стего будет затруднена.
5.3.2. Скрытие данных в коэффициентах дискретного косинусного преобразования
Впервые использование ДКП для скрытия информации было описано в работе [17]. При этом ДКП применялось ко всему изображению в целом.
Обычно же контейнер разбивается на блоки размером 8х8 пикселов. ДКП применяется к каждому блоку, в результате чего получаются матрицы коэффициентов ДКП, также размером 8х8. Коэффициенты будем обозначать через , где b — номер блока, (j,k) — позиция коэффициента внутри блока. Если блок сканируется в зигзагообразном порядке (как это имеет место в JPEG), то коэффициенты будем обозначать через cb,j. Коэффициент в левом верхнем углу обычно называется DC-коэффициентом. Он содержит информацию о яркости всего блока. Остальные коэффициенты называются АС-коэффициентами. Иногда выполняется ДКП всего изображения, а не отдельных блоков. Рассмотрим некоторые из предлагавшихся алгоритмов внедрения ЦВЗ в области ДКП.
А1. (Koch [17]). В данном алгоритме в блок размером 8х8 осуществляется встраивание 1 бита ЦВЗ. Описано две реализации алгоритма: псевдослучайно могут выбираться два или три коэффициента ДКП. Здесь мы рассмотрим вариацию алгоритма с двумя, а ниже, при описании следующего алгоритма — вариацию с тремя выбираемыми коэффициентами.
Встраивание информации осуществляется следующим образом: для передачи бита 0 добиваются того, чтобы разность абсолютных значений коэффициентов была бы больше некоторой положительной величины, а для передачи бита 1 эта разность делается меньше некоторой отрицательной величины:
(5.23)
Таким образом, исходное изображение искажается за счет внесения изменений в коэффициенты ДКП.
Для чтения ЦВЗ в декодере выполняется та же процедура выбора коэффициентов, и решение о переданном бите принимается согласно правилу:
(5.24)
А2. (Benham [18]). Этот алгоритм можно рассматривать как улучшенную версию предыдущего. Улучшения проведены по двум направлениям: во-первых, для встраивания используются не все блоки, а лишь «пригодные» для этого, во-вторых, внутри блока для встраивания выбираются не два, а три коэффициента, что уменьшает искажения, как будет показано далее. Разберем подробнее эти усовершенствования.
Пригодными для встраивания информации считаются блоки изображения, не являющиеся слишком гладкими, а также не содержащие малого числа контуров. Для первого типа блоков характерно равенство нулю высокочастотных коэффициентов, для второго типа — очень большие значения нескольких низкочастотных коэффициентов. Эти особенности и являются критерием отсечения непригодных блоков.
Встраивание бита ЦВЗ осуществляется следующим образом. Псевдослучайно выбираются три коэффициента ДКП блока. Если нужно вложить 1, коэффициенты изменяются так (если требуется), чтобы третий коэффициент стал меньше каждого из первых двух; если нужно встроить 0 он делается больше других. В том случае, если такая модификация приведет к слишком большой деградации изображения, коэффициенты не изменяют, и этот блок просто не используется.
Изменение трех коэффициентов вместо двух, а тем более отказ от изменений в случае неприемлемых искажений уменьшает вносимые ЦВЗ погрешности. Декодер всегда сможет определить блоки, в которые ЦВЗ не встроен, повторив анализ, выполненный в кодере.
А3. (Podilchuk [19]). При обнаружении ЦВЗ этот алгоритм требует наличия у детектора исходного изображения. Встраиваемые данные моделируются вещественным случайным процессом с нормальным распределением, единичной дисперсией и нулевым средним. Для каждого коэффициента ДКП определяется значение порога, изменение сверх которого может привести к деградации изображения. Этот порог зависит от позиции коэффициента в матрице (то есть частотного диапазона, за который он отвечает). Кроме того, порог обуславливается и свойствами самого изображения: контрастностью и яркостью блока.
Встраивание осуществляется следующим образом: если абсолютное значение коэффициента меньше порога, то он не изменяется. В противном случае к нему прибавляется произведение значения порога и значения ЦВЗ.
При обнаружении ЦВЗ вначале коэффициенты исходного изображения вычитаются из соответствующих коэффициентов модифицированного изображения. Затем вычисляется коэффициент корреляции, и устанавливается факт наличия ЦВЗ.
А5. (Hsu [20]). В данном алгоритме декодеру ЦВЗ также требуется исходное изображение. Однако, декодер определяет не факт наличия ЦВЗ, а выделяет встроенные данные. В качестве ЦВЗ выступает черно-белое изображение размером вдвое меньше контейнера. Перед встраиванием это изображение подвергается случайным перестановкам. ЦВЗ встраивается в среднечастотные коэффициенты ДКП (четвертая часть от общего количества). Эти коэффициенты расположены вдоль второй диагонали матрицы ДКП.
Для внедрения бита ЦВЗ si в коэффициент находится знак разности коэффициента текущего блока и соответствующего ему коэффициента из предыдущего блока
. (5.25)
Если надо встроить 1, коэффициент меняют так, чтобы знак разности стал положительным, если 0 — то чтобы знак стал отрицательным.
Авторами предложен также ряд улучшений основного алгоритма. Во-первых, вместо значений коэффициентов предлагается использовать их абсолютные значения. Во-вторых, вместо коэффициента из предыдущего блока предлагается использовать DC-коэффициент текущего блока. И, наконец, берется в учет процесс квантования коэффициентов:
. (5.26)
Еще одним усовершенствованием этого алгоритма является предложенный авторами порядок сортировки блоков ЦВЗ. Блоки ЦВЗ упорядочиваются по убыванию в них числа единиц. Блоки исходного изображения-контейнера также упорядочиваются по убыванию дисперсий. После этого выполняется соответствующее вложение данных.
Надо отметить, что этот алгоритм не является робастным по отношению к JPEG-компрессии.
А5. (Tao [21]). Для обнаружения ЦВЗ детектору требуется исходный контейнер. При встраивании ЦВЗ используются коэффициенты ДКП, имеющие наименьший шаг квантования в таблице JPEG. Число и местоположение этих коэффициентов не зависит от изображения.
Алгоритм работает следующим образом. Вначале выполняется классификация блоков по 6 категориям, в зависимости от степени гладкости и наличия в них контуров. Для каждого блока вычисляется коэффициент чувствительности к аддитивному шуму, и блоки упорядочиваются в соответствии с этим коэффициентом. Далее энергия встраиваемого ЦВЗ определяется либо этим коэффициентом (зависящим от изображения), либо шагом квантования (независимым от изображения) (смотря что больше).