Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Боровков А.С. Методичка.doc
Скачиваний:
6
Добавлен:
09.06.2015
Размер:
210.43 Кб
Скачать

Стеганография в текстовых файлах.

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

Для начала необходимо себе представить то, что мы будем скрывать и где мы будем скрывать. Файл, где мы будем скрывать, будет текстовым и должен состоять из строк.

Такой файл называется контейнером.

Файл, который мы прячем, может быть любым, но для простоты реализации зададим его текстовым. Этот файл будет содержать только одну строку с одним предложением.

Затем необходимо считать по байтам файл, текст который мы хотим скрыть. Будем считать данный файл байт за байтом, каждый из которых может принимать значение от 0 до 255. При каждом чтении байта необходимо десятичное значение переводить в двоичное и накапливать в какой-либо строке двоичные символы, из которых состоит файл.

Например: у нас есть фраза «ABC». Считываем первый байт с символом «A». Его значение – 41h, переводим в двоичную систему счисления, получаем 1000001. Число разрядов должно быть равно восьми, поэтому слева приписываем недостающие нули – они не изменят двоичного значения: 01000001. Затем читаем второй байт с символом «B». Его значение – 42h, переводим в двоичную систему счисления, получаем 01000010. Читаем третий байт с символом «C». Его значение – 43h, переводим в двоичную систему счисления, получаем 01000011. В итоге имеем строку: «010000010100001001000011» - это двоичное представление файла с содержанием «ABC».

Таким методом можно представить любой файл, хранящийся на диске. Именно так мы и будем задавать текст, который необходимо спрятать. Когда заданы данные для сокрытия, можно перейти к описанию методов сокрытия информации.

*Метод 1

Для реализации это метода необходим контейнер с большим количеством строк, в конце которых не стоит пробел. Так как для сокрытия одного бита (0 или 1) информации нам нужна одна строка и исходное сообщение содержит 15*8 (120) бит информации, для сокрытия строки, состоящей из 15 букв необходим контейнер, который будет содержать минимум 15*8 строк.

Сокрытие. После того, как мы прочли файл с информацией для сокрытия и сформировали двоичную цепочку, начинаем чтение файла-контейнера по строкам. Для сокрытия всего сообщения двигаемся слева направо по двоичному ряду. Извлекаем один символ из этой цепочки и при этом читаем одну строку из контейнера. Если символ равен 1, то в конец строки дописываем пробел, иначе строку оставляем без изменений. Получившуюся строку записываем в третий файл, открытый для записи.

Продолжаем сокрытие информации, пока у нас не закончится цепочка из нулей и единиц.

Извлечение. На входе имеем текстовый файл со строками, читаем файл по строкам. Анализируем последний символ в каждой строке. Если символ равен пробелу, то к двоичной последовательности добавляем единицу, иначе – ноль. Когда длина последовательности доходит до восьми, осуществляем перевод из двоичной в десятичную СС и получившееся число записываем как байт в новый файл, очищая двоичную последовательность. И так до тех пор, пока не закончится файл со строками.