Выпускная работа по «Основам информационных технологий»



Скачать 310.4 Kb.
Дата25.07.2014
Размер310.4 Kb.
ТипВыпускная работа


БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Выпускная работа по
«Основам информационных технологий»

Магистрант кафедры интеллектуальных систем

Махоркина Наталья Александровна

Руководитель по специальности:

к.т.н. Тихоненко С. Г.

Руководитель, ведущий практику по выпускной работе:

преподаватель Позняков А.М.

Минск 2012

ОГЛАВЛЕНИЕ



Перечень условных обозначений 3

ПРИМЕНЕНИЕ СОВРЕМЕННЫХ ИТ В СТЕГАНОРАФИИ 4

Введение 4

Глава 1. Анализ основных принципов стеганографии 5

Глава 2. Анализ существующих алгоритмов встраивания информации 10

Глава 3. Алгоритм адаптивного стеганографического маркирования объектов спутниковых изображений 16

Глава 4. Заключение 24

Библиографический список 26



ПРИЛОЖЕНИЯ 28

Приложение А. Предметный указатель 28

Приложение Б. Интернет-ресурсы в области исследования 29

Приложение В. Личный сайт 31

Приложение Г. Граф научных интересов 32

Приложение Д. Презентация магистерской диссертации 33

Приложение Г. Исходный код программы. 36



Перечень условных обозначений


КС – компьютерная стеганография;

ЦС – цифровая стеганография ;

СЧЗ – система человеческого зрения;

НЗБ – наименее значимый бит;

ЦВЗ – цифровой водяной знак;

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

СПС – скрытая пропускная способность;

ДКП – дискретное косинусное преобразование;

НЧ – низкие частоты;

СЧ – средние частоты;

ВЧ – высокие частоты;

JPEG – Joint Photographic Expert Group (стандарт сжатия графической информации);

BMP - Bitmap Picture ( формат хранения растровых изображений);

RGB – цветовое пространство, состоящее из красной, зеленой и синей цветовых составляющих;

YCbCr – цветовое пространство, состоящее из яркостной и двух цветовых (синей и красной) составляющих.

ПРИМЕНЕНИЕ СОВРЕМЕННЫХ ИТ В СТЕГАНОРАФИИ

Введение


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

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

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

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

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

Глава 1. Анализ основных принципов стеганографии


В зависимости от целей, которые должна решить стеганографическая система, можно выделить основные направления стеганографии [1]:

  • встраивание информации с целью ее скрытой передачи;

  • встраивание цифровых водяных знаков (ЦВЗ);

  • встраивание идентификационных номеров;

  • встраивание заголовков.

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

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

Определение факта наличия скрытой информации – главная задача стегоанализа.

Для стеганографических систем важно определить, насколько большой может быть пропускная способность каналов передачи скрываемых сообщений и как она зависит от других характеристик стегосистем и условий их использования. Под пропускной способностью каналов передачи скрываемых сообщений или просто скрытой пропускной способностью (СПС) [1] понимается максимальное количество информации, которое может быть вложено в один элемент контейнера. При этом скрываемые сообщения должны быть безошибочно переданы получателю и защищены от атак нарушителя, таких как попытки обнаружения факта наличия канала скрытой связи, чтения скрываемых сообщений, преднамеренного ввода ложных сообщений или разрушения встроенной в контейнер информации. Канал скрытой связи образуется внутри канала открытой связи, для которого в работах К.Шеннона по теории информации определена пропускная способность [5]. Пропускная способность канала открытой связи определяется как количество информации, которое потенциально можно передать без ошибок за одно использование канала.



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

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

  • Знание нарушителем факта наличия сообщения в каком-либо контейнере не должно помочь ему при обнаружении сообщений в других контейнерах.

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

  • Стегосистема ЦВЗ должна иметь низкую вероятность ложного обнаружения скрытого сообщения в сигнале, его не содержащем. В некоторых приложениях такое обнаружение может привести к серьезным последствиям. Например, ложное обнаружение ЦВЗ на DVD-диске может вызвать отказ от его воспроизведения плейером.

  • Должна обеспечиваться требуемая пропускная способность (это требование актуально, в основном, для стегосистем скрытой передачи информации).

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

