Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Стеганография(Конахович)_FULL.doc
Скачиваний:
682
Добавлен:
09.12.2018
Размер:
11.37 Mб
Скачать

5.3.2.4. Метод блочного скрытия

Метод блочного скрытия — это еще один подход к реализации метода замены и заключается в следующем [3]. Изображение-оригинал разбивается на непересекающихся блоков произвольной конфигурации, для каждого из которых вычисляется бит четности :

В каждом блоке выполняется скрытие одного секретного бита Mi, Если бит четности, то происходит инвертирование одного из НЗБ блока , в результате чего . Выбор блока может происходить псевдослучайно с использованием стегакоключа.

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

Рассмотрим пример программы в MathCAD, которая позволяет выполнить стеганографическую защиту текстового сообщения методом блочного скрытия.

Шаг 1

Исходные данные соответствуют; принятым при моделировании предыдущего метода.

Шаг 2

Разбиение массива контейнера на блоки выполним следующим образом: если количество бит в сообщении не превышает количества столбцов Y массива С, то один блок соответствует отдельному столбцу массива С. Если же , то один блок равен от отдельного столбца массива, где Значение должно быть известно получателю.

Данный алгоритм встраивания реализован в модуле (М.23). Начало модуля аналогично модулю (М.21). Счетчик позволяет выделять соответствующую соотношению часть от общей размерности столбца массива. При этом определяются индексы строк, начиная с которой (r1) и по которую (r2) выделяется фрагмент у-го столбца.

Для каждого блока выполняется вычисление бита четности b, Если b не равен текущему значению бита сообщения, то из блока случайным образом выбирается индекс n пикселя, интенсивность цвета которого увеличивается или уменьшается на единицу, в зависимости от того, четным или нечетным является его первичное значение. С помощью функции выполняется встраивание модифицированного массива в общий массив S, начиная со строки r1 и столбца у в сторону самых старших индексов строк и столбцов соответственно.

Рис. 5.12. Рассеяние бит сообщения по массиву контейнера

На рис. 5.12 изображены пиксели контейнера, интенсивность цвета которых претерпела изменения (для наглядности, цвет данных пикселей установлен черным).

Очевиден факт снижения количества модифицированных пикселей по сравнению с результатом применения двух предыдущих методов (см. рис. 5.9 и рис. 5.11).

Шаг 3

Извлечение секретной информации осуществляется с помощью модуля (М.24). Результаты вычисления визуального искажения сведены в табл. 5.1(стр. 125)

5.3.2.5. Методы замены палитры

Для скрытия данных можно также воспользоваться палитрой цветов, присутствующих в формате изображения [80]. Палитра из N цветов определяется как список пар индексов , который определяет соответствие между индексом i и его вектором цветности (так называемая таблица цветов). Каждому пикселю изображения ставится в соответствие определенный индекс в таблице. Поскольку порядок цветов в палитре не важен для восстановления общего изображения, конфиденциальная информация может быть скрыта путем перестановки цветов в палитре.

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

Чаще всего соседние цвета в палитре не обязательно похожи, поэтому некоторые стеганометоды перед скрытием данных упорядочивают палитру таким образом, что смежные цвета становятся подобными. Например, значение цвета может быть упорядочено по расстоянию d в RGB-пространстве, где [3].

Поскольку ЗСЧ более чувствительна к изменениям яркости цвета, то целесообразно сортировать содержание палитры именно по значениям яркости сигнала. После сортировки палитры можно изменять НЗБ индексов цвета без чрезмерного искажения изображения.

Некоторые стеганометоды [81] предусматривают уменьшение общего количества значений цветов (до N/2) путем "размывания" изображения. При этом элементы палитры дублируются таким образом, чтобы значение цветов для них различалось несущественно. В итоге каждое значение цвета размытого изображения соответствует двум элементам палитры, которые выбираются в соответствии с битом скрываемого сообщения.

Можно предложить следующий вариант метода замени палитры.

Шаг 1

Исходные данные — стандартные.

Шаг 2

Таблицу цветов получаем, например, используя подмассив интенсивности красного R (M.25). Секретность таблицы будет определять алгоритм ее формирования на основе массива R.

Полученную таблицу Т упорядочим по интенсивности цветов с помощью функции csort(T,с), которая позволяет переставить строки массива Т таким образом, чтобы отсортированным оказался столбец с:

На рис. 5.13 представлены фрагменты оригинальной и отсортированной цветовых таблиц.

T=

1

2

Tsort=

1

2

1

1

255

1

99

0

2

2

251

2

49

1

3

3

250

3

256

2

4

4

249

4

96

3

5

5

247

5

139

4

6

6

244

6

174

5

251

251

230

251

3

250

252

252

75

252

2

251

253

253

196

253

74

252

254

254

193

254

108

253

255

255

55

255

109

254

256

256

2

256

1

255

Рис. 8.13. Оригинальная (Т) и отсортированная (Тsort) цветовые таблицы

На рис. 5.14. представлена графическая интерпретация цветовых таблиц.

Рис. 6.14. Графическое отображение цветовых таблиц Т и Тsort

Шаг 3

Модуль встраивания сообщения в контейнер (М.26) реализует следующий алгоритм.

Формирование битового вектора из символьной строки аналогично представленному в (М.21). Из массива контейнера С, путем перебора индексов строк (х) и столбцов (у), переменной pix присваивается значение интенсивностей цвета соответствующих пикселей контейнера. Внутренним циклом выполняется поиск соответствующего значения интенсивности в отсортированной цветовой таблице Тsort.

В случае положительного исхода поиска, переменной n присваивается значение индекса, соответствующего данной интенсивности в таблице Т (первый столбец Тsort, а переменной — значение индекса, соответствующего данной интенсивности в таблице Тsort. Если НЗБ индекса n не равно текущему биту скрываемого сообщения, то происходит поиск ближайшего индекса, НЗБ которого равно биту сообщения. Поиск выполняется вниз (L) и вверх (Н) от индекса .

Предварительное присвоение переменным и значения -/+1000 гарантирует невозможность дублирования предыдущих значений , если продвижение вниз или вверх от индекса не привело к выполнению поставленного условия (последнее возможно при обнаружении индекса слишком близко к нижней или верхней границе отсортированной цветовой таблицы).

Шаг 4

При извлечении сообщения, на основе массива R* необходимо сформировать таблицы цветов Т и Тsort . Модуль, реализующий данную операцию, идентичен (М.25).

Шаг 5

Модуль извлечения (М.27) для интенсивности каждого пикселя массива S* выполняет поиск соответствующей интенсивности в цветовой таблице. При нахождении, -му элементу битового сообщения М* присваивается значение НЗБ индекса, соответствующее данной интенсивности в неотсортированной таблице. Полученный битовый вектор в конце модуля преобразуется в строку символов.

Результаты вычисления визуального искажения сведены в табл. 5.1 (стр. 125).