Алгоритм цифровой стеганографии с шифрованием данных

ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

УДК 004.056

Т. Г. Ажбаев, И. М. Ажмухамедов Астраханский государственный технический университет

АЛГОРИТМ ЦИФРОВОЙ СТЕГАНОГРАФИИ С ШИФРОВАНИЕМ ДАННЫХ

Введение

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

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

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

Кроме того, разработанный на его основе программный продукт, получивший название Easystego и поддерживающий в качестве контейнеров файлы графических форматов bmp, jpg , png, tiff, позволяет пользователю производить дополнительное шифрование информации.

Описание алгоритма

Встраивание данных в пространственной области. Алгоритм оперирует 24-битовыми несжатыми образами с RGB-кодировкой. Встраивание выполняется в канал синего цвета, т. к. к синему цвету система человеческого зрения наименее чувствительна. Порог чувствительности глаза к изменению освещенности при ее средних значениях составляет А/ = 0,01-0,03/, или 1-3 %, где яркость /(p)= 0,299r(p)+ 0,587g(p)+ 0,114b(p); p = (x,y) - псевдослучайная позиция, в которой выполняется вложение. Вследствие этого максимальное отклонение синей цветовой составляющей при условии неизменности двух других цветов - 9-26 %.

Пусть сообщение S представляет собой последовательность бит длиной N, количество пикселов в области преобразования равно M. Пикселы, в которых выполняется встраивание, равномерно распределяются по всему изображению псевдослучайным образом на основании ключа. Исходное изображение или его часть, ограниченная областью преобразования, разбивается на два типа блоков длиной r1 и r2, причем r1 = r2 + 1. Количество блоков длиной r1 и r2 равно n1 и п2 соответственно. При условии, что n1 + n2 = N и r1n1 + r2n2 = M, значения r1, r2, n1, n2 вычисляются по следующим формулам:

r2 = M / N,

n2 =(r 2 + l)N - M,

ri = r +1,

n1 = N - n2,

где / - операция целочисленного деления.

Например, если область преобразования содержит М = 64 пиксела и длина сообщения N = 24 бита, в результате разбиения получится 8 блоков длиной 2 и 16 блоков длиной 3.

Блоки чередуются псевдослучайным образом на основании ключа. Таким образом, каждому биту сообщения соответствует свой блок, в котором в соответствии с ключом выбирается пиксел, подвергающийся изменению.

Рассмотрим процедуру формирования ключевой последовательности. Пароль, введенный пользователем, с помощью алгоритма хеширования МБ5 преобразуется в 16-байтовое слово. С помощью циклической перестановки символов пароля формируются еще 3 таких слова. В результате получается массив 128 х 4 бита, столбцы которого представляют собой псевдослучайную последовательность чисел длиной 128. Получая остаток от деления этих чисел на длину блока, имеем псевдослучайную позицию изменения пиксела внутри этого блока.

Цветовая компонента каждого пиксела описывается одним байтом. Изменение происходит по маске (11100011), т. е. модификации подлежат 4, 5 или 6 биты. Отклонение интенсивности цвета в данном случае не превышает 6,3 %, а общее изменение яркости пиксела не превышает 1 %. С другой стороны, такая модификация устойчива против низкочастотной фильтрации изображения, поскольку выходит за рамки шума, возникающего в последних битах цветовой компоненты.

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

Модификация одного из трех бит уменьшает объем изменяемых бит в каждом битовом срезе до 1/6, а уменьшение объема скрываемого сообщения с равномерным распределением пикселов хотя бы до 1/3 объема изображения уменьшает объем изменяемых бит в каждом битовом срезе до 1/18. Поэтому применение статистических методов стегоанализа, в частности по критерию %-квадрат чрезвычайно затруднено, т. к. алгоритм почти не изменяет статистику первоначального изображения.

Рассмотрим передачу одного бита секретной информации. В соответствии с ключом в блоке пикселов выбирается номер пиксела, в который выполняется встраивание. Номер бита определяется на основании значений других пикселов этого же блока, чтобы не прерывать цепочки повторяющихся битов исходного изображения. Например, если все четвертые биты из данного блока равны 0 или 1, то алгоритм оставляет четвертый бит этого пиксела без изменений и переходит к рассмотрению всех пятых битов данного блока и т. д. Если все четвертые, пятые и шестые биты всех пикселов из данного блока равны 0 или 1, предпочтение отдается четвертому для большей помехоустойчивости вложения. После нахождения номера бита, подлежащего модификации, происходит его замена на секретный бит.

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

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

