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

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 30.08.2021
Размер файла 885,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

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

Бахрушина Г.И. - канд. физ.-мат. наук, доц., доц. кафедры «Программное обеспечение вычислительной техники и автоматизированных систем»,

Жукова Т.В. - старший преподаватель кафедры «Программное обеспечение вычислительной техники и автоматизированных систем»

Лисицкий Г.Е.

В статье рассматривается модифицированный обратимый высокообъемный алгоритм сокрытия данных в зашифрованных изображениях, разработанный на основе алгоритма французских исследователей Pauline Puteaux и William Puech. В рассматриваемом алгоритме предполагается внедрение бита секретного сообщения их подстановкой в наиболее значимые биты пикселей изображения. Предсказание утерянного бита при восстановлении изображения после извлечения секретной информации происходит с учетом локальной корреляции пикселей. В предложенном алгоритме определяется порядок сканирования, обеспечивающий наименьшее количество ошибок предсказания. Наиболее значимый бит каждого байта полученной зашифрованной последовательности изображения заменяется одним битом секретного сообщения до тех пор, пока сообщение полностью не будет встроено. Извлечение встроенного сообщения из зашифрованного изображения происходит с помощью ключа шифрования сообщения, восстановление изображения происходит с помощью ключа шифрования изображения. Программная реализация алгоритма выполнена на языке программирования C#. Приводятся результаты работы программы.

Ключевые слова: цифровое изображение, полутоновое изображение, цифровой водяной знак, цифровое маркирование изображения, наиболее значимый бит (MSB), предиктор, обратимый алгоритм, пиковое отношение сигнала к шуму (PSNR).

Abstract

Title: Reversible High-Capacity Algorithm of Data Hiding in Encrypted Images and Its Program Realization

Authors' affiliation:

Bakhrushina G. I. - Pacific National University, Khabarovsk, Russian Federation Zhukova T. V. - Pacific National University, Khabarovsk, Russian Federation Lisitsky G. E. - Pacific National University, Khabarovsk, Russian Federation.

In the article the authors discuss a modified reversible high-volume algorithm for hiding data in encrypted images, developed on the basis of an algorithm by French researchers Pauline Puteaux and William Puech. In the considered algorithm, it is assumed that the bit of the secret message is inserted by their substitution into the most significant bits of the image pixels. The prediction of the lost bit when restoring the image after extracting the secret information takes into account the local correlation of pixels. The proposed algorithm determines the scan order that provides the smallest number of prediction errors. The most significant bit of each byte of the received encrypted image sequence is replaced with one bit of the secret message until the message is fully embedded. Extraction of the embedded message from the encrypted image is performed using the message encryption key, the image is restored using the image encryption key. The software implementation of the algorithm is made in the C# programming language. The results of the program are presented.

Keywords: digital image, greyscale image, digital watermark, digital image watermarking, most significant bit (MSB), predictor, reversible algorithm, peak signal to noise ratio (PSNR).

Введение

Мультимедийное пространство в современном мире представлено преимущественно цифровыми форматами. Распространение информации в интернете приводит к образованию важной проблемы - нарушению авторского права, которое становится неконтролируемым процессом. Защиту цифровых данных, а также проверку их на подлинность обеспечивают разработки в области криптографии и цифровой стеганографии. Криптография обеспечивает секретность файлов путём шифрования. Использование методов цифровой стеганографии позволяет скрывать сам факт существования скрытой информации в файле. Можно выделить несколько причин популярности исследований в области стеганографии в настоящее время: ограничение на использование криптосредств в ряде стран мира и появление проблемы защиты прав собственности на информацию, которая представлена в цифровом виде. Эти причины вызывают многочисленные исследования в области цифровых водяных знаков. Цифровой водяной знак (ЦВЗ) - специальная метка, скрытно внедряемая в изображение или другой сигнал, с целью контроля его использования [1].

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

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

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

