Г Ф Конахович - Комп'ютерна стеганографія теорія і практика - страница 16

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51 

vec2str| M* vec;

M* = Пузиренко О.Ю., 2005 p.IGlPte2ItUM<jSьzЧжYФI..,

Результати обчислення візуального спотворення зведені до табл.5.1.

5.3.2.4. Метод блокового приховування

Метод блокованого приховування є ще одним підходом до реалізації методу заміни і полягає в наступному [3]. Зображення-оригінал розбивається на lM неперетинних блоків, Аі (1 < i < lM ) довільної конфігурації, для кожного з яких обчислюється біт парності b і ) :

mod 2

b і ) =^LSB (Cj ). (5.4) j є а і

У кожному блоці проводиться приховування одного секретного біту Mi. Якщо біт парності b і ) Ф Mi, то відбувається інвертування одного з НЗБ блоку Аі, у результаті чого

b і ) = Mi . Обрання блоку може здійснюватись псевдовипадково з використанням стегано-

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

Наведемо приклад програми у MathCAD, яка дозволяє здійснити стеганографічний захист текстового повідомлення методом блокового приховування.

1) Початкові вихідні дані відповідають прийнятим при моделюванні попереднього ме­тода.

2) Поділ масиву контейнера на блоку здійснюватимемо наступним чином: якщо кіль­кість біт у повідомленні (LM) не перевищує кількості стовпців масиву С (Y), то один блок відповідає окремому стовпцю масиву С. Якщо Lm > Y, то один блок дорівнює 1від окремого стовпця масиву, де х = ceil(Lm   Y). Значення х повинне бути відомим одержувачеві.

Даний алгоритм вбудовування реалізований у модулі (М.24). Початок модуля є ана­логічним модулю (М.22). Лічильник о дозволяє виокремлювати відповідну співвідношенню х частину від загальної довжини стовпця масиву - визначаються індекси рядків, починаючи зякого (r1) і по який (r2) виділяється фрагмент А y-го стовпця. Для кожного блоку А проводиться обчислення біту парності b. Якщо b не дорівнює поточному значенню біту повідомлення, з блоку А випадковим чином обирається індекс n пікселя, інтенсивність кольору якого збіль­шується або зменшується на одиницю, в залежності від того, парним чи непарним є первинне його значення. За допомогою функції putregion(S, A, r1, y) здійснюється вбудовування моди­фікованого масиву A до загального масиву S, починаючи з рядка r1 і стовпця y в бік найстар­ших індексів рядків і стовпців відповідно. На рис.5.12 зобра-

жено пікселі контейнера, ін­тенсивність кольору яких за­знала змін (для наочності встановлено чорний колір даних пікселів). Очевидним є зниження кількості моди­фікованих пікселів порівня­но з результатом застосу­вання двох попередніх ме­тодів (див. рис.5.10 і 5.11).

S :=

Рис.5.12. Розсіяння бітів повідомлення по масиву контейнера

3) Модуль видобування:

S <- С

М vec 4- Str2veC(M)

Mvec_bin^ D2B!MveCl) for j s 2.. rows IM vec)

M vec_bin stach|M vec_bin D2B| M for a s 1 і

П <- la- 1! floorIX ^ j) + 1 r2 <- a floor [X- i) for v = 1

break if y + (ff-l)Y>LH Л <- submatrixi S гґ1 rr2 :y:y) b«- 0

for x e 1rows! Д! P <- D2B( AX} LSB <- R,

vec

ill

(М.24)

1

ЬьЬЇ LSB

if  b * M

vec_biny+(ff_1} Y

n <- ceillrndl rows! ДЇЇ} Дп 4- Дп + 1   if modi Дп, Дп <r- Дп - 1 otherwise S <- putregion! S ,A,r1 ,y)

2=0

(М.25)

M* = Пузиренко О.Ю., 2005 p.'v€>tZL4"

Результати обчислення візуального спотворення зведені до табл.5.1.

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

Для приховування даних можна також скористатися палітрою кольорів, присутніх у форматі зображення [80]. Палітра з N кольорів визначається як список пар індексів (І, ЛІ), який визначає відповідність між індексом і та його вектором колірності Л (так звана таблиця кольорів). Кожному пікселю зображення ставиться у відповідність певний індекс у таблиці. Оскільки порядок кольорів у палітрі не є важливим для відтворення загального зображення, конфіденційна інформація може бути прихована шляхом перестановки кольорів у палітрі. Існує N! різних способів перестановки N-кольорової палітри, що є цілком достатнім для прихову­вання невеликого повідомлення. Але методи приховування, в основі яких лежить порядок формування палітри, також є нестійкими: будь-яка атака, пов'язана зі зміною палітри, знищує вбудоване повідомлення.

Найчастіше сусідні кольори в палітрі не обов' язково є схожими, тому деякі стегано-методи перед приховуванням даних проводять упорядкування палітри таким чином, що суміжні кольори стають подібними. Наприклад, значення кольору може бути упорядковане за від­станню d у RGB-просторі, де d = VR2 +G2 + B2 [3]. Оскільки ЗСЛ є більш чутливою до змін яскравості кольору, то доцільно сортувати вміст палітри саме за значеннями яскравості сигналу. Після сортування палітри можна змінювати НЗБ індексів кольору без особливого спотворення зображення.

Деякі стеганометоди [81] передбачають зменшення загальної кількості значень кольо­рів (до N/2) шляхом "розмивання" зображення. При цьому елементи палітри дублюються таким чином, щоб значення кольорів для них розрізнялося несуттєво. У підсумку кожне значення кольору розмитого зображення відповідає двом елементам палітри, які обираються у відповідності до біта приховуваного повідомлення.

