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

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

- слабкою чутливістю людського ока до незначних змін кольорів зображення, його яскравості, контрастності, вмісту в ньому шуму, спотворень поблизу контурів;

- зрештою, добре розробленими останнім часом методами цифрової обробки зобра­жень.

Але, як зазначається в [5], остання причина викликає й значні труднощі в забезпеченні стійкості ЦВЗ: чим більш досконалими стають методи компресії, тим менше лишаєтьсяможливостей для вбудовування сторонньої інформації. Розвиток теорії й практики алгоритмів компресії зображень призвів до зміни уявлень про техніку вбудовування ЦВЗ. Якщо спочатку пропонувалося вбудовувати інформацію в незначущі біти для зменшення візуальної помітності, то сучасний підхід, навпаки, полягає у вбудовуванні ЦВЗ до найбільш істотних областей зображень, руйнування яких призводитиме до повної деградації самого зображення. Тому цілком зрозумілим є необхідність врахування стеганоалгоритмами не лише алгоритмів компресії зображень, але й властивостей зорової системи людини (ЗСЛ).

А///А

1 %

5.3.1. Основні властивості ЗСЛ, які необхідно враховувати при побудові стеганоалгоритмів

Властивості ЗСЛ можна поділити на дві групи: низькорівневі ("фізіологічні") і високо-рівневі ("психофізіологічні") [75,76]. Майже до середини 90-х р.р. дослідники брали до уваги, головним чином, низькорівневі властивості зору. В останні роки позначилася тенденція по­будови стеганоалгоритмів з урахуванням й високорівневих характеристик ЗСЛ.

Виділяють три найважливіші низькорівневих властивості, які впливають на помітність стороннього шуму в зображенні: чутливість до зміни яскравості (контрасту) зображення, частотна чутливість й ефект маскування.

На рис.5.2 зображено залежність мінімального контрасту AI/I від яскравості I. Як видно, для середнього діапазону зміни яскравості, контраст приблизно постійний, тоді як для малих і вели­ких яскравостей значення порогу не-розрізненості (AI) зростає. Встанов­лено, що AI « (0.01-Ю.03)-! для се­редніх значень яскравості.

Крім того, у [5] відзначено, що результати новітніх досліджень суперечать "класичній" теорії і пока­зують, що при малих значеннях яс­кравості поріг нерозрізненості змен­шується, тобто ЗСЛ є більш чутливою до шуму в цьому діапазоні [5].

Частотна чутливість ЗСЛ проявляється в тому, що людина є набагато більше сприй­нятливою до низькочастотного (НЧ), чим до високочастотного (ВЧ) шуму. Це пов'язане з нерівномірністю амплітудно-частотної характеристики ЗСЛ.

Складові елементи ЗСЛ розщеплюють відеосигнал, що надходить, на окремі складові, кожна з яких збуджує нервові закінчення ока через низку підканалів. Виділювані оком складові мають різні просторові й частотні характеристики, а також різну просторову орієнтацію (горизонтальну, вертикальну, діагональну) [77]. У випадку одночасного впливу на око двох складових з подібними між собою характеристиками збуджуються одні й ті самі підканали. Це призводить до ефекту маскування, який полягає у збільшенні порогу виявлення зорового сигналу в присутності іншого сигналу, що має аналогічні характеристики. Тому, адитивний шум набагато помітніше на НЧ (однотонних) ділянках зображення, порівняно з ВЧ ділянками, тобто в останньому випадку спостерігається маскування. Найбільш сильно даний ефект прояв­ляється, коли обидва сигнали мають однакову орієнтацію і місце розташування [5].

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

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

log(I)

Рис.5.2. Чутливість до зміни контрасту і поріг

нерозрізненості AIківського випадкового поля, розподіл імовірностей якого описується, наприклад, узагальненим гаусівським законом.

У [5] пропонується наступна узагальнена схема вбудовування даних у зображення:

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

2) обчислити поріг маскування на основі знання локальної величини енергії;

3) масштабувати значення енергії впроваджуваної інформації у кожному компоненті таким чином, щоб воно було менше за поріг маскування.

Багато алгоритмів вбудовування даних так чи інакше використовують цю схему.

Високорівневі властивості ЗСЛ поки що рідко враховуються при побудові стегано-алгоритмів [5]. Їхньою відмінністю від низькорівневих є те, що ці властивості проявляються "вторинно", обробивши первинну інформацію від ЗСЛ, мозок видає команди на "підстрою­вання" зорової системи під зображення. Основні з цих властивостей наступні:

