Стегосообщение методом Куттера

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 04:23, 20 апреля 2017.

Руководство пользователя

  • Записываемое стего сообщение находится в файле 1.txt
  • В качестве контейнера используется изображение 1.bmp
  • γ – параметр определяющий энергию встраиваемого сигнала. Чем больше γ, тем выше устойчивость встроенной информации к искажениям, однако и тем сильнее ее заметность. Установлено, что результат встраивания визуально незаметен при значениях γ меньше 0.05.
  • Результат встраивания стего сообщения можно посмотреть в файле Stego_Krest.bmp.
  • В файле kutter.xmcd в конце шага 2 приведено побитовое сравнение исходного сообщения(M_b) и сообщения после расшифровки(M_b_decod) .
  • Результат восстановления исходного сообщения находится в файле 2.txt.
  • Зашумление изображения функцией rnorm() .
    • image:=READRGB(“Stego_Krest.bmp”)
    • WRITERGB(“Stego_rnorm.bmp”):=rnormFilter(image,PSNR)
    • Stego_Krest.bmp –название изображения, которое необходимо зашумить
    • Stego_rnorm.bmp – название зашумленного изображения
    • PSNR – значение сигнал-шум.
  • Результат восстановления сообщения после применения зашумления к "загруженному" контейнеру можно посмотреть в файле 3.txt. Также можно побитово сравнить исходное сообщение(M_b) и восстановленное сообщение(M_b_decod2) после применения зашумления к "загруженному" контейнеру.

Все файлы должны находиться в папке с kutter.xmcd.

Просмотр txt осуществляется с помощью Notepad.

Формирование контейнера со стегосообщением методом Куттера и извлечение стегосообщения

Задача

  • В произвольно выбранном контейнере в виде файла управляемого объема записать произвольно выбранное стего методом Куттера. (см. конспект и материалы кафедральной энциклопедии)
  • Восстановить стего по известному ключу.
  • Промоделировать занесение шума в файл, содержащий стегосообщение с помощью функции rnorm().
  • Качественно оценить влияние Гауссовского шума и параметров нормального распределения на восстановленное стего.

Основная идея этого метода, предложенного Куттером, Джорданом и Боссеном, заключается в следующем: стего встраивается в канал синего цвета (зрительная система человека наименее восприимчева именно к синему цвету) изображения, имеющего RGB кодирование путем модифкации яркости. Более подробно алгоритм будет описан в ходе реализации.

Шаг 1. Исходные данные

C:=READRGB("1.bmp") //Считываем изображение

R:=READ_RED("1.bmp") //Выделяем три цветовые составляющие G:=READ_GREEN("1.bmp") B:=READ_BLUE("1.bmp")

M:=READBIN("1.txt","byte") //Импортируем текстовое сообщение

M1.png


S2.png



S3.png


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

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


Kut.png

Записываем значения матрицы B_cod вместо значений B в изображение "Stego_Krest.bmp"("Загруженный контейнер").

WRITERRGB("Stego_Krest.bmp"):=augment(R,G,B_cod)



S5.png


Шаг 2. Восстановление записанного сообщения

C1:=READRGB("Stego_Krest.bmp")

R1:=READ_RED("Stego_Krest.bmp") G1:=READ_GREEN("Stego_Krest.bmp") B1:=READ_BLUE("Stego_Krest.bmp")

M3.png



S7.png



M4.png

Записываем декодированное сообщение в файл "2.txt".

WRITEBIN("2.txt","byte",0):=L

Шаг 3. Промоделируем занесение шума в файл, содержащий стегосообщение с помощью функции rnorm()

M5.png

Считываем "загруженный" контейнер:

image:=READRGB("Stego_Krest.bmp")

Заносим шум в "загруженный" контейнер:

WRITERGB("Stego_rnorm.bmp"):=mormFilter((image),35)

M6.png


Шаг 4. Извлекаем сообщение из "загруженного" контейнера после зашумления.

C2:=READRGB("Stego_rnorm.bmp")

Разложение на цветовые компоненты:

R2:=READ_RED("Stego_rnorm.bmp") G2:=READ_GREEN("Stego_rnorm.bmp") B2:=READ_BLUE("Stego_rnorm.bmp")

M7.png

M8.png

L2:=B_D(M_b_decod2)

M9.png

Записываем декодированное сообщение (L2) в файл "3.txt".

WRITEBIN("3.txt","byte",0):=L2

Шаг 5.Качественно оценим влияние Гауссовского шума и параметров нормального распределения на восстановленное стего

Следует отметить, что зашумление применялось при рекомендованном значении константы γ = 0.05. Для параметра PSNR подбирались различные значения.Но типичные значения PSNR для зашумления изображения лежат в пределах от 30 до 40. При этих значениях зашумление rnorm() не сильно искажает изображение. При значениях ниже 30 изображение искажаеться очень сильно,и стего будет невозможно восстановить вообще. При значениях больше 40 изображение почти не зашумляется, и чем больше значение PSNR, тем меньше зашумление. При зашумлении стего восстанавлиявается на много хуже,чем без зашумления.При γ = 0.05: без зашумления было восстановлено 6 символов из 15, с зашумлением только 2 символа.

Вывод

При больших значениях параметра γ (например γ=3) кодируемое сообщение отлично расшифровывается, однако растет и заметность встраивания. Для большей стойкости к ошибкам можно применять повторное встраивание одних и тех же бит сообщения. В таком случае параметр γ можно будет значительно уменьшить, тем самым уменьшить заметность встраивания. Также возможно использовать дополнительные методы для размещения бит сообщения по контейнеру, например метод песевдослучайного интервала или метод всевдослучайной перестановки, для большей стойкости к криптоанализу. Использованное занесение шума функцией rnorm() на конечный результат положительного воздействия не оказывает.

Список источников

  1. Материалы кафедральной энциклопедии ИУ8.
  2. Г.Ф. Конахович А.Ю. Пузыренко. Компьютерная стеганография. Теория и практика.
  3. Сеть интернет.

Изображения

Oirs7.1.png

Стегосообщения