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

Обзор методов внедрения данных в текстовый файл. Экспериментальная проверка эффективности разработанной схемы стегоанализа. Описание способа получения распределения вероятностей байт. Система внедрения цифровых водяных знаков в исходные коды программ.

Рубрика Программирование, компьютеры и кибернетика
Вид диссертация
Язык русский
Дата добавления 11.06.2018
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

На следующем рис. 1.6, показаны два графика зависимости значений функции , при выбранных фиксированных параметрах, для 100 случайно отобранных файлов, содержащих стеготекст, сгенерированный при помощи Texto, и 100 файлов содержащих обычный текст.

Обозначим заполненный и пустой контейнеры _ и сооветственно, где _ номер файла.

Рис. 1.6. Графики функции и , при Кбайт, Кбайт.

Среднеквадратическое отклонение значений стеготекста и обычного текста составляет и соответственно. Математическое ожидание и .

Рис. 1.7. Графики функции и , при Кбайт, Кбайт.

Мы видим, что предположение о влиянии содержимого специального контейнера на степень сжатия добавляемого текста подтверждается. Для высокой эффективности разрабатываемого стегоанализа необходимо, чтобы множества значений , соответствующих тексту и стеготексту, никогда не пересекались. Однако в нашем случае мы не можем гарантировать, что они не пересекутся, так как было рассмотрено всего 100 контейнеров. Мы можем говорить лишь о малой вероятности наступления такого события.

На следующем рисунке изображена другая пара графиков при выбранном значении .

Среднеквадратическое отклонение значений стеготекста и обычного текста составляет и соответственно. Математическое ожидание и .

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

Теперь рассмотрим следующую пару рисунков, при .

Рис. 1.8. Графики функции и , при Кбайт, Кбайт.

Здесь на рис. 1.8 и . и .

Рис. 9. Графики функции и , при Кбайт, Кбайт.

Здесь на рис. 1.9 и . и .

Графики, соответствующие архиваторам GZIP и ZIP, практически совпадают. Как и в предыдущем случае, при следует выбирать в качестве специального контейнера .

Рассмотрим другую пару графиков, представленных на рис. 1.10 и рис. 1.11.

Рис. 1.10. Графики функции и , при Кбайт, Кбайт.

Здесь на рис. 1.10 и . и .

В отличие от предыдущих случаев выбранный архиватор BZIP2 обеспечивает малые значения и , как в случае выбора параметра , так и . Можно сказать, что значение функции существенно зависит от происхождения текста (искусственный или естественный). При этом влияние вида обычного текста (научный, художественный, …) является незначительным.

Рис. 1.11. Графики функции и , при Кбайт, Кбайт.

Здесь на рис. 1.11 и . и .

Итак, мы будем использовать параметры и по следующим причинам:

a) При выборе архиватора BZIP2 значения функции существенно зависят только от происхождения текста. Любые другие влияющие факторы могут потребовать корректировки схемы анализа, что является нежелательным.

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

Поиск оптимальных параметров работы алгоритма

Эффективная работа алгоритма стегоанализа предполагает низкую вероятность ошибки при малых объемах входных данных. В предыдущем разделе размер входных данных был достаточно большим и составлял Кбайт. Для повышения эффективности работы метода мы будем уменьшать размер анализируемого контейнера и соответственно значение . Повышение эффективности ограничено некоторым минимальным размером анализируемого контейнера, при котором значения функций соответствующее естесственному тексту и стеготексту начинают пересекаться.

Рис. 1.12. Графики функции и , при Кбайт, Кбайт.

Рис. 1.13. Графики функции и , при Кбайт, Кбайт.

Рис. 1.14. Графики функции и , при Кбайт, Кбайт.

Рис. 1.15. Графики функции и , при Кбайт, Кбайт.

Рис. 1.16. Графики функции и , при Кбайт, Кбайт.

Рис. 1.17. Графики функции и , при Кбайт, байт.

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

Рис. 1.18. Графики функции и , при Кбайт, байт.

Рис. 1.19. Графики функции и , при Кбайт, байт.

В конечном итоге был найден контейнер , обеспечивающий наиболее высокую эффективность работы анализа.

Рис. 1.20. Графики функции и , при Кбайт, байт.

В ходе дальнейших экспериментов при других наборах данных было установлено, что для стегоанализа следует использовать пару значений: и .

Например, на следующих рис. 1.21 и рис. 1.22 представлены графики значений функции и для 1000 пустых и 1000 заполненных контейнеров. (Для наглядности значения отсортированы по возрастанию.)

Рис. 1.22. Графики функции и для контейнеров .

Рис. 1.23. Графики функции и для контейнеров .

Из графиков становится видно, что если выполняется условие:

, то следует считать, что анализируемый контейнер пуст, иначе - заполнен.

Итак, мы выяснили, что в качестве архиватора следует использовать BZIP2, и минимальный размер анализируемого контейнера составляет 400 байт. В ходе ряда экспериментов на разных наборах данных было установлено, что для стегоанализа следует использовать пару значений: и .

Таким образом, построенная схема стегоанализа состоит из нескольких шагов:

1. В специально подобранные контейнеры ( и ) Содержимое специальных контейнеров будет приведено в приложении A.1 дописывается содержимое анализируемого контейнера .

2. Производится сжатие полученных контейнеров с помощью архиватора BZIP2.

3. Производится расчет значений и .

4. Исходя из полученных значений ( и ) осуществляется определение факта наличия или отсутствия стеготекста в контейнере.