Для обеспечения большей помехоустойчивости объем сообщения в битах должен составлять 15-30 % от общего количества пикселов изображения-контейнера. При 100 %-м заполнении контейнера статистические свойства заполненного контейнера будут отличаться от реальных изображений, и злоумышленнику будет легче обнаружить факт присутствия скрытого сообщения в изображении.

Встраивание данных в области преобразования. Алгоритм использует особенности JPEG-сжатия. В соответствии со стандартом JPEG изображение разбивается первоначально на блоки 8 х 8 элементов, к каждому из которых применяется дискретное косинусное преобразование (ДКП). Назначением ДКП является осуществление перераспределения энергии: значимые коэффициенты группируются в левом верхнем углу квадрата спектральных коэффициентов, т. к. соседние пикселы изображения коррелированы. Далее следует равномерное табличное квантование коэффициентов, кодирование длин серий и кодирование Хаффмана. Встраивание 1 бита секретной информации осуществляется в блок 8 х 8 пикселов, но для встраивания используются не все блоки, а лишь пригодные для этого.

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

Встраивание бита цифрового водяного знака (ЦВЗ) осуществляется следующим образом. Псевдослучайно выбираются три коэффициента ДКП блока. Если нужно вложить 1, коэффициенты изменяются так (если требуется), чтобы третий коэффициент стал меньше каждого из первых двух; если нужно встроить 0, он делается больше других. В том случае, если такая модификация приведет к слишком большой деградации изображения, коэффициенты не изменяют и этот блок просто не используется.

Изменение трех коэффициентов вместо двух и отказ от изменений в случае неприемлемых искажений уменьшают погрешности, вносимые ЦВЗ. Декодер всегда сможет определить блоки, в которые ЦВЗ не встроен, повторив анализ, выполненный в кодере.

Общие сведения о работе программы

На основе изложенного алгоритма разработан программный продукт, получивший название Easystego.

Программа функционирует в средах ОС семейства Windows.

Для разработки программного обеспечения использовался пакет Microsoft Visual Studio.net.

Оценка стойкости разработанного алгоритма

В реальных условиях наиболее типичным видом атаки нарушителя является атака только со стего, т. к. истинный контейнер ему обычно неизвестен. В этих условиях обнаружение скрытого сообщения возможно на основе выявления нарушений зависимостей, присущих естественным контейнерам [1-4].

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

Визуальная атака на стегосистему

Рассмотрим принцип построения визуальной атаки, позволяющей выявить факт наличия скрываемого сообщения, вложенного в изображение-контейнер [4]. Пусть стегосистема построена таким образом, что наименьшие значащие биты (НЗБ) элементов изображения заменены на биты скрываемого сообщения.

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

Однако на самом деле это не так. Младшие биты не являются чисто случайными. Между младшими битами соседних элементов естественных контейнеров имеются существенные корреляционные связи. Выявлены также зависимости между НЗБ и остальными битами элементов естественных контейнеров.

Различие между контейнером и стего визуально не проявляется. Но если изображение сформировать только из НЗБ пикселов стего, то можно легко увидеть следы вложения. При этом часть изображения, куда внедрено сообщение, представляет собой случайный сигнал.

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

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

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

Программный продукт Easystego осуществляет равномерное распределение внедряемого сообщения по всему контейнеру. Битовые срезы 4, 5 и 6 бит с заполнением контейнера 25, 50 и 75 % показали, что при заполнении контейнера менее 50 % в битовых срезах заполненного контейнера не обнаруживается сильного отклонения от исходного изображения.

Статистические атаки на стегосистему

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

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

Исследуем закономерности в вероятностях появления значений яркостной компоненты в естественных контейнерах и стего, сформированных программой Steganos. При замене младшего бита цветовой компоненты очередного пиксела контейнера на очередной бит предварительно зашифрованного или сжатого сообщения, номер цвета пиксела стего или равен номеру цвета пиксела контейнера, или изменяется на единицу. В [2] для поиска следов вложения предложен метод анализа закономерностей в вероятностях появления значений яркости пикселов. Во всех фотореалистичных изображениях некоторые значения яркости повторяются намного чаще, чем соседние.

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

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

Степень различия между вероятностными распределениями элементов естественных контейнеров и полученных из них стего также может быть использована для оценки вероятности существования стегоканала. Данную вероятность удобно определить с использованием критерия согласия %-квадрат [5].

Зная общее число п появления всех элементов исследуемой последовательности, легко подсчитать ожидаемую вероятность появления этих элементов в стего по правилу р = nj / п.

Соответственно, для исследуемой последовательности вероятности равны: = п /п .

Величина х-квадрат для сравниваемого распределения исследуемой последовательности и ожидаемого распределения стего равна:

