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

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

(М.116)

Якщо до сегменту було вбудовано «1», середні значення оригінального (с) і моди­фікованого (c') сегментів матимуть однакові знаки, якщо «0» - різні. Недоліком такої системи є необхідність наявності оригінального аудіофайлу у приймальної сторони. Можливим виходом з цієї ситуації є запис модифікованого каналу замість 2-го, при цьому оригінальний 1 -й канал залишається без змін: S := augment(C<1>, S1 ). Таким чином, одночасно передаватимуться як пустий, так і заповнений контейнери. Зазначена можливість вбудовування враховується наступною зміною у модулі (М.116):

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

5) Обчислені показники звукового спотворення аудіоконтейнера вбудовуванням пові­домлення з розширеним спектром занесено до табл.5.6.

5.4.4. Приховування даних з використанням ехо-сигналу

Даний метод розуміє під собою вбудовування даних до аудіосигналу-контейнеру шляхом введення до нього ехо-сигналу [14]. Дані приховуються зміною трьох параметрів ехо-сигналу: початкової амплітуди, швидкості загасання і зсуву (рис.5.72). Коли зсув (або затримка) між первинним і ехо-сигналом зменшується, два сигнали змішуються. Починаючи з деякого значення затримки ССЛ стає не спроможною виявити різницю між цими двома сигналами, а ехо-сигнал сприймається лише як додатковий резонанс. Вказане значення важко визначити точно, оскільки воно залежить від якості первинного звукозапису, типу звуку, для якого формується ехо-сигнал, і, зрештою, слухача. У загальному випадку, автори [14] прийшли до ви­сновку, що для більшості звуків і більшості слухачів злиття відбувається при затримці близько однієї мілісекунди.

Кодер використовує два часи затримки: один для представлення двійкового нуля (зсув), а інший - для представлення двійкової одиниці (зсув + 8). Обидва часи затримки є меншими граничного часу, за якого ССЛ здатна розпізнати ехо-сигнал. Крім зменшення часу затримки

(М.117)

Рис.5.72. Регульовані параметри ехо-сигналу

Рис.5.73. Дискретний у часі експоненціал

для забезпечення непомітності також можна встановити рівні початкової амплітуди і часу загасання, які були б нижчими за відчутні ССЛ.

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

Розглянемо приклад з двома імпульсами (один для копіювання первинного сигналу, а інший - для формування ехо-сигналу). Очеви­дно, що збільшення кількості імпульсів призведе до зростання кількості ехо-сигналів.

На рис.5.74 представлено системні функції для кодування двійкових «1 » і «0». Обробка сигналу у відповідності до рис.5.74, а або б матиме результатом закодований сигнал

(рис.5.75).

Затримка 8ш між первинним і ехо-сигналом є залежною від того, яке представ­лення або системна функція була викорис­тана. Представлення «1 » створюється затрим­кою у 81 секунд, тоді як представлення «0» -затримкою у 80 секунд.

Для того щоб закодувати більше од­ного біта, первинний сигнал розкладається на менші сегменти. Кожен сегмент розглядається як окремий сигнал і в нього може бути вбудовано (шляхом ехо-відображення) один необхідний біт інформації. Результуючий за­кодований сигнал (утримуючий декілька біт) являє собою нове об'єднання всіх незалежно закодованих сегментів первинного сигналу.

На рис.5.76 зображено приклад, при якому сигнал було розділено на 7 рівних се­гментів, позначених як a, b, c, d, e, f та g. Нехай необхідно, щоб сегменти a, c, d та g містили «1 ». Отже, для кожного з них треба застосувати системну функцію представлення одиниці (рис.5.74, а). Кожен сегмент індиві­дуально згортається з системною функцією. Нулі, поміщені до сегментів b, e та f, коду­ються аналогічним чином, використовуючи спосіб представлення нуля (рис.5.74, б). Одер­жані після згортання з відповідною систем­ною функцією результати повторно об' єдну-ються. Для досягнення мінімальної помітності повторного з' єднання, у [14] попередньо

пропонується створити окремі "одиничний" і "нульовий" ехо-сигнали, повторюючи первинний і використовуючи відповідні представлення «1 » і «0». Отримані в результаті сигнали зображені на рис.5.77.

"Одиничний" і "нульовий" ехо-сигнали містять, відповідно, лише одиниці і нулі. Для

Рис.5.74. Представлення ехо-сигналу

Рис.5.75. Приклад ехо-відображеннятого щоб об' єднати ці два сигнали, також створюються два змішувальних сигнали (рис.5.78), що являють собою двійкову послідовність, стан якої залежить від того, який біт треба приховати в тому або іншому сегменті первинного сигналу.