1.5 Экспериментальная проверка эффективности разработанной схемы стегоанализа

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

Для эксперимента была сформирована выборка, состоящая из 10000 случайно отобранных файлов содержащих обычный текст и 10000 содержащих стеготекст. Каждый файл, содержащий стеготекст, был получен с помощью программы Texto следующим образом. На вход программе подавался файл, содержащий псевдослучайную последовательность (имитирующий зашифрованное сообщение). На выходе программы создается файл содержащий стеготекст.

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

Таблица 1.5. Результаты работы программы.

Содержимое контейнера

Количество правильных определений

Количество неправильных определений

Обычный текст

10000

0

Стеготекст

9998

2

Таким образом, результаты эксперимента показывают, что ошибка I рода составляет 0,02%, ошибка II рода отсутствует.

Теперь рассмотрим диаграмму эффективности работы стегоанализа, когда размер анализируемого контейнера байт, представленную на рис. 1.24.

В таком случае, естественный текст продолжает распознаваться без ошибок, а для искусственного текста вероятность ошибки возрастает по мере уменьшения размера контейнера. Однако из рис. 1.24 видно, что при байт предложенный метод быстро деградирует.

Рис. 1.24. Диаграмма точности работы метода при уменьшении размера контейнера.

Теперь сравним разработанный метод с существующими аналогами (Chen Z. и др. 2008(1) [12], Chen Z. и др. 2008(2) [13]). Ниже на рис. 1.25, был построен график зависимости точности обнаружения от размера контейнера, различных схем стегоанализа.

Рис. 1.25. Сравнительные графики эффективности работы методов стегоанализа контейнеров, полученных с помощью программы Texto.

Таким образом, мы видим, что предложенный метод позволяет эффективно решать задачу обнаружения скрытой информации в текстовые контейнеры. Ошибка I рода составляет 0,02%, ошибка II рода отсутствует, для текстовых фрагментов размером 400 байт, полученных с помощью программы Texto. Более того, анализ контейнера занимает сравнительно мало времени (порядка 0.1-0.5 сек) на современных персональных компьютерах.

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

ГЛАВА 2. МЕТОД СТЕГОАНАЛИЗА ТЕКСТОВЫХ ДАННЫХ, БАЗИРУЮЩИЙСЯ НА СТАТИСТИЧЕСКОМ ТЕСТЕ

В главе 1 были подробно рассмотрены различные методы стеганографии и стегоанализа текстовых файлов. В этой части диссертации мы остановимся на методе встраивания скрытой информации, описанном в статье [3]. В настоящей работе будет предложен метод обнаружения секретных сообщений в текстовых контейнерах, базирующийся на статистическом тесте. Ниже будут рассмотрены известные подходы стегоанализа для рассматриваемого метода внедрения.

2.1 Обзор существующих методов стегоанализа текстовых файлов

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

Несмотря на перечисленные достоинства, можно отметить наличие следующего недостатка, например, возможное нарушение стиля написания текста:

«(0). . . and make it still better, and say nothing of the bad - belongs to you alone.

(1). . . and make it still better, and say nada of the bad - belongs to you alone.»[18]

Можно утверждать, что использование слова nada является нетипичным для некоторых авторов, (в частности, Jane Austen), и может вызывать подозрение. Указанный недостаток можно использовать в стегоанализе.

Многие работы, посвященные стегоанализу метода замены синонимов, для получения стеготекста используют широко известную стеганографическую программу Tyrannosaurus Lex (доступную по адресу [3]). На рис. 2.1 рассмотрен принцип ее работы:

Рис. 2.1. Схематичное представление принципа работы стеганографической программы Tyrannosaurus Lex.

Рассмотрим исходный текст, состоящий из двух предложений. На первом шаге находятся слова (выделены жирным шрифтом), имееющие некоторый набор синонимов. На втором шаге производится расчет объема внедрения. В нашем случае имеются наборы синонимов размером по 3, 5 и 3 слов соответственно. Следовательно, возможно получить 45 различных вариантов текста. Таким образом, можно скрыть 5 бит информации. На следующем шаге внедряемое сообщение (битовая последовательность “10110”) переводится в число десятичной системы счисления. Полученное число есть номер комбинации предложения. В итоге мы получаем текст, содержащий скрытое сообщение. Извлечение информации из контейнера производится аналогичным образом. Ниже будут рассмотрены известные методы стегоанализа текстовых контейнеров, полученных с помощью выше описанной программы [3].

Опубликованный в работе [18] подход стегоанализа предполагает выявлять нарушение семантических правил английского языка. Рассмотрим следующий пример: при встраивании сообщения во фразу what time is it?, слово time может быть заменено на period или duration, что некорректно для английского языка. При анализе текста, полученного программой [3], ошибка I рода составляет 61.4 %. Ошибка II рода - 15.1 %. Стоит отметить, что данный уровень ошибок получается при анализе одного предложения. Следовательно, анализ текста, состоящего из нескольких предложений, будет более эффективным. Данный метод требует достаточно много времени работы.

Еще один метод стегоанализа предложен в работе [19]. Авторы предлагают использовать контекст слов для выявления факта внедрения. Поясним основную идею метода на следующем примере. Под контекстом слова intersect размером четыре понимается два слова с права и слева (контекст выделен жирным шрифтом: “Synonym sets do intersect with each other). Для указанного слова предлагается оценивать насколько подходящим оно является для текущего контекста. В статье объясняется принцип оценивания следующим образом:

