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

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

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

Область применения

Данная программа дает возможность передавать и извлекать скрытую информацию в wav файле методом Patchwork.

Список возможностей:

  • Сокрытие информации в wav файле
  • Извлечение скрытой информации из wav файла
  • Проведение сопоставительного анализа спектров «пустого» контейнера и стегосообщения.

Требования к системе:

  • X86 совместимый процессор - 700 МГц или выше
  • 512Мб RAM и выше.
  • MathCAD 14
  • ОС Microsoft® Windows® XP/Vista/7 (32 или 64bit)

Состав дистрибутива:

  • In.xmcd - программа занесения стегосообщения в контейнер.
  • Out.xmcd - программа извлечения стегосообщения из контейнера.

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

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

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

Шифруемая информация записывается в массив data в файле “In.xmcd”. В конце работы проводится сопоставительный анализ частотно-временных Фурье-спектров «пустого» контейнера и стегосообщения путем отображения на графиках спектров.

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

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

Основные действия для шифрования

Открыть файл In.xmcd, записать шифруемую информацию в массив data и дождаться завершения всех вычислений.

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

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

Проведение сопоставительного анализа

В завершении функции шифрования проводится сопоставительный анализ, пределы измерений задаются пользователем путем варьирования переменной y.

Занесение стегосообщения в звуковой контейнер

Контейнер M:=READWAV("audio.wav")


N1.png


Получение параметров аудио файла wav settings:=GETWAVINFO("audio.wav")


N2.png

Размеры контейнера


N3.png

width:=cols(M)=2 //Высота матрицы звука

Максимально допустимое число блоков


N4.png

Max_block = 313

Информация для записи data:= READPRN("data.txt")


N5.png

Размеры информации data_w:= cols(data) data_h:= rows(data) data_w:= data_w*data_h

Создание массивов с измененными номерами битов

Предустановка генератора псевдослучайных чисел seed(24816)


N6.png

Добавление данных в контейнер n:= 0..height z:= 0..width


N7.png

Сохранение WRITEWAV("audio_out.wav",settings1,settings2):=M1

Создание ключа для восстановления зашифрованной информации data_w data_h = 5 ex:= 4 b:= 10 i:= 0..data_w - 1 j:= 0..data_h - 1


N8.png

информация о добавлении данных


Wfusp (11).png

Запись ключа в файл WRITERN("Key.txt"):=Key

Сопоставительный анализ частотно-временных Фурье-спектров "пустого" контейнера и стегосообщения y:=10000..100000 //Данный интервал может быть изменен по желанию пользователя

Извлечение стегосообщения из звукового контейнера

Загрузка аудио файла с зашифрованной информацией M:=READWAV("audio_out.wav")


Z1.png

settings:=GETWAVINFO("audio_out.wav")


Z2.png

width:=cols(M) heigt:=rows(M)

width=2


Z3.png

Предустановка генератора псевдослучайных чисел seed(24816)

Генерация случайных индексов для каждого блока


Z4.png

Key:=READPRN("Key.txt")


Z5.PNG


Z6.png

Создание ключа для сравнения с исходным ключом i:=0..data_w - 1 j:=0..data_h - 1 data_h = 5 data_w b:=10 ex:= 4


Z7.png

Сравнение


Fsup out (5).PNG

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


Fsup out (6).PNG

Выводы

В реализованной программе произведено сокрытие и извлечение информации, стего записано методом Patchwork. Выбирается 10000 пар байтов для добавления одного бита. Пара выбирается из левого и правого канала звука. К одному значению прибавляется 2, из другого 2 вычитается. Путем набора статистики генерируется ключ по которому впоследствии можно восстановить исходный файл. Ключ выбирается на основе аудио файла, генератора псевдослучайных чисел, выбирающего пары байтов звука, и выбора числа блоков. Объем данных шифрования определяется в каждом конкретном случае в зависимости от размера аудио файла.

Аудио файлы

audio.wav – контейнер


audio_out.wav - файл контейнера со стегосообщением

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