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

Страницы:
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 

Секретний генератор псевдовипадкової перестановки (ГПВП) може бути ефективно реалізований на основі генератора псевдовипадкової функції (ГПВФ) [98], який, як і ГПВП, виробляє різні функції, що не піддаються прогнозуванню, при кожному окремому значенню ключа; але множина значень функції не повинна дорівнювати області її визначення. ГПВФ легко реалізується з секретної хеш-функції Н шляхом об'єднання аргументу i з секретним ключем K та взяття від результуючого бітового рядка функції H:

МІ) = H(K°i), (5.2)

де K°i - об'єднання (конкатенація) бітових рядків K та i; fK(i) - результуюча псевдовипадкова функція від i, яка залежить від параметру K.

Генератор Luby та Reckoff а побудований наступним чином. Запис виду а Фb розуміє під собою побітове додавання за модулем 2 аргументу a до аргументу b, причому результат додавання має ту саму розмірність, що й а. Нехай i - рядок двійкових даних довжиною 2-І. Розділимо і на дві частини - x та y довжиною l кожна, а ключ K - на чотири частини: K1, K2, K3, K4. Тоді

У = У Ф fK1( x) = У Ф H (K1 о x); x = x Ф fK 2( y) = x Ф H (K 2 ° y); У = У Ф fK3( x) = У Ф H (K 3 о x);

x = x Ф fK 4( У) = x Ф H (K 4 о у ); повернення у о x .

Для кожного значення ключа K алгоритм повертає псевдовипадкову перестановку з чисел {1, 22-1}. Luby та Reckoff показали, що перестановка є настільки ж секретною, наскільки й генератор ПВФ. Вони також навели простий алгоритм перестановки з {1, 22-11}. Якщо значення функції fK являють собою достатньо довгі бітові послідовності, той самий ефект можна отримати, прийнявши, що y - перші l біт рядка І, а x - останні l + 1 біт.

Вищенаведена конструкція дозволяє отримати перестановку PK2k з {1, ... , 2k} для до­вільного k. Проте, коли кількість біт контейнера становить N існує потреба перестановки PKN з {1, N}. Перевагою методу, запропонованого у [79] є те, що існує можливість обмежитися лише наявними для PKN аргументами. Нехай k = [log2(N)] (квадратні дужки означають округ­лення до найменшого цілого, що більше або дорівнює аргументу). Тоді 2k-1 < N < 2k . При

цьому підраховуються значення PK2 (1) , PK2 (2) , ... і видаляються з послідовності будь-які

числа, що перевищують N й одержують таким чином значення (1), (2), ... . Це є мож­ливим, коли функція перестановки обчислена для зростаючих значень аргументів починаючи з

одиниці. Таким чином, генератор ПВП P N для довільного N може бути побудований на основі алгоритму Luby та Reckoff а.

Але, коли N є складеним (як у випадку зображення), існує більш зручний спосіб побудови ГПВП. Наведений нижче алгоритм оснований на блочному кодуванні з довільним розміром блоку [79,99]. Кількість біт контейнера повинна становити собою складене число з двох співмножників приблизно однакового порядку, тобто N = X-Y для деяких X та Y. У випадку, коли дані приховуються у НЗБ пікселів цифрового зображення, параметри X та Y єрозмірами даного зображення. Для одержання координат i-го пікселя зображення для прихо­вання біту повідомлення є {1,    N}) необхідно виконати наступні обчислення:

x=div(i, Y)+1; (5.3а) y = mod(i, Y)+1; (5.3 б)

x = mod(x+fK1(y), X)+1; (5.3в)

У = mod(y+fK2( x), Y)+1; (5.3г)

x = mod(x+fK3(y), X)+1; (5.3д)

i = (x, y) або i = (x-1)-Y+y , (5.3е)

де div(i, X) і mod(i, X) - функції, що повертають, відповідно, ціле і залишок від ділення І на X. Другий варіант формули (5.3 е) застосовний у випадку, якщо масив зображення попередньо було розгорнуто у вектор (по рядкам). Додавання одиниці необхідне при індексації елементів масиву зображення з 1.

Перші два раунди алгоритму ((5.3а) - (5.3г)) необхідні для того, щоб "розсіяти" біти приховуваного повідомлення серед найменш значущих бітів контейнера. При цьому 1-й раунд надає випадкового характеру x-координатам пікселя-контейнера, а 2-й - у-координатам. 3-й раунд необхідний для запобігання атаці на відкритий (незашифрований) текст. У випадку лише