Чтобы пояснить принцип оценивания, введем некоторые обозначения. Пусть - оцениваемое слово (в нашем случае intersect). Тогда - частота встречаемости слова в большом наборе текстов. - частота слова с контекстом . Таким образом, из двух слов и для заданного контекста следует считать подходящим слово , если выполняется одно из следующих условий:

1. , то есть при одинаковой частоте встречаемости слов и считают подходящим слово , если оно встречается чаще с указанным контекстом , чем слово .

2. , при одинаковой частоте встречаемости слов и с учетом контекста считают подходящим слово , если оно чаще встречается в текстах (без учета контекста).

3. , даже если слово встречается реже слова , но в заданном контексте чаще используется слово , то его считают подходящим. Например, в типичном тексте слово unaccredited может встречаться чаще, чем unlicensed, но при определенном контексте, как в случае с предложением “You use unlicensed software”, употребляется только unlicensed. Следовательно, в данном примере слово unlicensed является подходящим.

В табл. 2.1 показана эффективность работы метода. Мы видим, что указанный подход обеспечивает высокую точность работы при малом объеме входных данных.

Таблица 2.1. Вероятности ошибок работы метода, учитывающего контекст слова.

Объем внедрения

Ошибка I рода

Ошибка II рода

20 бит

13.9 %

22.3 %

64 бит

7.8 %

8.9 %

На сегодняшний день самым точным следует считать метод, опубликованный в работе [20]. Авторы предлагают оценивать равномерность выбора синонима в предложении. Очевидно, что в предложениях со скрытой информацией выбор синонима выглядит более случайным. На больших наборах текстовых контейнеров (пустых и заполненных) производится сбор статистической информации, характеризующей выбор синонима с использованием программы SVM [11], т.е. происходит обучение на известных наборах данных. Далее, анализируя любой подозрительный контейнер, используя аналогичную статистическую информацию, можно определить наличие факта передачи секретного сообщения. Указанный метод работает с высокой точностью при малых объемах входных данных. На рис. 2.2 указан график зависимости точности работы метода от числа замененных слов.

Рис. 2.2. Эффективность работы стегоанализа выявляющего случайность выбора синонима.

Под точностью понимается отношение числа правильных срабатываний метода (на пустых и заполненных контейнерах) к общему количеству контейнеров. Для программы Tyrannosaurus-Lex принято считать, что замена каждого слова синонимом соответствует, приблизительно, одному биту внедренного сообщения. Мы видим, что даже при 10 замененных словах метод работает достаточно эффективно.

2.2 Построение схемы стегоанализа текстовых данных

Описание предлагаемого подхода

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

На рис. 2.3 представлена схема работы предлагаемого метода стегоанализа. Из контейнера извлекается сообщение. Далее, его разбивают на элементы размером бит. Для анализа используется таких элементов.

Рис. 2.3. Схема предлагаемого метода стегоанализа

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

Выбор статистического теста

Как уже было отмечено, для построения стегоанализа нам необходим статистический тест, который позволит различить двоичную последовательность, полученную из пустого контейнера от последовательности из заполненного контейнера. Выбор такого теста влияет на эффективность предлагаемой схемы стегоанализа. Простейшим тестом, проверяющим соответствие последовательности некоторому распределению, является тест хи-квадрат [21]. В данной работе указанный тест используется для проверки на соответствие равномерному Появление различных серии бит равновероятно и между их появлениями отсутствуют закономерности. распределению серий бит анализируемой последовательности.

Сравнение эмпирического закона распределения случайной величины и теоретического производится при помощи специального правила - критерия согласия Пирсона. Существует две гипотезы Н0 о том, что анализируемая последовательность подчиняется равномерному закону распределения, и альтернативная гипотеза На о том, что последовательность не подчиняется равномерному закону распределения. По результатам теста одна из гипотез принимается, а другая отвергается.

Рассмотрим следующий пример. Пусть имеется последовательность битовых серий длины 2 бита: x=10,00,11,01,10,00,10,01,11, 00,10,01,10,00,11,10,00,11,01,00,01,10,01,11. Необходимо выяснить подчиняется ли появление битовых серий закону равномерного распределения. Для этого используется статистика:

,

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

. Распределение асимптотически сходится к так называемому распределению хи-квадрат. Считается, что на практике распределения и хи-квадрат совпадаю при выполнении условия, что все больше 5. Таким образом получаем:

,

Гипотеза принимается, если для заданного уровня значимости Вероятность того, что найденное значение статистики превзойдет квантиль распределения. (в нашем примере возьмем ) вычисленное значение не превосходит квантиль распределения с степенями свободы. В остальных случаях принимается гипотеза . В нашем случае следовательно, найденное значение . Таким образом, гипотеза принимается, а отвергается. Вывод: появление битовых серий в исходной последовательности подчиняется закону равномерного распределения.

Поиск оптимальных параметров работы метода

В предыдущем разделе главы мы установили, что для построения схемы стегоанализа следует использовать статистический тест хи-квадрат. Далее, необходимо определить остальные параметры работы метода. В ходе экспериментов будут подбираться такие значения параметров и ( - количество битовых серий, - длина одной серии), при которых стегоанализ проходит наиболее эффективно. Для этого была сформирована выборка контейнеров, состоящая из текстовых файлов (художественные произведения на английском языке [23]) общим размером в 150 Мб. Затем извлекалось стегосообщение до заполнения контейнера и после. Далее, применялся тест хи-квадрат для выявления случайности распределения элементов (длинны ). При заполнении контейнеров (необходимых для проведения нашего эксперимента) рассматривалось два случая:

· внедренное сообщение ? это естественный текст на английском языке;