К ЦВЗ предъявляются следующие требования.

  • ЦВЗ должен легко (вычислительно) извлекаться законным пользователем.

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

  • Должна иметься возможность добавления к стего дополнительных ЦВЗ. Например, на DVD-диске имеется метка о допустимости однократного копирования. После осуществления такого копирования необходимо добавить метку о запрете дальнейшего копирования. Можно было бы, конечно, удалить первый ЦВЗ и записать на его место второй. Однако, это противоречит предположению о трудноудалимости ЦВЗ. Лучшим выходом является добавление еще одного ЦВЗ, после которого первый не будет приниматься во внимание. Однако, наличие нескольких ЦВЗ на одном сообщении может облегчить атаку со стороны нарушителя.

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

  • существованием практически значимой задачи защиты фотографий, картин, видео от незаконного тиражирования и распространения;

  • относительно большим объемом цифрового представления изображений, что позволяет внедрять сообщения большого объема либо повышать робастность внедрения;

  • заранее известным размером контейнера, отсутствием ограничений, накладываемых требованиями реального времени;

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

  • слабой чувствительностью человеческого глаза к незначительным изменениям цветов изображения, его яркости, контрастности, содержанию в нем шума, искажениям вблизи контуров;

  • хорошо разработанными в последнее время методами цифровой обработки изображений.

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

  • встраиванием информации в пространственной области изображения;

  • встраиванием информации в области преобразования изображения.

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

Глава 2. Анализ существующих алгоритмов встраивания информации


В данной работе главным образом рассматриваются методы встраивания для двух наиболее используемых типов изображений, таких как .BMP и .JPEG. Рассмотрим и проанализируем несколько наиболее эффективных методов встраивания данных.

Метод замены наименее значимых бит является самым простым и быстрым из методов встраивания информации в пространственной области изображения. Реализация метода основана на цифровом представлении изображения (см. Рисунок 1).





Рисунок 1- Графическое представление метода замены НЗБ
Цифровые изображения представляют из себя матрицу пикселей. Пиксель – это единичный элемент изображения. Он имеет фиксированную разрядность двоичного представления. Например, пиксели полутонового изображения кодируются 8 битами (значения яркости изменяются от 0 до 255).

Младший значащий бит (НЗБ) изображения несет в себе меньше всего информации. Известно, что человек обычно не способен заметить изменение в этом бите. Фактически, он является шумом. Поэтому его можно использовать для встраивания информации. Таким образом, для полутонового изображения объем встраиваемых данных может составлять 1/8 объема контейнера. Например, в изображение размером 512х512 можно встроить 32 килобайта информации. В данном случае детектор стего анализирует только значение этого бита для каждого пикселя, а глаз человека, напротив, воспринимает только старшие 7 бит. Если модифицировать два младших бита (что также почти незаметно), то можно скрытно передать вдвое больший объем данных.

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

Рассмотрим подробнее вопрос выбора пикселей изображения для встраивания в них скрытого сообщения.

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

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

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

Таким образом, видно, что область применения данного метода ограничена рядом факторов. Метод замены НЗБ может использоваться в тех случаях, когда основными требованиями к стегосистеме являются визуальная незаметность и большая скрытая пропускная способность.

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

Количество битов для встраивания в каждый пиксель определяется его так называемой локальной вариацией [11]. Формула для подсчета локальной вариации учитывает фактор чувствительности человеческого зрения. Большие значения локальной вариации означают, что область, которой принадлежит пиксель, является граничной областью, что дает возможность встраивать больше секретных данных. С другой стороны, малое значение локальной вариации говорит о том, что область гладкая и, соответственно, меньше данных может быть встроено. Таким образом, качество стегоизображения получается очень высоким, и факт встраивания не заметен для человеческого глаза[13].

Алгоритм встраивания включает в себя следующие шаги:


  1. Пусть ti для i = 1, 2, 3, …, l – бинарный поток секретных данных длиной l. l бит секретных данных делятся на n сегментов длиной l/n. Каждый сегмент конвертируется в его десятичное значение xi, где i = 1, 2, 3, …, n.

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

  3. Определяется базис для пикселя в соответствии со значением коэффициента вариации:

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

  1. Подсчитывается остаток и значение коэффициента q для xi:

;

.

  1. Подсчитывается остаток для следующим образом:

.

  1. Встраивание секретных данных в пиксель происходит по следующему алгоритму:

