задача является одной из важнейших, поскольку в современном обществе информация имеет наибольшую ценность.
С каждым годом проблема защиты прав интеллектуальной собственности становится всё более актуальной, поскольку широко распространяется электронная коммерция и появляется множество источников информации (таких, как JPEG2000, MPEG-4), за которые пользователям необходимо платить отчисления, в то время как надёжных механизмов защиты в этих форматах нет. Поэтому авторы произведений могут внедрить свой ЦВЗ в свои произведения в целях доказательства своего авторства в суде. Или же, например, произведение может быть нечитаемым без ЦВЗ (как DVD-диски) [2]. В то же время подобные системы ещё мало распространены, часто разрабатываются под заказ и направлены на решение узкого круга задач [2]. Одним из механизмов защиты интеллектуальной собственности являются ЦВЗ [3, 4].
Существует множество программных систем [2], выполняющих те или иные задачи по разным направлениям стеганографии. В данной работе выбран для исследования формат JPEG ввиду широкого его использования в сети Интернет. В качестве альтернативы встраиванию в психофизиологическую область проанализирован формат в целях применения в системах, в которых максимизируется пропускная способность.
Известны алгоритмы, использующие особенности алгоритмов сжатия JPEG: Pitas, Koch, Benham, Podilchuk, Hsu, Tao, Cox, Barni, Fridrich [8]. Впервые дискретное косинусоидное преобразование (ДКП) применялось ко всему изображению в целом. Обычно же контейнер разбивается на блоки размером 8х8 пикселов. ДКП применяется к каждому блоку, в результате чего получаются матрицы коэффициентов ДКП, также размером 8х8. Коэффициент, содержащийся в левом верхнем углу, называется DC-коэффициентом. Он содержит информацию о яркости всего блока. Остальные коэффициенты называются АС-коэффициентами.
Pitas. ЦВЗ представляет собой двумерный массив бит размером с изображением, причем число единиц в нем равно числу нулей. Бит Ц ВЗ встраивается в блоки 2х2 пиксела. Для внедрения блоков вычисляется среднее значение яркости данного блока. Для этого в блоке 8х8 элементов заранее вычисляют «емкость» каждого пиксела с учетом ДКП и матрицы квантования JPEG.
Koch. В блок 8х8 осуществляется встраивание 1 бита ЦВЗ следующим образом: для передачи бита 0 добиваются того, чтобы разность абсолютных значений коэффициентов была больше некоторой положительной величины, а для передачи бита 1 эта разность делается меньше некоторой отрицательной величины. Псевдослучайно могут выбираться два или три коэффициента ДКП.
Benham. Этот алгоритм является улучшенной версией предыдущего. Улучшения проведены по двум
направлениям: во-первых, для встраивания используются не все блоки, а лишь «пригодные» для этого, во-вторых, внутри блока для встраивания выбираются не два, а три коэффициента, что уменьшает искажение.
Встраивание бита ЦВЗ осуществляется следующим образом. Псевдослучайно выбираются три коэффициента ДКП блока. Если нужно вложить 1, коэффициенты изменяются так (если требуется), чтобы третий коэффициент стал меньше каждого из первых двух; если нужно встроить 0, он делается больше других. В том случае, если такая модификация приведет к слишком большой деградации изображения, коэффициенты не изменяют, и этот блок просто не используется.
Pidilchuk. Встраиваемые данные моделируются вещественным случайным процессом с нормальным распределением, единичной дисперсией и нулевым средним. Для каждого коэффициента ДКП определяется значение порога, изменение сверх которого может привести к деградации изображения. Этот порог зависит от позиции коэффициента в матрице, т.е. от частотного диапазона, за который он отвечает. Кроме того, порог обуславливается и свойствами самого изображения: контрастностью и яркостью блока.
Встраивание осуществляется следующим образом: если абсолютное значение коэффициента меньше порога, то он не изменяется. В противном случае к нему прибавляется произведение значения порога и значения ЦВЗ.
Hsu. В качестве ЦВЗ выступает черно-белое изображение размером вдвое меньше контейнера. Перед встраиванием это изображение подвергается случайным перестановкам. ЦВЗ встраивается в среднечастотные коэффициенты ДКП. Для внедрения бита ЦВЗ в коэффициент находится знак разности коэффициента из предыдущего блока. Если надо встроить 1, коэффициент меняют так, чтобы знак разности стал положительным, если 0 — то чтобы знак стал отрицательным.
Tao. При встраивании ЦВЗ используются коэффициенты ДКП, имеющие наименьший шаг квантования в таблице JPEG. Число и местоположение этих коэффициентов не зависят от изображения.
Сох. Внедряемые данные представляют собой последовательность вещественных чисел с нулевым средним и единичной дисперсией. Для вложения информации используются несколько АС-коэффициентов ДКП всего изображения с наибольшей энергией.
Barni. Этот алгоритм является улучшением предыдущего, и в нем также выполняется ДКП всего изображения. Для встраивания ЦВЗ используются средние по величине АС-коэффициенты. В качестве ЦВЗ выступает произвольная строка бит.
Fridrich. Алгоритм является декомпозицией двух алгоритмов: в одном данные встраиваются в низкочастотные, а в другом — в среднечастотные
122
РИ, 2004, № 4
коэффициенты ДКП. Каскадное применение двух различных алгоритмов приводит к хорошим результатам в отношении робастности. Перед встраиванием ЦВЗ в низкочастотные коэффициенты изображения преобразуются в сигнал с нулевым средним и определенной дисперсией так, чтобы абсолютные значения коэффициентов ДКП находились в диапазоне (200, 250).
В данных алгоритмах, использующих ДКП, обеспечиваемая величина пропускной способности не велика и в большинстве случаев их применение ухудшает качество изображения. Целесообразным является проведение анализа формата JPEG и разработка алгоритмов, использующих другие свойства.
Целью настоящего исследования является разработка метода и алгоритма встраивания ЦВЗ в формат JPEG для решения проблемы защиты авторских прав и максимизации пропускной способности. Для достижения цели решаются следующие задачи:
— анализируется формат JPEG на присутствие некритичных частей файла к работоспособности кодеров/декодеров;
— разрабатывается и реализуется метод встраива-ния/извлечения ЦВЗ;
— проводится анализ робастности ЦВЗ и пропускной способности контейнера.
Основное содержание исследования
Существует четыре режима сжатия JPEG: иерархический, прогрессивный, последовательный и без потерь. Последовательный является простейшим режимом JPEG. Он обеспечивает кодирование изображения сверху вниз, поддерживает дискретизацию данных с точностью 8 и 12 битов.
В JPEG-изображениях с прогрессивным сжатием компоненты кодируются в множестве сканов. Сжатые данные для каждого компонента помещаются не менее, чем в 2, и не более, чем в 896 сканов, хотя фактическое их число почти всегда находится на нижней границе этого диапазона. Начальные сканы создают грубую версию изображения, тогда как последующие сканы улучшают его качество.
Иерархический JPEG представляет собой суперпрогрессивный режим, в котором изображение разделяется на множество фрагментов, называемых кадрами. Кадр представляет собой группу из одного или нескольких сканов. В иерархическом режиме первый кадр создает версию изображения с низким разрешением. Остальные кадры улучшают качество путем повышения разрешения.
Режим сжатия без потерь, который всегда сохраняет точное исходное изображение. Режим без потерь никогда не может достичь такого же сжатия, как режим сжатия с потерями, и используется редко.
Файл формата JPEG состоит из множества маркеров. Маркеры используются для разбиения потока данных JPEG на структуры компонентов. Маркер
— структура, обычно содержащая 2-байтовый иден-
тификатор маркера, 2-байтовое поле длины и тело. Существуют и пустые маркеры, у которых присутствует только идентификатор (например, SOI — маркер начала изображения). Подробное описание формата JPEG дано в работах [5-7]. Ниже приведены маркеры, потенциально пригодные для встраивания ЦВЗ.
Маркеры APP0-APPF не влияют на процесс распаковки изображения, а несут специфическую для приложения, создавшего файл, информацию. По спецификации JFIF (JPEG File Interchange Format) любой маркер APPn должен содержать в начале тела имя создавшего его приложения в кодировке ASCII, заканчивающееся нулевым завершителем. После имени приложения могут идти данные. За исключением маркеров APP0, программа может игнорировать маркеры АРР, которые она не распознает.
Маркер DQTпредназначен для определения таблиц квантования, используемых при распаковке изображения. Фактически маркер DQTхранит двумерные массивы чисел размером 8*8, причём сами числа могут быть размером 1-2 байта.
Маркер ЕОІотмечает конец JPEG — изображения. Маркер SOF определяет кадр. Состоит из фиксированного заголовка следующего поля длины маркера. Далее располагается список структур, которые определяют каждый компонент, используемый в кадре.
Маркер DHTопределяет таблицы Хаффмана, которые идентифицируются типом (АС или DC) и числом. Один маркер DHT может определять множество таблиц. Каждая таблица Хаффмана представляет собой 17 байтов фиксированных данных, за которыми следует поле переменной длины, включающее 256 дополнительных байтов. Первый фиксированный байт содержит идентификатор таблицы. Следующие 16 байтов образуют массив из 1байтовых целых чисел без знака, элементы которого задают число кодов Хаффмана для каждой возможной длины кода. Сумма из 16 длин кодов представляет собой число значений в таблице Хаффмана. Каждое значение равно 1 байту и за ним следуют, согласно порядку кода Хаффмана, счетчики длины. Каждый раз, когда считывается таблица, из счетчика вычитается ее длина. Когда значение счетчика достигнет нуля, все таблицы будут прочитаны. В маркере DHT не допускается наличие заполнителей, поэтому если значение счетчика становится отрицательным, то это служит указателем недостоверности файла.
Маркер SOS отмечает начало сжатых данных для скана в потоке JPEG. После счетчика компонента располагаются дескрипторы для каждого компонента. Далее следуют 3 байта данных, используемых только в прогрессивном режиме.
Маркеры перезапуска RST0-RSTj используются для маркировки блоков независимо от кодированных сжатых данных скана. В этих маркерах отсутствуют поле длины и данные, а сами маркеры могут встречаться только внутри сжатых данных скана.
РИ, 2004, № 4
123
Маркеры перезапуска могут использоваться для нейтрализации ошибок. Интервал между маркерами перезапуска определяется маркером DRI. Таким образом, если интервал перезапуска равен нулю, то маркеры перезапуска не применяются.
В ходе анализа использована атака «сжатие изображения» в целях выделения тех областей формата, в которые можно встроить ЦВЗ. Были проведены следующие тесты:
1. Последовательность кодирования / декодирования BMP ^ JPEG ^ BMP ^ JPEG ^... Использовалось наилучшее сжатие (0 по шкале Photoshop).
2. Последовательность кодирования / декодирования BMP ^ JPEG ^ BMP ^ JPEG ^... Использовалось среднее сжатие (Medium или 5 по шкале Photoshop).
3. Последовательность кодирования / декодирования PNG ^ JPEG ^ PNG ^ JPEG ^... Использовалось наилучшее сжатие (0 по шкале Photoshop).
Эксперименты с прочими, кроме BMP и PNG, форматами изображений со сжатием без потерь не приводятся ввиду повторяемости их результатов. Результаты были получены с использованием ко-дера/декодера JPEG, встроенного в приложение Adobe Photoshop 7. Изображения после первой и последней итерации неотличимы на глаз. В табл. 1 приведены только данные, имеющие существенное значение для дальнейших выкладок.
Таблица 1 Сводная таблица результатов
Тип преобразований Точка устойчивости Конечный размер, байт
BMP ^ JPEG (0) 3 итерация Блок А
BMP ^ JPEG (5) 3 итерация Блок Б
PNG ^ JPEG (0) 2 итерация Блок В
В табл. 1 блок А обозначает 29278^ 29282 ^ 29214+5, блок Б - 63151 ^ 63100 ^ 63075+9, блок В - 29278 ^ 29214+5.
Уменьшение размеров файла JPEG при последующих итерациях связано с небольшим изменением коэффициентов DCT. Например, с изменением части коэффициентов AC с нуля на единицу и обратно.
Анализ выходных файлов JPEG показал, что чем более сильное сжатие используется, тем меньше коэффициентов AC остаётся в файле, причём присутствующие коэффициенты AC сосредоточены возле коэффициента DC.
При наилучшем сжатии в сканах остаются практически только коэффициенты DC (иногда остаётся ещё первый коэффициент AC). Данный факт и обеспечивает отличную степень сжатия, поскольку в таком случае нам необходимо хранить только коэффициент DC и специальное значение кода серии, обозначающее, что до конца скана идут одни нули.
В то же время при использовании такого рода атак активный нарушитель, скорее всего, не будет задавать максимальную степень сжатия, чтобы не раскрыть своего присутствия. В таком случае становится возможным применение и ближайших к DC коэффициентов AC.
Возможно использование уже квантованных коэффициентов. Не рекомендуется применять таблицы квантования для хранения скрытой информации, так как большая часть кодеров при сжатии помещает свои таблицы в файл.
Для выявления пригодности ряда маркеров на размещения ЦВЗ проведены следующие тесты:
1. Добавление информации после маркеров (всех, в том числе EOI).
2. Добавление информации перед маркером SOI (невозможно, согласно стандарту).
3. Модификация старших 6 бит числа компонент в маркере SOF (согласно JFIF, для этого поля допускаются только значения 1, 2, 3).
4. Модификация старших 3 бит первого байта маркера DHT (по стандарту они всегда равны 0).
5. Использование резервных маркеров (JPG, JPG0-JPG13, RES).
6. Модификация старших 6 бит идентификаторов компонента в маркере SOS (согласно JFIF, для этих полей допускаются только значения 1, 2, 3).
7. Модификация старших 4 бит первого байта маркера DQT (по стандарту они всегда равны 0).
8. Модификация старших 6 бит единицы измерения плотности пикселов в маркере APP0 (согласно JFIF, для этого поля допускаются только значения 0, 1, 2).
9. Обработка маркеров APP1-APP15.
10.Обработка комментариев (маркер COM).
Некоторые преобразования данных (размещение особым образом маркеров RST0-RST7, модификация значений таблицы квантования, таблицы Хаффмана) здесь не рассматриваются. По мнению авторов, применение подобных преобразований за пределами психофизической области изображения лишь неоправданно усложнит используемые алгоритмы и уменьшит робастность к некоторым атакам.
Тесты проводились с использованием программ Adobe Photoshop 7, ACDSee 4 и IE 6. Результаты тестирования приведены в табл. 2.
Самой надёжной областью хранения информации в плоском файле, не учитывая психофизическую область изображения, являются маркеры APP0-APP15. Также можно использовать байт единицы измерения плотности пикселов в маркере APP0 для хранения маркера присутствия информации.
Итоговая пропускная способность формата JPEG не ограничена сверху. Хотя у маркера JPEG есть ограничение на размер (64K), существует возмож-
124
РИ, 2004, № 4
ность хранить информацию в нескольких маркерах или вне их.
Рекомендуется внедрять не более 10 % информации от общего размера файла JPEG. В таком случае изменения размера файла будут незначительны.
Научная новизна: на основе полученных данных разработан метод Z_JPEG, сущность которого заключается в генерации цифрового водяного знака как совокупности ключа, контейнера и сообщения; встраивание ЦВЗ в контейнер с использованием маски; анализ класса ЦВЗ, а также обнаружение его в детекторе путем указания наличия либо отсутствия такового в контейнере. Маской встраивания служат маркеры DQT, APP0-APPF.
Пусть W*, K*, I*, B * есть множества возможных ЦВЗ, ключей, контейнеров и скрываемых сообщений, соответственно. Тогда генерация ЦВЗ может быть представлена в виде:
F: I* х K* х B* ^ W*, W = F(I, K, B), (1)
где W, K, I, B — представители соответствующих множеств.
Функция F может быть произвольной, но на практике требования робастности ЦВЗ накладывают на нее определенные ограничения. В большинстве случаев F(I, K, B) и F(I + є, K, B), т.е. незначительно измененный контейнер не приводит к изменению ЦВЗ. Функция F является составной (2).
Функция G представляет собой от простейшей операции xor до функции шифрования. Функция T , к примеру, представляет собой помехоустойчивое кодирование для повышения робастности ЦВЗ. Она должна быть выбрана так, чтобы незаполненный контейнер I0 , заполненный контейнер Iw и незначительно модифицированный заполненный контейнер I'w порождали бы один и тот же ЦВЗ:
F = T о G,
где G:K* х B* ^ C* иТ : С * xI* ^ W* , (2)
T(C,Io) = T(C,Iw) = T(C,Iw) . (3)
Процесс встраивания ЦВЗ W(i,j) в исходное изображение Io(i,j) описывается как суперпозиция двух сигналов:
є: I* х W* хL* ^ Iw*,
Iw(i,j) = Io(i,j) © L(i,j) W(i,j) , (4)
где L(i,j) — маска встраивания ЦВЗ, учитывающая особенности формата файла JPEG, служит для уменьшения заметности ЦВЗ; ф — функция размещения ЦВЗ в контейнере.
В процессе исследований было выяснено, что при любой атаке активного нарушителя, после которой
требуется сохранить файл JPEG, встроенный в формат ЦВЗ будет разрушен. Данное обстоятельство проверено экспериментальным путём с помощью приложений Adobe Photoshop 7 и Microsoft Paint. В то же время при атаках пассивного нарушителя ЦВЗ не будет обнаружен, поэтому такой ЦВЗ относят к классу хрупких.
Практическая ценность: разработанный метод ориентирован на обнаружение нарушителей канала передачи скрытой информации.
В табл. 2 тип А соответствует следующему выводу: существует возможность хранить данные в областях файла, которые «официально» не принадлежат ни одному маркеру; типу Б - Браузер не смог распознать файл JFIF, так как первые 2 байта изображения не были равны 0xFFD8 и эту область файла нельзя применять; типу В — существует возможность использовать в качестве маркера встроенных данных (значения 0-63); типу Г — пригодны для хранения данных любых объёмов; типу Д — непригодны, некоторые приложения (например, ACDSee) позволяют просмотреть JPEG-комментарии.
К перспективным направлениям дальнейших исследований в данной области относится разработка
Таблица 2
Тест Декодер Результат Выводы
#1 Photoshop Ok Тесту №1 соответствует тип А
ACDSee Ok
IE Ok
#2 Photoshop Ok Тесту №2 соответствует тип Б
ACDSee Ok
IE Failed
#3 Photoshop failed Непригодны
ACDSee failed
IE failed
#4 Photoshop failed Непригодны
ACDSee failed
IE failed
#5 Photoshop failed Непригодны
ACDSee failed
IE failed
#6 Photoshop failed Непригодны
ACDSee failed
IE failed
#7 Photoshop failed Непригодны
ACDSee failed
IE failed
#8 Photoshop ok Тесту № 8 соответствует тип В
ACDSee ok
IE ok
#9 Photoshop ok Тесту № 9 соответствует тип Г
ACDSee ok
IE ok
#10 Photoshop ok Тесту № 10 -соответствует тип Д
ACDSee ok
IE ok
РИ, 2004, № 4
125