Перейти к содержанию

Встраивание информации (watermarking) в черно-белое изображение

Задание 1

Задача – встроить в изображение информацию (бит 0/1) так, чтобы (1) это было (почти) незаметно, (2) при получении изображения можно было узнать, что зашифровано, (3) учесть, что при передаче изображение могло быть испорчено.

Баллы

2 курс – 50 баллов, если разобраться с сингулярным разложением, 1 курс, 2 семестр (в 1 семестре тема не предлагается) – 50 баллов.

Подготовка

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

Изображение рассматривается в виде матрицы, в которой значения соответствуют оттенку серого (шкала от 0 до 255). «Испортить изображение» означает добавить к нему случайный шум. В программе для этого можно использовать датчик случайных чисел, равномерно распределенных на отрезке от 0 до 1 (или нормальное распределение с нулевым средним и заданной дисперсией). Метод шифрования бита и метод угадывания бита должен работать для разных изображений, т.е. он не должен быть специфичным для конкретного изображения. Конечно, сам метод известен при угадывании и метод угадывания зависит от метода встраивания. Сам бит - это не конкретный бит, а просто информация из двух значений, нужно понять, какое значение было зашифровано.

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

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

Информация

Сингулярное разложение матриц - http://www.gistatgroup.com/gus/ssa_an.pdf, приложение A.

Изображения можно взять, например, отсюда http://decsai.ugr.es/cvg/CG/base.htm (но можно и что-то другое)

Руководитель

Нина Эдуардовна Голяндина