1) чутливість до контрасту - висококонтрастні ділянки зображення і перепади яскравості звертають на себе більш значну увагу;

2) чутливість до розміру - більші ділянки зображення є "помітнішими" порівняно із меншими за розміром. Причому існує поріг насичення, коли подальше збільшення розміру не відіграє ролі;

3) чутливість до форми - довгі й тонкі об' єкти викликають більшу увагу, чим закруглені й однорідні;

4) чутливість до кольорів - деякі кольори (наприклад, червоний) є "помітнішим" за інші. Цей ефект підсилюється, якщо фон заднього плану відрізняється від кольорів фігур на ньому;

5) чутливість до місця розташування - людина схильна у першу чергу розглядати центр зображення. Також уважніше розглядаються фігури переднього плану, ніж заднього;

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

Останнім часом створена достатня кількість методів приховування даних в цифрових зображеннях, що дозволяє провести їхню класифікацію і виділити наступні узагальнюючі групи

[3]:

- методи заміни в просторовій (часовій) області;

- методи приховування в частотній області зображення;

- широкосмужні методи;

- статистичні (стохастичні) методи;

- методи спотворення;

- структурні методи.

Далі розглядаються особливості, які характерні для кожної з виділених груп. Парале­льно наводяться програмні модулі у системі MathCAD, які дозволяють реалізувати той або інший метод, а також проміжні і кінцеві результати відповідних стеганографічних перетворень. До кожного модуля наводяться стислі пояснення щодо його функціонування і використаних функцій системи MathCAD. При цьому найбільш вичерпні пояснення даються до перших методів, що розглядаються. В подальшому значення функцій, зміст яких було розкрито раніше, не пояснюються. Повну уяву про можливості і правила використання (синтаксис) типових об' єктів мови MathCAD можна отримати, наприклад, з [25,26]. Крім того у даній роботі в додатках А, В, С, D подана стисла інформація стосовно вбудованих операторів, функцій і директив, а також системних змінних та програмних операторів системи MathCAD.

5.3.2. Приховування даних у просторовій області зображення

Алгоритми, що описуються в даному підрозділі, вбудовують приховувані дані в області первинного зображення. Їх перевагою є те, що для вбудовування нема необхідності виконувати обчислювально складні і тривалі лінійні перетворення зображень.

Кольорове зображення С представлятимемо через дискретну функцію, яка визначає вектор кольору с(х, у) для кожного пікселя зображення (х, y), де значення кольору задає три­компонентний вектор у колірному просторі. Найбільш розповсюдженим способом передавання кольору є модель RGB, у якій основні кольори - червоний, зелений і синій, а будь-який інший колір може бути представлений у вигляді зваженої суми основних кольорів. Вектор кольору с(х, у) у RGB-просторі представляє інтенсивність основних кольорів. Повідомлення вбудову­ється за рахунок маніпуляцій колірними складовими {R(x, у), G(x, у), B(x, у)} або безпосеред­ньо яскравістю А,(х, у) є {1, 2, Lc}.

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

5.3.2.1. Метод заміни найменшого значущого біта

Метод заміни найменшого значущого біта (НЗБ, LSB - Least Significant Bit) є най­поширенішим серед методів заміни в просторовій області [3,5,9,14,19,20].

Молодший значущий біт зображення несе в собі менше всього інформації. Відомо, що людина у більшості випадків не здатна помітити зміну в цьому біті. Фактично, НЗБ є шумом. Тому його можна використовувати для вбудовування інформації, шляхом заміни найменш значущих бітів пікселів зображення бітами секретного повідомлення При цьому, для зобра­ження в градаціях сірого (кожен піксель зображення кодується одним байтом) обсяг вбудову­ваних даних може складати 1/8 від загального об'єму контейнера. Наприклад, у зображення розміром 512x512 можні вбудувати ~ 32 кБ інформації. Якщо модифікувати два молодших біта (що також практично непомітно), то дану пропускну здатність можна збільшити ще вдвічі.