Если , то встраивание данных в считается завершенным.

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



  1. После шага «6)», если , то необходимо изменить значение xi на xi = q и перейти к следующему пикселю для встраивания информации посредством прохождения шагов 2) – 6).

Если q = 0, это означает, что первый сегмент секретных данных уже встроен. В этом случае производится переход к следующему сегменту секретных данных и шаги 2) – 6) повторяются до тех пор, пока не будут встроены все секретные данные.

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



Алгоритм Коха (Koch). В данном алгоритме в блок размером 8х8 осуществляется встраивание 1 бита ЦВЗ. Описано две реализации алгоритма: псевдослучайно могут выбираться два или три коэффициента ДКП[14].

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



где cb(j,k) – коэффициент блока с номером b,



s – встраиваемый бит.

Таким образом, исходное изображение искажается за счет внесения изменений в коэффициенты ДКП.

Для чтения ЦВЗ в декодере выполняется та же процедура выбора коэффициентов, и решение о переданном бите принимается согласно правилу:

где cb(j,k) – коэффициент блока с номером b,



s – встраиваемый бит.

Главным недостатком данного метода является малый объем встраиваемых данных.

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

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


Глава 3. Алгоритм адаптивного стеганографического маркирования объектов спутниковых изображений


Цифровые изображения в любом формате представления данных (JPEG, PNG, BMP и проч.) обладают избыточной информацией, или информацией, модификация которой не повлечет значимое и визуально заметное изменение файла контейнера. Данный факт позволяет производить встраивание информации в изображения путем модификации пространственной или частотной области [15,16].

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

Решение данной задачи может быть достигнуто путем применения стеганографического скрытия данных и принятия самого картографического изображения в качестве навязанного контейнера.

В ходе выполнения данной работы был рассмотрен разработанный алгоритм адаптивного стеганографического маркирования объектов спутниковых изображений. Данный алгоритм представлен на рис.2.





Риунок 2 - Алгоритм стеганографического маркирования
В качестве исходного изображения возьмем рисунок 3, размер которого составляет 281 на 361 пикселей.



Рисунок 3 - Исходное изображение
После задания, изображение представляется в виде матрицы значений пикселей. На Рисунке 4 представлен фрагмент матрицы значений.



Рисунок 4 - Фрагмент матрицы значений пикселей изображения
Двухмерность самого изображения позволяет воспользоваться декартовой системой координат. Наиболее простой способ задания координатной системы – это определение нулевой координаты (0;0) верхним левым пикселем цифрового изображения.

После задания системы координат можно перейти непосредственно к маркированию изображения. Это ручной процесс:

Этап 1: Информация об объекте вводится в специальное поле разработанного интерфейса.

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

Автоматическое определение формата изображения задает выбор алгоритма встраивания, представленного на Рисунке 5.



Рисунок 5 - Алгоритм встраивания

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

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


  • – функция распределения сообщения в контейнере изображения. [13] P – аргумент, задающий последовательность пикселей для последующего внедрения. Данная последовательность определяется как математическая манипуляция численных значений букв пароля. N –ширина цифрового изображения, M – высота цифрового изображения.

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

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

Ключ встраивания (пароль) генерирует псевдослучайную последовательность, на основе которой, в зависимости от ключевой схемы, определяются как пиксели для встраивания информации, так и символы из массива встраиваемых данных. Блок-схема данной ключевой схемы представлена на рисунке 6.





Рисунок 6 - Блок-схема используемой ключевой схемы четвертого уровня защиты
Данная ключевая схема является является наиболее секретной ключевой схемой, что обеспечивает стойкость(скрытность) стегосистемы и ее детерминированость.

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

Для менее используемого формата BMP используется следующий алгоритм[18]:

1) С использованием генератора псевдослучайных чисел определяются координаты (xi, yi) пикселя, в который будут встраиваться данные. Пусть Pj(xi,yi) – значение j-й цветовой составляющей пикселя. Так как выбранный формат изображения – 24-битный BMP, то j изменяется от 1 до 3, то есть по каждой из цветовых составляющих R,G,B. M – поток бит встраиваемого секретного файла. Пусть B – множество координат граничных пикселей, которые определяются с помощью фильтра Превитта.

2) Если пиксель принадлежит множеству граничных пикселей B, то встраиваются 4 бита секретных данных M в контейнер путем замены четырех младших бит текущей цветовой составляющей пикселя Pj(xi,yi).

