Методы стегоанализа цифровых изображений А.М. ПРУДНИКОВ, М.В. МАРКОВСКИЙ Московский инженерно-физический институт (государственный университет) МЕТОДЫ СТЕГОАНАЛИЗА ЦИФРОВЫХ ИЗОБРАЖЕНИЙ В работе рассматриваются методы внедрения информации в цифровые изображения, способы выявления наличия скрытой информации, внедренной с помощью наиболее распространенных методов и существующего на текущий момент программного обеспечения, а также исследуется возможность поиска скрытых сообщений в мультимедиаконтейнерах, хранящихся в базе данных. За последние несколько лет во всем мире существенно возросли объемы информации, обрабатываемые и передаваемые с помощью ЭВМ. Естественно, что при этом увеличении возрастают и риски при работе со всевозможными сведениями, представленными в электронном виде. К таким рискам можно отнести нарушение конфиденциальности данных, потерю их доступности, утрату их целостности. Снижать подобные риски призваны криптография и стеганография. И если вопросы криптографии довольно широко и подробно описаны и активно обсуждаются, то вопросам стеганографии уделено гораздо меньше внимания. Наиболее распространенные случаи использования цифровой стеганографии – встраивание информации в контейнер с целью ее скрытой передачи и встраивание цифровых водяных знаков [1, 2]. Эти направления и рассмотрим подробно, используя в качестве контейнеров цифровые изображения. Основными способами внедрения информации в изображения являются аддитивное внедрение и нелинейное встраивание. При аддитивном внедрении происходит линейная модификация используемого в качестве контейнера изображения, нелинейное встраивание подразумевает под собой использование скалярного или векторного квантования. Рассмотрим типичную методику аддитивного внедрения, которая реализуется несколькими схожими способами: (1) f (m, n) f (m, n)(1 wi ) , (2) f (m, n) f (m, n) wi , (3) f (m, n) f (m, n)eαwi , где f – исходное изображение; f – модифицированное изображение; α – весовой коэффициент; wi – элемент скрываемой последовательности длины N. Тогда декодирование, обратное встраиванию (1), осуществляется следующим образом: f * (m, n) f (m, n) , (4) wi* f (m, n) где f * – анализируемое изображение, содержащее (или не содержащее) внедренные элементы wi* . Из (4) видно, что для декодирования в общем случае необходимо иметь исходное, немодифицированное изображение, что не всегда возможно, и потому область применения подобных методов достаточно сужена. Без исходного изображения возможна работа с так называемыми «слепыми» методами. Их принципиальная суть состоит в вычислении корреляции последовательности w со всеми N коэффициентами исследуемого изображения f *: f * (m, n) wi N , (5) N а затем полученное с помощью (5) значение коэффициента корреляции сравнивается с порогом обнаружения: α (5) f * (m, n) . 3N N Достоинство «слепых» (или корреляционных) методов в том, что для декодирования не нужно иметь исходное изображение; однако есть и недостатки, причем достаточно существенные. Действительно, из (5) и (6) видно, что в данном случае при декодировании получается не скрытая ранее последовательность, а лишь некая вероятностная характеристика, позволяющая с определенной долей уверенности утверждать, есть в данном изображении скрытая информация или нет. По- Методы стегоанализа цифровых изображений лучение же самого скрытого сообщения при данном подходе есть очень сложная вычислительная задача. Несколько проще выглядит задача внедрения информации в цифровое изображение при создании так называемых цифровых водяных знаков (ЦВЗ). В этом случае часто используются алгоритмы «слияния» изображений, так как ЦВЗ чаще всего тоже представляет собой цифровое изображение (меньшее по сравнению с изображением-контейнером). В связи с вышесказанным можно допустить небольшое искажение скрываемого изображения (аналогичное, например, JPEGсжатию), так как и программно, и визуально его все равно можно будет распознать. Общий принцип, используемый в подобных алгоритмах «слияния», следующий: выполняется вейвлет-преобразование исходного и внедряемого изображения; все коэффициенты вейвлет-преобразований контейнера и ЦВЗ поэлементно складываются (так как ЦВЗ меньше, чем контейнер, перед сложением количество коэффициентов вейвлет-преобразования ЦВЗ тем или иным образом увеличивают); выполняется отображение полученных коэффициентов к исходной шкале и обратное вейвлет-преобразование. Помимо рассмотренных выше аддитивных алгоритмов существуют нелинейные алгоритмы на основе квантования. Квантование – процесс сопоставления бесконечного множества значений с некоторым конечным множеством чисел. Различают скалярное и векторное квантование, однако принцип квантования и в том, и в другом случае одинаковый: точка или вектор отображаются в ближайшие кодовые точку или вектор соответственно. Основная идея методов на основе квантования заключается в следующем: внедряемое сообщение m определенным образом складывается с исходным изображением x , в результате чего получается заполненный контейнер s ( x, m) . Перейдя на другой уровень абстракции, этот контейнер можно рассматривать как набор функций от x , проиндексированный по m, т.е. как sm ( x) . Указанные функции должны обладать следующими свойствами: каждая функция должна быть близка, неотличима от x; точки одной функции должны находиться на достаточном расстоянии от точек другой функции – это необходимо для робастного детектирования внедренной информации. Тогда в качестве упомянутых функций может выступать семейство квантователей. Число возможных сообщений m определяет необходимое число квантователей, индекс m определяет используемый квантователь. В настоящее время все стегоалгоритмы, использующие в своей работе базовые принципы, описанные выше, подразделяются на закрытые, которые используются крупными корпорациями в их программных продуктах, а также силовыми структурами различных государств, и открытые, находящиеся в свободном доступе. Анализ открытых программ, используемых ими алгоритмов и создаваемых ими изображений представляется заслуживающим внимания, так как позволяет понять, могут ли использоваться для реальных практических задач уже имеющиеся открытые наработки. Mandelsteg генерирует в качестве контейнера изображение множества Мандельброта (фрактал). Изображение сохраняется в формате BMP, а поскольку его внутреннее строение известно, «подвох» легко заметить – под цветовую палитру отведено 256 цветов, но генерируется она по шаблону и содержит всего 128 цветов, по две записи на каждый цвет. Hide&Seek создает изображения с цветовой палитрой, содержащей цвета, у которых каждый байт в схеме RGB кратен 4; при этом «шаг» между «соседними» цветами тоже равен 4. Hide4PGP использует для сокрытия данных широко распространенный LSB-метод (занимает 1 младший бит в 8-битных изображениях и 4 младших бита в 24-битном). Все файлы имеют одинаковую длину заголовка – 54 и 1078 байт для 24битных и 8-битных изображений соответственно, поэтому абсолютно точно известно, где «начинаются» данные. S-tools располагает цвета в палитре группами по 8 по убыванию яркости, причем в каждой группе все цвета практически одинаковые (различаются на 1 бит). Методы стегоанализа цифровых изображений Jpeg-Jsteg использует метод, аналогичный дискретному косинуспреобразованию. Информация «прячется» в коэффициэнтах этого преобразования, а не в специальным образом сгенерированной палитре, поэтому данная программа выгодно отличается на фоне других. Исходя из приведенных наблюдений, можно сделать вывод: большинство программ, находящихся в свободном доступе, создают контейнеры на основе определенных шаблонов, обнаружение которых легко алгоритмизируется и может производиться в автоматическом режиме без участия человека. Практически в каждом случае (среди рассмотренных программ лишь Jpeg-Jsteg является исключением) используются те или иные «махинации» с палитрой цветов, что достаточно легко обнаружить. Использование подавляющего большинства таких программ в реальных задачах представляется нецелесообразным, поэтому перспективной задачей является разработка и реализация новых открытых стегоалгоритмов. Кроме того, в век стремительно развивающихся информационных технологий все большее развитие приобретают всевозможные информационные системы. Главным компонентом любой информационной системы является база данных (БД). База данных позволяет удобно организовывать и упорядочивать хранение любых объектов. Поэтому совершенно нелишним будет рассмотреть особенности работы с наборами изображений, хранящимися в БД и содержащими в себе скрытые данные. Основными способами хранения мультимедиа-контента (в частности, цифровых изображений) в базе данных являются следующие [3]: хранение ссылок на файлы в файловой системе или сети Интернет; хранение с помощью закодированных длинных текстовых строк (в символьных полях или полях-массивах); хранение с использованием больших бинарных объектов (Binary Large Object, BLOB). Очевидно, что при хранении в базе данных лишь ссылок на файлы работа с изображениями будет вестись обычным образом, поскольку не будут задействоваться специальные механизмы конкретной СУБД для обработки изображений. Однако большой недостаток такого подхода заключается в том, что он не позволяет обеспечить ссылочную целостность базы данных, так как изображения и база данных в общем случае физически никак не связаны. В этом случае могут свободно применяться любые стеганографические методы, так как изображение никак не связано с базой данных, но само использование базы данных в этом случае представляется излишним. По сути дела база данных в этом случае будет лишь мешающей «прослойкой», а не полезным средством организации хранения и доступа к данным. При использовании закодированных текстовых строк база данных хранит изображения в виде длинной строки, каждый элемент которой представляет собой, например, очередной байт исходного файла. Такую строку можно хранить в текстовом поле или поле-массиве (array). В спецификациях конкретной СУБД указан максимальный размер таких полей, и, если размер изображения больше, чем размер поля, то такое изображение можно «разрезать» и хранить в нескольких записях. Подобный подход имеет свои достоинства и недостатки. Достоинства состоят в следующем: все современные СУБД позволяют хранить наборы байт в текстовых полях и почти все – в полях-массивах; клиент или сама СУБД может обрабатывать считываемый файл в реальном времени практически любыми алгоритмами (кроме тех, которые имеют большую вычислительную сложность) незаметно для пользователя; хранение изображения в описываемом виде неочевидно, то есть полезные данные на первый взгляд предстают лишь бессмысленным набором байт; подобная организация хранения изображений наиболее удобна при отсутствии в СУБД механизмов работы с BLOB или при невозможности использовать эти механизмы. Среди недостатков можно отметить следующие: считывание изображения из базы данных для анализа затруднено – в общем случае неизвестен порядок сортировки (если изображение большое и хранится в нескольких строках), а также начальные и конечные записи; априори неизвестен тип изображений в базе данных – в общем случае требуется полное считывание изображения для определения его типа. В связи с вышесказанным можно заключить, что подобный подход хранения изображений является выгодным с точки зрения устойчивости к чтению скрываемой информации, так как для по- Методы стегоанализа цифровых изображений лучения скрытой информации необходимо не только выявить ее из изображения, но и сначала получить само изображение из базы данных, алгоритм хранения которого может оказать весьма нетривиальным. Таким образом, при хранении изображений в закодированных текстовых строках анализ содержимого базы данных на наличие «закладок» затруднен. При использовании механизма больших бинарных объектов база данных хранит изображения в специальных полях типа BLOB. В BLOB-поле в общем случае может храниться любой объект, и использование этого механизма позволяет избавиться от первого недостатка закодированных текстовых строк, так как всё изображение хранится строго в одном определенном месте. В этом случае могут свободно применяться любые стеганографические методы (как и в случае хранения ссылок на файлы), так как изображение хотя и связано с базой данных, но операции чтения-записи возвращают обычное изображение, а не набор байт. Суммируя вышеизложенное, можно сделать вывод, что из трех подходов к хранению изображений в базах данных наибольший интерес представляет исследование методов хранения с использованием закодированных текстовых строк, так как в этом случае приемы стегоанализа базы данных отличаются от стандартных алгоритмов при использовании ссылок на файлы и механизма BLOB. Следует отметить, что в силу описанных недостатков при использовании закодированных текстовых строк, стегоанализ такой базы данных должен производиться с применением статистических методов. По утверждению [4], «информация и средства телекоммуникации стали сегодня факторами, определяющими способность обеспечить стратегическую стабильность и развитие общества и государства в целом». Залогом этой стабильности является защищенность информации, ее целостность и доступность. При этом наиболее значимая (и, соответственно, требующая защиты) информация сосредоточена во всевозможных базах данных. Исходя из вышесказанного, можно заключить, что исследование методов стегоанализа для поиска «закладок» в содержимом баз данных и применение этих методов на практике позволит повысить защищенность информации. СПИСОК ЛИТЕРАТУРЫ 1. Грибунин В.Г. Цифровая стеганография / В.Г. Грибунин, И.Н. Оков, И.В. Туринцев. М.: СОЛОН-Пресс, 2002. 2. Прудников А.М. // Научная сессия МИФИ-2008. XI конференция «Молодежь и наука». Тезисы докладов. В 2-х частях. Ч. 1. М.: МИФИ, 2008. С. 72. 3. Стоунз Р. PostgreSQL: Основы / Р. Стоунз, Н. Мэтью: пер. с англ. СПб: Символ-Плюс, 2002. 4. Ковалевский С.С. // Научная сессия МИФИ-2008. Сборник научных трудов. М.: МИФИ, Т.13: Автоматизированные системы обработки информации и управления. Электронные измерительные системы. 2007. С. 13.