Р. А. Солодуха,
кандидат технических наук, доцент
ФОРМИРОВАНИЕ ГРАДИЕНТНЫХ ПУТЕЙ ИЗОБРАЖЕНИЯ КАК ПРЕДВАРИТЕЛЬНЫЙ ЭТАП СТЕГАНОАНАЛИЗА
FORMATION OF THE IMAGE GRADIENT WAYS AS A PRELIMINARY STAGE OF STEGANALYSIS
Статья посвящена подготовке пространственной области изображения к статистическому стеганоанализу путем формирования списка пикселей, расположенных по траектории наименьшего градиента яркости изображения. Приведен краткий обзор методов стеганографии применительно к задаче обнаружения стеганоканала в ведомственных компьютерных сетях. Предложен алгоритм решения задачи и сведения о программной реализации на языке C#.
The article is devoted to the formation of pixels lists that are situated along the trajectory ofminimum gradient of the brightness of image. A briefreview ofsteganography methods concerning to detection of a stegochannel in departmental computer networks is given. An algorithm for the task solving and information about a software implementation in C# is proposed.
Введение. Основой статистического стеганоанализа изображений является факт нарушения закономерностей изображения, вызванный стегановложением. Одна из классификаций существующих методов стеганоанализа позволяет отнести к группе статистических те методы, которые основываются на сопоставлении характеристик обобщенных пустого и заполненного контейнеров, другими словами, оценивают близость исследуемого контейнера к естественному.
Статистические методы не являются средством, позволяющим гарантированно определять наличие скрытой информации. Они дают возможность аналитику с определенной вероятностью судить о том, используется стеганография или нет. Результаты работы методов зависят от стеганографического преобразования, используемого для встраивания скрываемых данных, а также от их объема. Как правило, выявление факта скрытия осуществимо при значительном заполнении контейнера. К тому же методы этой группы обычно построены на алгоритмах, требующих предварительного «обучения» на сериях из заполненных и пустых контейнеров.
Разработчики стеганографических алгоритмов стараются реализовать вложение с как можно меньшим искажением статистических свойств изображения. Особенно это касается стеганоалгоритмов, модифицирующих несколько битовых плоскостей, а не только плоскость LSB. Например, метод BPCS-стеганографии [1] (Bit-Plane Complexity Segmentation Steganography) используют для принятия решения о внедрении данных в оценку сложности изображения, для чего осуществляют декомпозицию битовых срезов на блоки 8х8, подсчет числа переходов между черным и белым значением в каждой строке и столбце для блока. Подход основан на особенностях человеческого зрения, которое восприимчиво к внесению изменений в низкочастотные области изображения, но не может различить изменения в высокочастотных (шумовых) областях. Суть метода заключается в замене шумовых блоков на блоки со скрываемой информацией с учетом их сложности. Если блок недостаточно сложен, то на него накладывается (xor) высококонтрастная маска (конъюгация).
Пропускная способность BPCS-стеганографии значительно превышает методы семейства LSB, в связи с чем ее методы являются наиболее предпочтительными для скрытой передачи значительных объемов инсайдерской информации. В контексте решения задачи стеганоанализа в ведомственной DLP-системе выявление таких вложений приоритетно. С точки зрения стеганоанализа блочные модификации стеганоалгоритмов вносят больше искажений, поскольку встраиваемый блок может находиться в любой битовой плоскости, с другой — эти искажения носят локальный характер.
Одним из признаков фотореалистичности является плавное изменение освещенности сцены. Таким образом, при прочих равных условиях стегановложение должно вносить более значительные искажения в группу пикселей, расположенных вдоль линии градиента яркости. Следовательно, возникает задача проверить данную гипотезу путем построения градиентных путей и проведения вычислительного эксперимента.
Таким образом, в продолжение идеи сегментации изображений [2] и с учетом предположения о монотонности изменения яркости в естественных изображениях в качестве первого этапа было решено разработать математическую модель, алгоритм и программно реализовать формирование последовательности пикселей по направлению минимального градиента яркости с дальнейшим применением в стеганоанализе, использующем статистику пространственной области изображений [3—5].
Математическая модель формирования структур хранения. Для нахождения градиента воспользуемся понятием производной дискретной функции [6]. Первая (определяет градиент) и вторая (определяет экстремумы) производные одномерной функции f(x) записываются следующим образом:
f'(x)=f(x+1)-f(x), f''(x)=f(x+ 1)+f(x-1)-2f(x).
Введем в каждой точке изображения f. = 0, 1, ... , 255, кроме краевых, разности,
соответствующие оператору Робертса и имеющие смысл градиента по направлениям: вертикальному, горизонтальному, главной и побочной диагоналям. Кроме оператора Ро-бертса можно использовать операторы Превитта и Собела по соответствующим направлениям (рис. 1).
3
2
4 Г
а)
fi-1,j-1 f-lj fi-1,j+1
fu-1 f j fi,j + 1
fi+l,j-1 fi+1,j fi+1,j+1
б)
-1 -1 -1
0 0 0
1 1 1
-1 0 1
-1 0 1
-1 0 1
в)
-1 -1 0
-1 0 1
0 1 1
0 1 1
-1 0 1
-1 -1 0
-1 0 1
-2 0 2
-1 0 1
-1 -2 -1
0 0 0
1 2 1
г)
-2 -1 0
-1 0 1
0 1 2
0 1 2
-1 0 1
-2 -1 0
Рис. 1. Направления градиентов (а), обозначения соседних пикселей (б), маска оператора Превитта (в), маска оператора Собела (г)
По выбранной маске, в данном случае Робертса, каждому некраевому пикселю сопоставляем кортеж ], /1 -, , :
/ = { - { ; = / - / ; / \ = { - { = / - /
' г,] п+1,] ]> >г, ] Л, ]+1 Л, ]> Ч, ] ' 1+1, j+1 УI, ] ' 'г, ] и1-1, j+1 Л, ]■
Также каждому некраевому пикселю сопоставляем кортеж, элементы которого имеют смысл вторых производных в точке с координатами г, ], по соответствующему
направлению: (/11, /Т], .
Сопоставляем каждому пикселю вектор-строку, показывающую направление градиента:
Г
г, ] г, ] г, ] ^ г, ]
gи, =
г/
j IJ
.141' W I-, f
которую преобразуем в матрицу булевых значений:
true | g\ j > 0, false - overwise, ... , true | g4 . > 0, false - overwise ^ true | g\ < 0, false - overwise, ... , true | g 4 < 0, false - overwise
gmdu =
i,j--... , —
Величины, показывающие наличие области нелинейности (локального экстремума) и ветвления (t — пороговое значение):
ex = true f. > t a f = > t a f y\ > t a f> t, false — overwise, wossj j = true | ^ g j > 1, false — overwise .
Стремление к битовому представлению объясняется желанием минимизировать потребление оперативной памяти при работе программы. Отсюда можно перейти к матрице смежности графа, где вершины — пиксели, а дуги — направления минимального градиента в соседний пиксель, где часть помечена как экстремум или ветвление.
Данный граф является вырожденным, т.к. дуги возможны только в соседние вершины, что требует специфических структур хранения. Обзор традиционных алгоритмов поиска на графах показал, что они не подходят для решения данной задачи, т.к. ищут путь между заданными вершинами. В нашем случае, выходя из вершины, не известно, в какую вершину мы попадем: краевую, экстремум или ветвление.
Формально изначально имеем граф G = (V, E), который необходимо дезагрегировать на подграфы-ветви Gn = (Vn, En), такие, что если не включать концевые вершины ветвей, то G1 n G2 п ... nGn = 0 и V ei e En\ei+1 -ег| ^min.
Таким образом, задача сводится к поиску всех возможных путей из каждой вершины графа, кроме экстремума, до края, экстремума или ветвления. По мере прохода вершин они «разпомечаются», превращаясь в обычную вершину, т.е. каждая вершина в одном направлении может быть пройдена только один раз.
Алгоритмическая и программная реализации математической модели. Алгоритм формирования последовательностей пикселей можно представить в виде нескольких этапов (в скобках будет описана соответствующая структура хранения в С#-нотации):
1. Загрузка изображения (Rows, Cols — размеры в пикселях) и получение значений пикселей (byte Pix[Rows, Cols]).
2. Вычисление точек экстремумов (bool exPix[Rows, Cols]) и ветвления (bool crossPix[Rows, Cols]).
3. Вычисление направления минимального градиента (bool Grad[Rows, Cols, 4, 2], 4d-матрица, где каждому пикселю соответствует структура 4х2). Структура является производной от матрицы градиентов и формируется для оптимизации хранения. Обобщенная схема алгоритма приведена на рис. 2.
4. Формирование структур хранения. Пути в виде списка пикселей ( class myNode(int i, int j) ) — содержит координаты пикселя) хранятся в виде массива, аналогичного по структуре массиву булевых значений Grad (List<myNode> nodes[Rows, Cols, 4, 2] ).
5. Запуск для каждого пикселя c координатами (i, j) проверки на «стартовость» (void StartNode(int i, int j)). Стартовые пиксели не могут быть краями (i=2..Rows-1, j=2..Cols-1), экстремумами (!exPix[i, j]) и пикселями, из которых нет ни одной дуги (bool is_Move(int i, int j)). Схематический вид алгоритма работы функции StartNode приведен на рис. 3.
6. Запуск для каждого стартового пикселя функции формирования списка вершин — по минимальному значению градиента (void NextNode(int i, int j )). Здесь происходит переход в новый пиксель, удаление пройденного направления из предыдущего пикселя, добавление пикселя в список, соответствующий пути из стартового пикселя. Список пополняется, пока не встретится экстремум, ветвление или край. Функция is_Move(i, j) проверяет существование пути из пикселя. Схематический вид алгоритма работы функции NextNode приведен на рис. 4.
7. Приведенное описание не является исчерпывающим и призвано дать представление о работе алгоритма. Часть информации не приводится, чтобы не углубляться в подробности и не перегружать статью описанием тривиальных технических решений (загрузка изображения, формирование матрицы экстремумов, ветвлений и т.п.) и вспомогательных переменных (ограничитель длины списка, временный список и т.п). Также реализована версия программы для градиентов Собела и Превитта.
С Начало )
У
Ввод файла изображения
byte Pix[Rows, Cols], bool exPix[Rows, Cols], bool crossPix[Rows, Со^], bool Grad[Rows, Cols, 4, 2], List<myNode> nodes[Rows, Cols, 4, 2]
^ i=1; i<=Rows-1;
i++
1 г
StartNode(i, ])
Вывод списка
Конец у
Рис. 2. Обобщенная схема алгоритма формирования списков
Начало
+_
Получение координат стартового пикселя А, \)
int к=0; к<=3; к++ int кк=0; кк<=1;
1 г
Сохранение координат стартового пикселя 0, ])
1 г
NextNode(i, ])
Рис. 3. Схематический вид алгоритма работы функции StartNode
Рис. 4. Схематический вид алгоритма работы функции NextNode
Эксплуатационные сведения о программе. Программа разрабатывалась в среде Visual Studio 2019 на языке С#. Верификация работы программы проводилась в проекте WindowsForms, форма которого представлена на рис. 5. В элементы интерфейса DataGridView выведена информация о значениях пикселей, пикселях-экстремумах, пикселях-ветвлениях. В элементах под общим названием PreGradient domain о производной в
пикселе по направлениям: вертикаль, горизонталь, главная диагональ, побочная диагональ. Элементы Gradient Back показывают по тем же направлениям, что и PreGradient, единицу в пикселе, где градиент отрицательный, Gradient Back — положительный. Списки выводятся: в левое окно двухпиксельные (их больше всего), в правое — все остальные.
Для практического использования программа была реализована в консольном проекте, где на вход подается папка с изображениями, на выходе — csv-файл векторов признаков для последующего анализа.
Функция NextNode была реализована в циклическом и рекурсивном виде для экспериментальной проверки производительности. Эксперименты проводились для глубины рекурсии (т.е. длины списка узлов) от 5 до 50 с шагом 5, размер изображения 3000x2000 пикселей. Эксперимент показал, что в среднем рекурсивная реализация работает на 6-7% медленнее циклической (время выполнения около минуты). Тестирование проводилось на персональном компьютере по управлением Windows 7 c оценками производительности: CPU — 7,3, RAM — 7,3, HDD — 5,9.
Следует заметить, что результат работы программы будет разным в зависимости от выбора начальной точки. Это происходит вследствие динамического отбрасывания посещенных пикселей. Гипотетически можно последовательно перебрать все пиксели изображения в качестве начальных, но это потребует значительных вычислительных и временных затрат. В качестве компромисса реализована возможность запускать из различных углов изображения с объединением полученных списков. Сначала в качестве стартовых перебираются ветвления, потом остальные вершины.
Е Gradi ^JSJX]
Pixels domain PreGradient domain Gradient back ent forward
m 548 2 3 4 5 6 7 8 2 3 4 5 6 7 8 ■ 2 3 4 5 s 7 8 2 3 4 5 6 7 8
► 1 517 492 401 354 272 204 233 ► 1 2 ► 1
2 467 391 301 253 212 207 204 2 -112 -144 -98 -75 -39 3 -22 0 0 0 0 0 0 0 2 0 0 0 0 0 1 0
3 491 355 247 203 178 173 210 182 3 -155 -81 -9 14 13 -7 15 3 0 0 1 0 0 0 0 3 0 0 0 0 0 0 0
4 300 200 166 194 192 186 203 197 4 -21 24 -5 -24 -24 -50 -11 4 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0
5 219 179 190 189 168 162 153 186 5 -10 -10 -34 -14 28 12 12 5 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0
6 175 169 180 155 154 190 165 198 6 16 10 46 44 15 -10 -56 6 0 0 0 0 0 0 0 6 0 0 0 0 1 0 0
7 180 185 190 201 198 205 155 142 7 13 13 43 14 -22 8 14 7 0 0 0 0 1 0 0 7 0 0 0 0 0 0 0
8 203 198 203 244 212 183 163 156 8 -24 -12 64 62 29 23 9 8 0 0 0 0 0 0 0 8 0 0 0 0 0 0 1
Extremum points
■ 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 € 7 8
► 1 ► 1 > 1 2 ► 1
2 0 0 0 0 0 0 0 2 -76 -90 -48 -41 -5 -3 -51 0 0 1 0 0 1 0 2 0 0 0 0 0 0 0
3 0 0 0 1 1 0 1 3 -108 -44 -25 -5 37 -28 -15 3 0 1 0 0 0 0 0 3 0 0 0 0 0 0 0
4 0 1 0 0 0 0 0 4 -34 28 -2 -6 17 -6 21 4 0 0 1 1 0 1 0 4 0 0 0 0 1 0 0
5 0 0 0 0 1 1 1 5 11 -1 -21 -6 -9 33 6 5 0 1 0 1 0 0 0 5 0 0 0 0 0 0 0
6 1 1 1 1 0 1 0 6 11 -25 36 -25 33 5 6 0 0 0 0 0 0 0 6 0 0 0 0 0 0 1
7 0 0 0 0 0 1 1 7 5 11 -3 7 -50 -13 82 7 0 0 1 0 0 0 0 7 1 1 0 1 0 0 0
8 0 0 0 0 1 0 0 8 5 41 -32 -29 -20 -7 58 8 0 0 0 0 0 0 0 8 1 0 0 0 0 0 0
Cross points
2 3 4 5 6 7 g 2 3 4 5 6 7 S ■ 2 3 4 5 5 7 8 2 3 4 5 6 7 8
► 1 ► 1 2 » 1
2 0 0 0 0 0 1 0 2 -220 -188 -123 -80 -2 -25 -37 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0
3 0 0 0 0 0 0 1 3 -189 -53 -11 8 30 -13 36 3 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 4 -10 23 -26 -30 -33 -17 -5 4 1 0 0 0 0 0 1 4 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 5 1 -35 -35 22 3 45 17 5 0 0 0 0 0 0 0 5 1 0 0 0 0 0 0
6 0 0 0 0 0 0 0 6 21 21 43 51 -35 -23 26 6 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0
7 1 0 0 0 0 0 0 7 18 54 11 -15 42 1 72 7 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0
8 0 0 0 1 0 0 0 8 -7 105 30 0 3 2 86 8 0 0 0 1 0 0 0 8 0 0 1 1 0 1 0
- nodes list more 2 - nodes list
(2.2X1.3) (2.3X1.4) (2.4X2.3) (2.5X1.6) (2.8X3.7) ■ ' 3.2X2.3) 3.3X3.2) 3.4X2.4) 3.9X2.8) 3.12X3.13) 3.15X3.16) 4.2X3.1) 4.4X4.3) <2.7X3.7X4.£)(4.7K4.S) (2.7X2.GX1.5» <2.10X2.11X3.11X2.10) <3.13X4.12X4.11) <3.13X2.14X3.13) <3.14X4.13X3.14) <4.14X5.13X6.12) <5.10X5.11X6.10) <6.6X7.6X6.6) <6.8X6.9X5.8) <7.2X7.3X7,4X7,3) <7.9X8.10X8.9) <8.2X8.3X9,2) <8.5X9.6X9,5H10,6X11,7*12,7X12,6X11,7) 2 3 4 5 6 7 8 ■ 2 3 4 5 6 7 8 2 3 4 5 6 7 8
► 1 2 ► 1
2 25 10 53 19 -8 26 -2 0 0 0 0 0 0 1 2 1 1 0 1 0 0 0
3 36 54 50 34 34 -6 -29 3 0 0 0 0 0 1 0 3 1 0 0 0 0 0 0
4 47 37 -16 -19 24 -21 -30 4 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0
5 -13 4 3 18 41 44 32 5 0 0 0 0 0 0 0 5 0 0 1 0 0 0 0
6 21 9 13 8 -37 21 -6 6 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0
7 -5 -35 -47 -8 -40 43 61 7 1 0 0 0 0 0 0 7 0 0 0 0 0 0 0
8 -8 -2 -46 -7 -28 -21 68 8 0 1 0 0 0 0 0 8 0 0 0 0 0 0 0
Рис. 5. Форма для визуальной верификации функционирования программы
Таким образом, программа позволяет варьировать такими параметрами, как:
- максимальная длина списка;
- порог признания пикселя экстремумом;
- минимальное количество элемента списков одной длины для обеспечения статистической достоверности;
- количество углов изображения, из которых осуществляется проход;
- вид оператора вычисления градиента.
Результаты эксперимента по определению временных характеристик функционирования программы приведены на рис. 6. Программа запускалась на один проход по одному цветовому каналу, варьируя размер файлов: от 500 х 500 до 3500 х 3500 с шагом 500 (на графике по оси абсцисс отложено количество пикселей изображения, по оси ординат — время в секундах). Фиксировалось полное время работы программы (ряд list) и отдельно — время формирования графа (ряд graph).
Из графика видно, что время растет пропорционально количеству пикселей в исходном изображении.
Результаты эксперимента по определению гладкости групп пикселей и размера этих групп приведены на рис. 7, а, рис. 7, б (в логарифмическом масштабе) соответственно. Программа запускалась на один проход по одному цветовому каналу, варьируя размер порога t=1 ...9. На графике по оси абсцисс отложен размер групп g=3...11. Пунктиром обозначена кривая, полученная от равномерного распределения непересекающихся групп по строкам изображения. Значения усреднены по выборке из 100 файлов размером 1024х 768. Из графика видно, что с увеличение t репрезентативность улучшается, но гладкость ухудшается. Оптимальным для данной выборки является t=3 ...4.
200 150 100 50 0
0 5000000 10000000
— - graph —•— list
Рис. 6. Временные характеристики функционирования программы
g3 g4 g5 g6 g7 g8 g9 g10 g3 g4 g5 g6 g7 g8 g9 g10
а) б)
Рис. 7. Качественные характеристики функционирования программы
Заключение. В работе показана актуальность разработки программы для формирования траектории минимального градиента. Приведены математическая и алгоритмическая модели программы. Описаны структуры хранения, используемые в программе.
Рассмотрены вопросы эксплуатации программы в разных режимах с анализом быстродействия, репрезентативности групп пикселей одного размера и качества полученных градиентных путей.
Учитывая время на обработку изображения, можно сделать вывод о том, что использование стеганоаналитических алгоритмов на основании групп пикселей, полученных программой при онлайн-мониторинге стеганографических каналов в ведомственных сетях для больших изображений сомнительно. Однако ее вполне можно задействовать в вычислительных системах, не очень критичных во времени, например в рамках концепции стеганоаналитической экспертизы, изложенной в [7].
ЛИТЕРАТУРА
1. Kawaguchi E., Eason R. Principle and applications of BPCS-steganography // Multimedia Systems and Applications. — 1998. — Vol. 3528. — P. 464—473.
2. Солодуха Р. А. Сегментация изображений как предварительный этап статистического стеганоанализа // Вестник Воронежского института МВД России. — 2015. — № 2. — С. 176—186.
3. Fridrich J., Du R., Meng L. Steganalysis of LSB Encoding in Color Images // IEEE International Conference on Multimedia and Expo. — 2000. —Vol. 3. — P. 1279—1282.
4. Солодуха Р. А., Атласов И. В. Усовершенствование метода RS-стеганоанализа применением его к группам пикселей различного размера // Вестник Воронежского института МВД России. — 2012. — № 2. — C. 53—59.
5. Солодуха Р. А. Использование дополнительного заполнения графических контейнеров для уточнения результатов RS-VGS-стеганоанализа // Вестник Воронежского института МВД России. — 2014. — № 1. — C. 87—94.
6. Гонсалес Р., Вудс Р. Цифровая обработка изображений. — М. : Техносфера, 2012. — 1104 с.
7. Солодуха Р.А. Концепция информационного обеспечения стеганоаналитической системы // Вестник Воронежского института МВД России. — 2016. — № 4. — С. 156—161.
REFERENCES
1. Kawaguchi E., Eason R. Principle and applications of BPCS-steganography // Multimedia Systems and Applications. — 1998. — Vol. 3528. — P. 464—473.
2. Soloduha R. A. Segmentatsiya izobrazheniy kak predvaritelnyiy etap statisti-cheskogo steganoanaliza // Vestnik Voronezhskogo instituta MVD Rossii. — 2015. — # 2. — S. 176—186.
3. Fridrich J., Du R., Meng L. Steganalysis of LSB Encoding in Color Images // IEEE International Conference on Multimedia and Expo. — 2000. —Vol. 3. — P. 1279—1282.
4. Soloduha R. A., Atlasov I. V. Usovershenstvovanie metoda RS-steganoanaliza prime-neniem ego k gruppam pikseley razlichnogo razmera // Vestnik Voronezhskogo instituta MVD Rossii. — 2012. — # 2. — C.53—59.
5. Soloduha R. A. Ispolzovanie dopolnitelnogo zapolneniya graficheskih konteynerov dlya utochneniya rezultatov RS-VGS-steganoanaliza // Vestnik Voronezhskogo instituta MVD Rossii. — 2014. — # 1. — C. 87—94.
6. Gonsales R., Vuds R. Tsifrovaya obrabotka izobrazheniy. — M. : Tehnosfera, 2012. — 1104 s.
7. Soloduha R.A. Kontseptsiya informatsionnogo obespecheniya steganoanaliticheskoy sis-temyi // Vestnik Voronezhskogo instituta MVD Rossii. — 2016. — # 4. — S. 156—161.
СВЕДЕНИЯ ОБ АВТОРЕ
Солодуха Роман Александрович. Доцент кафедры автоматизированных информационных систем ОВД. Кандидат технических наук, доцент.
Воронежский институт МВД России. E-mail: standartal@list.ru
Россия, 394065, г. Воронеж, проспект Патриотов, 53. Тел. (473) 200-51-84.
Solodukha Roman Alexandrovich. Assistant Professor of the chair of Automated Information Systems of Interior Units. Candidate of Technical Sciences, Assistant Professor. Voronezh Institute of the Ministry of the Interior of Russia. E-mail: standartal@list.ru
Work address: Russia, 394065, Voronezh, Prospect Patriotov, 53. Tel. (473) 200-51-84. Ключевые слова: стеганоанализ; сегментация; градиент; алгоритм; программирование. Key words: steganalysis; segmentation; gradient; algorithm; programming. УДК 519.68