· внедренное сообщение ? это зашифрованный текст (мы будем имитировать его псевдослучайной последовательностью).

Рассмотрим случай, когда внедренное сообщение является естественным текстом на английском языке. Было установлено, что в этом случае сообщение, полученное из пустого контейнера, выглядит более случайным Под случайностью понимается степень близости к равномерному распределению., чем извлеченное из заполненного. В табл. 2.2 и табл. 2.3 приведены результаты 400 попыток определения наличия стеготекста предложенным методом.

Таблица 2.2. Результаты работы стеготеста при , если внедренное сообщение является естественным текстом на английском языке.

Размер элемента

N=1000

N=700

N=500

N=300

Род ошибки

I

II

I

II

I

II

I

II

L=1

58

30

44

47

34

61

28

77

L=2

72

14

59

33

45

52

35

74

L=3

83

9

64

23

49

42

34

65

L=4

97

5

95

21

86

42

68

68

L=5

84

1

68

9

50

24

33

51

Таблица 2.3. Результаты работы стеготеста при , если внедренное сообщение является естественным текстом на английском языке.

Размер элемента

N=100

N=70

N=30

N=15

Род ошибки

I

II

I

II

I

II

I

II

L=1

14

15

10

15

8

16

6

100

L=2

14

93

12

68

9

23

49

100

L=3

17

93

7

27

87

3

0

100

L=4

36

7

92

3

38

37

0

100

L=5

88

15

92

26

0

100

0

100

Из представленных результатов видно, что метод работает лучше всего при и .

Теперь рассмотрим случай, когда внедренное сообщение является псевдослучайной последовательностью. Данная ситуация рассматривается потому, что обычно при передаче секретного сообщения его предварительно шифруют. Мы будем имитировать зашифрованное сообщение последовательностью, полученной из генератора случайных чисел Здесь используется линейный конгруэнтный генератор случайных чисел.. В таком случае сообщение, извлеченное из пустого контейнера, выглядит менее случайным, чем извлеченное из заполненного. Результаты работы стеготеста представлены в табл. 2.4. и табл. 2.5.

Таблица 2.4. Результаты работы стеготеста при , если в контейнер внедрено зашифрованное сообщение.

Размер элемента

N=1000

N=700

N=500

N=300

Род ошибки

I

II

I

II

I

II

I

II

L=1

42

6

56

7

66

6

72

6

L=2

28

5

41

4

55

7

65

4

L=3

17

9

36

4

51

5

66

4

L=4

3

5

5

7

14

6

32

7

L=5

16

3

32

1

50

7

67

5

Таблица 2.5. Результаты работы стеготеста при , если в контейнер внедрено зашифрованное сообщение.

Размер элемента

N=100

N=70

N=30

N=15

Род ошибки

I

II

I

II

I

II

I

II

L=1

86

6

90

4

92

5

94

19

L=2

86

5

88

5

91

63

51

65

L=3

83

6

93

6

13

97

100

0

L=4

64

29

8

94

62

57

100

0

L=5

12

92

8

88

100

0

100

0

Из представленных результатов видно, что стеготест работает лучше всего при и . Подведем предварительные итоги. В табл. 2.6 представлены результаты работы метода при различных типах внедряемых сообщений.

Таблица 2.6. Эффективность работы разработанной схемы стегоанализа текстовых данных.

Тип внедряемого сообщения

Род ошибки

Размер входного сообщения

I рода

II рода

Естественный текст

8 %

16 %

30 бит

Зашифрованный текст

3 %

5 %

4000 бит

Подбор оптимальной схемы стегоанализа

Далее, в ходе работы предлагается модифицировать предложенную схему стегоанализа. Напомним, что в предыдущем разделе главы мы извлекали стегосообщение из текстового контейнера и разбивали его на элементы по бит. Затем проверялась случайность распределения этих элементов. Таким образом, производилось определение наличия факта внедрения в контейнер. В ходе работы было установлено, что при и бит стегоанализ проходит наиболее эффективно.

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

Мы видим, что кривые пересекаются. Это означает, что часть сообщений, извлеченных из пустых контейнеров, статистически неразличимо от сообщений, полученных из заполненных контейнеров. Следовательно, предлагаемый метод стегоанализа будет ошибаться в ряде случаев. Подбирая значение квантиля можно уменьшать ошибку I рода, при этом будет увеличиваться ошибка II рода и наоборот. В дальнейшем, для повышения эффективности работы метода мы будем подбирать значение квантиля эмпирическим путем.

Рис. 2.4. Значения хи-квадрат, полученные для пустых и заполненных контейнеров.

В настоящей работе для повышения точности работы стегоанализа предлагается дополнительно использовать “тест со смещением”, представленный на рис. 2.5 .

Тест состоит из пяти шагов. На первом шаге извлеченное сообщение (начиная с первого бита) разбивается на элементы размером 4 бита. Далее, проверяется случайность распределения этих элементов (вышеописанным способом). На каждом последующем шаге происходит отбрасывание одного крайнего левого бита сообщения. Затем, производится аналогичное разбиение на элементы и проверка на случайность. Если на одном из пяти шагов сообщение признается неслучайным, то считается, что контейнер пуст.

Рис. 2.5. Принципиальная схема работы теста со смещением.

2.3 Экспериментальная проверка эффективности работы метода стегоанализа

