Стеганография изображения методом Patchwork.
Последнее изменение этой страницы: 12:41, 1 июня 2017.
![]() |
Авторство | |
Н. Грозмани | ||
Согласовано: 2011 |
Техническое задание
Назначение программы
Назначением данного программного продукта является внесение произвольных данных в контейнер изображения JPG таким образом, что без знаний методов внесения данных было невозможно получить сообщение из изображения.
Условия применения
Условия, необходимые для функционирования программы
Данный программный продукт функционирует на одном ПК с ОС семейства Windows. Система состоит из следующих компонентов:
- Модуль внесения данных в изображение
- Модуль получения данных из изображения
- Модуль внесения и получения данных реализованы в среде MathCAD 14.
Требования к техническим средствам
MathCAD 14, требует:
- Pentium-совместимый 32-битный (x86) или 64-битный (x86-64, EM64T) процессор - 400 МГц или выше; рекомендуется 700+ МГц.
- 256 МБ RAM; рекомендуется 512 MБ или более.
- 550 МБ дискового пространства (250 МБ для Mathcad, 100 МБ для системных компонентов, и 200 МБ для временных файлов во время установки).
Требования к программному обеспечению
Требуется установленный программный продукт MathCAD 14, а так же сопутствующее программное обеспечение:
- Windows XP Home или Professional, Windows XP Professional x64, или Windows Vista; рекомендуется Windows XP SP3, XP-x64 SP2, или Vista.
- Windows Installer 3.0 или старше.
- Microsoft .NET Framework® 3.5 или старше
- MSXML 4.0 SP2 Parser and SDK
- Microsoft Data Access Components (MDAC) 2.8 или старше
- Internet Explorer 5.0 или старше.
- Adobe Reader 5.0 или старше.
Описание задачи
Решаемые задачи
Сокрытие и извлечение информации в/из контейнера JPG – программа позволяет определить количество возможной скрытой информации в контейнере и позволяет подобрать оптимальное ее количество, а так же произвести ее извлечение из контейнера. Алгоритм ограничен тем, что для каждого бита шифруемой информации берется 10 тыс пар пикселов изображения.
Используемые решения
Последовательность для записи данных берется из файла, стего записывается методом Patchwork, на основе ключа, который формируется в зависимости от изображения и от выбора числа блоков, а так же псевдослучайных чисел, выбирающих пары точек.
Входные и выходные данные
Входные данные
На вход алгоритма подаются данные, не превышающие максимально допустимый размер сообщения, вычисляемый для каждого конкретного изображения.
Выходные данные
На выходе алгоритма кодирования получаем ключ шифрования и контейнер с зашифрованными данными. На выходе алгоритма декодирования мы получаем, с использованием ключа, зашифрованные данные.
Руководство пользователя
Введение
Область применения
Данная программа предназначена для осуществления скрытой передачи данных в контейнере JPG.
Краткое описание возможностей
Основными возможностями программы являются:
- Сокрытие информации в контейнере JPG
- Извлечение информации из контейнера JPG
Уровень подготовки пользователя
Для эксплуатации программы определена единственная роль Оператор. Оператор должен иметь опыт работы с ПК на базе ОС Windows и пакетом MathCAD 14. На достаточном уровне, для свободного осуществления базовых операций. В принципе для работы достаточно осуществить запуск пакета и выбрать контейнер, а так же данные для записи. Рекомендуемая численность для эксплуатации программы: оператор – 1 штатная единица.
Перечень эксплуатационной документации
Программа. «Руководство пользователя»
Назначение и условия применения
Виды деятельности, функции
Перечень автоматизированных функций:
- Создание файла с данными для записи
- Занесение данных в изображение
- Извлечение данных из изображения
Программные и аппаратные требования к системе
Pentium-совместимый 32-битный (x86) или 64-битный (x86-64, EM64T) процессор - 400 МГц или выше; рекомендуется 700+ МГц. RAM; рекомендуется 512 MБ или более.
550 МБ дискового пространства (250 МБ для Mathcad, 100 МБ для системных компонентов, и 200 МБ для временных файлов во время установки).
MathCAD 14
ОС Microsoft® Windows® XP/Vista/7 x32 или x64
Подготовка к работе
Состав дистрибутива
PATCHWORK_in.xmcd
PATCHWORK_out.xmcd
Запуск системы
Запустить ПО MathCAD 14 и открыть оба файла дистрибутива
Проверка работоспособности системы
Если программный продукт появились на экране и оба файла дистрибутива открылись в среде MathCAD 14, то программное обеспечение работоспособно.
Описание операций
Операция генерации входной бинарной последовательности
Условия выполнения операции
Операция выполняется корректно, если длина входного сообщения не превосходит параметр Max_N , где Max_N – параметр из файла дистрибутива PATCHWORK_in.xmcd
Подготовительные действия
Создание файла data_for_write.txt
Выбор будущего контейнера для стего
Основные действия
Запись данных в созданный файл
Заключительные действия
Сохранение файла в папке с программой PATCHWORK_in.xmcd
Ресурсы, расходуемые на операцию
10 Мб ОЗУ
Операция внесения данных в изображение
Условия выполнения операции
Операция выполняется корректно, если длина входного сообщения не превосходит параметр Max_N , где Max_N – параметр из файла дистрибутива PATCHWORK_in.xmcd
Подготовительные действия
Операция генерации входной бинарной последовательности
Создание изображение с именем Jellyfish.jpg в формате JPG
Открытие файла PATCHWORK_in.xmcd в MathCAD 14
Основные действия
Дождаться выполнения всех вычислений в файле PATCHWORK_in.xmcd ====Заключительные действия Запись контейнера со стего Jellyfish_res.jpg
Запись выработанного ключа в Key.txt
Ресурсы, расходуемые на операцию
100 Мб ОЗУ
Операция извлечения данных из изображения
Условия выполнения операции
Операция выполняется корректно, если изображение было закодировано методом Patchwork, алгоритмом в файле PATCHWORK_in.xmcd
Подготовительные действия
Открытие файла PATCHWORK_out.xmcd в MathCAD 14
Открытие в файле MathCAD-а контейнера со стего Jellyfish_res.jpg
Основные действия
Дождаться выполнения всех вычислений в файле PATCHWORK_out.xmcd
Заключительные действия
Запись извлеченных данных в файл data_after_stego.txt
Ресурсы, расходуемые на операцию
100 Мб ОЗУ
Аварийные ситуации
При сбое в работе программы, рекомендуется проверить соответствие возможного размера сообщения и реального размера сообщения, т.к. этот параметр сильно зависит от конкретного изображения.
Рекомендации по освоению
Для успешного освоения программы необходимо иметь навыки работы с ПК и изучить базовые операции ОС Windows, MathCAD 14.
Текст выполненной программы PATCHWORK in.html
Cоздадим изображение(контейнер) управляемого объема. Отдельно извлекаем из него голубую, красную и зеленую компоненты:
Узнаем максимально возможное число блоков:
Тогда максимально можно поместить 39 бит стего, т.к. для каждого бита необходимо минимум 10000 пар битов, в которых мы будем менять яркость.
В начале ключа содержится число блоков, на которое делится файл, мы возьмем 32 блока по ширине и длине. Далее идут использующиеся для генерации выбора бит псевдослучайные числа и результаты нормировки.
n_dlin:=8
n_shir:=4
i:=0..n_dlin - 1
j:=0.. n_shir - 1
l:=0..dlin_block - 1
k:=0..shir_block - 1
Разбиваем блоки для работы с ними.
Выбираем пары точек для первого варианта (конгруентный генератор)
a:=13 b:=19 c:=7 d:=23
Выбираем пары точек для окончательного алгоритма.
Запишем стего:
Производим нормировку:
qq:=10
tt:=4
Ключ будет иметь вид:
Текст выполненной программы PATCHWORK out.html
Cоздадим изображение(контейнер) управляемого объема. Отдельно извлекаем из него голубую, красную и зеленую компоненты:
i:=0..n_dlin - 1
j:=0.. n_shir - 1
l:=0..dlin_block - 1
k:=0..shir_block - 1
Разбиваем на блоки, для работы.
Выполняем нормировку.
Краткое описание и результаты исследования
Для того чтобы расширить количество бит стего, которые помещаются в изображение, оно разбивалось на блоки, число блоков нужно брать из расчета как минимум 20000 точек на блок, т.к. алгоритм предполагает минимум 10000 пар точек. Стего вносится в синий слой изображения, количество стего может быть увеличено в 3 раза, если использовать все три цветовых слоя. Яркость одного пикселя из пары увеличивается на 2, другого уменьшалась на 2. Т.к. выбранное изображение может быть неоднородно, было принято решение о вычислении начального среднего значения соотношения пар точек по яркостям для каждого блока в отдельности, полученные значения стали частью ключа.
Рассматривалось 2 варианта выбора случайных пар пикселей для изменения их яркости, первый на основе двух задаваемых ключом чисел и последующей переработки их в 10000 пар методом схожим с конгруэнтным алгоритмом формирования случайных последовательностей. Но в силу того, что выбранные блоки имели лишь чуть больше чем 20000 точек, было принято решение строго задать выбор точек, который начинается с пары левых углов.
По результатам исследования можно сделать вывод, что столь незначительное изменение яркости позволяет все равно при верном ключе безошибочно определить стего, если только изображение не было подвергнуто искажениям. Хотя размер исходного изображения в данном примере увеличивается почти в три раза, но, даже обладая оригиналом, зрительно найти различия в контейнере совершенно невозможно.
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.