Реализация методов компьютерной аудиовидеостеганографии для скрытия данных в графических файлах формата jpeg (JFIF)

Реализация методов компьютерной аудиовидеостеганографии для скрытия данных в графических файлах формата JPEG

A.В. Петраков, д.т.н., профессор Московского технического университета связи и информатики (МТУСИ), г. Москва, e-mail: petrakov@mail.ru

Д.М. Малиничев, инженер МТУСИ, e-mail: malinichev@mail.ru

B.С. Бугаев, инженер МТУСИ, e-mail: vs.bugaev@mail.ru А.П. Романцов, инженер МТУСИ, e-mail: a.romancov@mail.ru Л.С. Федяев, инженер МТУСИ, e-mail: fedyaev@mail.ru

Отражены вопросы практического применения аудиовидеостеганографии; рассмотрены методы скрытия информации в графических файлах формата JPEG; приведено описание соответствующих программных средств S-Tools и JPHS for Windows.

This work is devoted to questions of practical use of audiovideosteganography; there are considered the methods of hiding information in graphical JPEG files; there are given descriptions of S-Tools и JPHS for Windows software.

Ключевые слова: аудиовидеостеганография, графический формат, изображение, технология сжатия JPEG, шифрование, видеофайл, аудиофайл.

Key words: audio and video stenography, graph format, image, JPEG compression technology, encryption, video file, wave file.

Введение

Стандарт JPEG (от англ. Joint Photographic Experts Group - Объединенная группа экспертов по фотографии) весьма сложен, поскольку он не столько описывает формат файлов изображений, сколько определяет множество связанных с ним технологий сжатия изображений. Изображения JPEG формируются различными способами, в большинстве случаев - это файлы JPEG (JFIF) и файлы JPEG (TIFF).

Формат JPEG (JFIF от англ. JPEG File Interchange Format) - это формат для обмена файлами стандарта JPEG, разработанный под руководством Эрика Гамильтона (Eric Hamilton). Файлы с расширением JPG или JPEG неизменно относятся к этому формату.

Формат JPEG (JFIF) - самый распространенный формат, используемый для хранения фотографических изображений. Широкое распространение формата JPEG (JFIF) объясняется тем, что для фотографических изображений он обеспечивает значительное сжатие по сравнению с другими общепринятыми форматами растровых изображений (лучше пока только JPEG-2000) [6]. Фотографию, для хранения которой в виде файла Windows BMP требуется 1 Мбайт, в формате JPEG (JFIF) обычно можно сжать до 50 Кбайт. Хотя формат JPEG (JFIF) требует значительных вычислений, его выдающиеся возможности по сжатию изображений обычно пере-

вешивают недостаток, связанный с большими вычислительными затратами на обработку данных.

Но как бы ни был хорош формат JPEG (JFIF), для некоторых приложений он непригоден. Все методы сжатия, обычно реализуемые в стандарте JPEG, относятся к технологиям сжатия с потерями (кроме режима без потерь «Lossless JPEG»). Кроме того, при сжатии текста и рисунков формат JPEG (JFIF) не так хорош, как при сжатии фотографий.

Этапы сжатия графического изображения JPEG

Алгоритм преобразования графического изображения JPEG как при сжатии, так и при восстановлении состоит из нескольких последовательных этапов (рис.1).

1. Преобразование цветового пространства. На этом этапе осуществляется преобразование изображения из цветового пространства RGB в YCbCr (где Y - яркость, а Cb и Cr - цветоразностные компоненты точки изображения). Применение пространства YCbCr вместо привычного RGB объясняется физиологическими особенностями человеческого зрения, а именно тем, что зрение человека имеет значительно большую чувствительность к яркости (Y), чем к цветоразностным составляющим Cb и Cr.

2. Дискретизация (Sampling). Этот процесс заключается в уменьшении размеров плоскостей Сг и СЬ, с ее помощью можно уменьшить размер изображения до двух раз.

Рис. 1. Схема JPEG-кодирования

3. Сдвиг уровня. Этап, на котором все 8-битовые величины без знака (Y, Cb, Cr) в изображении преобразовываются в 8-битовое знаковое представление вычитанием 128 из их величины.