двох раундів нехай i = (b-1)-Y+а, а (і) - значення перестановки. Якщо криптоаналітик здатний припустити значення а і може одержати пару "відкритий текст - кодований текст" (i' = (z-1)-Y+а, PKN(і')) для деякого z, то він здатний встановити b. Навіть при тому, що автори [79] вважають, що пропонований ними алгоритм буде достатньо стійким з трьома раундами, вони визнають, що у деяких випадках може знадобитися 4 або більше раундів, що ще більше підвищить стійкість алгоритму до зламу.

Промоделюємо даний метод у програмі MathCAD.

1) Повідомлення, яке треба приховати: М := "© Пузиренко О.Ю., 2005 р.". Контейнер С -підмасив B синьої колірної компоненти зображення рис.5.3. При цьому кількість біт у повідом­ленні: LM := strlen(M), LM = 200 біт; геометричні розміри контейнера: X := rows(C), X = 128 пікс.; Y := cols(C), Y = 128 пікс.; N := X-Y, N = 16384.

2) Для формування ключа використаємо модуль (М.21), який дозволяє на основі пер­винного ключа Ko > 2 сформувати вектор, що міститиме 5R пар ключів (кожна пара ключів використовуватиметься у відповідному раунді обчислення координат x та y).

(М.21)

У даному модулі почергово використовується три функції: num2str(d) - перетворення аргументу-числа d на відповідний рядок A; substr(A, 0, 3) - виділення фрагменту рядка A, що містить 3 перші символи рядка; str2num(a) - зворотне перетворення a-фрагменту на число, яке й присвоюється s-му елементові масиву K. У випадку Ks > 255 за допомогою аналогічної комбінації функцій число скорочується на один символ.

Наведемо приклад обчислення пар ключів при Ko = 125 і 5Н = 6 (рис.5.12).

Рис.5.12. Приклад обчислення ключів K

3) Вбудовування бітів повідомлення до псевдовипадкових пікселів контейнера вико­наємо за модулем (М.22), який реалізує алгоритм (5.3). На початку модуля масиву S прирівню­ється вихідний масив С. Також проводиться конвертування повідомлення з рядкового формату

на вектор двійкових даних Mvec_bin. При обчисленні координат x та y використовується операція векторизації, яка дозволяє поелементно додавати по модулю 2 двійкові вектори K та y (або x). При цьому розмірність зазначених векторів повинна бути однаковою, для чого використовується функція submatrix(...).

(М.22)

Оцінимо ступінь "розсіяння" бітів повідомлення по масиву контейнера при різній кі­лькості раундів ЗЗ обчислення координат x та y (рис.5.11). Формування рисунку проводиться аналогічно до формування рис.5.10. Як видно, прийнятний рівень розсіяння досягається вже при З = 4.

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

4) На приймальній стороні повинні бути відомими первинний ключ Ko*, масив колір-ності, до якого проводилося вбудовування (S*). З останнього одержуються значення X*, Y*, N*. Модуль, призначений для видобування прихованого повідомлення, наведено нижче. Зазначимо, що у даному методі і в подальшому при вбудовуванні повідомлення не проводилося попереднє додавання стартової і кінцевої міток до останнього. Відповідно, при видобуванні рядок симво­лів крім корисного змісту міститиме ще й довільний набір символів, що входять до кодування ASCII. Відсутність етапів виділення корисного повідомлення з усієї множини символів у наступних модулях жодним чином не говорить про неможливість здійснення зазначеного. Забажанням, наведені модулі можна легко адаптувати для можливості аналізу попередньо вбудованих міток (за аналогією з вищерозглянутими методами).

for  І £ 1 .. —

8

( І ^

х* <- floor+1

w

у* <- mod(LY*} + 1 for  S ё 1 .. К

х* <- mod| х* + B2D (D2B(k*2 5_1)Ф submatrix(D2B(y*),1,8,1 ,1))J ,x*J+ 1 y* <- mod|V + B2D^D2B(k*2 J © submatrix(D2B(x*), 1,8,1,1)j |,y*j + 1

M* vec_bini *~ Г1

(М.23)

for j Ё 1

rows|M*vec bin;

M* vec- *~ B2D|submatrix[M* vec bin ,8 j - 7 = 8 j, 1 ,1')'}

Страницы:
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 


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

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

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