Популярність даного методу обумовлена його простотою і тим, що він дозволяє приховувати у відносно невеликих файлах досить великі об' єми інформації (пропускна здат­ність створюваного прихованого каналу зв'язку складає від 12,5 до 30%). Метод зазвичай працює з растровими зображеннями, які представлені у форматі без компресії (наприклад, GIF і ВМР ) [3] 2). Метод НЗБ має низьку стеганографічну стійкість до атак пасивного та активного порушників. Основним його недоліком є сильна чутливість до найменших спотворень контей­нера. Для послаблення цієї чутливості часто додатково застосовують завадостійке кодування.

Перед імпортом зображення-контейнера в документ MathCAD його необхідно під­готувати у відповідному редакторі і записати у вигляді файлу в поточний (для формованого документу MathCAD) каталог роботи (слід зауважити, що для уникнення можливих проблем з підтримкою кирилиці бажано, щоб адреса розміщення файлу на диску, як, власне, і ім' я файлу, складалися з латинських символів). MathCAD підтримує формати BMP, JPEG, GIF, PCX і TGA. Як було зазначено вище, формати BMP і GIF, дозволяють зберігати зображення практично без втрати їх якості і тому є більш придатними в ролі носіїв інформації.

Розглянемо структуру BMP-файлу: він містить точкове (растрове) зображення і скла­дається з трьох основних розділів: заголовку файлу, заголовку растру і растрових даних. Заголовок файлу містить інформацію про файл (його тип, об'єм і т.п.). До заголовку растру винесена інформація про ширину і висоту зображення, кількість бітів на піксель, розмір растру, глибину кольору, коефіцієнт компресії тощо. Нас передовсім цікавитимуть растрові дані -інформація про колір кожного пікселя зображення. Колір пікселя визначається сполученням трьох основних колірних складових - червоного, зеленого і синього (скорочено - RGB), кожній з яких відповідає своє значення інтенсивності, яке може змінюватися від 0 до 255. Отже, за кожен з колірних каналів відповідає 8 бітів (1 байт), а глибина кольору зображення в цілому -24 біти (3 байти).

Взагалі, формати BMP і GIF використовують алгоритми компресії, але останні є найпростішими, що дозволяє зберігати зображення практично без втрати його якості.

1) Імпорт графічного файлу виконується операцією Picture з позиції Insert головного меню програми. У модулі, що при цьому з'явився, необхідно заповнити шаблон даних у лівому нижньому куті, для чого в подвійних лапках ввести ім'я файлу (або ж, за необхідності, - повний шлях його розміщення на диску) і натиснути клавішу Enter.

Приклад кольорового зображення, відтвореного за допомогою операції Picture приведений на рис.5.3. Дане зображення має розмір 128x128 пікселів, глибина кольору - 24 біти. Для можливості обробки зображення, необхідно перевести колірні характеристики кожного його пікселя у числову матрицю. Для виконання цієї операції застосо­вується функція READRGB("iM^_cpai/my"), що повертає масив, з трьох підмасивів, які, у свою чергу, несуть інформацію про розклад кольорового зображення на колірні компоненти R, G і B :

C := READRGB("C.bmp").

При цьому три колірних компоненти розміщуються одна за одною у спільному масиві C (рис.5.4,а). На рис.5.4,б приведена гра­фічна інтерпретація масиву C у вигляді зображення з градаціями сі­рого. Образ ліворуч характеризує інтенсивність червоного у кожному

пікселі зображення "C.bmp", середній - інтенсивність зеленого, а той, що праворуч, інтенсивність синього.

Рис.5.3. Зображення-контейнер

С =

а)

R

б)

Рис.5.4. Графічна інтерпретація масиву колірних компонентів контейнера-оригіналу

Для відокремлення колірних складових можна використати вбудовані функції виді­лення відповідних колірних компонентів, кожна з яких повертає масив, який відповідає певному колірному компоненту графічного файлу:

R := READ_RED("C.bmp");   G := READ_GREEN("C.bmp");   B := READ_BLUE("C.bmp").

2) В якості повідомлення, яке треба приховати, використаємо, наприклад, перші вісім абзаців зі вступу до даної роботи. Текст повідомлення збережемо у файлі "M.txt" поточного для формованого документу MathCAD каталогу роботи у такому форматі: тип файлу - звичайний текст (*.txt); кодування - кирилиця (Windows) 3\ Імпорт текстового повідомлення можна вико­нати за допомогою функції READBIN("iM^_cpai/my", "тип_формату_даних"). У даному разі дані представлені як 8-бітове беззнакове ціле число (байт): M := READBIN("M.txt", "byte").

