Изучение основных методов текстовой стеганографии и программная реализация этих методов
Автор: Даниил Гарницкий • Июнь 5, 2022 • Лабораторная работа • 2,196 Слов (9 Страниц) • 325 Просмотры
Цель работы:
Изучение основных методов текстовой стеганографии и программная реализация этих методов.
Теоретическая часть:
Стеганография служит для скрытия секретных сообщений в других сообщениях, причём скрывается даже само существование секрета [1]. Как правило, отправитель пишет какое-нибудь сообщение (контейнер), а затем скрывает конфиденциальную информацию на этом же листе бумаги [2]. Данное направление защиты информации очень актуально в настоящее время, о чём свидетельствуют ресурсы, инвестируемые в развитие стеганографии правительствами ведущих стран мира и террористическими организациями.
Текстовая стеганография - стеганография, использующая текстовые контейнеры для скрытия данных, называется текстовой. При скрытии информации используются допущения при расположении и количестве символов в тексте, не учитываемые при прочтении человеком и компьютерном анализе текстового файла. Это может быть дополнительное количество пробелов и знаков табуляции в разных частях строки, чередование некоторых не учитываемых служебных символов, больших и маленьких букв, букв из разных алфавитов, но похоже выглядящих. К методам текстовой стеганографии относят: форматирование, изменение порядка следования маркеров конца строки, метод хвостовых пробелов, метод знаков одинакового начертания и изменения кода пробела [3].
В ходе выполнения данной лабораторной работы были рассмотрены следующие методы:
- Метод прямой замены символов, когда один символ русского алфавита заменяется латинским того же начертания. Основная проблема этого метода в том, если будут использоваться программы с автоматической проверкой на орфографию.
- Метод с использованием дополнительных пробелов. В конец строки дописываются пробелы. Для кодирования «0» используется единичный пробел, а для «1» используется двойной пробел.
- Метод добавления служебных символов, когда один служебный символ заменяется аналогичным по таблице utf-8 либо добавляются невидимые символы.
Практическая часть:
Все алгоритмы были написаны на языке программирования Python. На вход подается слово, которое мы хотим передать, и путь текстового файла, в который будет происходить запись. Преобразуем слово в бинарный код.
В методе 1 чтение текстового файла происходит посимвольно. Меняем русскую букву «о» на английскую “o” для кодирования «0», русскую букву «а» на английскую “a” для кодирования «1».
В методе 2 чтение текстового файла происходит построчно. В конец строки добавляем два пробела, если в двоичной кодировке необходимо записать «1», либо один пробел для кодирования «0».
В методе 3 чтение текстового файла происходит посимвольно. Добавляем служебные символы «пустой символ» для кодирования «0», «начало загаловка» для кодирования «1».
Происходит посимвольное чтение последовательности 0 и 1.
В конце полученный бинарный код преобразуется в текст, который передавался.
Анализ:
Как основа для контейнера было взят отрывок из произведения А. П. Чехова «Палата №6».
Оценка размера контейнера до встраивания и после:
- Используя первый метод со встраиванием слова «Здравствуйте», получаем контейнер с меньшим размером после встраивания. Это происходит из-за того, что латинские символы кодируются 1 байтом, а символы кириллицы – 2 байтами. (185105/185297) * 100% = 99.9% сходства.
- Используя второй метод со встраиванием слова «Здравствуйте», получаем контейнер с большим размером после встраивания, так как происходит добавление пробелов. (185297/185569) * 100% = 99.85% сходства.
- Используя третий метод со встраиванием слова «Здравствуйте», контейнер будет иметь тот же размер. (185297/185297) * 100% = 100% сходства.
Таким образом, можно утверждать, что данные методы эффективны, но лишь при использовании достаточно большого текстового контейнера.
...