3) Иначе, если значение текущей цветовой составляющей пикселя Pj(xi,yi) лежит в диапазоне 240≤ Pj(xi,yi)≤255, встраиваются бит секретных данных M в контейнер путем замены N1 младших бит текущей цветовой составляющей пикселя Pj(xi,yi). Определение факта принадлежности значения Pj(xi,yi) данному диапазону может быть проведено путем проверки четырех старших бит величины Pj(xi,yi). Таким образом, если все эти биты установлены в 1, то оставшиеся N1 бит могут быть использованы для встраивания секретных данных.

4) Иначе, если значение Pj(xi,yi) лежит в диапазоне 224 ≤ Pj(xi,yi)≤239 (то есть 3 старших бита установлены в 1), то для встраивания информации используются наименьших значащих бита цветовой компоненты пикселя.

5) Иначе, если значение Pj(xi,yi) лежит в диапазоне 192 ≤ Pj(xi,yi)≤223 (то есть 2 старших бита установлены в 1), то для встраивания информации используются наименьших значащих бита цветовой компоненты пикселя.

6) Иначе, для всех цветовых компонент пикселей, значения которых меньше 192 (то есть 0≤ Pj(xi,yi)≤191), для встраивания информации используется наименьших значащих бита.

Шаги 1) – 6) повторяются до тех пор, пока не будут встроены все секретные данные, либо пока все пиксели изображения не будут задействованы.

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

Как упоминалось ранее, для определения положения метки на картографическом изображении и/или ее связи с выбранным объектом необходимо определить систему координат в рамках контейнера изображения. Двухмерность самого изображения позволяет воспользоваться декартовой системой координат и, для повышения стеганографической стойкости системы, задавать нулевой отсчет согласно выбранного ключа и ключевой схемы [13].

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

Для этих целей был разработан формат хранения встраиваемых данных на основе XML языка разметки





123;149 Kurchatova,5

180;12 Kurchatova,8

где и последовательности начала и конца сообщения соответственно, а и последовательно начала и конца цифровой метки.

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

Глава 4. Заключение


В результате проделанной работы:

1.       Проведено исследование существующих алгоритмов стеганографического встраивания информации в контейнеры-изображения.

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

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

Основные результаты работы докладывались на:

1.       Международной научной конференции молодых ученых «European and National Context in Research» (г. Новополоцк, 27-28 апреля 2011 г.);

2.       Международная научно-практическая конференция «Electronics'2011» (Литва, г.Вильнюс, 17-18 мая 2011 г.);

3.       «5-ой международной научной конференции по военно-техническим проблемам, проблемам обороны и безопасности, использованию технологий двойного применения. MILEX’2011» (г. Минск, 25-26 мая 2011 г.)

Основные результаты работы опубликованы в следующих печатных изданиях:

1.       Сборник научных статей: European and National Dimension in Research: materials of Junior Researchers’ III Conference.Part 1. Novopolotsk, April 27-28 2011./ Polotsk State University: pub. board prof. Dzmitry Lazovski – Novopolotsk, 2011. – 164 p. – P. 99-103



2.       Тезисы докладов: 5-я Международная научная конференция по военно-техническим проблемам, проблемам обороны и безопасности, использованию технологий двойного применения: тез.докл. – Минск: ГУ «БелИСА», 2011. – 348 с. – С. 126-127.

