Цифровая стеганография.

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 категориям, в зависимости от степени гладкости и наличия в них контуров. Для каждого блока вычисляется коэффициент чувствительности к аддитивному шуму, и блоки упорядочиваются в соответствии с этим коэффициентом. Далее энергия встраиваемого ЦВЗ определяется либо этим коэффициентом (зависящим от изображения), либо шагом квантования (независимым от изображения) (смотря что больше).

Для обнаружения ЦВЗ вначале выполняют вычитание исходного изображения из принятого. Затем вычисляют ДКП исходного и разностного изображений и применяют статистические методы проверки гипотез.

А6. (Cox [22]). Этот алгоритм является робастным ко многим операциям обработки сигнала. Обнаружение встроенного ЦВЗ в нем выполняется с использованием исходного изображения. Внедряемые данные представляют собой последовательность вещественных чисел с нулевым средним и единичной дисперсией. Для вложения информации используются несколько АС-коэффициентов ДКП всего изображения с наибольшей энергией. Автором предложено три способа встраивания ЦВЗ в соответствии со следующими выражениями:

Цифровая стеганография, (5.27).

Цифровая стеганография(5.28).

И.

Цифровая стеганография. (5.29).

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

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

А7. (Barni [23]). Этот алгоритм является улучшением предыдущего, и в нем также выполняется ДКП всего изображения. В нем детектору уже не требуется исходного изображения, то есть схема слепая. Для встраивания ЦВЗ используются не наибольшие АС-коэффициенты, а средние по величине. В качестве ЦВЗ выступает произвольная строка бит.

Выбранные коэффициенты модифицируются следующим образом:

Цифровая стеганография. (5.30).

Далее выполняется обратное ДКП, и производится дополнительный шаг обработки: исходное и модифицированное изображения складываются с весовыми коэффициентами:

Цифровая стеганография. (5.31).

Здесь β ≈ 1 для текстурированных областей (в которых человеческий глаз мало чувствителен к добавленному шуму) и β ≈ 0 в однородных областях. Значение β находится не для каждого пиксела в отдельности, а для неперекрывающихся блоков фиксированного размера. Например, в качестве β целесообразно использовать нормализованную дисперсию блоков.

В детекторе ЦВЗ вычисляется корреляция между модифицированным изображением и ЦВЗ, Цифровая стеганография.

А8. (Fridrich [24]). Алгоритм является композицией двух алгоритмов: в одном данные встраиваются в низкочастотные, в другом — в среднечастотные коэффициенты ДКП. Как показали авторы, каскадное применение двух различных алгоритмов приводит к хорошим результатам в отношении робастности. Это объясняется видимо тем, что недостатки одного алгоритма компенсируются достоинствами другого. Также, как и в двух предыдущих алгоритмах, здесь осуществляется ДКП всего изображения. Исходный сигнал детектору ЦВЗ не требуется.

Перед встраиванием ЦВЗ в НЧ коэффициенты изображение преобразуется в сигнал с нулевым средним и определенной дисперсией так, чтобы абсолютные значения коэффициентов ДКП находились в диапазоне (200,250). Авторы использовали для этой цели следующее преобразование.

Цифровая стеганография, (5.32).

Где σ(I) — стандартное отклонение, Цифровая стеганография — среднее значение яркости. ЦВЗ представляет собой последовательность чисел {-1;1}.

Далее строится индексная функция ind(t) на основе последовательности вещественных чисел, определяемой выражением.

Цифровая стеганография, (5.33).

Где параметр Цифровая стеганография. Индексная функция.

Цифровая стеганография. (5.34).

Таким образом, для каждого вещественного числа t можно определить его индекс. Этот индекс изменится только в том случае, если к числу t прибавить/отнять число, превосходящее значение αt. На рис. 5.12 показан вид функции ind(t) для α = 0.1.

Для внедрения бита ЦВЗ si в коэффициент cj последний изменяется не менее, чем на 100α процентов так, чтобы Цифровая стеганография. Если значение коэффициента мало (меньше 1), то в него информация не встраивается.

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

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

Рис. 5.12. Индексная функция ind(c).

Цифровая стеганография, (5.35).

Где параметр β определяет важность взвешивания: если он равен нулю, то взвешивания не происходит. Авторы рекомендуют использовать Цифровая стеганография.

Если изображение было модифицировано, то стандартное отклонение σ(I') отлично от σ(I). При знании s = σ(I)/σ(I') можно было бы уточнить выражение для коэффициента корреляции:

Цифровая стеганография. (5.36).

Однако, как было указано, исходное изображение отсутствует у детектора. Поэтому значение s выбирается так, чтобы оно максимизировало значение коэффициента корреляции:

Цифровая стеганография. (5.37).

В среднечастотные коэффициенты ДКП информация встраивается путем умножения преобразованного значения ЦВЗ на параметр α и сложения результата со значением коэффициента. Предварительное кодирование ЦВЗ выполняется по следующему алгоритму.

Вход алгоритма: сообщение длины M, состоящее из символов Цифровая стеганография.

Выход алгоритма: ЦВЗ длины N, состоящий из вещественных чисел si.

Для кодирования символа mi генерируется N+B+1 чисел псевдослучайной последовательности Цифровая стеганография. Эту последовательность будем называть i-м случайным вектором.

Первые mi чисел этого вектора пропускаются, а следующие N чисел образуют вектор Vi, используемый при дальнейшем суммировании.

Для каждого символа сообщения генерируются статистически независимые различные случайные вектора.

В качестве ЦВЗ используется сумма векторов Vi. Если M достаточно велико, то ЦВЗ будет иметь гауссовское распределение. i-й символ исходного сообщения может быть получен после вычисления взаимной корреляции ЦВЗ с i-м случайным вектором. N имеет величину от 1000 до 10000.

Встраивание ЦВЗ в небольшие по размеру блоки имеет то преимущество, что при этом существует возможность адаптации к локальной яркости и гладкости изображения. Однако при достаточной энергии ЦВЗ появляется артефакт блочности, также как и при высокой степени сжатия в стандарте JPEG. Перекрывающееся ортогональное преобразование (ПОП) изначально было предложено для преодоления недостатка ДКП при сжатии изображений. В работе [25] предложено его использование для внедрения информации. Чтобы увеличить робастность алгоритма вложения, авторы предложили дополнительно встраивать некий шаблон, причем этот процесс происходит в области преобразования Фурье. В результате получился алгоритм, достаточно стойкий ко многим атакам.