1.2. Встраивание сообщений в незначащие элементы контейнера
Цифровые изображения представляют из себя матрицу пикселов. Пиксел — это единичный элемент изображения. Он имеет фиксированную разрядность двоичного представления. Например, пикселы полутонового изображения кодируются 8 битами (значения яркости изменяются от 0 до 255).
Младший значащий бит (LSB) изображения несет в себе меньше всего информации. Известно, что человек обычно не способен заметить изменение в этом бите. Фактически, он является шумом. Поэтому его можно использовать для встраивания информации. Таким образом, для полутонового изображения объем встраиваемых данных может составлять 1/8 объема контейнера. Например, в изображение размером 512х512 можно встроить 32 килобайта информации. Если модифицировать два младших бита (что также почти незаметно), то можно скрытно передать вдвое больший объем данных.
Достоинства рассматриваемого метода заключаются в его простоте и сравнительно большом объеме встраиваемых данных. Однако, он имеет серьезные недостатки. Во-первых, скрытое сообщение легко разрушить, как это показано в третьей главе. Во-вторых, не обеспечена секретность встраивания информации. Нарушителю точно известно местоположение всего ЦВЗ. Для преодоления последнего недостатка было предложено встраивать ЦВЗ не во все пикселы изображения, а лишь в некоторые из них, определяемые по псевдослучайному закону в соответствии с ключом, известному только законному пользователю. Пропускная способность при этом уменьшается.
Рассмотрим подробнее вопрос выбора пикселов изображения для встраивания в них скрытого сообщения.
В работе [7] отмечается неслучайный характер поведения младшего значащего бита изображений. Скрываемое сообщение не должно изменять статистики изображения. Для этого, в принципе возможно, располагая достаточно большим количеством незаполненных контейнеров, подыскать наиболее подходящий. Теоретически возможно найти контейнер, уже содержащий в себе наше сообщение при данном ключе. Тогда изменять вообще ничего не надо, и вскрыть факт передачи будет невозможно. Эту ситуацию можно сравнить с применением одноразового блокнота в криптографии. Метод выбора подходящего контейнера требует выполнения большого количества вычислений и обладает малой пропускной способностью.
Альтернативным подходом является моделирование характеристик поведения LSB. Встраиваемое сообщение будет в этом случае частично или полностью зависеть от контейнера. Процесс моделирования является вычислительно трудоемким, кроме того, его надо повторять для каждого контейнера. Главным недостатком этого метода является то, что процесс моделирования может быть повторен нарушителем, возможно обладающим большим вычислительным ресурсом, создающим лучшие модели, что приведет к обнаружению скрытого сообщения. Это противоречит требованию о независимости безопасности стегосистемы от вычислительной мощности сторон. Кроме того, для обеспечения скрытности, необходимо держать используемую модель шума в тайне. А как нам уже известно, нарушителю неизвестен должен быть лишь ключ.
В силу указанных трудностей на практике обычно ограничиваются поиском пикселов, модификация которых не вносит заметных искажений в изображение. Затем из этих пикселов в соответствии с ключом выбираются те, которые будут модифицироваться. Скрываемое сообщение шифруется с применением другого ключа. Этот этап может быть дополнен предварительной компрессией для уменьшения объема сообщения.
1.3. Математическая модель стегосистемы
Стегосистема может быть рассмотрена как система связи [8].
Алгоритм встраивания ЦВЗ состоит из трех основных этапов: 1) генерации ЦВЗ, 2) встраивания ЦВЗ в кодере и 3) обнаружения ЦВЗ в детекторе.
1) Пусть
есть множества возможных ЦВЗ, ключей, контейнеров и скрываемых сообщений, соответственно. Тогда генерация ЦВЗ может быть представлена в виде
,
, (1.2)
где
- представители соответствующих множеств. Вообще говоря, функция
F может быть произвольной, но на практике требования робастности ЦВЗ накладывают на нее определенные ограничения. Так, в большинстве случаев,
, то есть незначительно измененный контейнер не приводит к изменению ЦВЗ. Функция
F обычно является составной:
где
и
, (1.3)
то есть ЦВЗ зависит от свойств контейнера, как это уже обсуждалось выше в данной главе. Функция G может быть реализована при помощи криптографически безопасного генератора ПСП с K в качестве начального значения.
Для повышения робастности ЦВЗ могут применяться помехоустойчивые коды, например, коды БЧХ, сверточные коды [9]. В ряде публикаций отмечены хорошие результаты, достигаемые при встраивании ЦВЗ в области вейвлет-преобразования с использованием турбо-кодов. Отсчеты ЦВЗ принимают обычно значения из множества {-1,1}, при этом для отображения {0,1}→{-1,1} может применяться двоичная относительная фазовая модуляция (BPSK).
Оператор T модифицирует кодовые слова
, в результате чего получается ЦВЗ
. На эту функцию можно не накладывать ограничения необратимости, так как соответствующий выбор
G уже гарантирует необратимость
F. Функция
T должна быть выбрана так, чтобы незаполненный контейнер