X2 = X {П-Пр£-,

¿=1 ПРг

где к - число элементов последовательности; п . - число совпадений рассматриваемого значения со значением элемента х.; V - число степеней свободы. Число степеней свободы равно числу к ми*

нус число независимых условий, наложенных на вероятности р. . Наложим одно условие вида

2=1

Вероятность р того, что два распределения одинаковы, определяется как

К

р =1 -1

I (п-2)/2е-г/2

2П/2 Г(у/2)'

где Г - гамма-функция Эйлера.

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

Рассмотрим использование критерия %-квадрат для отыскания следов стегоканала, образованного с использованием программы Steganos. Пусть в контейнерное изображение в НЗБ спектральных коэффициентов изображения, начиная с его верхнего края до его середины, последовательно внедрено 3 600 байт скрываемого сообщения. На рис. 1 показана вероятность встраивания скрываемой информации в зависимости от размера исследуемой последовательности. Начало графика получено при анализе первого фрагмента стего, составляющего одну сотую часть всего стего. Значение р составило 0,8826. Затем к анализируемому фрагменту была добавлена еще одна сотая часть стего и т. д. На втором шаге вероятность составила 0,9808 и далее при анализе стего не опускалась ниже 0,77. При переходе к анализу нижней части изображения, не содержащей скрываемой информации, величинар скачком уменьшилась до нуля.

100

80

60

40

20'

Вероятность

внедрения

'У \м

Размер

контейнера, %

10 20 30 40 50 60 70 80 90 100

Рис. 1. Вероятность встраивания по критерию х-квадрат при анализе Steganos

На рис. 2 представлены значения вероятности встраивания по критерию х-квадрат разработанного программного продукта с заполнением контейнера 50 %.

100'

80

60

40'

20'

Вероятность

внедрения

-М-

Размер ^^у^у^о^гейнера, %

0 20 30 40 50 60 70 80 90 100

Рис. 2. Вероятность встраивания по критерию х-квадрат при анализе Easystego

2

0

Таким образом, в разработанном программном продукте Easystego встраиваемое сообщение равномерно распределяется по всему контейнеру, поэтому не нарушает статистических свойств исходного изображения.

Выводы

Разработанный алгоритм:

— успешно противостоит визуальной атаке и статистическому стегоанализу;

— обладает однозначной функцией восстановления данных;

— устойчив к низкочастотной фильтрации благодаря тому, что биты сообщения встраиваются в канал синего цвета;

— устойчив к геометрической атаке типа «обрезание краев»;

— обладает возможностью встраивания данных в графические файлы, в том числе сжатые стандартом JPEG;

— обеспечивает достаточную вместимость (в несжатое изображение размерами 1280 х 1024 можно внедрить до 150 килобайт данных);

— реализованный на основе алгоритма программный продукт позволяет осуществлять дополнительное шифрование информации.

СПИСОК ЛИТЕРАТУРЫ

1. Оков И. Н. О требуемой пропускной способности каналов передачи аутентифицированных сообщений в безусловно стойких системах // Проблемы информационной безопасности. Компьютерные системы. - 2000. - № 3 (7). - С. 78-64.

2. Westfeld A., Pfitzmann A. Attacks on Steganographic Systems. Breaking the Steganographic Utilities EzStego, Jsteg, Steganos, and S-Tools - and Some Leassons Learned // Proceeding of the Workshop on Information Hiding, 1999.

3. Provos N. Defending Against on Statistical Steganalysis // Proceeding of the 10 USENIX Security Symposium. - 2001. - Р. 323-335.

4. Provos N., Honeyman С. Detecting Steganographic Content on the Internet // Proceeding of the 10 USENIX Security Symposium. - 2001. - Р. 323-335.

5. Вентцель Е. С., Овчаров Л. А. Теория вероятностей и ее инженерные приложения. - М.: Наука, 1998. - 480 с.

Статья поступила в редакцию 28.11.2007

THE ALGORITHM OF DIGITAL STEGANOS WITH DATA ENCODING

T. G. Azhbaev, I. M. Azhmukhamedov

The paper gives the description of robust steganos algorithm with an opportunity to encode introduced data. The estimation of stability of the algorithm has shown that it successfully resists to visual attack and statistical stegoanalyth, and possesses unequivocal function of data restoration, and it is steady against a low-frequency filtration and against geometrical attack of the type "trimming of edges", moreover it possesses an opportunity to embed data in graphic files, even files compressed by the standard JPEG, and it also provides sufficient capacity.

Besides, the software product realized on the basis of the algorithm allows to carry out additional encoding of the introduced information.