Устойчивые к атакам на контейнер стеганографические алгоритмы
Автор: Смагин Алексей Аркадьевич, Валишин Марат Фаритович
Журнал: Инфокоммуникационные технологии @ikt-psuti
Рубрика: Электромагнитная совместимость и безопасность оборудования
Статья в выпуске: 1 т.13, 2015 года.
Бесплатный доступ
В статье рассматривается задача построения стеганографических алгоритмов, способных организовывать скрытый канал передачи данных в условиях проведения целенаправленной атаки на контейнер. Разработаны теоретические методы на основе редукции множества контейнеров и оценки вносимого в результате атаки искажения. Приведена практическая реализация стеганографического алгоритма, устойчивого к операции преобразования цветного изображения в оттенки серого и JPEG компрессии.
Стеганография, стегоанализ, активная атака, робастность, стеганографический алгоритм, цифровая обработка изображений, jpeg компрессия
Короткий адрес: https://sciup.org/140191747
IDR: 140191747 | УДК: 003.26
Steganography algorithms robust to active attacs
The aim of this work is to develop a steganographic algorithm, which is able to organize covert channel data in terms of a targeted attack on a container. Robust against an active attack on a steganographic algorithms is used to solve a number of applied problems. For example, the task of adding a new functionality to a fixed format. It is proposed to use the state diagram to describe the possible transformations of a digital object as a result of the attacks. The transition between the two states is characterized by the distortion introduced in the original object, and if the distortion produces a number of different objects, the corresponding state in the diagram is marked with infinity symbolizes sign which the attitude of "one-to-many". Thus, the problem of constructing robust against an active attack steganography is reduced to obtaining an algorithm that is able to extract hidden information from all the states in the diagram. There are two theoretical methods of construction robust against an active attack steganography: method of reducing a plurality of containers and method of assessing distortion. The first method is based on the assumption that among a plurality of containers. There can be such containers that the attack does not destroy embedded information. The second method allows you to build a robust embedding algorithm if the distortion introduced by the attack is limited by modulo in a metric space of containers. This paper gives a practical application of the proposed methods for the construction of steganography system that is robust against conversion of color images to grayscale. The program implementation in the programming language Python is given.
Текст научной статьи Устойчивые к атакам на контейнер стеганографические алгоритмы
Стеганография – наука о скрытой передаче данных путем сохранения в тайне самого факта передачи данных. Современная стеганография имеет дело с цифровыми объектами, в основном изображениями, аудио- и видеоданными. Основным критерием стеганографических систем является устойчивость к обнаружению. Изначально рассматривалась устойчивость к визуальному обнаружению, однако по мере развития методов стеганографии появился особый раздел стеганографии: стегоанализ, наука о выявлении факта передачи скрытой информации. В настоящее время рассматривается устойчивость стеганографических алгоритмов к статистическим тестам, методам классификации и т.д.
Стеганография позволяет решать ряд прикладных задач, не связанных с «задачей заключенных» [1]. Чаще всего сокрытие дополнительной информации позволяет расширить функционал формата данных. Для решения прикладных задач критерий устойчивости к обнаружению не является приоритетным, так как наличие внедренных в цифровой объект данных не скрывается. Таким образом, одним из главных требований к прикладной стеганосистеме — это обеспечение устойчивости к случайным или умышленным атакам [2].
Постановка задачи
Этапы трансформации цифрового объекта могут быть представлены в виде диаграммы (см. рис. 1). Состояния нумеруются, причем нулевым состоянием будет объект до внедрения, первым – после него. Переход между двумя состояниями характеризует искажение, вносимое в исходный объект. Если искажение порождает множество различных объектов, соответствующее состояние на диаграмме помечается знаком бесконечности, символизирующим отношение «один ко многим».
ров. Для выбора вводится дополнительный критерий – условие минимизации вносимого в исходный контейнер искажения. Мерой искажения можно считать расстояние между парой контейнеров p(kx,k2).
Таким образом, стеганографический алгоритм имеет вид:
Gout^inp^.P^kouO
FinP P^mP,kout)^ min. где ^inp ’ ^ – входной и выходной контейнеры; s — внедряемый символ кодового алфавита. Для растровых изображений в качестве расстояния между контейнерами (цветами) целесообразно использовать следующую формулу: p(kx, £2) = ^ 2' (kx xor k\), /=o Рис. 1. Диаграмма этапов трансформации цифрового объекта где к – это i-ый бит. Функции извлечения и внедрения вместе с правилом построения последовательности контейнеров из цифрового объекта образуют стеганографический алгоритм. Атакой на цифровой объект будем называть преобразование вида A(k) = k*. Для решения прикладных задач необходима стеганографическая система, способная извлекать скрытую информацию из всех ненулевых состояний цифрового объекта. В процессе редактирования цифровых фотографий, например, могут быть применены различные приемы: цветокоррекция, ретушь, аффинные преобразования, фильтры, сжатие с потерями и т.д. Функцией извлечения будем называть любое отображение множества контейнеров K во множество кодовых символов S: Fi„P(k) = s. (1) Для цифровых изображений контейнером может быть цвет отдельного пикселя в формате RGB, то есть тройка неотрицательных целых чисел в диапазоне [0 … 255]. Функция извлечения может иметь следующий вид: FisMg^ = LSB где LSB(b) – функция извлечения младшего бита. Отдельный символ стеганограммы может быть передан с помощью различных контейне- Стеганографический алгоритм устойчив к атаке на контейнер, если выполняется условие: Fllv(k) = Fmp(A(k)). (6) Метод редукции множества контейнеров Пусть дан стеганографический алгоритм, такой, что для некоторого K^K выполняется (6) . Тогда, выбирая для внедрения контейнер из подмножества К , получается устойчивый к ата- ке стеганографический алгоритм: G.JKp^pVk,,,,,; F^k»,,,^8'. (7) Р^р^ОШ^Ш^ где кп,реК,к„,еГ. Метод оценки искажения Пусть дан стеганографический алгоритм над двоичным алфавитом, такой, что для некоторого I выполняется условие: p(M(k^) где PlMi) – расстояние между парой контейнеров, такое, что (К,р) образует метрическое пространство. Введем функции извлечения и внедрения в следующем виде: Осталось показать, что, применяя функцию извлечения (9) к выходному контейнеру, мы получаем требуемый символ стеганограммы Ршр^ои,^8- F*p(k) = Р^ЬфЛр) 2/ mod 2, ^;(^J-/mod2 = ( Ж^Л) 2/ + x xor ( ^out^ki„p,s,р) kout <^> P mod 2) mod 2 = P + 5 ХОГ P 2/ pW^i 2/ mod 2 +/, P^kout,k^ 2/ P^kou„k0) mod 2) xor s xor = mod 2) = x. где £q нер. – произвольный фиксированный контей- Покажем, что функции f;p^, с;илктр,5,р^ Для предложенной схемы построения стеганографического алгоритма оценка вносимого искажения имеет вид: вместе с правилом построения последовательности контейнеров из цифрового объекта образуют устойчивый к атаке A стеганографический алго- p(k ,k A <3!. г \ vmp ? out / ритм. Доказательство. Так как (K,p) – метрическое пространство, то выполняется обратное неравенство треугольника: Алгоритм может быть улучшен за счет небольшого изменения в функцию внедрения. Пусть такие, что: Ж,2^'о) = 2/ X P(k,np,M \p(kout,k0VptALXk01 + s xor рЦЧфЛХ 21 mod 2 Введем обозначение: P(kinp,k0) + s xor ( P(kinp,k0) mod 2) . (12) Тогда выходной контейнер выбирается следующим образом: Подставляя (10) и (12) в (11), имеем: kOut = kt\p(kt, kinp) -4- min,i = 1,2 . (19) 21 xt< р(А(коШ),k0) <21 x(t +1) => Оценка искажения для данной схемы имеет вид: PWom^k^ Последнее означает, что pWoutVk^ то есть выполняется условие (6): F *,№„„,) = 21 xt + / mod 2 = t mod 2 = P(kout,k0) mod2 = ^;№„J). Р^к{пр,коиа ~^ ■ Практическое применение Рассмотрим представленные методы на практических примерах. Построим устойчивый к преобразованию цветного изображения в градации серого стеганографический алгоритм. Градации серого – цветовой режим изображений, которые отображаются в оттенках серого цвета, размещенные в виде таблицы в качестве эталонов яркости цвета. Широко применяется в цветоведении и колори-стике, для оценки и измерений качества тонопе-редачи при фотографической съемке, сканирова- нии, при копировальных и печатных процессах. В компьютерном представлении распространена серая шкала, которая использует на каждый пиксель изображения один байт информации. Таким образом, шкала передает 256 градаций серого цвета, или яркости. Для преобразования цветного изображения в режим градаций серого вычисляется яркость каждого пикселя. Яркость рассчитывается в виде взвешенной суммы красной, зеленой и голубой компонент исходного цвета. Согласно спецификации Rec. 709 (стандарт телевидения высокой четкости) формула имеет вид: Y(r,g,b) = 0,2126 xr + + 0,7152 xg + 0,0722x6. Диаграмма состояний изображения для данной задачи представлена на рис. 2. C^x Внедрение^ z^x______Преобразование_____>62^) ч_У в режим градаций серого \_v Рис. 2. Трансформации цифрового изображения для задачи построения устойчивого к преобразованию в оттенки серого стеганографического алгоритма Таким образом, задача сводится к построению стеганографического алгоритма, способного извлекать сообщение из цветного изображения и после его преобразования в градации серого. Пусть в качестве функции извлечения используется метод наименьших бит (2). Оценим воздействие преобразования на младший бит изображения. Сравним по следовательно сти кодовых символов, полученные из оригинального изображения и преобразованного, и вычислим количе ство инвертированных битов. На серии из цифровых фотографий высокого разрешения (4912×3264 пикселей) было получено, что в результате приведения по формуле (21) исходного изображения в режим градаций серого изменяется ~48,9% битов. Последнее означает, что использование известных стеганографических алгоритмов, основанных на LSB методе, невозможно. В то же время значительное число контейнеров сохраняет младший бит после преобразования. Это означает, что устойчивую стеганографическую систему можно построить с помощью метода редукции множества контейнеров (7). Стеганографический алгоритм реализован на языке программирования Python 2.7 с использованием библиотеки PIL (версия 1.1.7): def extract(img): code = [] В = img else: message = [] for i in range(len(code) / 7): m ="" for b in range(7): code = [] for m in message: while (int(round(0.2126*r+\ к = (-1) ** (count % 2) * \ (count / 2) r = max(0, min( r0+ \ int(0.2126*k+1e-5), 255)) g = max(0, min(g0+ \ int(0.7152*k+1e-5), 255)) b = max(0, min(b0+ \ 2*int(0.0361*k+1e-5), 255)) count += 1 data[keys[key]] = (r, g, b) Последовательность контейнеров в реализации стеганографического алгоритма перемешивается псевдослучайным образом на основании ключа, что позволяет распределить кодовую последовательность по всему изображению. Алгоритм внедряет текстовое сообщение в кодировке ASCII, урезанной до 7 бит. Самым распространенным графическим на сегодняшний день форматом является JPEG. Сохранение в формат JPEG вносит искажение в исходное изображение ввиду дискретного преобразования Фурье и последующего сжатия. При этом сложность и нетривиальность алгоритма не позволяет математически построить модель вносимого искажения. Более того, одинаковые контейнеры могут быть искажены по-разному в зависимости от смежных с ними пикселей. Рассмотрим этапы трансформаций цифрового изображения, которое, помимо преобразования в режим градаций серого, может быть сохранено в формат JPEG (см. рис. 3). Внедрение /у\______Преобразование_____>/2^_____Сохранение в режим градаций серого 'w в формате JPEG Сохранение в формате JPEG /ух______Преобразование_____>/'5'^)_____Сохранение >(^ в режим градаций серого в формате JPEG —' Рис.3. Трансформации цифрового изображения для задачи построения устойчивого к преобразованию в оттенки серого стеганографического алгоритма и JPEG-компрессии Для данной диаграммы существует шесть возможных модификаций изображения со скрытой информацией. Кроме того, формат JPEG позволяет устанавливать качество сжатия. Будем полагать, что данный параметр не ниже 95%. При сохранении в JPEG исходное растровое изображение из формата RGB преобразуется в формат YcbCr. Яркость пикселя (Y) сохраняется с наименьшими потерями. Последнее означает, что если ввести соответствующую метрику над множеством контейнером, то вносимое искажение будет удовлетворять неравенству (2) для некоторого значения l. В качестве метрики предложена следующая формула: p(k1,k2) = \y(r1,gl,bl)-Y(r2,g2,b2)\. Так как по изложенным выше причинам оценить вносимое искажение теоретически затруднительно, была проведена серия расчетов, при которых попиксельно сравнивалось расхождение яркости растрового изображения в формате BMP и сжатого в формат JPEG с качеством 95%. Средняя величина разброса, равно как и максимальное значение, варьируется для разных исходных изображений, но в основном не превос- ходит четырех единиц, то есть р(к„к2)<4. Это означает, что устойчивую стеганографическую систему можно построить с помощью метода оценки искажения (9)-(10). Стеганографический алгоритм реализован на языке программирования Python 2.7, библиотека PIL (версии 1.1.7). Код представлен в листинге 2. Последовательность контейнеров, как и в первом алгоритме, перемешивается псевдослучайным образом. ALPHA = 2*1 def extract(img): code = [] В = img else: for i in range(len(code) / 7): m = "" for b in range(7): message = map((lambda s: int(s, 2)),\ message) return message def gray(r,g,b): return int(round(0.2126 * r + \ 0.7152 * g + 0.0722 * b + 1e-5)) def embed(img, text): for m in message: for key, c in enumerate(code): r, g, b = data[keys[key]] gr = gray(r,g,b) div = gr / ALPHA if (div % 2 != c): div += 1 if div >= (255/ALPHA): div -= 2 new_g = div * ALPHA + ALPHA / 2 rO, gO, bO = r, g, b count = 0 while gray(r,g,b) != new_g: к = (-1) ** (count % 2) *\ (count / 2) r = max(0, min(rO+\ int(0.2126*k+1e-5), 255)) g = max(0, min(gO+\ int(0.7152*k+1e-5), 255)) “ b = max(0, min(bO+\ 2*int(0.0361*k+1e-5), 255)) Заключение В данной статье представлен способ отображения этапов трансформации цифрового объекта с помощью диаграмм. Сформулированы определения для стеганографической системы, меры искажения, функций извлечения и внедрения. Рассмотрены два метода построения устойчивых стеганографических алгоритмов – метод редук- ции множества контейнеров и метод оценки искажения. Предложенные в статье методы построения стеганографических систем опробованы на практике. Разработаны две стеганографические системы, устойчивые к преобразованию цветного изображения в режим градаций серого. Для второй системы добавлена устойчивость к JPEG-компрессии.
Список литературы Устойчивые к атакам на контейнер стеганографические алгоритмы
- Gustavus J. Simmons. The Prisoner’s Problem and the Subliminal Channel, Advances in Cryptology: Proceedings of Workshop on Communications Security (Crypto'83, David Chaum, ed.). Plenum Press. 1984. -P. 51-67.
- Конахович Г.Ф., Пузыренко А.Ю. Компьютерная стеганография. Теория и практика. К.: МК-Пресс, 2006. -288 с.