Библиографический список


  1. Грибунин В.Г., Оков И.Н., Туринцев И.В. “Цифровая стеганография”. Солон-Пресс, 2002.

  2. Osborne C., van Schyndel R., Tirkel A. A Digital Watermark // IEEE Intern. Conf. on Image Processing, P. 86-90, 1994.

  3. Anderson R., editor. // Proc. Int. Workshop on Information Hiding: Lecture Notes in Computer Science. Springer-Verlag, Cambridge. 1996.

  4. Стегоанализ // Стегоанализ-Википедия [Электронный ресурс] / Википедия-свободная энциклопедия - Электрон. дан. - Режим доступа: http://ru.wikipedia.org/wiki/Стегоанализ, свободный. — Загл. с экрана.

  5. Matsui K., Tanaka K., and Nakamura Y. Digital signature on a facsimile document by recursive MH coding // Symposium On Cryptography and Information Security, 1989.

  6. Авторская библиотека [Электронный ресурс] / авторский коллектив кафедры "Телекоммуникации" Ульяновского государственного технического университета - Электрон. дан. – Ульяновск - Режим доступа: http://www.sernam.ru/ , свободный. — Загл. с экрана.

  7. Nan-I Wu, Min-Shiang Hwang, “Data Hiding: Current Status and Key Issues”. International Journal of Network Security, Vol.4, No.1, PP.1–9, Jan. 2007

  8. Fridrich J., Du R., Long M. Steganalysis of LSB encoding in color images // ICME, 2000.

  9. C. K. Chan and L. M. Cheng, “Hiding data in images by simple LSB substitution,” Pattern Recognition, pp. 469–474, Mar. 2004.

  10. D. C. Wu and W. H. Tsai, “A steganographic method for images by pixel-value differencing”, Pattern Recognition Letters, vol. 24, no. 9-10, pp. 1613– 1626, 2003.

  11. X. Zhang and S. Wang, “Steganography using multiple-base notational system and human vision sensitivity,” IEEE Signal Processing Letters, vol. 12, pp. 67–70, Jan. 2005.

  12. JPEG Standard (JPEG ISO/IEC 10918-1 ITU-T Recommendation T.81).

  13. Чернявский, А.Ф. Стеганостойкость ключевых схем стеганографического встраивания информации / А.Ф. Чернявский, И.Л. Чваркова, В.С. Садов // Информатика. – 2008. – № 2(18). – С. 119–128

  14. Чваркова, И.Л. Повышение эффективности ДКП-базисного стеганографического алгоритма скрытия авторских сигнатур / И.Л. Чваркова, В.С. Садов // Современная радиоэлектроника: научные исследования, подготовка кадров: сб. научных статей, Минск, 10-11 апреля 2007г. / МГВРК; под общ. ред. Н.А. Цырельчука. – Минск, 2007. – С. 168–172

  15. Koch, E. Robust and Hidden Image Copyright Labeling / E. Koch, Towards Zhao J. – IEEE Workshop on Nonlinear Signal and Image Processing. – 1995. – P. 123-132

  16. Juneja, M. Designing of Robust Image Steganography Technique Based on LSB Insertion and Encryption /M. Juneja, P.S. Sandhu // Advances in Recent Technologies in Communication and Computing, 2009. ARTCom '09. International Conference on 27-28 Oct. 2009 / Kottayam, Kerala, India, 2009 - P. 302-305

  17. Гонсалес Р., Вудс Р., “Цифровая обработка изображений”. Москва: Техносфера, 2005.

  18. Чваркова, И.Л. Мультиплексирование пропускной способности стеганографического канала передачи данных / И.Л. Чваркова, С.Г. Тихоненко, В.С. Садов // Известия Белорусской инженерной академии. – 2004. – № 1(17)/2 – С. 171-174


ПРИЛОЖЕНИЯ

Приложение А. Предметный указатель



Приложение Б. Интернет-ресурсы в области исследования


Приведенные ниже сайты наиболее оснащены программным обеспечением по стеганографии:

www.demcom.com/english/steganos - платные программные продукты, являющиеся одними из наиболее скачиваемых;

www.cypher.net - большое количество программ по кодированию информации;

www.stego.com - один из наиболее полных сайтов по проблемной области.

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



http://www.Download3000.com

http://www.download32.com/proghtml/615/61554.htm

http://www.softpile.com/Utilities/Security/Review_38507_index.html

http://www.shareit.com

http://www.hotlib.com/products1.php?id=18804

http://www.sofotex.com/!Steganography-Processor-download_L24875.html

http://www.softaward.com/8733.html

http://www.brothersoft.com/Utilities_Security_Steganography_Processor_32699.html

http://www.vadino.ru/-steganography-processor.html

http://www.vadino.com/windows/utilities/security/-steganography-processor.html

http://www.justdosoft.com/Steganography-Processor-11351.html

История развития стеганографии, описание основных принципов, материалы конференций, библиография:

www.cl.cam.ac.uk   (University of Cambridge Computer Laboratory)

http://www.autex.spb.ru/bibl.php3 (Обзоры статей, журналов)

Приложение В. Личный сайт


В рамках выпускной работы был разработан личный сайт:

http://n-makhorkina.freeiz.com/index.html

Он содержит главную страницу, биографию,список научных интересов и многое другое.






