СИСТЕМА СКРЫТОЙ ПЕРЕДАЧИ СООБЩЕНИЙ В ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЯХ ФОРМАТА JPEG
С.С. Кувшинов
Научный руководитель - д.т.н., профессор А.Г. Коробейников
В работе предлагается реализация задачи скрытой передачи данных в графических изображениях формата JPEG. Приводится общая схема решения, программная реализация алгоритмов внедрения/извлечения данных и пример работы системы с конкретным сообщением и изображением. Также в работе рассмотрены особенности структуры файлов формата JPEG и особенности межформатных преобразований.
Введение
Наряду с криптографическими, задачу обеспечения конфиденциальности информации решают и стеганографические методы, которые позволяют скрытно передавать данные, т.е. скрывать сам факт передачи сообщений. Интерес к стеганографии появился в последнее десятилетие и вызван широким распространением мультимедийных форматов. В работе предлагается алгоритм встраивания текстовых сообщений в графические изображения формата JPEG. Актуальность данного решения наряду, с существующими стеганографическими системами, оперирующими с файлами BMP, прежде всего, обоснована фактом большего распространения формата изображений JPEG как поддерживающего сжатие. Файлы JPEG (фотографии, графика) распространены в сети Интернет, и их передача является обыденной операцией. JPEG популярен ввиду малого размера файлов данного формата, поэтому обмен JPEG-изображениями не вызывает подозрения факта скрытой передачи информации. Коллекция способов встраивания сообщения в графические стегоконтейнеры многообразна и пополняется с каждым днем новыми модификациями алгоритмов.
Проблематика
В нашей системе сообщение встраивается в графический файл-контейнер, далее файл доставляется адресату, адресат извлекает из полученного изображения текст сообщения. Описанная последовательность действий представлена на рис. 1.
Рис. 1. Общая схема работы системы скрытой передачи
Как показано на рисунке, передача сообщения проходит три этапа.
1) Встраивание сообщения в изображение формата JPEG.
2) Непосредственно передача полученного изображения с внедренным сообщением адресату (на сменном носителе, по электронной почте).
3) Извлечение сообщения из изображения.
Процессы встраивания и извлечения автоматизированы и выполняются с помощью разработанного приложения. Этап 2 является неконтролируемым, и методы из-
влечения и встраивания не зависят от канала передачи. В результате получатель получит извлеченное сообщение, идентичное передаваемому, при условии, что передаваемое изображение с внедренным сообщением (стегопосылка) не менялось с момента завершения процесса встраивания данных отправителем до момента начала их извлечения получателем. При несоблюдении указанной целостности программа не гарантирует тот факт, что получатель сможет извлечь полезную для него информацию (сообщение).
Алгоритм внедрения
Рис. 2. Общая схема алгоритма внедрения сообщения
Опытным путем определилось, что структура JPEG нерегулярна от файла к файлу. Рассмотренная выше иерархия маркеров присуща в том или ином объеме всем JPEG-файлам, однако каждый отдельно взятый файл имеет свои особенности. К примеру, в каких-то файлах заявлена одна таблица квантования и, соответственно, один блок данных сканирования, в других файлах - несколько таблиц и несколько блоков [1, 2]. В редких случаях встречаются файлы с маркерами перезапуска, что усложняет процедуру
анализа и поэлементного разбора JPEG-структуры. Также файл JPEG может хранить в себе несколько уменьшенных копий изображения для предварительного просмотра; этот факт увеличивает количество сегментов данных изображения, что сказывается на времени анализа файла.
В качестве подготовительной работы были созданы алгоритмы разбора (парсинга) файлов JPEG и BMP и реализованы программы-парсеры. Возможности данных модулей позволяют получить структурированное представление блоков для дальнейшего анализа потенциальных мест для внедрения битов сообщения.
Общая схема алгоритма внедрения представлена на рис. 2
Система принимает входные данные, проверяет их корректность:
1. существование входных файлов на носителе;
2. соотношение размеров входных файлов;
3. соответствие файла-контейнера формату JPEG.
Подготовка сообщения к внедрению
Согласно требованиям к системе, перед внедрением сообщение должно быть зашифровано и сжато. Подготовленное таким образом сообщение должно быть проанализировано на возможность встраивания с учетом требования ограничения объема (^ от объема изображения-контейнера).
Общая схема подготовки сообщения представлена на рис. 3.
]тёзультата сравнения записывается в набор ]выходных данных метода для дальнейшего анализа
Рис. 3. Алгоритм подготовки сообщения к внедрению
Внедрение сообщения
При разработке алгоритма внедрения обнаружились трудности, касающиеся межформатных преобразований. Внедрение происходит по алгоритму, представленному на рис. 4.
Рис. 4. Порядок действий при внедрении
Сложность разработки алгоритма сокрытия сообщения в файле JPEG заключается в специфичной структуре файла данного формата. Основной объем в файле данного формата занимают данные сканирования - это информация, в которой закодировано цветовое представление изображения. Для просмотра изображения JPEG эти байты должны быть декодированы для восстановления RGB представления изображения. Декодеры, использующиеся в программах просмотра JPEG изображений, преобразуют данные сканирования с помощью служебной информации, также хранящейся в JPEG файле. Однако самая большая проблема в том, что JPEG - формат сжатия с потерями, и они в общем случае не позволяют восстановить встроенное сообщение, поскольку восстановление происходит после процедур межформатных преобразований JPEG - RGB BMP - JPEG. В разработанной системе указанные проблемы решены.
Суть предлагаемого алгоритма представлена в форме диаграммы перехода состояний изображения на рис. 5.
Рис. 5. Последовательность процесса внедрения сообщения
На первом этапе производится преобразование потока данных JPEG в поток данных BMP. При этом увеличивается размер потока за счет изменения принципа кодирования информации об цветовых свойствах участков изображения. За счет того, что в формате BMP каждая точка изображения кодируется тремя байтами [3], отвечающими за вклад основных цветов (R - красного, G - зеленого и B - синего) в целевой цвет точки, изменение размера потока в большую сторону значительно и позволяет встроить необходимый объем информации в себе.
Известно, что человеческий глаз наименее чувствителен к изменениям в оттенках синего цвета, поэтому для встраивания используются B-составляющие RGB структур [4]. Для минимизации объема изменения используется только 1 наименьший бит такого байта, что до минимума снижает вероятность обнаружения изменения даже на изображениях с большой площадью заливки синего цвета. Простейший способ замены битов - последовательная замена в каждом b-байте [3, 5], представлен на рис. 6.
После встраивания выполняется последовательность действий, представленная на рис. 7.
Измененные b-байты выделяются из потока и копируются во временный буфер -буфер 1. Также в другой временный буфер (буфер 2) сохраняется информация о том, как встраивались биты сообщения - в каждый байт подряд или через один, два и т.д. Эта процедура может не выполняться, если порядок встраивания - последовательная замена бита в каждом b-байте.
Далее модифицированный поток байтов BMP подвергается JPEG сжатию с наивысшим коэффициентом качества. Полученный JPEG поток на этой стадии еще не сохраняется в выходной файл. Для обеспечения возможности последующего извлечения производятся дополнительные действия.
Производится попытка извлечения сообщения, которая заключает в себе:
1. клонирование потока JPEG во временный поток;
2. декодирование временного потока JPEG в поток байтов BMP;
3. извлечение модифицированных b-байтов, в которые были встроены биты сообщения, с учетом информации из буфера 2.
Далее следует анализ извлеченного сообщения, т.е. сравнение извлеченных b-байтов с b-байтами, сохраненными в буфер 1, и сохранение разностей в новый буфер -буфер 3. Эти разности являются неизбежным результатом потерь при межформатных преобразованиях JPEG - RGB BMP - JPEG.
B 0 1 1 0 1 0 1 1
G 1 1 1 1 1 1 0 0
R 0 0 1 0 1 0 0
B 1 1 1 0 0 1
G 1 1 1 1 0 1 0 1
R 0 1 1 1 1 1 0 0
B 0 0 1 1 1 0 0
G 1 0 1 1 0 1 1 1
R 0 1 1 1 0 1 0
B 0 0 0 1 1 1 0
G 0 1 0 1 1 1 1 1
R 1 1 0 1 0 0 1
B 0 0 1 1 0 1 0 0
G 0 0 1 0 1 1 1
R 1 0 1 1 1 0 1 0
B 0 1 0 1 0 1 0 1
G 1 1 0 1 1 0 1 1
R 1 0 1 1 0 1 1
B 0 0 1 1 0 1 1
G 1 0 1 1 0 0 0 0
R 0 1 0 1 1 1 0 0
B 1 1 0 1 1 1 0 1
G 0 0 1 1 0 0 1 1
R 0 1 1 1 0 0 1 0
4---
-
1
*---
1 0 - й бит
0 1 - й бит
0 2 - й бит
0 3 - й бит
0 4 - й бит
0 5 - й бит
1 6 - й бит
0 7 - й бит
1 -> 1
1 -> о
о -> о
о -> о
о -> о
> о
1 -> 1
1 -> о
R 1 1 0 1 1 1 0 1
Рис. 6. Последовательная замена битов
Суть подготовительной работы для обеспечения последующего извлечения - это механизм компенсирования потерь. Данные из буфера 3 записываются в COM-сегмент JPEG, сегмент добавляется к выходному потоку JPEG, и весь поток сохраняется в целевой файл. Как правило, за счет наивысшего коэффициента качества преобразования из BMP в JPEG значения поправок механизма компенсирования не превышают значения 6 по абсолютной величине, а, следовательно, эта информация представляет собой значения, лежащие в диапазоне от минус шести до плюс шести, включая границы. При использовании усложненного механизма замены битов данные из буфера 2 также сохра-
няются в структуре JPEG в виде нового сегмента и используются программой при извлечении. Важно отметить, что в качестве сегмента, используемого механизмом компенсирования потерь, может быть не только сегмент COM. В этой роли может выступать так же любой сегмент, игнорируемый программами просмотра JPEG изображений:
- SOF2 - SOF10;
- DAC;
- DNL;
- APP15;
- Пользовательские (неспецифицированные) типы сегментов [1].
Рис. 7. Реализация механизма компенсирования потерь (расчет и сохранение байтов-
поправок)
Заключение
В ходе исследований и тестирования системы получены результаты, удовлетворяющие требованиям технического задания:
1. шифрование и сжатие сообщения перед внедрением в контейнер;
2. визуальные изменения изображения с внедренным сообщением относительно исходного изображения должны быть незаметны человеческому глазу;
3. работа с сообщениями, размер которых при внедрении составляет до V размера изображения-контейнера.
Литература
1. Code net, всё для программиста [Электронный ресурс] / JPEG - Алгоритм сжатия Web-мастер: О.С. Савченко, 2001. - Режим доступа: http://www.codenet.ru/progr/formt/intro.php, свободный. - Загл. с экрана. - Яз. рус.
2. Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. - М.: ДИАЛОГ-МИФИ, 2003. - 348 с.
3. Омский государственный университет в дополнительных страницах [Электронный ресурс] / Омский государственный университет, Web- мастер: О.С. Савченко, 2001. - Режим доступа: http://www.univer.omsk.Su/omsk/Edu/infpro/1/jpeg/fbmp.htm, свободный. - Загл. с экрана. - Яз. рус.
4. Компьютерра Онлайн [Электронный ресурс] / Особенности цветового восприятия человека, 2001. - Режим доступа: http://offline.computerra.ru/1998/273/1965/, свободный. - Загл. с экрана. - Яз. рус.
5. Компьютерная документация от А до Я [Электронный ресурс] / Стеганография. Особенности использования программ на основе метода наименьшего значащего бита, 2005. - Режим доступа: http://www.compdoc.ru/secur/cript/steganografiya/, свободный. - Загл. с экрана. - Яз. рус.