Можна запропонувати наступний варіант реалізації методу заміни палітри.

1) Початкові дані стандартні.

2) Таблицю кольорів одержимо, використовуючи підмасив інтенсивності червоного R (М.26). Секретність таблиці визначатиме алгоритм її формування на основі масиву R. Упо­рядкуємо таблицю T за інтенсивністю кольору за допомогою функції csort(T, c), яка дозволяє переставити рядки масиву T таким чином, щоб відсортованим виявився стовпець c.

На рис.5.13 наведено фрагменти ори­гінальної та відсортованої колірних таблиць.

Т =

 

1

2

1

1

255

2

2

251

3

3

250

4

4

249

5

5

247

6

6

244

 

 

 

251

251

230

252

252

75

253

253

196

254

254

193

255

255

55

256

256

2

■sort

 

1

2

1

99

0

2

49

1

3

256

2

4

98

3

5

139

4

6

174

5

 

 

 

251

3

250

252

2

251

253

74

252

254

108

253

255

109

254

256

1

255

Рис.5.13. Оригінальна (T) та відсортована (Tsort) колірні таблиці

(М.26)

Tsort = csort(Tr2)

На рис.5.14 наведено графічну інтерпретацію колірних таблиць.

Рис.5.14. Графічне відображення колірних таблиць T і Tsort

3) Модуль вбудовування повідомлення до контейнера (М.27) реалізує наступний алго­ритм. Формування бітового вектора з символьного рядка аналогічне наведеному у (М.22). З масиву контейнера C шляхом перебирання індексів рядків (x) і стовпців (y) змінній pix присвоюються значення інтенсивностей кольору відповідних пікселів контейнера. Внутрішнім циклом i є 1..256 проводиться пошук відповідного значення інтенсивності у сортованій колір­ній таблиці Tsort. У випадку знаходження, змінній n присвоюється значення індексу, який відповідає даній інтенсивності у таблиці T (1-й стовпець Tsort). Змінній 3 - значення індексу,

який відповідає даній інтенсивності у таблиці Tsort. Якщо НЗБ індексу n не дорівнює поточному біту приховуваного повідомлення, відбувається пошук найближчого індексу, НЗБ якого дорівнює бітові повідомлення. Пошук ведеться вниз (L) і вгору (H) від індексу 3.

Попереднє присвоєння змінним A,l та значення -/+1000 гарантує неможливість дублювання попередніх значень X, якщо просування вниз або вгору від індексу 3 не призвело до виконання

(М.27)поставленої умови (останнє є можливим при знаходженні індексу 3 надто близько до нижньої

або верхньої межі відсортованої колірної таблиці). Після знаходження значень Xl і Xh пікселю контейнера S присвоюється те з них, яке по колірній вісі знаходиться найближче до інтенсив­ності відповідного пікселя контейнера C (pix). Після вбудовування останнього біта повідом­лення зовнішній цикл переривається - контейнер заповнений.

4) При видобуванні повідомлення на основі масиву R* необхідно сформувати таблиці

кольорів T* і T*sort. Модулі, що реалізують дану операцію, ідентичні (М.26).

5) Модуль ви­добування (М.28) для М* := інтенсивності кожного пікселя масиву S* про­водить пошук відпові­дної інтенсивності у колірній таблиці. При знаходженні, -му еле­менту бітового повідо­млення М* присвоює­ться значення НЗБ ін­дексу, що відповідає даній інтенсивності у невідсортованій табли­ці. Одержаний бітовий вектор в кінці модуля переводиться на рядок символів.

Результати обчислення візуального спотворення зведені до табл.5.1.

5.3.2.6. Метод квантування зображення

До методів приховання в просторовій області можна також віднести метод кван­тування зображення [3,82], заснований на міжпіксельній залежності, яку можна описати деякою функцією 0. У найпростішому випадку можна обчислити різницю Єі між суміжними пікселями сІ та сІ+1 (або сІ-1 та сІ) і задати її як параметр функції 0: Ai = 0(сІ - сІ+1), де Ai -дискретна апроксимація різниці сигналів с - Сі+1. Оскільки Аі є цілим числом, а реальна різниця Сі - Сі+1 - дійсним, то виникають помилки квантування 6*і = Аі - Єі. Для сильно корельованих сигналів ця помилка близька до нуля: « 0. У даному методі приховування інформації про­водиться шляхом корегування різницевого сигналу Аі. Стеганоключ являє собою таблицю, яка кожному можливому значенню Аі ставить у відповідність визначений біт, наприклад:

A І -4 І -3 І -2 І -1 І 0|1І2|3І4 b       10        110       0        10 1

Для приховування i-го біта повідомлення обчислюється різниця Аі. Якщо при цьому bi не відповідає секретному бітові, який необхідно приховати, то значення Аі замінюється най­ближчим Aj, для якого така умова виконується. При цьому відповідним чином корегуються значення інтенсивностей пікселів, між якими обраховувалася різниця Аі. Видобування секрет­ного повідомлення проводиться відповідно до значення b*i, що відповідає різниці А*і.

Наведемо приклад програми, що реалізує метод квантування зображення.

1) Вихідні дані є стандартними.

2) Стеганоключ обчислимо за модулями (М.29) і (М.30). При цьому модуль (М.29) повертає всі можливі різниці сигналів (від -255 до +255), а модуль (М.30) - значення бітів, які відповідають цим різницям.

рі<-1

for  X Е 1 X* for ye 1 .. Y* pix <- S*

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51 


Похожие статьи

Г Ф Конахович - Оцінка ефективності систем захисту інформації в телекомунікаційних системах

Г Ф Конахович - Комп'ютерна стеганографія теорія і практика