Приложение Г. Граф научных интересов



Приложение Д. Презентация магистерской диссертации















































Приложение Г. Исходный код программы.


#include

#include

#include

#include

#include "jpeglib.h"

#include "jpegint.h"

#include "jmemsys.h"

#include

#include "jpegmain.h"

#include "jpegstat.h"

#include "blockstruct.h"

int main(int argc, char* argv[])

{

struct jpeg_decompress_struct cinfo;



struct jpeg_compress_struct ccinfo;

struct jpeg_error_mgr jerr;

int YCbCr;

int size;

int level;

int emb;


int count = 0;

int* map = NULL;

FILE* infile;

FILE* outfile;

if(argc != 5)

{

printf("Program syntax: \nTestJpeg container_name new_container_name message_name security_level");



return 0;

}

sscanf(argv[4], "%d", &level);



switch(level)

{

case 1: level = SL_LEVEL1; break;



case 2: level = SL_LEVEL2; break;

case 3: level = SL_LEVEL3; break;

case 4: level = SL_LEVEL4; break;

}

cinfo.err = jpeg_std_error(&jerr);



ccinfo.err = jpeg_std_error(&jerr);

jpeg_create_decompress(&cinfo);

jpeg_create_compress(&ccinfo);

cinfo.mem->max_memory_to_use = NEW_MAX_MEM;

infile = fopen(argv[1],"rb");

outfile = fopen(argv[2],"wb");

jpeg_stdio_src(&cinfo, infile);

jpeg_stdio_dest(&ccinfo, outfile);

jpeg_read_header(&cinfo, TRUE);

jpeg_read_coefficients(&cinfo);

Init();

for(YCbCr = 0; YCbCr < 3; YCbCr++)



{

CreateMap(&cinfo, &map, &size, YCbCr, level);

count += VolAnalysis(&cinfo, map, size, YCbCr, level);

}

emb = Embedding(&cinfo, argv[3], level);



Extraction(&cinfo, "out.txt");

if(map)


free(map);

jpeg_copy_critical_parameters(&cinfo, &ccinfo);

jpeg_write_coefficients(&ccinfo, cinfo.coef->coef_arrays);

jpeg_finish_compress(&ccinfo);

jpeg_finish_decompress(&cinfo);

printf("Embedded volume - %d bits\nTotal container volume - %d bits", emb, count);

getch();

return 0;

}

// While embedding and extraction analyze coefficients in this order



const int BR_LOW_FR_COEFS = 20;

const int BR_MID_FR_COEFS = 22;

const int BR_HIGH_FR_COEFS = 21;

const int C_LOW_FR_COEFS = 5;

const int C_MID_FR_COEFS = 7;

const int C_HIGH_FR_COEFS = 51;

const int COEFS_ORDER[DOTS_PER_BLOCK] =

{0, 1, 8, 9, 2, 16, 10, 17, 3, 24, 18, 11, 25, 4, 32, 19, 26,

12, 33, 5, 40, 27, 20, 34, 13, 41, 6, 48, 28 ,35, 21, 42, 14,

49, 7, 56, 36, 29, 43, 22, 50, 15, 57, 37, 44, 30, 51, 23, 58,

45, 38, 52, 31, 59, 46, 53, 39, 60, 54, 47, 61, 55, 62, 63};

//----------------------------------------------

//--------Secutity Levels Description-----------

//----------------------------------------------

// Structure of the identifier [YCbCr:2, Block Type:2, Frequency:2, Bits:2]

int L1_SCHEME[256];

int L2_SCHEME[256];

int L3_SCHEME[256];

int L4_SCHEME[256];

// Reading message from file

int read_from_file(const char* filename, int** info)

{

char c;



int i;

struct stat st;

FILE* f = fopen(filename, "rb");

stat(filename, &st);

*info = (int*) malloc(sizeof(int) * st.st_size);

for(i = 0; i < st.st_size; i++)

{

fscanf(f, "%c", &c);



if(c == '1')

(*info)[i] = 1;

else

(*info)[i] = 0;



}

fclose(f);

return st.st_size;

}

// writing message to file



int write_to_file(const char* filename, const int* info, const int size)

{

char c;



int i;

struct stat st;

FILE* f = fopen(filename, "wb");

for(i = 0; i < size; i++)

{

fprintf(f, "%d", info[i]);



}

fclose(f);

return size;

}