4. Дискретное косинусное преобразование (ДКП) (Discrete Cosine Transform, DCT). На этом этапе изображение JPEG вначале разбивается на блоки 8x8 пикселов, называемые единицами данных (data units). Затем к каждому блоку данных применяется прямое ДКП.

Применение прямого ДКП позволяет перейти от пространственного представления изображения к спектральному. В результате получается блок 8x8, состоящий из 64 DCT-коэффициентов, причем левый верхний коэффициент называется DC-коэффициентом и имеет наибольшее значение, остальные называются AC-коэффициентами и с удалением от DC-коэффициента их значимость уменьшается.

5. Квантование (Quantization). Квантование -основной процесс, при выполнении которого теряются данные в методе JPEG-сжатия. Идея квантования состоит в «отбрасывании» некоторого объема информации. Известно, что глаз человека менее восприимчив к высоким частотам (особенно к высоким частотам цветоразностных компонент), и большинство фотографических изображений содержит мало высокочастотных составляющих. Кроме того, появление высоких

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

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

6. Кодирование. Состоит из двух этапов: кодирование последовательности нулей и кодирование Хаффмана (Huffman Coding). На этой стадии кодируются квантованные DCT-коэффициенты, при этом исключаются серии нулевых значений. Далее осуществляется кодирование Хаффмана. При этом стандарт JPEG допускает вместо кодирования Хаффмана использование арифметиче-с к о г о кодирования (arithmetic coding).

Структура файла JPEG

Файл JPEG (JFIF), подобно любому потоку данных JPEG, состоит из последовательности сегментов (рис.2).

Начало изображения

Маркер APP0, JFIF

Таблицы квантования

Начало кадра

Таблицы Хаффмана

Начало сканирования 1

Данные сканирования 1

Таблицы Хаффмана

Начало сканирования n

Данные сканирования n

Конец изображения

Рис. 2. Структура файла JPEG

Каждый сегмент начинается с двухбайтового маркера, причем значение первого байта всегда равно FFJ6. Второй байт содержит код, который указывает тип маркера. В качестве символов-заполнителей перед началом любого маркера может располагаться произвольное число байтов со значениями FFJ6. Байт в потоке JPEG со значением FFJ6, за которым следует еще один байт со значением FF16, всегда игнорируется.

Маркеры JPEG можно сгруппировать по двум основным типам. Одиночные маркеры (stand-alone markers), которые не содержат никаких данных, кроме своих двух байтов. За маркерами, которые стоят не в одиночку, сразу же следует значение счетчика длины (length count) размером 2 байта. Оно указывает число байтов данных, которые содержит сегмент, озаглавленный данным маркером, без учета длины самого маркера.

Формат JPEG (JFIF) требует, чтобы за маркером SOI, который начинает файл, сразу следовал маркер APP0 и предписывает использование цветового пространства YCbCr. В цветных изображениях должны присутствовать все три компоненты. Полутоновые изображения должны содержать только компонент Y.

Файл JPEG (JFIF) может содержать до четырех таблиц квантования и при базовом методе не более чем по две таблицы Хаффмана для DC-коэффициентов и для AC-коэффициентов.

Файл JPEG (JFIF) может быть идентифицирован считыванием первых 11 байтов и проверки того факта, что первые 4 байта равны FFJ6 DSJ6 FFJ6 E0J6 (маркер SOI, за которым следует маркер APP0). После пропуска 2 байтов следующие 5 байтов должны быть равными J, F, I, F, 001б, причем байт 00іб располагается последним.

Методы скрытия в графических изображениях формата JPEG

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

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

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

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

Форматные методы скрытия в графических изображениях: в косвенных данных; с использованием маркеров комментариев (.ТРЕО); с использованием уменьшенного изображения (JPEG); в палитре; после палитры; в нулевых байтах; дописывание данных в конец файла .ТРЕО.

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

Рис. 3. Применение стеганографии в файлах формата JPEG

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

Программы JPHS for Windows v.0.5

Программа JPHide предназначена для решения следующих задач: добавление произвольной

файловой информации (скрываемого сообщения) в файлы формата JPEG; извлечение скрытой информации.

