- •Компьютерная стеганография
- •Глава 1. Место стеганографических систем в сфере
- •Глава 2. Особенности построения стеганографических систем 18
- •Глава 3. Принципы стеганографического анализа 33
- •Глава 4. Пропускная способность каналов передачи
- •Глава 5 Стеганографические методы скрытия данных и их реализация в системе МathCad 70
- •Перечень условных сокращений
- •Вступление
- •Глава 1 Место стеганографических систем в сфере информационной безопасности
- •1.1. Атаки на информацию, обрабатываемую в автоматизированных системах
- •1.2. Категории информационной безопасности
- •1.3. Возможные варианты защиты информации в автоматизированных системах
- •Глава 2 Особенности построения стеганографических систем
- •2.1. Предмет, терминология и сферы применения стеганографии
- •2.2. Проблема устойчивости стеганографических систем
- •2.3. Структурная схема и математическая модель типичной стеганосистемы
- •2.4. Протоколы стеганографических систем
- •2.4.1. Бесключевые стеганосистемы
- •2.4.2. Стеганосистемы с секретным ключом
- •2.4.3. Стеганосистемы с открытым ключом .
- •2.4.4. Смешанные стеганосистемы
- •2.5. Выводы
- •Глава 3 Принципы стеганографического анализа
- •3.1. Вступительные положения
- •3.2. Виды атак на стеганографическую систему
- •3.3. Основные этапы практического стеганоанализа
- •3.4. Оценка качества стеганоситемы
- •3.5. Абсолютно надежная стеганосистема
- •3.6. Устойчивость стеганосистем к пассивным атакам
- •3.7. Активные и злонамеренные атаки
- •3.8. Устойчивость стеганографической системы к активным атакам
- •3.9. Сознательно открытый стеганографических канал
- •3.10. Выводы
- •Глава 4 Пропускная способность каналов передачи скрываемых данных
- •4.1. Понятие пропускной способности
- •4.2. Информационное скрытие при активном противодействии нарушителя
- •4.2.1. Формулировка задачи информационного скрытия при активном противодействии нарушителя
- •4.2.2. Скрывающее преобразование
- •4.2.3. Атакующее воздействие
- •4.3. Скрытая пропускная способность при активном противодействии нарушителя
- •4.3.1. Основная теорема информационного скрытия при активном противодействии нарушителя
- •4.3.2. Свойства скрытой пропускной способности стеганоканала
- •4.3.3. Комментарии полученных результатов
- •4.4. Двоичная стеганосистема передачи скрываемых сообщений
- •4.5. Выводы
- •Глава 5 Стеганографические методы скрытия данных и их реализация в системе MathCad
- •5.1. Вступительные положения
- •5.2. Классификация методов скрытия данных
- •5.3. Скрытие данных в неподвижных изображениях
- •5.3.1. Основные свойства 3сч, которые необходимо учитывать при построении стеганоалгоритмов
- •5.3.2. Скрытие данных в пространственной области
- •5.3.2.1. Метод замены наименее значащего бита
- •5.3.2.2. Метод псевдослучайного интервала
- •5.3.2.3. Метод псевдослучайной перестановки
- •5.3.2.4. Метод блочного скрытия
- •5.3.2.5. Методы замены палитры
- •5.3.2.6. Метод квантования изображения
- •5.3.2.7. Метод Куттера-Джордана-Боссена
- •5.3.2.8. Метод Дармстедтера-Делейгла-Квисквотера-Макка
- •Разбиение зон на категории
- •Правила встраивания бит сообщения
- •Извлечение встроенной информации
- •5.3.2.9. Другие методы скрытия данных в пространственной области
- •5.3.3. Скрытие данных в частотной области изображения
- •5.3.3.1. Метод относительной замены величин коэффициентов дкп (метод Коха и Жао)
- •5.3.3.2. Метод Бенгама-Мемона-Эо-Юнг
- •5.3.3.3. Метод Хсу и By
- •5.3.3.4. Метод Фридрих
- •5.3.4. Методы расширения спектра
- •5.3.5. Другие методы скрытия данных в неподвижных изображениях.
- •5.3.6.1. Статистические методы
- •5.3.5.2. Структурные методы
- •5.4. Скрытие данных в аудиосигналах
- •5.4.1. Кодирование наименее значащих бит (временная область)
- •5.4.2. Метод фазового кодирования (частотная область)
- •5.4.3. Метод расширения спектра (временная область)
- •5.4.4. Скрытие данных с использованием эхо-сигнала
- •5.5. Скрытие данных в тексте
- •5.5.1. Методы произвольного интервала
- •5.5.1.1. Метод изменения интервала между предложениями
- •5.5.1.2. Метод изменения количества пробелов в конце текстовых строк
- •5.5.1.3. Метод изменения количества пробелов между словами выровненного по ширине текста
- •5.5.2. Синтаксические и семантические методы
- •5.6. Системные требования
- •5.7. Выводы
- •Заключение
5.5. Скрытие данных в тексте
Для скрытия конфиденциальных сообщений в тексте (так называемая лингвистическая стеганография) используется или обычная избыточность письменной речи, или же форматы представления текста.
Наиболее сложным объектом для скрытия данных по многим причинам является электронная (файловая) версия текста. В отличие от текстового файла его "жесткая" копия (например, бумажная) может быть обработана как высокоструктурированное изображение и поэтому является относительно легко поддающейся разнообразным методам скрытия, таким как незначительные изменения формата текстовых шаблонов, регулирование расстояния между определенными парами символов (кернинг), расстояния между строками и т.п. В значительной степени такая ситуация вызвана относительным дефицитом в текстовом файле избыточной информации, особенно в сравнении с графическими или, например, звуковыми файлами. В то время как в большинстве случаев существует возможность внести незаметные глазу и неощутимые на слух модификации в изображение и звук, даже дополнительная буква или знак пунктуации в тексте могут быть легко распознаны случайным читателем.
Скрытие данных в тексте требует поиска таких модификаций, которые были бы незаметными подавляющему большинству читателей. Авторы [14] рассматривают три группы методов, которые получили наибольшее распространение при встраивании скрываемых данных в текст:
• методы произвольного интересна, которые осуществляют встраивание путем манипуляции с пробельными символами (свободным местом на печатной полосе);
• синтаксические методы, которые работают с пунктуацией;
• семантические методы, в основу алгоритмов которых положено манипулирование словами, зависимое от скрываемых бит данных.
5.5.1. Методы произвольного интервала
Существует, по меньшей мере, две причины, по которым манипулирование свободным местом в определенных случаях показывает довольно неплохие результаты. Во-первых, изменение количества пробелов в конце текстовой строки не вызывает существенных изменений в значении фразы или предложения. Во-вторых, среднестатистический читатель вряд ли заметит незначительные модификации свободного места страницы текста.
В [14] предложено три метода, которые для скрытия данных используют свободное место в тексте. Указанные методы оперируют с интервалами между предложениями, пропусками в конце текстовых строк и интервалами между словами в тексте, выровненном по ширине.
5.5.1.1. Метод изменения интервала между предложениями
Метод изменения интервала между предложениями позволяет встраивать в текст сообщение, имеющее двоичный формат, путем размещения одного или двух пробелов после каждого символа завершения предложения. В качестве символов окончания предложения могут служить, к примеру, точки в обычном тексте, точки с запятой для кода программ на языке C++ и т.п. При этом единичным пробелом может кодироваться бит "1", двойным - бит "0".
Кроме несомненной простоты, данный метод имеет и ряд недостатков. Во-первых, он не эффективен, поскольку для встраивания незначительного количества бит требуется текст значительного объема. В частности, один бит, который возможно скрыть в одном предложении, эквивалентен скорости передачи данных, соответствующей приблизительно одному биту на 160 байт текстового контейнера, при условии, что в среднем предложение представляет собой две строки по 80 символов каждая.
Во-вторых, возможность скрытия весьма зависит от структуры текстового контейнера (некоторые тексты, как например, верлибры или свободные стихи характеризуются отсутствием стабильных согласованных или однозначных знаков завершения строки).
В-третьих, существуют текстовые редакторы, которые автоматически устанавливают после точки в конце предложения один-два пробела (так называемое автозавершение). И, наконец, как отмечается в [14], непоследовательное и противоречивое использование свободных мест может оказаться достаточно заметным для читателя.
Приведем пример реализации данного метода в MathCAD.
Шаг1
Пусть в качестве контейнера используется текст, фрагмент которого приведен на рис. 5.94 (С := READBIN("C.txt", "byte")), а скрываемое сообщение имеет следующее содержание: М := "Алгоритм".
Рис. 5.94. Фрагмент оригинала текста-контейнера, используемого для скрытия данных
Шаг 2
Переменной (точка + пробел) пометим фрагмент контейнера, который будет сигнализировать об окончании предложений. В ASCII-кодировке данная переменная отображается вектором str2vec()T = (46 32).
Проверку достаточности количества предложений в тексте для скрытия заданного количества бит сообщения (LM = 8·strlen(M), LM = 64 бита) выполним с помощью программного модуля (М.128), который подсчитывает количество элементов в выбранном в качестве контейнера тексте.
Для представленного на рис. 5.94 фрагмента = 8, что является достаточным для скрытия одного символа сообщения (8 бит).
Шаг 3
Стеганографическое скрытие рассматриваемым методом выполняет программный модуль (М.129). В начале модуля (М.129) строка символов М преобразовывается в вектор двоичных данных Mvec_bin. Для каждого элемента вектора Mvec_bin про водится поиск элемента (конца предложения) в массиве исходного текста С’, представленном в ASCII-кодах. Параллельно формируется стеганограмма S, путем дописывания в ее конец 1-го элемента массива С’
В случае нахождения фрагмента массива С, который отвечает вектору , про исходит сохранение оставшейся части текста как немодифицированной (переопределение переменной С) и в зависимости от значения текущего элемента Mvec_bin к стеганограмме S дописывается один или два пробела (ASCII-код которых равен 32).
Для предотвращения возможного возникновения неоднозначности в тех случаях, когда в оригинальном тексте предложения отделялись между собой точкой и произвольным количеством пробелов, в модуле (М.129) также предусмотрено удаление возможных лишних пробелов в начале немодифицированного фрагмента С.
По окончании встраивания всех бит сообщения, к стеганограмме S приписывается фрагмент текста, оставшийся без изменений (С).
Результат скрытия первого символа сообщения М (символа "А"), ASCII-код которого в двоичном представлении: D2B(str2vec("A"))T = (0LSB 0 0 0 0 0 1 1MSB), представлен на рис. 5.95.
Рис. 5.95. Фрагмент текстового контейнера, заполненного методом изменения интервала между предложениями
Шаг 4
Излечение скрытой информации проводится программным модулем (М.130) при S*=S, .
Алгоритм действий следующий: выполняется поиск конца предложения (элемента *) в представленном в ASCII-кодах тексте S*. В случае нахождения, анализируется количество пробелов после точки, на основании чего делается вывод о значении текущего извлекаемого бита сообщения. В конце модуля вектор двоичных данных преобразовывается в текстовую строку символов.