Результатом обчислення даного виразу є матриця-стовпець (вектор), кожен елемент якої відповідає розширеному ASCII-коду відповідного символу (літери) повідомлення, яке імпортується. У десятковому вигляді коди символів можуть приймати значення від 0 до 255; у двійковому вигляді для цього є достатнім використання 8 бітів на один символ - так зване однобайтове кодування, на що, зрештою, вказує параметр "byte" як аргумент функції READBIN (див. додатки B та E ).

3)

Існує можливість проведення приховання файлів будь-якого формату. Єдина умова, що при цьому повинна виконуватися - обрання файлу-контейнеру належного об'єму (наприклад, орієнтовне співвідношення між об'ємами файлу-контейнера і файлу-повідомлення для ме­тоду НЗБ - 8:1).

Фрагмент імпортованого повідомлен­ня, а саме коди перших 16 символів (включно з пробілами) у десятковому і двійковому видах, зображено на рис.5.5 4). Необхідно зауважити, що за умовчанням нижня границя індексації масивів дорівнює 0. В даній роботі індексація починається з 1 (якщо не буде оговорено ін­ше), що, зокрема, можна встановити записом ORIGIN := 1 на початку документу або ввести 1 у позицію Array Origin на вкладці Built-In Variables діалогового вікна Worksheet Options з меню Tools системи MathCAD.

Перевірку імпортування файлу повідо­млення (якщо в якості повідомлення викорис­товується звичайний текст) можна виконати записом vec2str(M). Зазначена функція повер­тає рядок символів, які відповідають вектору M ASCII-кодів 5).

3) Перед приховуванням текстового файлу "M.txt" у контейнері "C.bmp", його можна захистити криптографічним кодуванням. Для наочності і стислості викладення використаємо модифікований код Віженера. Взагалі ж для стійкості стеганоповідомлення до можливих спотворень рекомендується застосовувати код з виправленням помилок.

Алфавіт джерела повідомлення задаємо у вигляді ASCII-кодів: i := 1..256; Aj := i - 1 (для більшої захищеності, елементи вектору A можна переставити за певним законом, що відповідним чином враховувати при розшифровуванні).

Об'єм алфавіту джерела: Na := rows(A), де rows(A) - функція, яка повертає кількість рядків масиву A. У даному разі: Na = 256 символів.

З символів алфавіту задаємо секретний ключ, наприклад: K := "@J|eKc-l980". Кількість символів у ключі (за відповідною функцією): Nk := strlen(K), Nk = 11 символів.

Об'єм повідомлення, яке підлягає кодуванню: Nm := rows(M), Nm = 5390 символи. (включно із скритими службовими ASCII-символами "переводу рядка" і "повернення каретки", див. додаток Е).

4) Для зміни формату відображуваних даних у MathCAD необхідно виконати наступне: вибрати

операцію Result з меню Format (або двічі натиснути ліву кнопку маніпулятора безпосередньо на виведених даних) для появи діалогового вікна Result Format; на вкладці Display Options у випадаючому меню Radix обрати необхідну основу системи числення: decimal (десяткова), binary (двійкова), octal (восьмерична) або hexadecimal (шістнадцятирична).

5) Можлива ситуація некоректного відображення кириличних символів в одержуваному рядку. Цю

проблему можна вирішити використанням кодової сторінки 1251 замість 1250 і 1252, що можна задати заміною параметрів "1250" і "1252" на параметр "1251" у реєстрі ОС Windows: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \Nls \ CodePage STRING 1250, значення "c_1251.nls" (якщо було "c_1250.nls") STRING 1252, значення "c_1251.nls" (якщо було "c_1252.nls") За можливі проблеми, що виникли після редагування реєстру автор роботи відповідальності не несе. Для більш безпечного редагування реєстру краще скористатися спеціалізованою програмою, наприклад, XP Tweaker RE. Крім того, некоректність відображення кириличних символів у системі MathCAD жодним чином не впливає на результати стеганографічних перетворень, оскільки алгоритми оперують з двійковими відображеннями ASCII-кодів, а видобуте з контейнера повідомлення можна без проблем прочитати в будь-якому з поширених текстових редакторів.

М

 

1

 

 

1

1

178

 

1

10110010b

2

237

 

2

11101101b

3

244

 

3

11110100b

4

238

 

4

11101110b

5

240

 

5

11110000b

6

236

 

6

11101100b

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


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

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

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