В этом разделе главы мы переходим к описанию эксперимента, целью которого является определение эффективности предложенной схемы стегоанализа. Как изображено на рис. 2.6, на первом этапе определяется точность работы метода на пустых контейнерах. Набор текстов общим размером в 400 Мб, состоящий из художественных произведений [23] на английском языке, объединялся в один файл (Text). Затем, из этого файла при помощи программы Tyranozaurus Lex извлекалось сообщение. Полученную двоичную последовательность (message) разбивали на отдельные фрагменты (frag). Количество фрагментов в нашем эксперименте составляет не менее 1000 шт. Далее, как показано на рис. 2.6, каждый такой фрагмент анализировался с помощью разработанной программы стегоанализа. На заключительном шаге подсчитывались ошибки работы метода (ошибки I рода).

Рис. 2.6. Схема проведения эксперимента на пустых контейнерах

На втором этапе эксперимента определялась точность работы метода на заполненных контейнерах. В отличие от предыдущего раздела 2.2.3, когда секретное сообщение имитировалось при помощи линейного конгруэнтного генератора случайных чисел, здесь оно получено с помощью шифра RC6. Аналогично с первым этапом эксперимента полученное сообщение (message) разбивалось на отдельные фрагменты (frag). Затем, каждый фрагмент независимо от других анализировался с помощью разработанной программы стегоанализа. На заключительном шаге подсчитывались ошибки работы метода (ошибки II рода). По результатам проведения эксперимента были построены табл. 2.6 и табл. 2.7 .

Таблица 2.6. Результаты проведения эксперимента при.

Квантиль

Род ошибки

Значение N

1000

900

800

700

600

28

1 рода

1.0

1.5

2.5

4.9

7.9

2 рода

5.1

4.9

5.8

6.3

5.7

33

1 рода

2.3

3.0

5.2

9.2

12.3

2 рода

1.9

1.7

1.1

1.7

1.7

45

1 рода

9.4

12.7

16.2

21.2

29.3

2 рода

0.0

0.0

0.0

0.0

0.0

Таблица 2.7. Результаты проведения эксперимента при.

Квантиль

Род ошибки

Значение N

500

400

300

200

100

28

1 рода

11.7

17.8

28.0

48.9

74.7

2 рода

4.6

4.3

5.5

6.1

4.5

33

1 рода

18.8

27.6

45.8

67.7

83.8

2 рода

1.2

1.2

1.1

1.9

1.5

45

1 рода

43.5

66.5

78.5

86.1

92.8

2 рода

0.0

0.0

0.1

0.1

0.0

Подытожим результаты. Как показали эксперименты, “тест со смещением” позволил незначительно увеличить эффективность стегоанализа. Также было установлено, что при анализе следует использовать следующие параметры и бит. В табл. 2.8 приведены основные результаты работы предложенной схемы стегоанализа.

Мы видим, что квантиль равный 33 позволяет получить наибольшую точность работы стегоанализа.

Таблица 2.8. Результаты работы метода при различных значения квантиля.

Род ошибки

Квантиль

28

33

45

I рода

1.0 %

2.3 %

9.4 %

II рода

5.1 %

1.9 %

0.0 %

Целью этой главы ставилось создание метода стегоанализа, выявляющего заполнение текстового контейнера секретным сообщением, при помощи программы [3]. Разработанный алгоритм анализирует извлеченное из контейнера сообщение, проверяя его на случайность. Таким образом, мы построили эффективный стеготест, имеющий достаточно простую реализацию, что положительно влияет на скорость его работы. В табл. 2.9 произведено сравнение разработанного метода с известными аналогами (Taskirian C. и др. 2006 [18], Yu Z. и др. 2009 [19], Chen Z. и др. 2011 [20]). Из представленных результатов видно, что предложенный метод не уступает по точности работы современным аналогам. Несмотря на то, что реализованный алгоритм требует сравнительно больший объем данных, его реализация значительно более проста, чем у приведенных аналогов.

Таблица 2.9. Результаты сравнения метода с известными аналогами

Метод

Род ошибки

Chen Z.и др. 2011

Yu Z. и др. 2009

Taskirian C. и др. 2006

Новый

I рода

2.3 %

7.8 %

61.4 %

2.3 %

II рода

0.5 %

8.9 %

15.1 %

1.9 %

Объем входных данных, бит

100-150

64

1-4

4000

ГЛАВА 3. МЕТОД СТЕГОАНАЛИЗА ИСПОЛНЯЕМЫХ ФАЙЛОВ, БАЗИРУЮЩИЙСЯ НА КОДЕ ХАФФМАНА

3.1 Введение

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

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

Существует два направления развития методов внедрения информации в исполняемые файлы.

Первое направление развития - это построение систем защиты авторских прав. В каждую продаваемую копию программного продукта с помощью специальных алгоритмов внедряется особое сообщение - водяной знак, по которому, в случае обнаружения нелегальной (пиратской) копии, с легкостью может быть прослежен исходный файл, с которого была снята эта копия и, соответственно, пользователь, нарушивший лицензионное соглашение. Очевидно, что внедряемый водяной знак должен обладать некоторой степенью устойчивости, то есть противостоять удалению или искажению. Считается, что заранее можно предугадать, содержится ли водяной знак или нет. Ряд публикаций, например [25-32], посвящен методам внедрения скрытой информации в программы. Подробно это направление стеганографии будет рассмотрено в главе 4.

