Стеганография аудио WAV файла методом Patchwork

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:30, 1 июня 2017.
Open book.svg Авторство
А. Каиндин
Согласовано: 2011

Руководство пользователя

Введение

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

  1. Занесение данных в аудио-файл
  2. Извлечение данных из аудио-файла

Назначение и условия применения

Требования к системе:
X86 совместимый процессор - 700 МГц или выше

  • 512Мб RAM и выше.
  • MathCAD 15
  • ОС Microsoft® Windows® XP/Vista/7 (32 или 64bit)

Требования к входным данным:

  • Для записи данных требуется стерео аудио файл, он должен иметь название “test.wav”.

Функция шифрования данных (файл “IN.xmcd”)

  • Шифруемая информация записывается в массив dataв файле “IN.xmcd”. Также в процессе работы добавляется гауссовский шум для уменьшения вероятности обнаружения зашифрованных данных.Для редактирования уровня шума используется переменная “nz”.

Результат функции шифрования

  • После выполнения файла “IN.xmcd” генерируется файл “test_out.wav” с результатом выполненной работы. Также генерируется файл “Key.txt”, содержащий ключ, необходимый для восстановления зашифрованных данных.

Функция расшифрования данных

  • Восстановление производится при выполнении файла “OUT.xmcd”, найденная информация будет в массиве data.

Pанесение стего в звуковой контейнер и извлечение стегосообщения с шумом, без шума

Задание: Для добавления информации используется метод Patchwork. Выбирается 10000 пар байтов для добавления одного бита. Пара выбирается из левого и правого канала звука. К одному значению прибавлется 2, из другого 2 вычитается. Путем набора статистики генерируется ключ по которому впоследствии можно восстановить исходный файл. M := READWAV("test.wav") получение параметров WAV файла

Рис.1.Параметры контейнера


settings := GETWAVINFO("test.wav")

Рис.2.Параметры контейнера


height:= rown(M) = 8.824×10^5 - высота матрицы звука width:= cols(M) = 2 - ширина матрицы звука

Рис.3.Параметры контейнера


Max_blok =88
Шифруемая информация

Рис.4.Шифруемая информация


data_w := cols(data) data_h := rows(data) max_d := data_w *data_h Установка начального значения для генератора случайных чисел seed(321) Генерация случайных индексов для каждого блока

Рис.5.Генерация случайных индексов
Рис.7.Генерация случайных индексов


Рис.6.Генерация случайных индексов


y:= 0...100 Добавление данных в массив аудио файла

Рис.8.


Рис.9.



n:= 0...height z:= 0...width

Рис.10.


Рис.11.


Рис.12.


Рис.13.


Рис.14.


Рис.15.


  • Добавление шума

Изменяя параметр nz можно заметить влияние шума на аудио файл и шифруемую информацию. Опыты показали, что при значении nz 40 информация восстанавливается уже неправильно nz := 5 b:= 0...height - 1 n:= 0...width - 1

 noise := (floon(height, nz , nz))

Рис.16.


Рис.17.


Рис.18.


  • Создание ключа для восстановления зашифрованных данных
Рис.19.


Рис.20.


data_w := 5 data_h := 5 i := 0...data_w - 1 i := 0...data_h - 1 qq := 10 tt:= 4

Рис.21.


Рис.22.


Рис.23.


апись ключа в файл WRITEPRN("key.txt" := Key Сравнение спектров фурье пустого стегосообщения и сообщения с зашифрованной информацией

Рис.24.


Извлечение стегосообщения с шумом и без шума

  • Загрузка аудио файла с зашифрованной информацией

M := READWAV("test_out.wav") settings := GETWAVINFO("test.wav_out")

Рис.25.


Рис.26.


heigt := rows(M) height := 8.824 × 10^5 width:= cols(M) width:= 2 Установка начального значения для генератора случайных чисел sed(321) Генерация случайных индексов для каждого блока

Рис.27.


Key :=READPRN("key.txt")

Рис.28.


data_w := Key(0,0) = 6 data_h := Key(0,1) = 5 Создание ключа для сравнения с исходным ключом data_w := 5 data_h := 5 i := 0...data_w - 1 i := 0...data_h - 1 qq := 10 tt:= 4

Рис.29.


Рис.30.


Рис.31.


Рис.32.
При совпаденнии значений ключа бит в блок не был добавлен, иначе был добавлен бит = 1


Передаваемая информация:

Рис.33.


Аудио файлы

Test‎.wav – контейнер


Test_out.wav - файл со стегосообщением и занесенным гауссовским шумом




Стегосообщения