Метод на Кътър-Джордан-Босен
Kutter (M. Kutter), Jordan (F. Jordan) и Bossen (F. Bossen) [83] предложиха алгоритъм за вграждане на изображение с RGB кодиране в синия цветен канал, тъй като FFS е най-малко чувствителен към син цвят. Помислете за алгоритъма за предаване на един бит секретна информация в предложения метод.
НекаMi е битът, който ще бъде вграден, е изображението на контейнера,p=(x,y) е псевдослучайният пиксел на контейнера, който ще бъде вграден.
Тайният битMi е вграден в синия канал чрез промяна на яркостта
(5,5)
където и е константа, която определя енергията на вградения сигнал. Стойността му зависи от предназначението на стеганосистемата. Колкото по-голямо е, толкова по-висока е устойчивостта на вградената информация към изкривявания, но толкова по-силна е нейната видимост.
Приемникът извлича бита, без да има първично изображение, тоест "на сляпо". За да направите това, стойността на първичния немодифициран пиксел се предвижда въз основа на стойностите на съседните пиксели. За да се получи пикселен резултат, се предлага да се използва стойността на няколко пиксела, поставени в една и съща колона и в същия ред на масива на графичния контейнер. Авторите са използвали "кръст" от пиксели с размери 7x7. Оценката се получава във формата
(5,6)
където е броят на пикселите над (долу, вляво, вдясно) от изчисления пиксел (в случай на кръст 7x7 =3).
При извличане на вградения бит, разликата между текущите ( ) и прогнозираните ( ) стойности на интензитета на пикселитеp= (x, y):
(5,7)
Знакът ще означава вградения бит: ако , тогаваMi = 0 ; ако , тоМi= 1.
(5,8)
Както в предишния случай, знакът на средната разлика ще определи стойносттавграден бит. В [83] беше показано, че алгоритъмът е устойчив на много известни видове атаки: нискочестотно филтриране на изображение, компресирането му в съответствие с JPEG алгоритъма и изрязване на ръбовете.
Предлага се следното изпълнение на този метод.
Стъпка 1
Първоначалните данни са стандартни.
Стъпка 2
Масивът на осветеност се получава с помощта на функциятаREADBMP ("filename"), която връща масив, който представлява BMP изображение във формат на осветеност (в скала на сивото): :=READBMP ("C.bmp").
Стъпка 3
Алгоритъмът за вграждане се реализира от софтуерен модул (M.32). В този случай изчисляването на псевдослучайните координати на пиксела, в който ще бъде вграден битът на съобщението, се извършва съгласно алгоритъма, описан в подраздел 5.3.2.3 за метода на псевдослучайна пермутация.Предварително е зададен параметър o, който определя енергията на вградения сигнал, както и броя на повторенията на вграждането на същия бит - . Установено е, че резултатът от вграждането е визуално незабележим за стойностите на и . В този случай обаче, за да се намалят грешките по време на извличането, е необходимо значително да се увеличи броят на повтарящите се скривания на текущия бит (>35), което също се отразява негативно на статистиката на изображението. Оптимално според нас е стойността на и и
След модифициране на интензитета на пиксела, определен от координатите(x,y),, стойността на получения интензитет се коригира. В противен случай, при първоначална стойност на интензитета на цвета на пиксела, например 255, въвеждането на бит на съобщението "1" няма да увеличи стойността на интензитета, а напротив, ще го намали към тъмни нюанси. В противен случай, при много ниски начални стойности на интензитета, по-специално 0, вмъкването на бит "0" може да доведе дополучаване на отрицателна стойност, която ще се възприема като стойност на интензитет, близка до 255.
Стъпка 4
Преди да извлечете съобщение, трябва да знаете следното:
• първичен ключKo* ;
• брой цикли на изчисляване на координати(х,у) *;
• брой дублирани вграждания на един бит *;
• размер (конфигурация) на кръста - броя на пикселите над (под, отляво, отдясно) на оценения пиксел - фиг. 5.16.
Ориз. 5.16. Примери за прогнозни пиксели и модели за оценка („Кръст“)
Модулът за извличане на скрито съобщение (M.33) съдържа блок за изчисляване на псевдослучайни координати(x, y), идентичен на съответния блок в модула за вграждане (M.32).
След това има блокове за изпълнение на условията, които заедно ни позволяват да вземем предвид проблемните случаи, когато оцененият пиксел е твърде близо до ръба (ръбовете) на изображението и не е възможно да се изгради пълноценен "кръст" от околните пиксели (виж Фиг. 5.16).
Модулът (M.33) генерира предварително псевдослучайни индекси (x, y), които определят елемента на масива B* (пиксел), около който ще бъдат оценени близките пиксели. Въз основа на резултатите от генерирането на тези индекси се изчислява броя на пикселите над и под, отляво и отдясно на изчисления. Освен това се изчислява оценката на първичната стойност на оценения пиксел (формула (5.6)). Резултатът се съхранява в t-тия елемент на масиваB*^. Оценената стойност на пиксела се съхранява в буферния масив (capital beta).
Ако , тогава продължава натрупването на оценки на пиксели, в които е вграден същият бит от съобщението. В случая се обобщават резултатите от предходната оценка: срразликата S между първичните и оценените стойности на интензитетите на пикселите, които са действали като контейнери за един бит вградени данни. В зависимост от знака на получената разлика, на j-тия елемент от вектора на двоичните данни (индексът на елемента се определя от резултата от изчисляването на функциятаceil (i / *) се присвоява стойност 0 или 1. Променливатаt се нулира на 1. Започва събирането на оценки на интензитета на пикселите, в които е вграден следващият бит от съобщението.
Процесът се повтаря, докато се анализират всички елементи на графичния масив.Резултатите от изчисляването на визуалното изкривяване на контейнера са обобщени в табл. 5.1 (стр. 125).