//GetIndex - returns index in security level array for input parameters



int GetIndex(const int YCbCr, const int blockType, const int freq, const int bits)

{

return (YCbCr << 6) | (blockType << 4) | (freq << 2) | bits;



}

//Calculates the size of DCT matrix scaled in blocks

void GetSize(const j_decompress_ptr cinfo, int* block_rows, int* block_cols, const int YCbCr)

{

int vmax, hmax;



if(!YCbCr)

{

vmax = cinfo->image_height;



vmax = vmax + (ROWS_PER_BLOCK - (vmax % ROWS_PER_BLOCK)?(vmax % ROWS_PER_BLOCK):ROWS_PER_BLOCK);

hmax = cinfo->image_width;

hmax = hmax + (ROWS_PER_BLOCK - (hmax % ROWS_PER_BLOCK)?(hmax % ROWS_PER_BLOCK):ROWS_PER_BLOCK);

}

else



{

vmax = cinfo->MCU_rows_in_scan * ROWS_PER_BLOCK;

hmax = cinfo->MCUs_per_row * ROWS_PER_BLOCK;

};

*block_rows = vmax / ROWS_PER_BLOCK;



*block_cols = hmax / ROWS_PER_BLOCK;

}

// LF-factor



int LowFreq(const j_decompress_ptr cinfo, const int x, const int y, const int YCbCr)

{

int tmp = 0;



switch(YCbCr)

{

case COLOR_Y:



for(int i = 0; i < DOTS_PER_BLOCK; i++)

tmp += BR_EVAL_LOW[i] * abs(cinfo->coef->coef_arrays[0][YCbCr].mem_buffer[x][y][i]) * cinfo->quant_tbl_ptrs[0]->quantval[i];

break;

case COLOR_CB:



case COLOR_CR:

for(int i = 0; i < DOTS_PER_BLOCK; i++)

tmp += COL_EVAL_LOW[i] * abs(cinfo->coef->coef_arrays[0][YCbCr].mem_buffer[x][y][i]) * cinfo->quant_tbl_ptrs[1]->quantval[i];

break;


}

return tmp;

}

// HF-factor



int HighFreq(const j_decompress_ptr cinfo, const int x, const int y, const int YCbCr)

{

int tmp = 0;



switch(YCbCr)

{

case COLOR_Y:



for(int i = 0; i < DOTS_PER_BLOCK; i++)

tmp += BR_EVAL_HIGH[i] * abs(cinfo->coef->coef_arrays[0][YCbCr].mem_buffer[x][y][i]) * cinfo->quant_tbl_ptrs[0]->quantval[i];

break;

case COLOR_CB:



case COLOR_CR:

for(int i = 0; i < DOTS_PER_BLOCK; i++)

tmp += COL_EVAL_HIGH[i] * abs(cinfo->coef->coef_arrays[0][YCbCr].mem_buffer[x][y][i]) * cinfo->quant_tbl_ptrs[1]->quantval[i];

break;


}

return tmp;

}

// Heterogeneity factor



int AllFreq(const j_decompress_ptr cinfo, const int x, const int y, const int YCbCr)

{

int tmp = 0;



switch(YCbCr)

{

case COLOR_Y:



for(int i = 0; i < DOTS_PER_BLOCK; i++)

{

tmp += BR_EVAL_ALL[i] * abs(cinfo->coef->coef_arrays[0][YCbCr].mem_buffer[x][y][i]) * cinfo->quant_tbl_ptrs[0]->quantval[i];



}

break;


case COLOR_CB:

case COLOR_CR:

for(int i = 0; i < DOTS_PER_BLOCK; i++)

tmp += COL_EVAL_ALL[i] * abs(cinfo->coef->coef_arrays[0][YCbCr].mem_buffer[x][y][i]) * cinfo->quant_tbl_ptrs[1]->quantval[i];

break;

}

if(tmp < 0)



tmp = 0;

return tmp;

}

// Determines block type



int isHomogeneous(const j_decompress_ptr cinfo, const int x, const int y, const int YCbCr)

