Устойчивые к атакам на контейнер стеганографические алгоритмы
Автор: Смагин Алексей Аркадьевич, Валишин Марат Фаритович
Журнал: Инфокоммуникационные технологии @ikt-psuti
Рубрика: Электромагнитная совместимость и безопасность оборудования
Статья в выпуске: 1 т.13, 2015 года.
Бесплатный доступ
В статье рассматривается задача построения стеганографических алгоритмов, способных организовывать скрытый канал передачи данных в условиях проведения целенаправленной атаки на контейнер. Разработаны теоретические методы на основе редукции множества контейнеров и оценки вносимого в результате атаки искажения. Приведена практическая реализация стеганографического алгоритма, устойчивого к операции преобразования цветного изображения в оттенки серого и JPEG компрессии.
Стеганография, стегоанализ, активная атака, робастность, стеганографический алгоритм, цифровая обработка изображений, jpeg компрессия
Короткий адрес: https://sciup.org/140191747
IDR: 140191747
Текст научной статьи Устойчивые к атакам на контейнер стеганографические алгоритмы
Стеганография – наука о скрытой передаче данных путем сохранения в тайне самого факта передачи данных. Современная стеганография имеет дело с цифровыми объектами, в основном изображениями, аудио- и видеоданными. Основным критерием стеганографических систем является устойчивость к обнаружению. Изначально рассматривалась устойчивость к визуальному обнаружению, однако по мере развития методов стеганографии появился особый раздел стеганографии: стегоанализ, наука о выявлении факта передачи скрытой информации. В настоящее время рассматривается устойчивость стеганографических алгоритмов к статистическим тестам, методам классификации и т.д.
Стеганография позволяет решать ряд прикладных задач, не связанных с «задачей заключенных» [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 с.