"Одиничний" і "ну­льовий" змішувальні сигнали помножуються на відповідні їм ехо-сигнали. Іншими сло­вами, останні масштабуються одиницею, або нулем протя­гом всієї тривалості сигналу в залежності від того, який біт передбачається помістити до будь-якого його окремого се­гменту. В подальшому два результати додаються один до одного. Необхідно зауважити, що "нульовий" змішувальний сигнал являє собою інверсію "одиничного" змішувального сигналу, крім того, фронти переходів кожного сигналу є похиленими. Сума обох змі­шувальних сигналів завжди дорівнює одиниці. Все це дозволяє одержати плавний перехід між сегментами, кодо­ваними різними бітами, а та­кож запобігає різким змінам у звучанні результуючого (змі­шаного) сигналу.

Блок-схема, що пред­ставляє повний процес вбудо­вування, зображена на рис.5.79.

Видобування вкладеної інформації розуміє під собою виявлення інтервалу між ехо-сигналами окремих сегментів. Для цього необхідно дослідити у двох позиціях амплітуду авто-кореляційної функції (АКФ) косинус-перетворення Фур'є на­турального логарифму спектру потужності (або так званого кепстра) кодованого сигналу [92,93]:

РА{[\Псощ,і.(Е(х))} }.(5.61)

Рис.5.76. Розбиття первинного сигналу на менші сегменти для вбудовування інформації, що являє собою двійкову послідовність

а

b

с

d

e

 

g

 

 

 

 

 

 

 

J S

 

1111111

0 0 0 0 0 0

Рис.5.77. Створення "одиничного" і "нульового" ехо-сигналів (світліша лінія)

"Ну/іьоВий" змішуВа/іьний сигнал

Рис.5.78. Змішувальні сигнали

Рис.5.79. Процес вбудовування

Розглянемо приклад процесу видобування, наве­дений у [14]. Нехай одержано закодований сигнал, що являє собою таку послідовність імпульсів, в якій останні відділені один від одного визначеним інтервалом і характеризуються експонентним загасанням амплітуди. В усіх інших точках сигнал дорівнює нулеві (рис.5.80).

Наступним кроком є пошук кепстра ехо-версії. Результат обчислення кепстра робить інтервал між ехо-сигналом і первинним сигналом дещо більш виразним.

Нажаль, результат обчислення кепстра до того ж дублює ехо-сигнал через кожні 8 секунд. На рис.5.81 це зображено послідовністю імпульсів на виході. Крім того, амплітуда імпульсів, що представляють ехо-сигнали, є малою по відношенню до первинного сигналу. Як на­слідок, їх важко виявити. Розв'язок даної проблеми полягає в обчисленні АКФ кепстра. Одноразовим відо­браженням сигналу із затримкою 8 (рис.5.82), отримуємо результат, зображений на рис.5.83.

Рис.5.80. Зразок сигналу: x[n]= anu[n]; (0 < a < 1)

Рис.5.82. Зразок відображеного сигналу

Рис.5.81. Кепстр від ехо-кодованого сигналу

Рис.5.83. Відображена версія зразка сигналу

Значно посиленим є лише перший імпульс, оскільки його підкріплено наступними за ним імпульсами. Таким чином, в позиції першого імпульсу ми отримуємо сплеск. Подібно до першого імпульсу, сплеск повторюється через 81 або 80 секунд після первинного сигналу. Остаточні складові імпульсів наближаються до нуля, що дозволяє ефективно послаблювати шуми.

Розглянемо критерій прийняття рішення стосовно того, який біт («1» чи «0») прихо­ваний у часовій затримці між первинним сигналом і затримкою 8 перед сплеском АКФ. Згадаємо, що «1» кодувалася розміщенням ехо-сигналу через 81, а «0» - через 80 секунд післяоригіналу. При видобуванні, біту присвоюється одиниця, якщо значення АКФ через 81 секунд є більшим, ніж через 80 секунд. В іншому випадку - присвоюється нуль.

За твердженням авторів [14], за допомогою даного методу цілком можливо при­ховувати і видобувати інформацію у вигляді двійкового коду в потік аудіоданих з мінімальною зміною первинного сигналу при ПЗ приблизно у 16 біт/сек. Під мінімальною зміною розумі­ється те, що середньостатистична людина не здатна відчувати жодної суттєвої різниці між модифікованим і первинним сигналами. Проте, у своїй же роботі [108] автори вказують на те, що розроблений метод не є універсальним - для деяких аудіосигналів неможливо одержати достатньо високий коефіцієнт правильно розпізнаних при видобуванні бітів навіть за відсут­ності завад у каналі зв' язку.

Розглянемо реалізацію методу ехо-кодування за допомогою системи MathCAD.