Второе направление развития стеганографии исполняемых файлов - передача скрытых секретных сообщений. В данной работе речь пойдет об этом направлении. За основу был взят метод, предложенный в статье [32]. Его основная идея состоит в том, чтобы размещать секретное сообщение в неиспользуемых местах секций исполняемых файлов формата Portable Executable (PE) Portable Executable - формат исполняемых файлов (программ) используется в операционных системах семейства Windows.. Каждая секция такого файла должна быть размером кратным полю FileAligment (см. документацию Microsoft [33]). Таким образом, см. рис. 3.1, секция кода состоит из байтов инструкций программы и нулевых байтов выравнивания, увеличивающих секцию до требуемых размеров.

Рис. 3.1. Содержимое части секции кода исполняемого файла.

Авторы работы [32] предлагают вместо байтов выравнивания записывать секретное сообщение. По их мнению, это имеет следующие преимущества. Размер файла остается неизменным и внедренное сообщение никак не влияет на ход выполнения программы. Предполагается, что передаваемое сообщение будет предварительно зашифровано, и для его прочтения необходимо знать секретный ключ, а также начальную позицию сообщения в файле. Как будет показано ниже, данный подход не является устойчивым из-за различных статистических свойств кода программы и передаваемого зашифрованного сообщения.

Во многих работах, например [34], используется подход, применяющий статистический анализ для выявления нетипичного для подавляющего большинства исполняемых файлов набора команд, способов выделения регистров, большой избыточности кода или неиспользуемых ветвей программы (т.н. мертвый код). В настоящей работе предлагается новый метод стегоанализа, предполагающий использование архиватора для выявления случайности сообщения.

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

3.2 Описание и построение предлагаемого метода стегоанализа

Описание предлагаемого метода

В данном разделе главы будет дано описание предлагаемого метода стегоанализа исполняемых файлов. Ранее уже было упомянуто, что за основу была взята схема встраивания, опубликованная в работе [32]. Указанный метод внедрения предполагает записывать сообщение в конец секции кода программы. Соответственно, для выявления факта внедрения необходимо анализировать эту же часть секции. Таким образом, предлагаемая схема стегоанализа состоит из следующих этапов:

1. Извлечение исполняемой секции из файла программы;

2. Удаление байтов выравнивания;

3. Кодирование последних байт секции О выборе величины подробнее будет написано в разделе 3.2.3.;

4. Заключительный этап определения факта внедрения.

Этап извлечения секции кода требует определенный уровень знания PE формата. Для начала, необходимо найти смещение заголовка PE. Одно из полей заголовка - Section headers указывает на массив заголовков секций, каждый элемент которого описывает набор атрибутов секций файла, таких как адрес начала, размер и атрибуты секции. Определять, является ли секция кодовой (т.е. искомой), необходимо по значению бит характеристики.

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

Третий этап основывается на особенности исходного метода внедрения и заключается в том, что запись сообщения осуществляется в конец секции, непосредственно после кода программы. Следовательно, должен производиться анализ этих последних байтов (предположительное место размещения скрытого сообщения). Для простоты эту анализируемую часть секции мы будем называть “окном”.

Уточним некоторые детали, связанные с выбором величины . Здесь следует стремиться к уменьшению размера окна по следующим причинам. На рис. 3.2 показана ситуация выбора большого размера окна (заштрихованная область). В этом случае, в окно попадет и скрытое сообщение, и часть кода программы. На этапе кодирования стегосообщение в размерах практически не уменьшится, а код, из-за частого повторения одинаковых инструкций, «сожмется» значительно лучше. Следовательно, в результате анализа таких разнородных данных нельзя однозначно определить, какими статистическими свойствами (зашифрованного сообщения или кода программы) обладает содержимое окна. Как следствие, увеличение числа ошибок работы стегоанализа.

Если выбрать маленький размер окна, как показано на рис. 3.3, то в таком случае, анализируемые байты будут состоять только из секретного сообщения. Данные будут однородными, а это означает, что наш метод стегоанализа будет работать более точно. В тоже время, очевидно, что чем меньше размер окна, тем меньше повторяющихся инструкций может оно содержать и, как следствие, код программы будет иметь меньше статистических отличий от зашифрованного сообщения. Оптимальный размер окна будет подбираться эмпирически в разделе 3.2.3.

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

Выбор архиватора

В этом разделе главе мы проанализируем работу различных архиваторов и выберем среди них наиболее подходящий для нашего метода.

Итак, произведем сравнение следующих архиваторов: Bzip, Bzip2, Zip, Rar, Paq8, Nanozip. Нам нужно выбрать такой архиватор, у которого размеры сжатых фрагментов программ и зашифрованных сообщений будут различаться. Исходя из того, что зашифрованное сообщение выглядит как случайная последовательность байт, мы будем имитировать его последовательностью, полученной с помощью генератора случайных чисел. Далее, возьмем по 1000 фрагментов размером 80 байт (причины выбора именно такого размера окна подробнее будут рассмотрены в следующем разделе) сгенерированной случайной последовательности и кода программы соответственно. Затем, произведем сжатие имеющихся фрагментов различными архиваторами. Получившиеся длины сжатых фрагментов будем представлять в виде интервалов. Строго говоря, для каждого архиватора мы получим два интервала:

интервал длин сжатых фрагментов случайной последовательности;

интервал длин сжатых фрагментов кода.

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

Таблица 3.1. Интервалы размеров фрагментов.

Архиватор

Интервалы

Число пересекающихся элементов

Случайная последовательность

Код

Bzip2

[141;159]

[97;142]

2

Paq8

[112;126]

[75;126]

339

Rar

[148;151]

[128;151]

823

Nanozip

[132;135]

[113;135]

864

Bzip

[109;112]

[94;112]

959

Zip

[188;194]

[180;194]

994