{

int AllFr, LowFr, HighFr;



int block_rows, block_cols;

GetSize(cinfo, &block_rows, &block_cols, YCbCr);

if(((x + 1) >block_rows) || ((y + 1) > block_cols) || (YCbCr < 0) || (YCbCr > 2))

return IH_ERROR;

AllFr = AllFreq(cinfo, x, y, YCbCr);

LowFr = LowFreq(cinfo, x, y, YCbCr);

HighFr = HighFreq(cinfo, x, y, YCbCr);

switch(YCbCr)

{

case COLOR_Y:



{

if(AllFr < Homo)

return IH_HOMO;

if(AllFr >= Homo &&

AllFr <= NonHomo)

if(LowFr == 0)

return IH_N_HOMO;

else


if((double) HighFr / LowFr < Contr)

return IH_SNC_HOMO;

else

return IH_SN_HOMO;



if(AllFr > NonHomo)

if(LowFr == 0)

return IH_N_HOMO;

else


if((double) HighFr / LowFr < Contr)

return IH_NC_HOMO;

else

return IH_N_HOMO;



}

break;


case COLOR_CB:

case COLOR_CR:

{

if(AllFr < CHomo)



return IH_HOMO;

if(AllFr >= CHomo &&

AllFr <= CNonHomo)

if(LowFr == 0)

return IH_N_HOMO;

else


if((double) HighFr / LowFr < Contr)

return IH_SNC_HOMO;

else

return IH_SN_HOMO;



if(AllFr > CNonHomo)

if(LowFr == 0)

return IH_N_HOMO;

else


if((double) HighFr / LowFr < Contr)

return IH_NC_HOMO;

else

return IH_N_HOMO;



}

break;


}

return IH_ERROR;

}

// Determines factor according to parameter 'freq'



int Freq(const j_decompress_ptr cinfo, const int x, const int y,

const int YCbCr, const int level, const int freq)

{

int tmp = 0;



int* scheme;

int* EVAL;

int limit1, limit2, limit3;

int l1, l2, l3, l4, m1, m2, m3, m4, h1, h2, h3, h4;

int quant;

switch(level)

{

case SL_LEVEL1:



scheme = L1_SCHEME;

break;


case SL_LEVEL2:

scheme = L2_SCHEME;

break;

case SL_LEVEL3:



scheme = L3_SCHEME;

break;


case SL_LEVEL4:

scheme = L4_SCHEME;

break;

}

switch(YCbCr)



{

case COLOR_Y:

{

quant = 0;



if(freq == M_LOW)

EVAL = BR_EVAL_LOW;

else if(freq == M_HIGH)

EVAL = BR_EVAL_HIGH;

else

EVAL = BR_EVAL_ALL;



limit1 = BR_LOW_FR_COEFS;

limit2 = BR_LOW_FR_COEFS + BR_MID_FR_COEFS;

limit3 = BR_LOW_FR_COEFS + BR_MID_FR_COEFS + BR_HIGH_FR_COEFS;

}

break;



case COLOR_CR:

case COLOR_CB:

{

quant = 1;



if(freq == M_LOW)

EVAL = COL_EVAL_LOW;

else if(freq == M_HIGH)

EVAL = COL_EVAL_HIGH;

else

EVAL = COL_EVAL_ALL;



limit1 = C_LOW_FR_COEFS;

limit2 = C_LOW_FR_COEFS + C_MID_FR_COEFS;

limit3 = C_LOW_FR_COEFS + C_MID_FR_COEFS + C_HIGH_FR_COEFS;

}

break;



}


Похожие:

Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
Реферат на тему «Применение современных информационных технологий при автоматизированном анализе информационных ресурсов сети Интернет»...
Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
Реферат на тему «Результаты внедрения информационных технологий в область изобразительного искусства» 5
Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
Реферат на тему «Применение информационных технологий в социологических исследованиях» 5
Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
«Применение информационных технологий в судопроизводстве: электронное правосудие» 4
Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
Использование информационных технологий в современных прагмалингвистических исследованиях
Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
Использование информационных технологий при изучении насаждения осадничества в полесском воеводстве в межвоенный перио
Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»

Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
Последние десятилетия ХХ века отмечены событиями, существенным образом трансформировавшими современную социокультурную реальность....
Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
На современном этапе ни одни исследования в науке невозможно представить без использования информационных технологий. Данный реферат...
Выпускная работа по «Основам информационных технологий» iconВыпускная работа по «Основам информационных технологий»
Реферат на тему «Применение ит в автоматическом доказательстве геометрических теорем» 4
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org