88
87
полягає в тому, що навіть оптимально організований, він дає змогу приховати незначну кількість даних при
дуже великій обчислювальній роботі. Ще один варіант – моделювання характеристик шуму контейнера.
Наслідувана функція має бути побудована так, щоб не тільки кодувати приховувані повідомлення, а й
дотримуватися моделі початкового шуму. У граничному випадку ціле повідомлення може конструюватися
згідно з моделлю шуму. Подібний підхід можна назвати
конструюючою стеганографією. Така стратегія має
ряд недоліків: її проблематично з’єднати з сильним алгоритмом шифрування, а моделювання шуму – заняття не
з легких. Більше того, реальні зразки, створенні на основі цієї моделі, іноді можуть навіть сприяти виявленню
таємного повідомлення замість того, щоб збільшувати його безпеку. Якщо зловмисник знає модель, він може з
малими
витратами знаходити в ній вразливі місця. А оскільки модель шуму при такому підході – це частина
приховуючого алгоритму, то ми маємо справу з порушенням правил хорошого тону в криптографічній
практиці, що рано чи пізно може стати причиною витоку інформації.
Оскільки спроби наслідування початкового шуму ведуть або до сумнівної безпеки, або до дуже
малого
діапазону робочих частот для більшості застосувань, то найпривабливішою залишається така базова процедура.
Вибирають клас досить “шумних” контейнерів та ідентифікують біти шуму. Потім наближено
визначають, яку порцію шумових бітів контейнера можна замінити псевдовипадковими даними без значної
зміни його статистичних характеристик.
Наприклад, якщо контейнер є цифровою фотографією, нас мають цікавити молодші
біти сірої шкали або
RGB-значень при кольоровому зображенні або коефіцієнти Фур’є в JPEG-форматі стиснутих зображень. У разі
видозміни, скажімо, кожного сотого пікселя зображення, один мегабайт нестиснутого зображення може
приховати приблизно 1 кілобайт секретних даних.
Типи контейнерів і вибір приховуючих бітів. Контейнери можуть бути потоком неперервних даних,
подібно до цифрового телефонного зв’язку (
потокові контейнери), або файл, подібно растровому зображенню
(
контейнери випадкового доступу).
Про потоковий контейнер не можна попередньо сказати, коли він почнеться, коли закінчиться і
наскільки довгим буде. Більше того, об’єктивно немає можливості дізнатися заздалегідь, якими будуть наступні
шумові біти. Це призводить до необхідності включати приховуючі повідомлення до потоку в реальному
масштабі часу. Приховуючі біти мають вибиратися за допомогою спеціального генератора,
який задає відстань
між послідовними бітами в потоці. Такий спосіб називають
довільно-інтервальним методом приховування
бітових виборок.
У неперервному потоці даних найскладніше для одержувача – визначити, коли розпочинається
приховане повідомлення. Тут не може бути жодної видимої синхронізуючої послідовності. Якщо потік даних
має деякі властиві йому сигнали синхронізації або межі пакету, приховане повідомлення розпочинається одразу
після одного з них. У цьому разі одержувач повинен намагатися синхронізувати
свій генератор випадкових
чисел з прихованим повідомленням одразу після таких сигналів.
У найбільш легкому випадку, якщо потік даних має кінцеву тривалість і часто відкривається знову,
подібно до телефонних переговорів, таємне повідомлення може завжди починатися з відкриттям сеансу. Для
відправника можливі проблеми, якщо він не впевнений у тому, що потік контейнера буде
достатньо довгим для
розміщення цілого таємного повідомлення. У потокових контейнерах також важко рівномірно розподілити
приховуючі біти по всьому потоку.
Файли фіксованої довжини позбавлені розглянутих недоліків потокових контейнерів. Відправник знає
заздалегідь розмір файла та його зміст. Приховуючі біти можуть бути рівномірно вибрані з підходящої