Под числом пересекающихся элементов понимается количество сжатых фрагментов, размеры которых попали в оба интервала (т.е. в данном случае не получилось однозначно определить - это двоичные инструкции программы или псевдослучайная последовательность). Из таблицы видно, что наиболее подходящим архиватором для стегоанализа является Bzip2 (использующий преобразование Барроуза-Уилера и код Хаффмана), т.к. дает минимальное количество пересекающихся элементов. Как уже отмечалось ранее, вместо архиваторов можно использовать любой другой метод кодирования, применяющийся для сжатия данных. Возьмем оптимальный код Хаффмана. Для построения кода предварительно рассчитываются оценки вероятностей появления каждого символа в окне. В качестве символа мы будем брать один байт. файл стегоанализ цифровой код

Рассмотрим подробнее процесс получения оценок вероятностей. Пусть имеется алфавит , его мощность , где . Будем говорить, что анализируемое окно состоит из символов алфавита. Причем символ есть байт равный . Введем множество счетчиков . Каждый элемент этого множества содержит число повторений соответствующего символа в окне. Следовательно, искомые оценки вероятностей появления каждого символа в окне можно вычислить по формуле:

Таблица 3.2. Интервалы размеров фрагментов.

Метод кодирования

Интервалы

Число пересекающихся элементов

Сл. последов.

Код

Код Хаффмана

[58;64]

[19;53]

0

Далее, по полученным оценкам вероятностей строится дерево Хаффмана. Содержимое окна кодируется, и по длине полученной последовательности определяется наличие факта внедрения. Рассмотрим интервалы для кода Хаффмана на той же выборке, что и вышеописанные архиваторы.

Как видно из табл. 3.2, в отличие от архиватора Bzip2, интервалы не пересекаются, следовательно, возможно однозначное определение факта внедрения скрытого сообщения. Таким образом, эмпирически было показано, что для нашего метода стегоанализа следует использовать оптимальный код Хаффмана.

Выбор оптимального размера окна

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

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

Производилось кодирование содержимого окна методом Хаффмана при различных значениях (от 4 Кб до 40 байт). На рис. 3.3 и 3.4 приведены размеры закодированных фрагментов при .

Рис. 3.3. Диаграмма размеров сжатых фрагментов программ W=80.

Мы видим, что получены два интервала размеров: [19;55] и [58;64] для фрагментов кода и случайной последовательности соответственно. Поскольку интервалы не пересекаются, то возможно однозначное определение факта внедрения секретного сообщения.

Рис. 3.4. Диаграмма размеров сжатых фрагментов псевдослучайной последовательности W=80.

Как уже упоминалось ранее, необходимо стремиться к уменьшению . Рассмотрим диаграммы при байт.

Рис. 3.5. Диаграмма размеров сжатых фрагментов программ W=70.

Из диаграмм (рис. 3.5, 3.6) видно, что при байт происходит пересечение интервалов длин ([26;50] и [49;54]). Следовательно, оптимальное значение составляет 80 байт.

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

Рис. 3.6. Диаграмма размеров сжатых фрагментов псевдослучайной последовательности W=70.

Описание схемы проведения эксперимента

После того как был определен размер окна , а также обоснована целесообразность использования кода Хаффмана вместо архиваторов, определим эффективность нового метода экспериментально. В качестве критерия эффективности будем использовать количество ложных срабатываний алгоритма на пустых и заполненных контейнерах. Здесь необходимо различать два вида ошибок:

· ошибка I рода - ситуация, при которой пустой контейнер признается заполненным;

· ошибка II рода - ситуация, при которой заполненный контейнер признается пустым.

Для эксперимента была сформирована выборка из 1000 файлов В разделах 3.2.2 и 3.2.3 была использована другая выборка

формата PE (программ). Рассмотрим результаты работы метода, представленные в табл. 3.3.

Таблица 3.3. Эффективность работы метода стегоанализа.

Род ошибки

Значение ошибки, %

I рода

0.0

II рода

0.1

Мы видим, что предложенный метод эффективно обнаруживает факт наличия секретного сообщения. Основным достоинством разработанной схемы анализа следует считать отсутствие необходимости дизассемблирования.

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

Рис. 3.7. Результаты работы метода при различных объемах внедрения

Ранее отмечалось, что наш метод рассчитан на работу с контейнером, заполненным на 80 байт. Если контейнер заполнен менее чем на 70 байт,
то ошибка II рода достаточно велика, что делает затруднительным практическое применение метода. Ошибка I рода отсутствует.

Причина столь высокой ошибки кроется в разнородности анализируемых данных и была описана в разделе 3.2.1. Однако уже при заполнении контейнера на 70 байт и более, метод стегоанализа достаточно эффективно обнаруживает факт внедрения секретного сообщения.

3.3 Описание подхода повышения устойчивости метода внедрения информации в исполняемый файл

Описание схемы передачи секретного сообщения

В предыдущем разделе главы мы рассматривали исходный метод внедрения информации в исполняемые файлы [32]. Было установлено, что упомянутый метод имеет существенный недостаток - различие статистических свойств кода программы и передаваемого секретного сообщения. Это различие свойств может быть использовано для стегоанализа. Очевидно, что если секретное сообщение перед внедрением будет закодировано так, что распределение вероятностей будет такое же, как у кода программы, то атаки подобного рода станут неэффективными. В данном разделе главы предлагается использовать оптимальный код Хаффмана для предварительного кодирования зашифрованного сообщения перед внедрением. Рассмотрим пример, представленный на рис. 3.8.

...