В соответствии с алгоритмом скрытия данных в графическом файле формата JPEG (JFIF), перед внедрением скрываемое сообщение шифруют с использованием криптографического алгоритма Blowfish и пароля пользователя. Затем программа JPHide с помощью заданной таблицы делит все DCT-коэффициенты на классы для определения порядка их изменения. В процессе скрытия информации сначала используются все DCT-коэффициенты текущего класса и только затем выбирается следующий класс.

Суть метода заключается в изменении значений младших бит квантованных DCT-коэффициентов, определяемых программой. Поясним этот метод на следующем примере. Предположим, что необходимо скрыть последовательность 11010011 (скрываемое сообщение) в блок 4х4, и пусть текущий класс состоит из DCT-коэффициентов, модуль которых больше 15 (жирным шрифтом выделены подходящие для внедрения DCT-коэффициенты, а измененные подчеркнуты).

Блок до скрытия Блок после внедрения

149 -3 -20 -13 149 -3 -21 -13

42 44 35 16 42 45 34 16

34 15 -5 21 ^ 35 15 -5 21

-14 3 -15 1 -14 3 -15 1

19 -3 -20 -13 19 -3 -20 -13

Извлечение происходит по похожей схеме. Сначала с помощью все тех же классов программа JPHide определяет местоположение БСТ-коэффициентов, содержащих внедренную информацию. Затем сообщение считывается из НЗБ БСТ-коэффициентов.

Одна из особенностей выполнения заключается в том, что скрытие информации продолжается в

текущем классе БСТ-коэффициентов даже после того, как полное сообщение было скрыто. Первый класс в таблице - БС-коэффициенты первой цветовой компоненты. Изображение с разрешением 600 х 480 имеет приблизительно пять тысяч БС-коэффициентов. Даже если сообщение состоит только из восьми бит, JPHide изменит все пять тысяч коэффициентов в таком изображении. Программа JPHide способна изменять не только наименее значащие биты квантованных БСТ-коэффициентов, она может также перейти к способу, когда изменяются и вторые наименее значащие биты.

Интерфейс программы разработан специально для работы в среде Windows. Он состоит из строки меню (рис. 4) и рабочего окна, разделенного на три части, и окна информатора, расположенного внизу.

Верхняя часть называется «Input jpeg file» (контейнер) и содержит информацию о файле-контейнере. Средняя часть называется «Hidden file» (сообщение) и содержит информацию о файле-сообщении. Нижняя часть называется «Saved jpeg file» (стегоконтейнер) и содержит информацию о файле-стегоконтейнере. Окно-информатор сообщает о наличии повреждений в файле-контейнере.

Технология скрытия и извлечения информации

Пошаговое описание скрытия данных. Для того чтобы скрыть в файле «TANK.JPG» конфиденциальную информацию, представленную в текстовом виде (TTX.txt), необходимо выполнить следующие шаги.

1. Запустить программу JPHide (Jphswin.exe), одноименный ярлык находится на рабочем столе.

2. В строке меню выбрать пункт «Open jpeg» и указать путь к папке JPEG «С: \ Контейнер \ JPEG \ TANK.JPG». В верхней части рабочего окна отобразится информация о файле-контейнере (рис.5).

Рис. 5. Информация о файле-контейнере

3. В строке меню выбрать пункт «Hide». Перед указанием пути к файлу-сообщению «C: \ Сообщение \ TTX.txt» программа запросит пароль пользователя и его подтверждение и только после этого выведет окно для указания пути.

Exit Open jpeg Hide Seek Save jpeg Save jpeg as Pass phrase Options Help About

Рис. 4. Строка меню

В средней части рабочего окна отобразится информация о файле-сообщении (рис. 6). Размер файла-сообщения рекомендуется выбирать исходя из рекомендованного предела «recommended limit». В нашем примере он равен 5 Кб.

4. В строке меню выбрать пункт «Save jpeg as» и в появившемся окне указать новое имя и новый путь. Сохранить стегоконтейнер под именем «Stego.jpg» в папке «Стегоконтейнер» (С: \ Стегоконтейнер). Если требуется сохранить стегокон-тейнер вместо файла-контейнера, то надо выбрать в строке меню пункт «Save jpeg».

