- •Комп’ютерна стеганографія
- •Історія розвитку стеганографії. Предмет термінологія, області її застосування. Місце стеганографічних систем в інформаційній безпеці.
- •1. Основні джерела і наслідки атак на інформацію, що обробляється в автоматизованих системах
- •2. Категорії інформаційної безпеки з позицій захисту автоматизованих
- •3. Можливі варіанти захисту інформації в автоматизованих системах
- •4. Проблеми і задачі роботи
- •Стеганографія. Приклади методів стеганографії без використання спеціальних технічних засобів.
- •Структурна схема стегосистеми. Поняття та види контейнерів.
- •Математична модель стегосистеми.
- •Класифікація атак на стеганографічну систему. Атаки на системи цифрових водяних знаків.
- •Приховування даних у нерухомих зображеннях. Методи приховування даних у просторовій області зображення.
- •Методи приховування даних у частотній області зображення.
- •5.3.3.1. Метод відносної заміни величин коефіцієнтів дкп (метод Коха і Жао)
- •5.3.3.2. Метод Бенгама-Мемона-Ео-Юнг
- •Принципи стеганографічного аналізу. Оцінка якості стеганосистеми.
- •Методи приховування даних у тексті і їх характеристика.
- •5.5.1. Методи довільного інтервалу
- •5.5.1.2. Метод зміни кількості пробілів в кінці текстових рядків
- •5.5.1.1. Метод зміни інтервалу між реченнями
- •5.5.1.3. Метод зміни кількості пробілів між словами вирівняного по ширині тексту
- •5.5.2. Синтаксичні і семантичні методи
- •Приховування даних в аудіо сигналах, основні методи.
-
Структурна схема стегосистеми. Поняття та види контейнерів.
Структурна схема стегосистеми.