Подобные документы

  • Основные понятия стеганографии. Атаки на стегосистемы, стегосистемы водяных знаков. Применение дискретных вейвлет преобразований в кодировании цифровых зображений. Алгоритмы стеганографического встраивания информации в изображения формата JPEG2000.

    дипломная работа [3,5 M], добавлен 09.06.2013

  • Анализ показателей оценки эффективности информационных систем и технологий. Расчет трудовых и стоимостных показателей и показателей достоверности информации, разработка программы для ускорения методов обработки данных. Интерфейс и листинг приложения.

    дипломная работа [1,2 M], добавлен 14.01.2012

  • Изучение понятия корпоративной информационной системы; требования к их разработке. Ознакомление с процессом проектирования и внедрения данных компьютерных технологий на производстве. Рассмотрение специфики работы корпоративных информационных систем.

    курсовая работа [33,1 K], добавлен 02.11.2014

  • База данных как основа автоматизации. Разработка, описание и реализация программного обеспечения "Точность и правильность методов и результатов измерений для центральной заводской лаборатории ОАО "Акрилат". Листинг, исходные коды программы и базы данных.

    дипломная работа [1,0 M], добавлен 23.06.2012

  • Расчет затрат на оплату труда и на электроэнергию, эффективность внедрения базы данных, её себестоимость и срок окупаемости. Расходы на амортизацию, ремонт и обслуживание оборудования. Определение эффективности внедрения исследуемой базы данных.

    курсовая работа [39,9 K], добавлен 24.11.2013

  • Приобретение практических навыков по определению объема памяти, отводимого на внешнем запоминающем устройстве под файл данных. Расчет производительности поиска информации, хранящейся в файле на ВЗУ. Вычисление использованных кластеров и байт памяти.

    лабораторная работа [31,2 K], добавлен 26.11.2011

  • Повышение эффективности работы психолога за счет быстроты обработки данных и получения результатов тестирования как основная задача использования в данной деятельности современных информационных технологий. Применение цифровых образовательных ресурсов.

    презентация [757,8 K], добавлен 23.09.2014

  • Назначение, задачи и технология внедрения информационных систем. Подготовка нормативно-справочной информации. Аналитическая поддержка принятия управленческих решений. Оперативная обработка данных о фактах производственно-хозяйственной деятельности.

    курсовая работа [32,0 K], добавлен 16.10.2013

  • Теоретические аспекты использования Infrastructure Library информационных технологий. Планирование процессов, ролей и видов деятельности. Определение связей и необходимых видов взаимодействий в организации. Проблемы внедрения Infrastructure Library.

    курсовая работа [69,9 K], добавлен 22.05.2017

  • Информационные технологии, организация и перспективы их внедрения в архивах; этапы, объекты и цели информатизации. Направления процесса внедрения автоматизированных архивных технологий (ААТ): базы данных, сканирование документов, сетевые технологии.

    контрольная работа [23,9 K], добавлен 17.02.2011

  • Обзор технологий и современного рынка облачных сервисов. Выбор средств разработки информационной системы. Создание базы данных и прототипа приложения. Обоснование экономической эффективности внедрения разработанной системы учета заказанных товаров.

    курсовая работа [537,5 K], добавлен 23.08.2015

  • Повышение эффективности управленческой деятельности посредством внедрения информационных систем. Повышение уровня мотивации сотрудников к освоению ИС в форме поощрений и благодарностей. Проблемы безопасности информации. Оценочная стоимость проекта.

    реферат [29,6 K], добавлен 06.10.2014

  • Выбор информационных технологий. Модель базы данных. Схема алгоритма работы сайта и авторизации администратора. Управление базами данных. Защита от внедрения html-кодов при оставлении комментария на сайте. Средства безопасности системного уровня.

    курсовая работа [2,8 M], добавлен 06.06.2013

  • Понятие и сущность информационных технологий для всех сфер жизнедеятельности общества. Специфика влияния их на функционирование и развитие современных организаций. Анализ и особенности внедрения в деятельность организации на примере Банка Москвы.

    курсовая работа [257,1 K], добавлен 18.09.2014

  • Анализ надежности функциональных подсистем информационных систем. Вопросы надежности в проектной документации. Изучение понятия отказа системы. Признаки аварийной ситуации в информационной системе. Единичные показатели безотказности и ремонтопригодности.

    презентация [158,5 K], добавлен 06.09.2015

  • Обзор медицинских информационных систем. Анализ и моделирование автоматизированной системы "Регистратура". Требования к составу и параметрам вычислительной системы. Обоснование выбора системы управления базами данных. Разработка инструкции пользователя.

    дипломная работа [1,2 M], добавлен 14.10.2012

  • Способы повышения эффективности деятельности предприятия путем внедрения и использования информационных систем. Формирование технологической среды информационной системы. Модель СУЭ на основе теории управления. Уровни управленческого разнообразия.

    курсовая работа [346,2 K], добавлен 08.10.2014

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

    курс лекций [284,1 K], добавлен 12.12.2012

  • Понятие информационных технологий, этапы их развития, составляющие и основные виды. Особенности информационных технологий обработки данных и экспертных систем. Методология использования информационной технологии. Преимущества компьютерных технологий.

    курсовая работа [46,4 K], добавлен 16.09.2011

  • Создание надежной системы защиты данных, проходящих в локальной вычислительной сети, от сетевых атак, целью которых является хищение конфиденциальной информации. Проектирование схемы внедрения межсетевых экранов. Политика информационной безопасности.

    курсовая работа [236,1 K], добавлен 10.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.