В данной статье рассматривается один обратимый алгоритм сокрытия большого объема данных в зашифрованных изображениях. Данный алгоритм относится к пространственным методам внедрения данных. За основу разрабатываемого алгоритма был взят метод, предложенный в 2017 году французскими исследователями Pauline Puteaux и William Puech [2] и детализированный в 2018 году этими же авторами [3].

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

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

Реализуемый алгоритм включает в себя пять основных этапов:

- определение оптимального порядка сканирования с наименьшим количеством ошибок предсказания и корректировка исходного изображения для избавления от всех ошибок предсказания с выбранным порядком сканирования;

- шифрование исправленного изображения и встраиваемого сообщения;

- встраивание зашифрованного сообщения в зашифрованное изображение;

- извлечение встроенного сообщения и его дешифрование;

- дешифрование и восстановление исходного изображения.

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

1.1 Определение оптимального порядка сканирования и корректировка исходного изображения

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

Для определения ошибки предсказания пиксель необходимо проанализировать. Пусть p(i,j) - байт пикселя изображения в /-ой строке и j-ом столбце.

Рассмотрим для каждого p(i,j) значение с обратным старшим битом inv(i,j), определяемое по формуле:

где - знак операции сложения по модулю два (операции исключающего ИЛИ, XOR).

Пусть nx(i,j) - сосед пикселя по строке, а ny(i,j) - сосед пикселя по столбцу. Соседние пиксели определяются в зависимости от выбранного порядка сканирования.

- Для nx(i,j):

1) слева направо: nx(i,j) = p(i,j -- 1);

2) справа налево: nx(i,j) = p(i,j + 1).

- Для ny(i,j):

1) сверху вниз: ny(i,j) = p(i -- 1,j);

2) снизу вверх: ny(i, j) = p(i + 1, j).

При выборе порядка сканирования строится соответствующая пара (nx(i,j),ny(i,j)).

