Введение
Сегодня изображениям отведено существенное место в информационном обмене. В связи с наличием необходимости защищать авторские права таких файлов и других информационных данных, связанных с мультимедиа, были созданы цифровые водяные знаки (watermarks). Цифровые водяные знаки обязаны удовлетворять следующему набору требований:
- Требование незаметности для пользователей.
- Требование индивидуальности алгоритма нанесения.
- Наличие возможности для автора обнаруживать несанкционированное применение файла.
- Обеспечение невозможности удаления неуполномоченными лицами.
- Наличие устойчивости к изменениям носителей-контейнеров (к изменениям их форматов и размера, к реализации масштабирования, сжатия, поворота, фильтрования, добавлению специальных эффектов, осуществлению монтажа, а также выполнению других аналоговых и цифровых преобразований).
Поиск алгоритма, способного создать цифровой водяной знак, который в наибольшей степени отвечает всем необходимым критериям, считается первоочередной задачей специалистов, для того чтобы защитить авторские права в интернете.
Разработка программной системы встраивания цифрового водяного знака в цифровое изображение
На рисунке ниже изображен алгоритм введения цифрового водяного знака в файл с цифровым изображением.
Рисунок 1. Алгоритм введения цифрового водяного знака в файл с цифровым изображением. Автор24 — интернет-биржа студенческих работ
Изображение, в которое необходимо встроить цифровой водяной знак, обозначим как I, с размером MxN. Изображение должно удовлетворять следующим условиям:
I = {I(m, n) │0 ≤ m ≤ M – 1 0 ≤ n ≤ N – 1} (1)
Где:
- I(m, n) является пикселями изображения;
- m является положением пикселя по горизонтали;
- n является положением пикселя по вертикали;
- M и N являются шириной и высотой изображения в пикселях, соответственно.
В качестве цифрового водяного знака можно взять изображение, c размерами KxL:
W = {W(k, i) │0 ≤ k ≤ K – 1 0 ≤ i ≤ L – 1} (2)
Где:
- W(k, i) является пикселями изображения;
- k является положением пикселя по горизонтали;
- i является положением пикселя по вертикали;
- K и L являются, соответственно, шириной и высотой водяного знака в пикселях.
Параметры, которые следует определить, для того чтобы внедрить водяной знак:
- b является интенсивностью пикселя водяного знака,
- α является константой, которая определяет степень (силу) встраивания водяного знака.
Далее необходимо разбить изображение на блоки, число которых должно равняться числу пикселей водяного знака. При реализации разбиения изображения должно получиться KL блоков с размерами:
U = M/K,
V = N/ L.
Необходимо установить взаимно-однозначное соответствие среди пикселей водяного знака и полученными блоками при помощи ключа. Будем рассматривать вариант, когда K = L = 1, то есть, изображение имеет в своем составе один блок, а водяной знак сформирован из одного пикселя, имеющего интенсивность b11.
Предположим что M, N > 1, тогда образуется некоторая избыточная возможность поместить водяной знак в пиксели изображения, и при оптимальном выборе оператора встраивания появляется возможность повышения устойчивости всей процедуры защиты информации в целом. Можно использовать оператор встраивания, который основан на следующей формуле:
Iw(m,n) = (1-б) * I(m,n) + бb11 (3)
Где;
- Iw(m,n) является маркированным изображением;
- b11 является интенсивностью пикселя водяного знака;
- I(m,n) является исходным изображением;
- α > 0 является константой, которая определяет степень (силу) встраивания водяного знака.
В случае отсутствия случайных атак, степень (среднеквадратического) искажения изображения, которая является следствием встраивания водяного знака, может быть определена по следующей формуле:
Рисунок 2. (4)
Рисунок 3. (5)
Где:
- MSE2 является степенью искажения изображения;
- α > 0 является константой, которая определяет степень (силу) встраивания водяного знака;
- K и L являются шириной и высотой водяного знака в пикселях соответственно;
- M и N являются шириной и высотой изображения в пикселях соответственно;
- µ является средней интенсивностью пикселей изображения;
- b является интенсивностью пикселей водяного знака, показывающей степень искажений, которые вносит сама процедура встраивания водяного знака.
Выражение (4) может позволить еще до начала встраивания водяного знака выяснить степень ожидаемых искажений и осуществлять ее контроль за счет правильного выбора параметра б.
Далее рассмотрим алгоритм извлечения цифрового водяного знака из изображения. Следует при помощи ключа, определить взаимно однозначное соответствие среди байтов водяного знака и блоками изображения. Выполним разбиение изображения на блоки. Процесс извлечения цифрового водяного знака из блока, в случае отсутствия каких-нибудь атак, может быть выполнен по следующей формуле:
Рисунок 4. (6)
Здесь:
Рисунок 5. (7)
- b11 является интенсивностью пикселя водяного знака;
- µ является средней интенсивностью пикселей изображения;
- α > 0 является константой, которая определяет степень (силу) встраивания водяного знака;
- K и L являются шириной и высотой водяного знака в пикселях соответственно;
- M и N являются шириной и высотой изображения в пикселях соответственно.
Задача, связанная с извлечением цифрового водяного знака должна сводиться к оценке параметра b11 по следующей выборке:
Iw(m,n) = (1-б) * I(m,n) + бb11.
Далее можно восстановить водяной знак и восстановить исходное изображение.
Рассмотрим алгоритм извлечения водяного знака из изображения, которое было подвержено атаке. Аддитивная модель изменения значений пикселей под воздействием атаки определяется следующим выражением:
Iw,x = Iw + X (8)
Можно предположить, что значения x(m,n) случайной величины X могут накладываться на пиксели независимо и при одинаковой функции распределения. В таком случае:
Рисунок 6. (9)
и проблема извлечения цифрового водяного знака может быть сведена к оценке параметра b11 по выборке aw,x(m,n), m = 0,1,...,M-1; n = 0,1,...,N -1.