Основними стеганографічними поняттями є повідомлення і контейнер. Повідомленням m ∈ M є секретна інформація, наявність якої необхідно приховати, M = {m1, m2, ..., mn} – множина всіх повідомлень. Контейнером c ∈ С зветься несекретна інформація, яку можна використати для приховання повідомлення, C = {c1, c2, ..., cq} – множина всіх контейнерів, причому q >> n. В якості повідомлення і контейнера можуть виступати як звичайний текст, так і файли мультимедійного формату. Пустий контейнер (або так званий контейнер-оригінал) – це контейнер c, який не містить прихованої інформації. Заповнений контейнер (контейнеррезультат) – контейнер c, що містить приховане повідомлення m (cm). Однією з вимог, яка при цьому ставиться: контейнер-результат не повинен бути візуально відмінним від контейнераоригіналу. Виокремлюють два основних типи контейнерів: потоковий і фіксований.
Потоковий контейнер являє собою послідовність біт, що безперервно змінюється. Повідомлення пакується до нього в реальному масштабі часу, так що в кодері невідомо заздалегідь, чи вистачить розмірів контейнера для передачі всього повідомлення. В один контейнер великого розміру може бути вбудовано декілька повідомлень. Інтервали між вбудовуваними бітами визначаються генератором ПВП з рівномірним розподілом інтервалів між відліками. Основна проблема полягає у здійсненні синхронізації, визначенні початку і кінця послідовності. Якщо в даних контейнера існують біти синхронізації, заголовки пакетів і т.д., то приховувана інформація може йти відразу після них. Важкість забезпечення синхронізації є перевагою з точки зору забезпечення прихованості передачі. Нажаль, на сьогодні практично відсутні роботи, присвячені розробці стеганосистем з потоковим контейнером. Як приклад перспективної реалізації потокового контейнера можна навести стеганоприставку до звичайного телефону. При цьому під прикриттям пересічної, незначущої телефонної розмови можна передавати іншу розмову, дані і т.п. Не знаючи секретного ключа не можна не лише довідатися про зміст прихованої передачі, але й про сам факт її існування__
У фіксованого контейнера розміри і характеристики є заздалегідь відомими. Це дозволяє здійснювати вкладення даних оптимальним (в певному смислі) чином. Надалі розглядатимуться переважно фіксовані контейнери (у подальшому – контейнери).
Контейнер може бути обраним, випадковим або нав’язаним. Обраний контейнер залежить від вбудовуваного повідомлення, а в граничному випадку є його функцією. Такий тип контейнера більше характерний саме для стеганографії. Нав’язаний контейнер з’являється, коли особа, що надає контейнер, підозрює про можливе приховане переписування і бажає запобігти йому. На практиці ж частіше за все мають справу з випадковим контейнером [5].
Приховування інформації, яка здебільшого має великий об’єм, висуває суттєві вимоги до контейнера, розмір якого повинен щонайменше в декілька разів перевищувати розмір вбудовуваних даних. Зрозуміло, що для підвищення прихованості зазначене співвідношення повинне бути якомога більшим.
Перед тим, як здійснити вкладення повідомлення в контейнер, його необхідно перетворити до певного зручного для пакування виду. Крім того, перед запаковуванням до контейнеру, для підвищення захищеності секретної інформації останню можна зашифрувати достатньо стійким криптографічним кодом [14]. У багатьох випадках також є бажаною стійкість отриманого стеганоповідомлення до спотворювань (у тому числі й зловмисних) [5]. У процесі передачі звук, зображення чи будь-яка інша інформація, яка використовується в якості контейнера, може зазнавати різних трансформацій (у тому числі з використанням алгоритмів із втратою даних): зміни об’єму, перетворення на інший формат тощо. Тому для збереження цілісності вбудовуваного повідомлення може стати необхідним використання коду з виправленням помилок (завадостійке кодування). Початкову обробку приховуваної інформації виконує зображений на рис.2.3 прeкодер. В якості однієї з найважливіших попередніх обробок повідомлення (а також і контейнера) можна назвати обчислення його узагальненого перетворення Фур’є. Це дозволяє здійснити вбудовування даних в спектральній області, що значно підвищує їх стійкість до спотворень. Слід зазначити, що для підвищення секретності вбудовування, попередня обробка досить часто виконується з використанням ключа.
Пакування повідомлення до контейнера (з урахуванням формату даних, що представляють контейнер) відбувається за допомогою стеганокодера. Вкладення відбувається, наприклад, шляхом модифікації наймолодших значущих біт контейнера. Взагалі, саме алгоритм (стратегія) внесення елементів повідомлення до контейнера визначає методи стеганографії, які в свою чергу поділяються на певні групи, наприклад, в залежності від того, файл якого формату було обрано в якості контейнера.
У більшості стеганосистем для пакування і видобування повідомлення використовується ключ, який зумовлює секретний алгоритм, що визначає порядок занесення повідомлення до контейнера. За аналогією з криптографією, тип ключа обумовлює існування двох типів стеганосистем: з секретним ключем (використовується один ключ, який визначається до початку обміну стеганограмою або передається захищеним каналом) і з відкритим ключем (для пакування і розпакування повідомлення застосовуються різні ключі, які різняться таким чином, що за допомогою обчислень неможливо вивести один ключ з іншого. Тому один з ключів (відкритий) може вільно передаватися незахищеним каналом).
В якості секретного алгоритму може бути використаний генератор псевдовипадкової послідовності (ПВП) біт. Якісний генератор ПВП, орієнтований на використання в системах захисту інформації повинен задовольняти певним вимогам [42]. Серед яких:
-
криптографічна стійкість (відсутність у порушника можливості передбачити наступний біт на основі відомих йому попередніх з імовірністю, що відрізняється від 1/2. Напрактиці криптографічна стійкість оцінюється статистичними методами. Національним Інститутом Стандартів і Технологій США (НІСТ) розроблено Керівництво з проведення статистичних випробувань генераторів ПВП, орієнтованих на використання в задачах криптографічного захисту інформації [43]);
-
добрі статистичні властивості (ПВП за своїми статистичними властивостями не повинна істотно відрізнятися від істинно випадкової послідовності);
-
великий період формованої послідовності;
-
ефективна апаратна/програмна реалізація.
Статистично (криптографічно) безпечний генератор ПВП повинен задовольняти наступним вимогам:
-
жоден статистичний тест не виявляє у ПВП жодних закономірностей, іншими словами не відрізняє цю послідовність від істинно випадкової;
-
при ініціалізації випадковими значеннями генератор породжує статистично незалежні псевдовипадкові послідовності.
В якості основи генератора може використовуватися, наприклад, лінійний рекурентний регістр. Тоді адресатам для забезпечення зв’язку повинне повідомлятися початкове заповнення цього регістру. Числа, породжувані генератором ПВП, можуть визначати позиції модифікованих відліків у випадку фіксованого контейнера або інтервали між ними у випадку потокового контейнера. Слід зауважити, що метод випадкового обрання величини інтервалу між вбудовуваними бітами не є достатньо ефективним з двох причин. По-перше, приховані дані повинні бути розподілені по всьому контейнеру. Тому рівномірний розподіл довжин інтервалів (від найменшого до найбільшого) може бути досягнутий лише наближено, оскільки повинна існувати впевненість у тому, що все повідомлення вбудоване, тобто вмістилося у контейнер. По-друге, довжини інтервалів між відліками шуму (у багатьох моделях сигнал-контейнер розглядається як адитивний шум [44]) розподілені не за рівномірним, а за експонентним законом. Генератор ПВП з експонентно розподіленими інтервалами є складним в реалізації.
Приховувана інформація заноситься у відповідності з ключем до тих бітів, модифікація яких не призводить до істотних спотворень контейнера. Ці біти утворюють так званий стеганошлях. Під “істотним” розуміється спотворення, що веде до зростання імовірності виявлення факту наявності прихованого повідомлення після проведення стеганоаналізу.
Стеганографічний канал – канал передачі контейнера-результату (взагалі ж, існування каналу, як, власне кажучи, і одержувача – найбільш узагальнюючий випадок, оскільки заповнений контейнер може, наприклад, зберігатися у “відправника”, який поставив собі за мету обмежити неавторизований доступ до певної інформації. У даному випадку відправник виступає і в ролі одержувача). Під час перебування у стеганографічному каналі контейнер, що містить приховане повідомлення, може піддаватися навмисним атакам або випадковим завадам, детальний опис яких приведено в розділі 3.
В cтеганодетекторі здійснюється визначення наявності в контейнері (можливо вже зміненому) прихованих даних. Ця зміна може бути обумовлена впливом помилок в каналі зв’язку, операцій обробки сигналу, навмисних атак порушників. Як вже зазначалося вище, в багатьох моделях стеганосистем сигнал-контейнер розглядається як адитивний шум. Тоді задача виявлення і виділення стеганоповідомлення є класичною для теорії зв’язку. Але такий підхід не враховує двох факторів: невипадкового характеру контейнера і вимог по збереженню його якості. Ці моменти не зустрічаються у відомій теорії виявлення і виділення сигналів на фоні адитивного шуму. Очевидно, що їх врахування дозволить побудувати більш ефективні стеганосистеми.
Розрізнюють стеганодетектори, призначені лише для виявлення факту наявності вбудованого повідомлення, і пристрої, призначені для виділення цього повідомлення з контейнеру – стеганодекодери.
Отже, в стеганосистемі відбувається об’єднання двох типів інформації таким чином, щоб вони по-різному сприймалися принципово різними детекторами. В якості одного з детекторів виступає система виділення прихованого повідомлення, в якості іншого – людина. Алгоритм вбудовування повідомлення в найпростішому випадку складається з двох основних етапів: 1) вбудовування в стеганокодері секретного повідомлення до контейнера-оригіналу; 2) виявлення (виділення) в cтеганодетекторі прихованого зашифрованого повідомлення з контейнера-результату.

Контейнером c ∈ С зветься несекретна інформація, яку можна використати для приховання повідомлення, C = {c1, c2, ..., cq} – множина всіх контейнерів, причому q >> n. В якості повідомлення і контейнера можуть виступати як звичайний текст, так і файли мультимедійного формату. Пустий контейнер (або так званий контейнер-оригінал) – це контейнер c, який не містить прихованої інформації. Заповнений контейнер (контейнеррезультат) – контейнер c, що містить приховане повідомлення m (cm). Однією з вимог, яка при цьому ставиться: контейнер-результат не повинен бути візуально відмінним від контейнераоригіналу. Виокремлюють два основних типи контейнерів: потоковий і фіксований.
Потоковий контейнер являє собою послідовність біт, що безперервно змінюється. Повідомлення пакується до нього в реальному масштабі часу, так що в кодері невідомо заздалегідь, чи вистачить розмірів контейнера для передачі всього повідомлення. В один контейнер великого розміру може бути вбудовано декілька повідомлень. Інтервали між вбудовуваними бітами визначаються генератором ПВП з рівномірним розподілом інтервалів між відліками. Основна проблема полягає у здійсненні синхронізації, визначенні початку і кінця послідовності. Якщо в даних контейнера існують біти синхронізації, заголовки пакетів і т.д., то приховувана інформація може йти відразу після них. Важкість забезпечення синхронізації є перевагою з точки зору забезпечення прихованості передачі. Нажаль, на сьогодні практично відсутні роботи, присвячені розробці стеганосистем з потоковим контейнером. Як приклад перспективної реалізації потокового контейнера можна навести стеганоприставку до звичайного телефону. При цьому під прикриттям пересічної, незначущої телефонної розмови можна передавати іншу розмову, дані і т.п. Не знаючи секретного ключа не можна не лише довідатися про зміст прихованої передачі, але й про сам факт її існування__
У фіксованого контейнера розміри і характеристики є заздалегідь відомими. Це дозволяє здійснювати вкладення даних оптимальним (в певному смислі) чином. Надалі розглядатимуться переважно фіксовані контейнери (у подальшому – контейнери).
Контейнер може бути обраним, випадковим або нав’язаним. Обраний контейнер залежить від вбудовуваного повідомлення, а в граничному випадку є його функцією. Такий тип контейнера більше характерний саме для стеганографії. Нав’язаний контейнер з’являється, коли особа, що надає контейнер, підозрює про можливе приховане переписування і бажає запобігти йому. На практиці ж частіше за все мають справу з випадковим контейнером [5].
Приховування інформації, яка здебільшого має великий об’єм, висуває суттєві вимоги до контейнера, розмір якого повинен щонайменше в декілька разів перевищувати розмір вбудовуваних даних. Зрозуміло, що для підвищення прихованості зазначене співвідношення повинне бути якомога більшим.
