Метод сокрытия путем перестановки элементов палитры

Метод сокрытия, основанный на наличии одинаковых элементов палитры

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

В общем случае этот метод сводится к поиску нескольких элементов палитры с наибольшей частотой появления в графическом изображении. В палитру добавляются их “двойники”, после чего последовательно просматриваются все точки изображения. Если точка ссылается на элемент, имеющий “двойника”, то она используется для сокрытия очередного бита сообщения (к примеру, если бит сообщения равен 1, то значение точки заменяется на “двойника”). Рассмотрим пример использования данного метода. Пусть сообщение m=“10010110”, а палитра, состоит из 2 цветов:

 

0 -> ( 0,255, 0)

1 -> ( 0, 0,255)

 

И изображение имеет вид:

 

 

0 1 0 1

1 0 1 0

0 1 0 1

1 0 1 0

 

Добавим в палитру элемент 2 -> ( 0,255, 0) и сокроем в изображении сообщение m:

2 1 0 1

1 0 1 2

0 1 2 1

1 2 1 0

 

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

 

Идея данного метода состоит в использовании порядка элементов палитры изображения для сокрытия информации. Будем предполагать, что палитра произвольного фиксированного изображения состоит из n различных элементов, то есть , среди них нет ни одной пары одинаковых. Из комбинаторики известно, что количество перестановок n различных элементов равно n!. Легко понять, что если использовать перестановки для сокрытия двоичного сообщения, то его максимальная длина составит около log2(n!) бит. В общем случае, метод сокрытия путем перестановки элементов палитры состоит в том, что задается отображение, которое при фиксированном ключе k взаимнооднозначным образом ставит в соответствие любому сообщению допустимой длинны определенную перестановку элементов палитры контейнера.

Приведем пример простейшего метода перестановки элементов палитры. Пусть наше сообщение m – это целое число от 0 до n!-1, где n – число различных элементов палитры. Упорядочим все элементы в палитре по возрастанию веса равного (R*65536 + G * 256 + B) и назовем такой порядок элементов единичным. Возьмем первый элемент упорядоченной палитры. Будем считать, что места в палитре, полученной в результате сокрытия пусты и пронумерованы от 0 до n-1. Определим в ней место для взятого элемента как остаток от деления m на n. Перенумеруем свободные места в получившейся после добавления первого элемента палитре от 1 до n-2 и разделим сообщение m на n нацело. Определим место для второго элемента единичной палитры как остаток от деления m на n-1. Продолжая далее таким же образом, получим палитру, отвечающую исходному сообщению m. Отметим, что после того, как получена новая палитра, необходимо изменить соответствующим образом значения всех точек изображения.

Проиллюстрируем работу данного метода. Пусть палитра состоит из трех элементов и они упорядочены: