Прячем изображение в спектрограмме звука

Если записать на графике декартовой системы с осями Ox(время) и oY(частота) точки, определенные частотой конкретного звука в промежуток времени n секунд с шагом в 1 секунду, то получится Спектрограмма. Под спектрограммой следует понимать «изображение, показывающее зависимость спектральной плотности мощности сигнала от времени». Иными словами, спектрограмма – это графическое изображение звука. Спектрограмму сформировать можно двумя способами: аппроксимировать как набор фильтров или рассчитать сигнал по времени с помощью оконного преобразования Фурье.

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

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

Преобразование изображения будем осуществлять скриптом на Python. Скрипт– spectrology.py [solusipse - Overview]
Код:
sudo apt-get install git python-matplotlib python sox;
mkdir stegano; cd stegano;
git clone https://github.com/solusipse/spectrology.git;
cd spectrology;
python spectrology.py hide.bmp -b 10000 -t 18000

Нам необходимо заранее подготовить картинку в формате Windows 24-bit bmp file.

Скрипту можно указать диапазон частот где осуществить размещение изображения. На выходе мы получаем out.wav.

Затем открываем Audacity и помещаем вновь созданный файл в программу. Как мы видим, скрипт создал определенные частотные зависимости.
f4c65e73891993d9942f3.png
А на спектрограмме в выбранном нами частотном диапазоне отразилось наше изображение.
2.png
Далее мы добавляем исходный аудиофайл, в котором мы хотим зашифровать информацию. Выставляем громкость зашифрованного аудио в минимальную.
Выделяем оба трека, затем Tracks->Mix->Mix and render to new track.

На выходе получаем следующий файл.
3.png
Но это слишком "палевно". Мы модифицируем этот способ и пойдем дальше.

Можно скрыть изображение только в левом или правом канале либо сделать эту операцию с моно-файлом.

Для обеспечения лучшей анонимности модифицируем данный способ.
  1. Создадим файл с диапазоном частот 5000 – 10000.
  2. Загрузим полученный файл и исходный в программу Audacity.
  3. Преобразуем Stereo исходный файл в mono.
  4. Копируем в новую дорожку.
4.png
Внедряем изображение в одну из дорожек выставив громкость шифротекста в минимум. Миксуем и рендерим. В итоге получаем две дорожки: оригинал в моно и модифицированное в моно. Сводим в стерео трек, раскидав по каналам, выделяем и микшируем.

Получаем зашифрованный файл.
5.png

Чтобы расшифровать текст делаем следующее:
Разделяем на моно треки. Инвертируем (Effects->Invert) канал с оригинальным звуком (у нас это левый) и миксуем треки в новый файл. Происходит вычитание аудио информации и у нас остается наше изображение.
 

Вложения

  • spectrology-master.zip
    3,2 КБ · Просмотры: 0
Регистрация
27.05.2019
Сообщения
324
Реакции
103
Возраст
29
Что - то сложное=)
 
Верх