Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Методы произвольного интервала




Существует, по меньшей мере, две причины, по которым манипулирование свободным местом в определенных случаях показывает довольно неплохие результаты. Во-первых, изменение количества пробелов в конце текстовой строки не вызывает существенных изменений в значении фразы или предложения. Во-вторых, среднестатистический читатель вряд ли заметит незначительные модификации свободного места страницы текста.

В [14] предложено три метода, которые для скрытия данных используют свободное место в тексте. Указанные методы оперируют с интервалами между предложениями, пропусками в конце текстовых строк и интервалами между словами в тексте, выровненном по ширине.

Метод изменения интервала между предложениями

Метод изменения интервала между предложениями позволяет встраивать в текст сообщение, имеющее двоичный формат, путем размещения одного или двух пробелов после каждого символа завершения предложения. В качестве символов окончания предложения могут служить, к примеру, точки в обычном тексте, точки с запятой для кода программ на языке 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*. В случае нахождения, анализируется количество пробелов после точки, на основании чего делается вывод о значении текущего извлекаемого бита сообщения. В конце модуля вектор двоичных данных преобразовывается в текстовую строку символов.

 





Поделиться с друзьями:


Дата добавления: 2015-10-19; Мы поможем в написании ваших работ!; просмотров: 1079 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2307 - | 2069 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.