Заметим, что если строка или столбец являются первыми в порядке сканирования, то соседние пиксели выбрать невозможно, так как их нет. В таком случае в качестве значения соседа можно брать среднее значение байта 127 ([255 / 2J = 127).

Рассчитаем значение pred(i,j), которое служит предиктором (предсказателем) на шаге восстановления:

Рассчитаем абсолютную разницу между pred(i,j) и p(i,j) и между pred(i,j) и inv(i,j). Обозначим их через А и Ainv соответственно:

Сравним значения А и Ainv. Если А < Ainv, ошибка предсказания отсутствует, поскольку исходное значение p(i,j) ближе к его предиктору, чем значение с обратным старшим битом. В противном случае в этом пикселе возникает ошибка предсказания.

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

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

Модификация осуществляется так, чтобы выполнялось неравенство:
\pred(i,j) -p(i,j)\ < 64.

Другими словами, значение пикселя p(i,j) сравнивается со 128. Если это значение меньше 128, то p(i,j) заменяется на разность pred(i,j) -- 63, иначе - на сумму pred(i,j) + 63.

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

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

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

Данный этап отсутствует в работе французских исследователей, которые рассматривают только одно направление сканирования - слева направо и сверху вниз.

1.2 Шифрование исправленного изображения и встраиваемого сообщения

В работах [2, 3] для шифрования использовался линейный хаотический генератор (Piecewise Linear Chaotic Map). В реализованном алгоритме для шифрования исходного изображения I и встраиваемого сообщения М использовался генератор псевдослучайной последовательности байтов.

Пусть b[i] - байт пикселя изображения или байт сообщения, а b'[i] - зашифрованный байт, і - порядковый номер байта. Зашифрованные байты b'[i] могут быть вычислены по формуле:

где S[t] - байт полученной псевдослучайной последовательности.

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

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

1.3 Встраивание зашифрованного сообщения в зашифрованное изображение

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

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

b'Ai] = b'I[i] & 0111 11112 b',[і] = b',[і] | (b'M[i] & 1000 00002),

где b[ - массив байтов зашифрованного изображения, а b'м - массив байтов зашифрованного сообщения, & и | - операции поразрядного умножения и сложения соответственно. После встраивания сообщения необходимо сохранить информацию о его объеме L, чтобы знать, сколько нужно прочитать байт для его восстановления.

Максимально возможный объем bтах встраиваемого сообщения М определяется по формуле:

где h - высота изображения, а w - ширина изображения.

1.4 Извлечение встроенного сообщения и его дешифрование

Чтобы извлечь сообщение из зашифрованного изображения, необходимо знать ключ шифрования сообщения Км и объем встроенного сообщения L.

Сначала нужно извлечь старшие биты из зашифрованной последовательности байтов b'; и собрать из них байты зашифрованного сообщения b'м объема L.

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

где - байт извлеченного расшифрованного сообщения, а S[i] - случайная последовательность, сгенерированная на основе ключа шифрования Км.

1.5 Дешифрование и восстановление изображения

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

где - байт расшифрованного изображения, а S[i] - случайная последовательность, сгенерированная на основе ключа шифрования изображения Kj.

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

Для этого необходимо пройти по всем пикселям изображения по выбранному ранее оптимальному направлению Dopt.

Точно так же, как и на этапе определения ошибок, нужно рассчитать значение ) по аналогии с формулой (1):

После этого рассматривается значение пикселя p(i,j) с MSB = 0 и с MSB = 1 и вычисляется абсолютная разность между каждым из этих двух значений и Обозначим эти разности как Д0 и А1:

Искомое значение пикселя получается как наименьшее значение между . Полученное значение записывается в байт пикселя.

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

2. Программная реализация

Программа, реализующая алгоритм, была разработана на языке C# в среде программирования Microsoft Visual Studio. Сторонние библиотеки не использовались. бит пиксель зашифрованный

На рис. 1 представлено окно с результатами работы программы.

Рис. 1. Форма, выводящая результаты работы программы

Программа предназначена для работы с одноканальными и трехканальными изображениями.

Рис. 2. Форма просмотра изображений: карта ошибок

Рис. 3. Форма просмотра изображений: восстановленное изображение

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

Заключение

Цель работы, сформулированная во введении, была достигнута.

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

Алгоритм реализован в среде разработки Visual Studio 2019 на языке программирования C#.

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

При исследовании качества внедрения и извлечения было проанализировано 10000 изображений [4] из коллекции BOWS-2 (Break Our Watermarking System). Выбор направления позволил минимизировать модификацию изображения, что способствовало повышению качества восстановленных изображений, а среднее значение PSNR (peak signal-to-noise ratio, пиковое отношение сигнала к шуму) равное 58,66 дБ подтвердило это. При исследовании алгоритма на устойчивость к атакам была выбрана атака шум «Соль и Перец» и некоторые геометрические атаки. Было установлено, что алгоритм является достаточно устойчивым к атаке шум «Соль и Перец» с процентом зашумления до 0.1%, в слабой степени устойчив к геометрической атаке «усечение» и неустойчив к другим геометрическим атакам.

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

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

Библиографические ссылки

1. Грибунин В. Г., Оков И. Н., Туринцев И. В. Цифровая стеганография. М.: Солон-Пресс, 2009. 265 с.

2. Pauline Puteaux, William Puech. High-Capacity Reversible Data Hiding in Encrypted Images High-Capacity Reversible Data Hiding in Encrypted Images using MSB Prediction // Electronic Imaging, Media Watermarking, Security, and Forensics. 2017. P. 10-15. doi: 10.2352/ISSN.2470-1173.2017.7.MWSF-319

3. Pauline Puteaux, William Puech. An Efficient MSB Prediction-Based Method for High-Capacity Reversible Data Hiding in Encrypted Images // IEEE Transactions on Information Forensics and Security. 2018. Vol. 13(7). P 1670-1681. doi: 10.1109/TIFS.2018.2799381

4. BOWS-2. URL: http://bows2.ec-lille.fr (дата обращения: 4.12.2020).

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.