Визуальная криптография - lanit-tercom-school/grouplock GitHub Wiki

Идея:спрятать исходное bmp-изображение в контейнеры по цветам (RGB) – еще три изображения.

Описание метода: Секретное изображение разбивается на три цветовых примитива (оттенки красного, зеленого и синего), а затем каждый примитив записывает в младшие биты одного из изображений-контейнеров. Таким образом после зашифровки каждый контейнер будет содержать в себе одну цветовую составляющую секретного изображения.

Зашифровка изображения: Чтобы определить, в какое из изображений прятать R-составляющую, в какое — G, а в какое — B, перед запуском алгоритма определяется количественное значение каждого из трех оттенков в каждом изображении-контейнере. Далее контейнеры выбираются таким образом, чтобы разница в цветах контейнера и цветового примитива секретного изображения была минимальна. Далее из каждого цветового примитива берется два старших бита и записывается в младшие биты соответствующего цвета у соответствующего контейнера. Два младших бита в двух оставшихся цветах обнуляются. Операция повторяется для каждого пикселя.

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

Проблема: искажение цветов и качества секретного изображения (например, было 24-битное, а стало 6 битое).

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

Литература:

http://habrahabr.ru/post/121878/

http://habrahabr.ru/post/115673/