Основи стегоаналізу
В даний час, у зв’язку з розвитком глобальних комп’ютерних мереж з’явилася можливість швидко і економічно вигідно передавати електронні документи в різні точки планети. З іншого боку, величезна кількість передавати матеріалу дуже часто супроводжується його незаконним копіюванням і розповсюдженням. Це особливо стало можливим з появою мережі Інтернет, де кожен може прочитати останні новини, послати… Читати ще >
Основи стегоаналізу (реферат, курсова, диплом, контрольна)
Список скорочень
BMP — Bitmap Picture
GIF — Graphics Interchange Format
TIFF — Tagged Image File Format
JPEG — Joint Photographic Experts Group
UNICS — UNIplexed Information and Computing System
BWT — Burrows-Wheeler Transform
LZ — Lempel-Ziv Algoritm
AES — Advanced Encryption Standard
Вступ Проблема захисту інформації (ЗІ) від несанкціонованого доступу існувала в усі часи протягом існування людства. Для її вирішення уже в Древньому світі виділилося два основних шляхи, що існують і до сьогодні криптографія і стеганографія. Слово «стеганографія» має грецьке коріння і буквально перекладається як «тайнопис». На відміну від криптографії, яка приховує вміст секретного повідомлення, стеганографія приховує саме його існування. Тайнопис зазвичай використовується спільно з методами криптографії, таким чином, доповнюючи її.
Метою захисту інформації є:
— запобігання відтіканню, розкраданню, втраті, перекручуванню, підробці інформації;
— запобігання загрозам безпеки особистості, суспільства, держави;
— запобігання несанкціонованим діям зі знищення модифікації, перекручення, копіювання, блокування інформації; запобігання інших форм незаконного втручання в інформаційні ресурси та інформаційні системи, забезпечення правового режиму документованої інформації як об'єкта власності;
— захист конституційних прав громадян на збереження особистої таємниці та конфіденційності персональних даних, що є в інформаційних системах;
— збереження державної таємниці, конфіденційності документованої інформації згідно з законодавством;
— забезпечення прав суб'єктів в інформаційних процесах при розробці, виробництві та застосуванні інформаційних систем, технологій та засобів їх забезпечення.
Стеганографічні методи дозволяють передавати секретні повідомлення, вбудовані в контейнери, таким чином, що неможливо виявити навіть сам факт передачі.Вбудовування повідомлень призводить до змін деяких властивостей контейнерів. При порушенні природності контейнера зміни можуть бути виявлені навіть неозброєним оком (якщо контейнер — зображення). Назве це суб'єктивним стегоаналіза.З іншого боку, якщо зміни, що супроводжують вбудовування повідомлення в контейнер, не можуть бути виявлені самим атакуючим, то можливе застосування спеціальних програмних засобів (програмний стегоаналіза).Фахівців в області стегоаналіза (за аналогією з криптоаналіз) будемо називати стегоаналітікамі або, інакше, атакуючими (противниками), а спроби стегоаналітіков виявити, перезавантажити або видалити вбудоване повідомлення — атаками.
Тому на даний час актуальнтм залишається пошук прихованих даних.
Виявлення самого факту наявності прихованого повідомлення є найбільшим результатом, адже майже неможливо при виявленні повідомлення вилучити його з файлу. На даний час широко використовуються мультимедійні файли для приховання даних, тому в даній роботі розглянемо стегоаналіз цих форматів.
I. Сучасні методи стеганографії
1. Задачі стеганографії
В даний час, у зв’язку з розвитком глобальних комп’ютерних мереж з’явилася можливість швидко і економічно вигідно передавати електронні документи в різні точки планети. З іншого боку, величезна кількість передавати матеріалу дуже часто супроводжується його незаконним копіюванням і розповсюдженням. Це особливо стало можливим з появою мережі Інтернет, де кожен може прочитати останні новини, послати запит в цифрові бібліотеки, дізнатися інформацію про фірми, події, а також продавати свою продукцію за допомогою електронної комерції-Той факт, що необмежену кількість копій документів проводиться і поширюється нелегально, змусив людей шукати способи приховування авторської інформації в аудіо, відео, текстових та графічних файлах. Наприклад, одним з підходів до приховування такої інформації для аутентифікації і маркування електронної авторської продукції, є використання цифрових водяних знаків, розробка яких являє собою найбільш перспективний напрямок розвитку стеганографії. Слово стеганографія походить від грецьких слів steganos — секрет та graphy — запис і означає тайнопис. Хоча її методи відомі з давніх часів, стеганографія як наука з’явилася на базисі загальної теорії тайнопису, представленої Клодом Шенноном.
Інтерес до стеганографії з кожним роком вага більше зростає, в основному з двох причин.
По-перше, аудіо-відео індустрія та індустрія друку зацікавлені в тому, щоб захистити свої цифрові фільми, аудіозаписи, книги і мультимедійні продукти. Умови ринкової економіки продемонстрували, що цифрові продукти дуже легко можна скопіювати й поширювати з порушенням авторських прав.
По друге, обмеження багатьох урядів у використанні криптографії, послужили серйозним стимулом для того, щоб люди передавали приватні повідомлення з допомогою інших повідомлень-контейнерів.
На сьогоднішній день існує досить багато програмних продуктів, застосовуваних для цілей стеганографії і реалізують методи впровадження конфіденційних даних у графічні, текстові, звукові і відео файли. Основною вимогою до стеганографічні методи є прозорість переданих конфіденційних даних у тому сенсі, що зміна певного числа інформаційних біт в Стег-контейнері (об'єкті в якому ховається інформація) не повинно призвести до особливих втрат його якості. Теоретично в комп’ютерної стеганографії в якості Стег-контейнера може виступати будь-який файловий формат, проте як показує практика, найбільш поширеним типом носія є файли зображення формату BMP. Це пояснюється тим, що при передачі файлів великого розміру (наприклад, по електронній пошті) використовуються методи стиснення, з яких для цілей стеганографії найбільш переважними є ті, які забезпечують стиснення без втрат. Такі види стиснення типові для зображень формату BMP, GIF, TIFF і ін Основною особливістю графічних файлів формату BMP, зокрема 24-х бітових зображень, є їх здатність приховувати всередині себе великі обсяги додаткових даних без особливих втрат якості. Відомий ряд робіт, присвячених питанням синтезу систем стеганографії, що дозволяють збільшити обсяг приховуваної інформації в 3−4 рази в порівнянні з методом приховання в малозначних бітах (МЗБ). Значний внесок у вирішення даних питань внесли Ейджі Кавагучі і Річард Йсон. Метод МЗБ полягає у використанні похибки дискретизації, яка завжди існує в оцифрованих зображеннях або аудіо-і відео-файлах. Дана похибка дорівнює найменшому значущому розряду числа, що визначає величину колірної складової елемента зображення (пікселя).
ІІ. Стегоаналіз в сучасних методах захисту інформації
1. Основи стегоаналізу Стеганографічні методи дозволяють передавати секретні повідомлення, вбудовані в контейнери, таким чином, що неможливо виявити навіть сам факт передачі.
Вбудовування повідомлень призводить до змін деяких властивостей контейнерів. При порушенні природності контейнера зміни можуть бути виявлені навіть неозброєним оком (якщо контейнер — зображення). Назве це суб'єктивним стегоаналіза.
З іншого боку, якщо зміни, що супроводжують вбудовування повідомлення в контейнер, не можуть бути виявлені самим атакуючим, то можливе застосування спеціальних програмних засобів (програмний стегоаналіза).
Фахівців в області стегоаналіза (за аналогією з криптоаналіз) будемо називати стегоаналітікамі або, інакше, атакуючими (противниками), а спроби стегоаналітіков виявити, перезавантажити або видалити вбудоване повідомлення — атаками.
Розглянуті в даній статті загрози і атаки в рівній мірі можуть бути застосовані як до стегосистеми, так і до цифрових водяним знакам. Справа втому, що ці два напрями мають спільне коріння і іноді невидимі цифрові водяні знаки трактуються як гілка стеганографії (або один з додатків). У ряду випадків, дійсно, для вбудовування цифрового водяного знаку використовуються ті ж методи, що і для вбудовування секретного повідомлення. Правда, в силу особливостей реалізації, методи вбудовування водяних знаків менш схильні до таких впливів, як геометричні перетворення або деякі операції обробки зображень, при яких змінюються молодші біти.
Звичайно, стеганографічні методи і методи вбудовування водяних знаків мають певні відмінності, і кожне з цих напрямків має свій шлях розвитку. Однак розглядаються нами атаки дозволяють перевірити стійкість як стегосістем, так і систем, заснованих на використанні цифрових водяних знаків.
2. Атаки на стегосистеми У ряді випадків модель стегосистеми формулюють у вигляді так званої «проблеми ув’язнених»: ув’язнені Аліса і Боб обмінюються секретними повідомленнями, однак це відбувається на очах (і в деяких випадках при активній участі) охоронця Віллі. В даному випадку охоронець Віллі символізує реального супротивника, загрозливого нормальному функціонуванню стегосистеми.
Можливі різні моделі його поведінки: по-перше, Віллі може тільки стежити за повідомленнями, по-друге, він має можливість впливати на канал передачі повідомлень між ув’язненими, що ускладнює вирішення проблеми. По-третє, в охоронця Віллі є можливість змінювати самі повідомлення Аліси і Боба.
Таким чином, ми маємо три типи атакуючих:
— Пасивний супротивник, який тільки шпигує за повідомленнями, але не може в них нічого змінити.
— Активний супротивник може модифікувати дані, які відправляються ув’язненими. Наприклад, він може модифікувати текст, не видозмінюючи його семантичний зміст. Реальний приклад активного охоронця — це цензура телеграм урядом Сполучених Штатів під час Другої світової війни: семантичний зміст телеграм не могло бути змінено, але цензори злегка видозмінювали точну редакцію тексту, замінювали слова на синоніми, що руйнувало можливі таємні послання.
— Зловмисний супротивник може не тільки видозмінювати повідомлення укладених, але і складати нове з декількох або переписати послання цілком. У цьому випадку укладеним можна сподіватися на що завгодно, тільки не на отримання свободи! На щастя, реальні ситуації, коли починає діяти злісний охоронець, досить рідкісні, тому випадок злісного охоронця найчастіше не розглядається.
Загрози
Як вже було зазначено, до основних загроз безпеки стегосістем відносяться: виявлення стеганографічного каналу, витяг, руйнування та підміна прихованого повідомлення. Зауважимо, що в якості виродженого випадку існує ще одна загроза, а саме — заборона на яку б то не було передачу послань.
Виявлення стеганографічного каналу є загрозою «нижнього рівня». Вона може бути здійснена будь-яким типом супротивника. Якщо Віллі здатний виявити стеганографічний канал, то говорять, що стегосистеми є нестійкою. Захист від цієї загрози вважається основним завданням стеганографії.
Витяг прихованого повідомлення полягає в тому, що противник не тільки визначає існування стеганографічного каналу, але й виокремлює приховане повідомлення. Ця загроза може бути здійснена активним або зловмисно супротивником.
Руйнування прихованого повідомлення на увазі внесення в Стег таких допустимих (не порушують вимоги природності контейнера) змін, які не дозволять одержувачу витягти вбудоване повідомлення. Така загроза може бути здійснена як активним, так і зловмисно супротивником.
Підміна прихованого повідомлення, будучи найбільш сильною загрозою стеганографічні системі, може бути здійснена лише злочинні супротивником. Суть її полягає у витяганні наявного в Стег прихованого повідомлення і розміщенні замість нього іншого (помилкового) повідомлення.
Найбільш складною в реалізації є загроза виявлення стеганографічного каналу. Далі, в порядку зменшення складності слідують:
підміна прихованого повідомлення (для здійснення якого в загальному випадку необхідно знати як алгоритм приховування, так і секретний ключ);
витяг прихованого повідомлення (для чого потрібно знати алгоритм приховування);
руйнування прихованого повідомлення (яке можливо зробити не знаючи ні алгоритм приховування, ні тим більше стегоключ).
На перший погляд здається дивним те, що найбільш складну з точки зору реалізації загрозу (виявлення стеганографічного каналу) може здійснити навіть найбільш слабкий (пасивний) супротивник. Насправді тут немає ніякого протиріччя, оскільки це можливо лише в тому випадку, коли відправник нарушет вимога природності контейнера, що і викликає підозру супротивника. В іншому випадку, задача виявлення стеганографічного каналу є нетривіальною.
Атаки Головною метою будь-якої атаки на стегосістему є, перш за все, — виявлення стеганографічного каналу. Максимально досяжним результатом при реалізації атаки — отримання повної інформації про стеганографічні системі.
Зауважимо, що в наявній літературі, як правило, лише перераховуються можливі типи атак, без яких би то не було коментарів.
Атака з відомим контейнером
Це найслабша з усіх можливих атак. Маючи в розпорядженні вихідний контейнер, Віллі після його порівняння з контейнером, посланим Алісою, може зробити висновок про існування стегоканала. Подібну атаку може призвести пасивний супротивник.
Дещо складніше наступна різновид цієї атаки — Аліса і Боб використовують канал з повторенням, при цьому в кожний контейнер, крім прихованого повідомлення, можуть бути внесені деякі випадкові зміни. Тоді задача Віллі полягає у визначенні того, що міститься в контейнері - випадкова шумова послідовність або приховане повідомлення.
Атака з вибором контейнера
У цьому випадку Віллі сам вибирає тип контейнера (найбільш зручний для нього з точки зору подальшого аналізу) і створює умови, за яких Аліса і Боб можуть скористатися для передачі прихованого повідомлення тільки цим контейнером.
Як і в попередньому типі атаки, порівняння початкового і одержаного від Аліси контейнерів може допомогти Віллі зробити висновок про наявність чи відсутність стеганографічного каналу. Атаку може здійснити пасивний супротивник.
Атака з відомим Стег Це більш сильна атака, оскільки, розташовуючи Стег, але не знаючи вихідного контейнера, Віллі не може однозначно встановити факт існування стегоканала. Його завдання в цьому випадку зводиться до аналізу переданого Алісою контейнера і визначенням, чи є він Стег або порожнім контейнером. Подібну атаку може здійснити активний або зловмисний супротивник.
Атака з вибором Стег
Така атака припускає, що Віллі відомо деякий безліч Стег і, можливо, реакція Боба на деякі їх них. Тоді задача Віллі полягає в «нав'язуванні» йому при певних умовах якогось конкретного Стег і аналізі отриманої відповіді.
Подібна атака може бути здійснена лише за наявності каналу з повторенням. Її може реалізувати активний або зловмисний супротивник.
Атака з відомим прихованим повідомленням
Можливі принаймні два варіанти розглянутої атаки:
відомий Стег, відповідний прихованого повідомленням. У цьому випадку завдання Віллі полягає у визначенні секретного ключа (атака може бути здійснена активним або зловмисним супротивником);
відповідний прихованого повідомленням Стег невідомий. У цьому випадку завдання є нетривіальною і, взагалі кажучи, може не мати рішення.
Атака з вибором прихованого повідомлення
Це найсильніший тип атаки, яку може виробити тільки зловмисний супротивник. Сценарій атаки зводиться до наступного: Віллі «підкидає» відоме йому приховане повідомлення Алісі і, отримавши Стег з цим повідомленням, призначене Бобу, аналізує його з метою встановити секретний ключ.
Крім того, існує ряд атак, спрямованих на руйнування вбудованого повідомлення. В основному даний тип атак застосовується для руйнування або видалення цифрових водяних знаків, рідше для руйнування вбудованого повідомлення (хоча далі по тексту використовується термін «вбудоване повідомлення»).
Стиснення з втратою даних В даний час для зменшення розміру файлів повсюдно використовують стиснення із втратою даних. Для цифрових зображень найбільш популярне використання формату JPEG. Однак для багатьох методів вбудовування повідомлення перетворення заповненого контейнера може бути фатальним: вбудоване повідомлення або буде пошкоджено, або просто втрачено.
Геометричні перетворення
Стійкість до геометричних спотворень є неодмінною вимогою, що пред’являється до стегосистеми. Однак не всі існуючі на даний момент системи витримують такого роду атаки.
Можливе використання наступних геометричних перетворень:
1. Зменшення розміру контейнера шляхом відрізання граничних областей. Таке перетворення може частково зруйнувати вбудоване повідомлення і привести до втрати деякої частини інформації.
2. Поворот. Іноді поворот контейнера-зображення навіть на незначний кут може призвести до часткового або повного руйнування вбудованого повідомлення.
3. Масштабування. У цьому випадку використовуються різні коефіцієнти масштабування по горизонталі і вертикалі, що також може призвести до часткового руйнування вбудованого повідомлення.
Атаки, спрямовані на видалення вбудованого повідомлення
Зашумленіє контейнера. Внесення до заповнений контейнер додаткового шуму неминуче тягне за собою втрату сполучення.
З іншого боку, операція фільтрації також призводить до знищення вбудованого повідомлення. У цьому випадку використовують або низькочастотний і високочастотний фільтри окремо, або обидва фільтра спільно.
Зміна гістограми — розтягнення або вирівнювання гістограми, які іноді використовуються для компенсації недостатнього освітлення.
Комбіновані атаки
Всі перераховані вище атаки, спрямовані на руйнування або видалення вбудованого повідомлення, можуть комбінуватися один з одним. Наприклад, можна вирівняти гістограму, а потім перетворити контейнер у формат JPEG або трохи обрізати контейнер, а потім провести операцію фільтрації. Однак не слід забувати, що багаторазове вплив може призвести до виникнення помітних спотворень контейнера. Поява таких спотворень може насторожити одержувача Стег, і учасники можуть домовитися про зміну стеганографічного каналу.
У будь-якому випадку, перш ніж використовувати той чи інший тип атаки, спрямований на руйнування вбудованого повідомлення, необхідно виявити стегоканал. Однак застосовувати геометричні атаки до будь-якого файлу, який може використовуватися в якості контейнера, безглуздо. По-перше, багато стегосистеми стійкі до перетворень і трансформацій контейнера, а по-друге, може не вистачити обчислювальних та людських ресурсів. Тут в якості прикладу можна навести ситуацію, в якій опинилися агенти ФБР, коли спробували без відповідних ресурсів контролювати не тільки телефонні переговори, але і Інтернет-трафік.
На закінчення необхідно відзначити, що наведені в статті типи атак використовуються не тільки для виявлення, руйнування або вилучення вбудованих повідомлень, але й для аналізу стійкості стеганографічних методів.
Запропонована класифікація атак не є остаточною і незмінною. Удосконалення стеганографічних методів приведе до появи нових методів стегоаналіза.
3. Методи стегоаналізу цифрових зображень Для передачі прихованої інформації використовуються різні засоби і методи, основні з яких базуються на алгоритмах стеганографії. При цьому різного роду «зловмисники» вбудовують інформацію, маск і руя її в інших повідомленнях, які виглядають нешкідливо і не дзв и вають підозра у потенційного перехоплювача (рис. 1). Стеганографія мають багату історію і широкий спектр різних методів, кожен з яких характерний для своєї епохи. Так, наприклад, в давнину застосовували таємниць про пись на табличках, покритих воском, відомий випадок передачі соо б щения у вигляді татуювання на голові гінця. На початку XX століття використовувалися симпатій і етичні чорнило, у часи Другої світової війни широке распростран е ние отримав метод мікрофотографій.
Рис. 1. Лена. Jpg. Зліва — вихідне зображення 300×300 точок, праворуч це ж зображення, що містить 31 Кб прихованих даних У наш час бурхливий розвиток обчислювальної техніки привело до виникнення особливої ??науки, так званої цифровий комп’ютерної стеганографіі. Зявилися нові стеганографічні методи, в основі яких лежать особливості подання інформації в комп’ютерних файлах, мережах і т.п.
Методи сучасної комп’ютерної стеганографії знаходять призначення в області у військовій та урядового зв’язку, захисту авторських прав, для вирішення завдань забезпечення інформаційної безпеки. Актуальность проблеми інформаційної безпеки постійно зростає і ст і мулірующее розробку як нових методів стеганографії, так і методів стегоаналіза — виявлення прихованої інформації.
Повсюдне поширення комп’ютерної техніки та глобальних комп’ютерних мереж, простота в експлуатації обладнання та доступність для користувача стеганографічного програмного забезпечення дозволяють сьогодні кожному бажаючому використовувати методи стеганографії при пер е дачі інформації. Варто відзначити, що цими методами з легкістю можуть скористатися і зловмисники, наприклад, для прихованої передачі до н фіденціальной інформації, комерційних і державних секретів і т.п. Тому на сьогоднішній день стоїть проблема побудови методів обн, а ружения прихованих даних у переданих повідомленнях — завдання так називаючи е мого стегоаналіза.
За останні роки арсенал доступних стеганографічних програм із, а метно розширився. В даний час існує більше сотні комерц е ських, безкоштовних і умовно-безкоштовних пакетів різного призначення: пр про грами, написані під операційні системи UNIX, MS — DOS, Wi n dows та ін, а також Кросплатформені додатка; мають графічний та н терфейс або інтерфейс командного рядка; підтримують тільки один або відразу декілька форматів контейнерів; мають або не мають вбудовані засоби криптографії і аутентифікації; інтегруються в середу або виконувані окремо і т.д.
Найбільш популярні програми стеганографії і стегоаналіза для файлів графічних форматів, такі як Hide and Seek, Jpeg — Jsteg, OutGuess, Steganos, JPHide, F 5, Stegdetect та ін часто засновані на алгоритмах, отриманих в рамках наукових досліджень.
Для вбудовування секретного повідомлення в контейнер застосовується алг про ритм вбудовування інформації, який є основою стегосистеми.
Одне з головних завдань алгоритму вбудовування — внесення непомітних для сприйняття людиною змін в контейнер. Ця вимога зазвичай огр, а нічівает ємність контейнера, тобто максимальна кількість прихованої інфо р мації, яке здатний вмістити в себе контейнер. Ємність до н контейнера залежить від характеристик самого контейнера, алгоритму включення інфо р мації, а іноді і від секретного повідомлення. Спеціальний алгоритм витягти е ня інформації призначений для перевірки наявності се до ретного повідомлення всередині контейнера та його вилучення. Для кожного, а л горітма вбудовування існує свій алгоритм вилучення і н формації.
Перед вбудовуванням в контейнер, з метою підвищення безпеки та компактності, секретне повідомлення зазвичай стискується і шифрується. Для стиснення використовуються різні алгоритми, наприклад алгоритми сімейства LZ або на основі BWT. Шифрування інформації проводиться у разі якомусь заздалегідь заданому алгоритму, наприклад, AES, Blowfish і т.д. Для підлогу біля чення ключа шифрування і дешифрування використовується пароль користувача або результат обчислення хеш-функції від нього. Для коректного витягти е ня інформації пароль повинен бути переданий приймаючій стороні за про т ремого безпечному каналу передачі інформації. Алгоритми шифрів, а ня, стиснення, хешування найчастіше вбудовані в стеганографічний пакет.
Як контейнери зазвичай вибираються дані, які не викликають п про дозренія, наприклад, фотографії, популярні музичні композиції та відеоролики. Файл з включеною (або вбудованої) прихованої інформацією, передається по відкритомуканалу передачі інформації одержувачу повідомл е ня.
Передбачається, що вся проходить по відкритому каналу інформація може бути перехоплена і досліджена.
Тому одне з основних напрямків при розробці та покращенні м е тодов стеганографії - досягнення найбільшої «непомітності» ін формації всередині стегоконтейнера, і, навпаки, основне завдання стегоаналіза — виявленя факту присутності прихованої інформації.
Різні методи стегоаналіза підрозділяються на дві основні катег про рії:
1. Методи спрямованого стегоаналіза — призначені для роботи тільки з наперед відомими стеганографічного алгоритму т мами.
2. «Сліпі» або універсальні методи — призначені для всіх алгоритмів та мов стеганографії.
Методи обох категорій побудовані з урахуванням припущення про недост п ності початково го пусто го кон контейнера, який був використаний для включ е ня інформації в досліджуваний стегоконтейнер.
Крім того, стегоаналіза «сліпими» методами часто не вимагає знання використаного алгоритма включення інформації, алгоритму шифрування, стиснення, ключа і довжини повідомлення.
Методи спрямованого стегоаналіза розроблені під конкретні відомі алгоритми стеганографії. Вони, як правило, дають трохи кращі результати в порівнянні з універсальними методами.
Позитивною стороною універ р сальних методів є можливість роботи з будь-якими, у тому числі і невідомими стеганографічного алг про ритмами.
Відомі методи «сліпо го» стегоаналіза зазвичай побудовані на алгоритмах, потребуючих попереднього «навчання» на стадіях заповнення і порожніх контейнерів.
Більшість досліджень в області стегоаналіза направлено на реш ті ня основного завдання: визначення факту наявності прихованої інформації в контейнері. Для вирішення цього завдання застосовуються різні методи. На й більш розпрощався поранені статистичні алгоритми. Основну роль у таких методах грає статистична модель невідомого порожнього контейнера. У побудованій моделі знаходять параметри та характеристики, найбільш чувс т вітельние до включення прихованої інформації. По розбіжності між теорет і чеський моделлю і досліджуваним контейнером визначається ймовірність присутності секретного повідомлення.
стегоаналіз цифровий атака мультимедійний
ІІІ. Розробка програмних засобів виявлення наявности прихованої інформації в мультимедійних файлах
1. Постановка задачі
Мета-виявити чи є в даній картинці приховане повідомлення.Для виявлення факту використаєм гістограму забраження.
Гістограма (в фотографії) — це графік розподілу півтонів зображення, в якому по горизонтальній осі представлена?? яскравість, а по вертикалі - відносна кількість пікселів з?? даними значенням яскравості.
Вивчивши гістограму, можна отримати загальне уявлення про правильність експозиції, контрасті і колірному насиченні знімка, оцінити необхідну корекцію як при зйомці (зміна експозиції, колірного балансу, освітлення або композиції знімка), так і при подальшій обробці.
Зазвичай на екрані цифрового фотоапарата показується лише гістограма світлоти (виключення складають дорогі дзеркальні камери), а гістограма для всіх колірних каналів доступна вже на комп’ютері, в додатках для обробки растрової графіки.
Для цього потрібно побудувати гістограму зображення за допомогою програми. По-перше, завантажити зображення оригінал, та зображення з прихованим повідомленням. По-друге, провести розподіл півтонів зображення. І після цього провести аналіз гістограм.Якщо в гістограми будуть відрізнятися, тоді можна сказати, що в даному зображенню присутня прихована інформація, що вплинуло на розподіл півтонів.
2. Алгоритм виявлення прихованої інформації в BMP форматах Для знаходження гістограми використаємо такий алгоритм дій:
1. Будуємо масив, заповнюємо нулями. Зазвичай масив [0. 255]
2. Цикл, для кожного пікселя:
Виділяємо потрібний колірний канал або знаходимо яскравість за формулою. Піксел -> значення
3. Отримане значення має укладатися в діапазон індексів масиву, наприклад [0. 255].
4. Збільшуємо значення елемента масив [значення] на 1.
Кінець циклу.
Отриманий масив і являє собою гістограму, елементи масиву — означають висоти стовпчиків.
unit untHistogramme;
interface
uses
Windows, Forms, ExtCtrls, Controls, StdCtrls, Classes,
untCalcImage, ComCtrls;
type
TfrmHistogramme = class (TForm)
bvbImages: TBevel;
lblImage: TLabel;
btnFermer: TButton;
lstImage: TListBox;
grbHistogrammes: TGroupBox;
imgRouge: TImage;
imgVert: TImage;
imgBleu: TImage;
lblRouge: TLabel;
lblVert: TLabel;
lblBleu: TLabel;
TrackBar: TTrackBar;
procedure FormShow (Sender: TObject);
procedure lstImageDrawItem (Control: TWinControl; Index: Integer;
Rectangle: TRect; State: TOwnerDrawState);
procedure lstImageClick (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure TrackBarChange (Sender: TObject);
private
{ Dйclarations privйes }
public
{ Dйclarations publiques }
Image: Pointer;
procedure RafraichirListeImages;
procedure AfficherHistogrammes;
end;
var
frmHistogramme: TfrmHistogramme;
implementation
uses
Graphics,
untMDIImage, untPrincipale;
{$R *.DFM}
{ TfrmHistogramme }
procedure TfrmHistogramme. RafraichirListeImages;
var
NumImage: Integer;
begin
lstImage.Clear;
for NumImage := 0 to ListeImages. Count — 1
lstImage.Items.Add (TfrmMDIImage (ListeImages.Items[NumImage]).Caption); end;
procedure TfrmHistogramme. FormShow (Sender: TObject);
begin
imgRouge.Canvas.Rectangle (0, 0, 256, 256);
imgVert.Canvas.Rectangle (0, 0, 256, 256);
imgBleu.Canvas.Rectangle (0, 0, 256, 256);
RafraichirListeImages;
end;
procedure TfrmHistogramme. lstImageDrawItem (Control: TWinControl;
Index: Integer; Rectangle: TRect; State: TOwnerDrawState);
procedure CopieImage (CanvasDest: TCanvas; Rect: TRect; BitmapSource: TBitmap);
var
X, Y: Integer;
begin
for X := Rect. Left to Rect. Right do
for Y := Rect. Top to Rect. Bottom do
CanvasDest.Pixels[X, Y] := BitmapSource.Canvas.Pixels[(X — Rect. Left) * (BitmapSource.Width — 1) div (Rect.Right — Rect. Left), (Y — Rect. Top) * (BitmapSource.Height — 1) div (Rect.Bottom — Rect. Top)];
end;
var
Bitmap: TBitmap;
begin
Bitmap := TBitmap. Create;
Bitmap.Width := Rectangle. Right — Rectangle. Left;
Bitmap.Height := Rectangle. Bottom — Rectangle. Top;
Bitmap.Canvas.Font := lstImage.Canvas.Font;
Bitmap.Canvas.Brush := lstImage.Canvas.Brush;
Bitmap.Canvas.Pen := lstImage.Canvas.Pen;
Bitmap.Canvas.FillRect (Rect (0, 0, Rectangle. Right — Rectangle. Left, Rectangle. Bottom — Rectangle. Top));
if Index < lstImage.Items.Count then
begin
Bitmap.Canvas.TextOut (70, (Rectangle.Bottom — Rectangle. Top — Bitmap.Canvas.TextHeight (lstImage.Items[Index])) div 2, lstImage. Items[Index]); CopieImage (Bitmap.Canvas, Rect (4, 2, 64, Rectangle. Bottom — Rectangle. Top — 4), TfrmMDIImage (ListeImages.Items[Index]).imgImage.Picture.Bitmap);
end;
lstImage.Canvas.CopyRect (Rectangle, Bitmap. Canvas, Rect (0, 0, Rectangle. Right — Rectangle. Left, Rectangle. Bottom — Rectangle. Top));
Bitmap.Free;
end;
procedure TfrmHistogramme. lstImageClick (Sender: TObject);
begin
Image := ListeImages. Items[lstImage.ItemIndex];
AfficherHistogrammes;
end;
procedure TfrmHistogramme. AfficherHistogrammes;
var
NumCouleur: Integer;
begin
imgRouge.Canvas.Rectangle (0, 0, 256, 256);
imgVert.Canvas.Rectangle (0, 0, 256, 256);
imgBleu.Canvas.Rectangle (0, 0, 256, 256);
for NumCouleur := 0 to 255 do
begin
imgRouge.Canvas.MoveTo (NumCouleur, 255);
imgVert.Canvas.MoveTo (NumCouleur, 255);
imgBleu.Canvas.MoveTo (NumCouleur, 255);
imgRouge.Canvas.LineTo (NumCouleur, 255 — Round (TfrmMDIImage (Image).CalcImage.Histogramme[NumCouleur]. Rouge / Sqr (TrackBar.Position / 5)));
imgVert.Canvas.LineTo (NumCouleur, 255 — Round (TfrmMDIImage (Image).CalcImage.Histogramme[NumCouleur]. Vert / Sqr (TrackBar.Position / 5)));
imgBleu.Canvas.LineTo (NumCouleur, 255 — Round (TfrmMDIImage (Image).CalcImage.Histogramme[NumCouleur]. Bleu / Sqr (TrackBar.Position / 5)));
end;
end;
procedure TfrmHistogramme. FormCreate (Sender: TObject);
begin
imgRouge.Canvas.Brush.Color := clBlack;
imgVert.Canvas.Brush.Color := clBlack;
imgBleu.Canvas.Brush.Color := clBlack;
imgRouge.Canvas.Pen.Color := clRed;
imgVert.Canvas.Pen.Color := clGreen;
imgBleu.Canvas.Pen.Color := clBlue;
end;
procedure TfrmHistogramme. TrackBarChange (Sender: TObject);
begin
AfficherHistogrammes;
end;
procedure TCalcImage. CalculerHistogramme;
var
X, Y: Integer;
NumCouleur: Integer;
begin
frmPrincipale.ChangeStatus ('Calcul de l''histogramme de l''image');
for NumCouleur := 0 to 255 do
begin
Histogramme[NumCouleur]. Rouge := 0;
Histogramme[NumCouleur]. Vert := 0;
Histogramme[NumCouleur]. Bleu := 0;
end;
frmPrincipale.ProgressBar.Max := TailleX — 1;
for X := 0 to TailleX — 1 do
begin
frmPrincipale.ProgressBar.Position := X;
for Y := 0 to TailleY — 1 do
begin
Inc (Histogramme[LimiteCouleur (Image[X, Y]. Rouge)].Rouge); Inc (Histogramme[LimiteCouleur (Image[X, Y]. Vert)].Vert); Inc (Histogramme[LimiteCouleur (Image[X, Y]. Bleu)].Bleu);
end;
end;
end;
procedure TCalcImage. ChangeDimensions (X, Y: Integer);
begin
FTailleX := X;
FTailleY := Y;
SetLength (Image, FTailleX, FTailleY);
end;
procedure TCalcImage. ChangeTailleX (const Value: Integer);
begin
FTailleX := Value;
SetLength (Image, FTailleX, FTailleY);
end;
procedure TCalcImage. ChangeTailleY (const Value: Integer);
begin
FTailleY := Value;
SetLength (Image, FTailleX, FTailleY);
end;
constructor TCalcImage. Create;
begin
inherited;
end;
destructor TCalcImage. Destroy;
begin
inherited;
end;
function CouleurToColor (Couleur: TCouleur): TColor;
begin
Result := LimiteCouleur (Couleur.Rouge) or (LimiteCouleur (Couleur.Vert) shl 8) or (LimiteCouleur (Couleur.Bleu) shl 16);
end;
procedure TfrmMDIImage. AnalyseImage;
var
X, Y: Integer;
Couleur: TColor;
begin
frmPrincipale.ChangeStatus ('Analyse de l''image');
frmPrincipale.ProgressBar.Max := CalcImage. TailleX — 1;
for X := 0 to CalcImage. TailleX — 1 do
begin
frmPrincipale.ProgressBar.Position := X;
for Y := 0 to CalcImage. TailleY — 1 do
with CalcImage. Image[X, Y] do
begin
Couleur := imgImage.Canvas.Pixels[X, Y];
Rouge := (Couleur and $ 00FF);
Vert := (Couleur and $ 0000FF00) shr 8;
Bleu := (Couleur and $ 00FF0000) shr 16;
end;
end;
end;
procedure TfrmMDIImage. EnregistrerImage (NomFichier: string);
begin
imgImage.Picture.SaveToFile (NomFichier);
end;
procedure TfrmMDIImage. OuvrirImage (NomFichier: string);
begin
imgImage.Picture.LoadFromFile (NomFichier);
ChangerDimensionsImage (imgImage.Picture.Width, imgImage.Picture.Height); AnalyseImage;
CalcImage.CalculerHistogramme;
frmPrincipale.ChangeStatus ('Prкt');
frmPrincipale.ProgressBar.Position := 0;
end;
procedure TfrmMDIImage. FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmMDIImage. AfficheImage;
var
X, Y: Integer;
begin
imgImage.Picture.Bitmap.Width := CalcImage. TailleX;
imgImage.Picture.Bitmap.Height := CalcImage. TailleY;
frmPrincipale.ChangeStatus ('Affichage de l''image');
frmPrincipale.ProgressBar.Max := CalcImage. TailleX — 1;
for X := 0 to CalcImage. TailleX — 1 do
begin
frmPrincipale.ProgressBar.Position := X;
for Y := 0 to CalcImage. TailleY — 1 do
imgImage.Canvas.Pixels[X, Y] := CouleurToColor (CalcImage.Image[X, Y]);
end;
CalcImage.CalculerHistogramme;
frmPrincipale.FinCalcul;
end;
function LimiteCouleur (Couleur: Double): Byte;
begin
Result := Round (Max (Min (255, Couleur), 0)); end;
procedure TfrmMDIImage. FormDestroy (Sender: TObject);
begin
CalcImage.Destroy;
ListeImages.Extract (Self); end;
procedure TfrmMDIImage. FormCreate (Sender: TObject);
begin
DoubleBuffered := True;
CalcImage := TCalcImage. Create; end;
procedure TfrmMDIImage. ChangerDimensionsImage (X, Y: Integer);
begin
imgImage.Picture.Bitmap.Width := X;
imgImage.Picture.Bitmap.Height := Y;
CalcImage.ChangeDimensions (X, Y);
{ TODO: Barres de dйfilement }
end;
procedure TfrmMDIImage. imgImageMouseMove (Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
X := X — (imgImage.Width — imgImage.Picture.Width) div 2 if (X < 0) or (X > imgImage.Picture.Width) then X := -1;
Y := Y — (imgImage.Height — imgImage.Picture.Height) div 2; if (Y < 0) or (Y > imgImage.Picture.Height) then Y := -1;
frmPrincipale.ChangeCoordonneesCurseur (X, Y);
end;
end.
ІІІ. Результати роботи програми, та перспективи використання
1. Аналіз отриманих даних Рис 2. Основне вікно програми Завантажуємо оригінал:
Зображення готове до аналізу.Так само завантажуєм і зображення з прихованим повідомленням.Для цього було використано спеціальні програми для приховання даних в BMP форматах.
Приступаэмо до аналізу зображень.
Для цього в меню Filters обираємо Analyze de Immage, та обираємо гістограму.
Після, цього запускається форма для гістограми по кольорам. Де ми й будемо проводити аналіз наших зображень.
Обираємо зображення оригінал.Знизу в нас представляється гістограма по кольорам даного зображення, що має чітко виражену структуру. Діло в тому що всі зображення BMP формату мають стовпчикову структуру як показано на рис. 3.
Рис. 3
Після цього обираємо зображення з прихованим повідомленням.
Бачимо, що гістограма зовсім змінюється.Діло в тому, що при внесенні інформації в зображення ми тим самим змінили структуру розподілу кольорів. Для неозвроїного ока це непомітно.Тому відрізнити зображення фактично нереально.
Рис. 4. Зображення оригінал Рис. 5. Зображення з прихованим повідомленням Отже, на основі проведеної гістограми можна скахати виявлення наявності прихованого повідомлення в зображення Obrazez1, що підтверджує можливість використання методу гістограми для вирішення поставленої задачі.
2. Перспективи використання На даний час все більше людей використовує різні методи шифрування даних.
Найперспективнішим являється метод приховання даних в мультимедійних файлах. Тому, для забезпечення захисту інформації від незаконного копіювання, а також з метою контролю даних, важливим залишається стегоаналіз.Але на даний час можливо тільки виявити наявність повідомлення.В даному продукті було використано метод гістограми, для виявлення прихованого повідомлення конкретно в BMP форматах. Я вважаю, що в подальшому цей метод можна буде використати і для решти форматів зображень.
Також даний метод можна використовувати й для відео.Адже відео файли являють собою набір кадрів, які можливо аналізувати як прості зображення. Тому метод аналізу гістограм має великі перспективи у використанні в стегоаналізу.
Список використаної літератури
1. Тигулев Максим. Стегонозавр или тайнопись на компьютере.
2. Карасев Андрей. Компьютерная тайнопись — графика и звук приобретают подтекст. — Мир ПК. — № 1/97. — С.132−134.
3. Privacy Guide: Steganography. http://www.all-nettools.com/privacy/stegano.htm
4. http://habrahabr.ru/post/114 597
5. http://www.dslib.net/zaw-informacia/sokrytie-informacii-v-graficheskih-fajlah-formata-vmr.html
6. Гика Себастиан Нарчис. Сокрытие информации в графических файлах формата ВМР.
7. П. В. Пономаренко. Метод шифрования сообщений, основанный на стеганографии.