В нижней части рабочего окна отобразится информация о файле-стегоконтейнере. На этом скрытие завершено.

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

1. Загрузить программу JPHide (Jphswin.exe), одноименный ярлык находится на рабочем столе.

2. В строке меню выбрать пункт «Open jpeg» и указать путь к стегоконтейнеру «C: \ Стегокон-тейнер \ Stego.jpg».

В верхней части рабочего окна отобразится информация о файле-стегоконтейнере (рис.7).

Рис. 7. Информация о файле-стегоконтейнере

3. В строке меню выбрать пункт «Seek». Перед указанием пути для сохранения извлеченного файла-сообщения «С: \ Результаты \ result.txt» программа запросит пароль и его подтверждение и только после этого выведет окно для указания пути.

В средней части рабочего окна отобразится информация об извлеченном файле-сообщении.

Если введенный пароль не соответствует использованному при скрытии, то программа выведет предупреждение о неверном пароле. В этом

случае пароль можно ввести вновь в пункте меню «Pass phrase».

Впоследствии сохраненный файл можно просмотреть с помощью стандартных средств ОС Windows 9x «Блокнот», «WordPad» или любыми другими программными средствами, поддерживающими данный формат файла

ЛИТЕРАТУРА

1. Романцов А.П. Криптография и стеганография: Учеб. пособие / Под ред. А.В. Петракова. - М.: РИО МТУСИ, 2002.

2. Основы компьютерной стеганографии: Учеб. пособие для вузов / А.В. Аграновский, П.Н. Девянин, Р.А. Хади, А.В. Чергмушкин. - М.: Радио и связь, 2003.

3. Романцов А.П. Современные компьютерные технологии стеганографической защиты мультимедийных данных //Системы безопасности, 2003, № 49.

4. Цифровая стеганография / В.Г. Грибунин, И.Н.Оков, И.В. Туринцев - М.: СОЛОН-Пресс, 2002.

5. Kelley Jack. Terror groups hide behind Web encryption. USA Today, February 2001; http://www.usatoday.com/life/cyber/tech/2001-02-05-binladen.htm.

6. Colin Johnson R. JPEG2000 wavelet compression spec approved. EE Times, December1999.

7. Романцов А.П. Стеганографическая защита цифровыми водяными знаками. Учеб. пособие / Под ред. А.В. Петракова. - М.: РИО МТУСИ, 2003.

8. Романцов А.П., Бугаев В.С., Фролов М.А. Комплекс лабораторных работ по стеганографии / Под ред. А.В. Петракова. - М.: РИО МТУСИ, 2005.

9. Петраков А.В., Романцов А.П., Бугаев В.С. Место стеганографии в преобразованиях цифрового телевидения // Тр. 14-й Всероссийской научн.-техн. конф. «Современное телевидение» (март 2006 г.). -М.: ФГУП МКБ «Электрон», 2006.

10. Бугаев В.С., Петраков А.В. Новые возможности результатов исследования статистики длительности телекиносюжетов (сжатие и стеганография) // Тр.

15-й Всероссийской научн.-техн. конф. «Современное телевидение» (март 2007 г.). - М.: ФГУП МКБ «Электрон», 2007.

11.Бугаев В.С. Виды скрытности и стеганография // Тр.

16-й Междунар. научн.-техн. конф. «Современное телевидение» (март 2008 г.). - М.: ФГУП МКБ «Электрон», 2008.

12.Бугаев В.С., Петраков А.В. О взаимозависимости видеоизбыточности и скрытности в элементах видеостеганографии // Тр. 17-й Междунар. научн.-техн. конф. «Современное телевидение» (март 2009 г.). - М.: ФГУП МКБ «Электрон», 2009.

Поступила 12.02.2009 г.

Hidden file

Directory С:\Сообщение Filename TTX.txt

Filesize I Kb Рис. 6. Информация о файле-сообщении

Input jpeg file

Directory C:\CTer0K0HTetfHep Filename Stego.jpg

Filesize 41 Kb Width 102-1 pixels Height 768 pixels Approximate max capacity 7 Kb recommended limit -1Kb