1) Початкові дані: контейнер з частотою дискретизації Тд = 22050 Гц та кількістю рівнів квантування Q = 16 — Ctotal := READWAV("C.wav"); С := Ctotal<1> (rows(C) = 20191) повідом­лення M := "Олександр" довжиною NM := strlen(M), NM = 9 символів або LM := 8NM, LM = 72 біт.

2) Нехай нульова затримка між первинним і ехо-сигналом складає 8о := 20 дискретних відліків (або 80/Тд = 0.907 мс), а одинична - 8і := 30 відліків (або 8і/тд = 1.361 мс).

"Одиничний" і "нульовий" ехо-сигнали одержимо шляхом простого зміщення на 80(1) відліків елементів контейнера-оригіналу і поелементного підсумовування одержаних векторів (попередньо помножених на коефіцієнт загасання а) з вектором C - програмні модулі (М.118) і (м.119).

for

ІЕ 1.5С

с0.+-о

Cq <- ct stack] Cq _С] rowsfCgj = 2021 1

rOWSI Cg) - rOWS(C) = 20

for   ІЕІ . 51

C1. <r- 0

C1 <r- ct stack!C1 =cl

rows і C^) = 20221

rows| C1j - rows(C) = 30

(М.118)

(М.119)

Фрагменти (перші 70 відліків) результату зсуву сигналу C на 8о і 8і відліків зображено на рис.5.84.

Рис.5.84. "Нульовий" (а) та "одиничний" (б) ехо-сигнали сигналу С при а = 0.5

3) Для можливості приховання більше одного біта первинний сигнал C необхідно розділити на менші сегменти, кожен з яких розглядатиметься як окремий сигнал і до якого шляхом ехо-відображення може бути вбудовано необхідний біт даних. Обчислимо кількість відліків в одному сегменті, виходячи з бітової довжини LM повідомлення (шляхом округлення до найближчого найменшого цілого): N5 := floor(rows(C)/Lm), N5 = 280.

4) Виходячи із зазначеної при описі методу необхідності у похилених фронтах імпу­льсів змішувальних сигналів (трапецеїдальні імпульси), попередньо задаємося наступним:

- розмах імпульсу: U := 1;

- тривалість фронтів: т := 20 відліків;

- тривалість імпульсу на рівні U: T := N5 - т, T = 260 відліків.

Амплітуди відліків ім­пульсу формуються за допо­могою комплексного програм­ного модуля (М.120).

Графічну інтерпрета­цію обчислення модуля зобра­жено на рис.5.85.

(М.120)

Рис.5.85. Трапецеїдальний імпульс

Формування змішувальних сигналів виконаємо, користуючись програмним модулем (М.121). При цьому приймаємо, що кожен біт повідомлення кодується 1 / 2 переднього фронту імпульсу, його одиничним рівнем та 1 / 2 заднього фронту. Після формування змішувального сигналу для всіх LM біт повідомлення, даний сигнал дописується нульовим або одиничним рівнем, в залежності від значення останнього (Lm-го) біту. Нульовий змішувальний сигнал одержується з одиничного з урахуванням того, що їх сума дорівнює одиниці.

Змішувальні сигнали для першої вісімки бітів повідомлення представлено на рис.5.86.

(М.121)

Рис.5.86. "Нульовий" о) і "одиничний" і) змішувальні сигнали

5) Безпосередньо вбудовування бітів повідомлення до аудіоконтейнера виконує про­грамний модуль (М.122). В залежності від значення поточного біту повідомлення, проводиться виокремлення сегменту заданої розмірності (N5) з відповідного ехо-сигналу та зі змішувального сигналу, які в подальшому поелементно перемножуються (для цього можна використати й операцію векторизації). Отримані для кожного біту вектори s' формують загальний вектор заповненого контейнера S, до якого після вбудовування останнього символу повідомлення дописуються елементи контейнера-оригіналу, що не зазнали модифікації. Очевидно, що кількість елементів сформованого вектора S відповідатиме аналогічному показнику для C:

rows(S) = 20191 .

Одержаний вектор об' єднуємо з немодифікованим другим каналом і записуємо

<1>

результат до файлу: WRITEWAV("S_echo.wav", тд, Q) := augment(S, Ctotal ).

6) Для видобування прихованого повідомлення передбачається наступне: одержувачеві відомі розмірність блоків, на які розбивається контейнер (N*5 := N5), значення нульової та одиничної затримок (8*о := 8о, 8*і := 8і). Програмний модуль видобування даних - (М.123). До його основи покладено обчислення автокореляційної функції кепстру (5.61) (для більш надій­ного видобування аналізується окіл відліків 8і 8*і).

Mvec <t- str2vec(M)

Mvec_bin D2B|Mvec1| for Je 2..NM

Mvec_bin <~ stack|Mvec_bin =D2B|MveCj)) for m e 1 lm if Mvec ЬІПт = 0

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


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

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

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