и извлечения сообщения из контейнера,
Совокупность X=<C,М,D,E>, где С — множество возможных контейнеров; М — множество секретных сообщений, |C|³|М|; E: C´M®С и D: C®M — функции сокрытия и извлечения сообщения из контейнера, причем D(E(c,m))=m для любых mÎМ и сÎС, называется безключевой стегосистемой.
Из определения следует, что безопасность безключевых стегосистем основана на секретности используемых стеганографических преобразований E и D. Это противоречит основному принципу Керкхоффса для систем защиты информации. Действительно, если предположить, что противник знает алгоритмы E и D, которые используются для скрытой передачи информации, то он способен извлечь любую скрытую информацию из перехваченных стеганограмм.
Зачастую для повышения безопасности безключевых систем, перед началом процесса стеганографического сокрытия предварительно выполняется шифрование скрываемой информации. Ясно, что такой подход увеличивает защищенность всего процесса связи, поскольку это усложняет обнаружение скрытого сообщения. Однако, “сильные” стеганографические системы, как правило, не нуждаются в предварительном шифровании скрываемых сообщений.
Стегосистемой с секретным ключом называется совокупность X=<C,М,К,D,E>, где С — множество возможных контейнеров; М — множество секретных сообщений, причем |C|³|М|; К — множество секретных ключей; EК:C´M´К®С и DК:C´К®M — стеганографические преобразования со свойством DК(EК(c,m,k),k)=m для любых mÎМ, сÎС и kÎK.
Данный тип стегосистем предполагает наличие безопасного канала для обмена стегоключами.
Иногда стегоключ k вычисляют с помощью секретной хеш-функции Hash, используя некоторые характерные особенности контейнера: k = Hash (особенности контейнера). Если стеганографическое преобразование Е не изменяет в результирующей стеганограмме выбранные особенности контейнера, то получатель также сможет вычислить стегоключ (хотя и в этом случае защита зависит от секретности функции Hash, и таким образом, снова нарушается принцип Керкхоффса). Очевидно, что для достижения адекватного уровня защиты, такую особенность в контейнере необходимо выбирать очень аккуратно.
В некоторых алгоритмах при извлечении скрытой информации дополнительно требуются сведения об исходном контейнере или некоторых других данных, которые отсутствует в стеганограмме. Такие системы представляют ограниченный интерес, поскольку они требуют передачи первоначального вида контейнера, что эквивалентно традиционной задаче ключевого обмена. Подобные алгоритмы могут быть отмечены как частный случай стегосистем с секретным ключом, в которых K=C или K=C´K', где K' — означает дополнительный набор секретных ключей.
Стегосистемой с открытым ключом называется совокупность X=<C,М,К,D,E>, где С — множество возможных контейнеров; М — множество секретных сообщений, причем |C|³|М|; К=(k1, k2) — множество пар стегоключей (открытый ключ k1 используется для сокрытия информации, а секретный k2
— для извлечения); EК:C´M´k1®С и DК:C´k2®M — стеганографические преобразования со свойством DК(EК(c,m,k1), k2) = m для любых mÎМ, сÎС.
Простым способом реализации подобных стегосистем является использование криптосистем с открытым ключом. Стегосистемы с открытыми ключами используют тот факт, что функция извлечения скрытой информации D может быть применима к любому контейнеру вне зависимости от того, находится ли в нем скрытое сообщение или нет. Если в контейнере отсутствует скрытое сообщение, то всегда будет восстанавливаться некоторая случайная последовательность. Если эта последовательность статистически не отличается от шифртекста криптосистемы с открытым ключом, тогда в безопасной стегосистеме можно скрывать полученный таким образом шифртекст, а не открытый.
Функцией имитации n- го порядка будем называть такую функцию f, которая в e-окрестности выполняет статистически эквивалентное преобразование файла А в файл В.
Таким образом, если p(t, A) — вероятность появления некоторой строки t в файле А, то функция f преобразует файл А в файл В так, что для всех строк t длиной меньше n выполняется соотношение |p(t, f(A)) –p(t, B)| < e.
Можно предложить несколько типов функции имитации, которые, в зависимости от сложности, моделируются регулярной, контекстно-свободной или рекурсивно-счетной грамматиками. Стеганографические преобразования первого типа описываются в терминах процедур сжатия информации; второго — контекстно-свободными грамматиками, в которых скрываемые биты управляют непротиворечивыми продукциями; для описания функций третьего типа применяется аппарат машин Тьюринга.
Регулярные функции имитации можно смоделировать с помощью схемы кодирования по Хаффману. Известно, что любой язык обладает некоторыми статистическими свойствами. Этот факт используется многими методами сжатия данных. Если на алфавите S задано распределение вероятностей A, то можно воспользоваться схемой кодирования по Хаффману для создания функции сжатия с минимальной избыточностью fA:S®{0,1}*, где символ * используется в смысле S*=Èi³0{x1…xi|x1,…,xiÎS}. Такую функцию можно построить на основе функции сжатия Хаффмана: G(x)=fB(fA(x)).
Таким образом, секретный файл можно сжать по схеме Хаффмана с распределением A, в результате чего получится файл двоичных строк, которые могут интерпретироваться как результат операции сжатия некоторого файла с распределением B. Этот файл может быть восстановлен с применением инверсной функции сжатия fB к файлу двоичных строк и использоваться в дальнейшем как стеганограмма. Если функции fA и fB являются взаимно однозначными, то и созданная функция имитации будет также взаимно однозначна. Доказано, что построенная таким образом функция подобия оптимальна в том смысле, что если функция сжатия Хаффмана fA