Решил продолжить цикл статей по стеганографии, на хабре уже был рассмотрен примитивный алгоритм LSB. Решил написать о методе Куттера-Джордана-Боссена (его также называют методом «креста»), который применяется для встраивания информации в изображения.
Для встраивания информации в контейнер используется одно из свойств зрительной системы человека. Это свойство заключается в том, что восприимчивость человека к изменениям яркости синего цвета по сравнению с красным и зелёным — меньше всего.
И так, для встраивания информации будет использоваться синий цвет заданного контейнера-изображения.
Изображение будем рассматривать в цветовой модели RGB.
Bx,y — яркость синего цвета пикселя c координатами (x,y);
Bx,y* — изменённая яркость синего цвета пикселя;
Yx,y — яркость пикселя;
mi — i-ый бит сообщения, которое мы хотим встроить;
λ — коэффициент, задающий энергию встраиваемого бита данных (задаётся исходя из функционального назначения и особенности стеганосистемы);
σ — размер области, по которой будет прогнозироваться яркость.
Встраивание информации будет производиться 1 бит сообщения в 1 пиксель контейнера. Секретный ключ задаёт координаты пикселей, в которые будет производиться встраивание.
При встраивании яркости красного и зелёного цветов остаются без изменений, а яркость синего — изменяется по следуюющей формуле:
![](https://habrastorage.org/r/w1560/storage/habraeffect/91/9a/919ace0444536d0b1147535ed60d54bd.png)
, где λ = 0.1, Yx,y = 0.3*Rx,y+0.59*Gx,y+0.11*Bx,y
Так как на принимающей стороне нет оригинального изображения, то гарантированно узнать в какую сторону изменилась яркость синего цвета мы не можем. Поэтому для извлечения прогнозируется значение яркости синего цвета:
![](https://habrastorage.org/r/w1560/storage/habraeffect/09/53/09532df04c712dbbdb47a0c25c6aedac.png)
, где σ = 1÷3.
Проиллюстрирую на примере (σ = 2):
![](https://habrastorage.org/r/w1560/storage/habraeffect/5e/3f/5e3ffa869a2b1e001823fc9592b17d86.png)
Пиксель в центре — это пиксель, яркость синего цвета которого мы должны спрогнозировать опираясь на пиксели, которые обозначены светлосерым цветом.
И наконец, для извлечения скрытого сообщения используется формула:
![](https://habrastorage.org/r/w1560/storage/habraeffect/69/dc/69dcbaf6df30a098ac5ec6878e32eac2.png)
Высокая пропускная способность;
Высокая устойчивость к несанкционированному ознакомлению;
Высокая устойчивость к частотному детектированию;
Высокая устойчивость к разрушению младших бит контейнера;
Устойчивость к атаке сжатия;
Извлечение носит вероятностный характер.
Для уменьшения вероятности ошибки используют помехоустойчивое кодирование.
1. Конахович Г.Ф., Пузыренко А.Ю. «Компьютерная стеганография. Теория и практика»
2. Грибунин В.Г., Оков И.Н., Туринцев И.В. «Цифровая стеганография»
Для встраивания информации в контейнер используется одно из свойств зрительной системы человека. Это свойство заключается в том, что восприимчивость человека к изменениям яркости синего цвета по сравнению с красным и зелёным — меньше всего.
И так, для встраивания информации будет использоваться синий цвет заданного контейнера-изображения.
Изображение будем рассматривать в цветовой модели RGB.
Обозначения
Bx,y — яркость синего цвета пикселя c координатами (x,y);
Bx,y* — изменённая яркость синего цвета пикселя;
Yx,y — яркость пикселя;
mi — i-ый бит сообщения, которое мы хотим встроить;
λ — коэффициент, задающий энергию встраиваемого бита данных (задаётся исходя из функционального назначения и особенности стеганосистемы);
σ — размер области, по которой будет прогнозироваться яркость.
Встраивание
Встраивание информации будет производиться 1 бит сообщения в 1 пиксель контейнера. Секретный ключ задаёт координаты пикселей, в которые будет производиться встраивание.
При встраивании яркости красного и зелёного цветов остаются без изменений, а яркость синего — изменяется по следуюющей формуле:
![](https://habrastorage.org/storage/habraeffect/91/9a/919ace0444536d0b1147535ed60d54bd.png)
, где λ = 0.1, Yx,y = 0.3*Rx,y+0.59*Gx,y+0.11*Bx,y
Извлечение
Так как на принимающей стороне нет оригинального изображения, то гарантированно узнать в какую сторону изменилась яркость синего цвета мы не можем. Поэтому для извлечения прогнозируется значение яркости синего цвета:
![](https://habrastorage.org/storage/habraeffect/09/53/09532df04c712dbbdb47a0c25c6aedac.png)
, где σ = 1÷3.
Проиллюстрирую на примере (σ = 2):
![](https://habrastorage.org/storage/habraeffect/5e/3f/5e3ffa869a2b1e001823fc9592b17d86.png)
Пиксель в центре — это пиксель, яркость синего цвета которого мы должны спрогнозировать опираясь на пиксели, которые обозначены светлосерым цветом.
И наконец, для извлечения скрытого сообщения используется формула:
![](https://habrastorage.org/storage/habraeffect/69/dc/69dcbaf6df30a098ac5ec6878e32eac2.png)
Плюсы и минусы
![+](https://habrastorage.org/getpro/habr/post_images/bad/31a/6b6/bad31a6b6345ea44e6332abfbf5c96f0.png)
![+](https://habrastorage.org/getpro/habr/post_images/bad/31a/6b6/bad31a6b6345ea44e6332abfbf5c96f0.png)
![+](https://habrastorage.org/getpro/habr/post_images/bad/31a/6b6/bad31a6b6345ea44e6332abfbf5c96f0.png)
![+](https://habrastorage.org/getpro/habr/post_images/bad/31a/6b6/bad31a6b6345ea44e6332abfbf5c96f0.png)
![+](https://habrastorage.org/getpro/habr/post_images/bad/31a/6b6/bad31a6b6345ea44e6332abfbf5c96f0.png)
![-](https://habrastorage.org/getpro/habr/post_images/6f9/5fd/1ef/6f95fd1ef09cbe2ecc7aecd2057409b2.png)
Для уменьшения вероятности ошибки используют помехоустойчивое кодирование.
Литература
1. Конахович Г.Ф., Пузыренко А.Ю. «Компьютерная стеганография. Теория и практика»
2. Грибунин В.Г., Оков И.Н., Туринцев И.В. «Цифровая стеганография»