Giter VIP home page Giter VIP logo

py-stego-phase's Introduction

py-stego-phase

Метод фазового кодирования в аудио стеганографии.

Оглавление

Метод фазового кодирования

Процедура фазового кодирования:

  1. Звуковая последовательность разбивается на серию N коротких сегментов.

  2. К n-ому сегменту сигнала применяется K-точечное ДПФ, где K = I/N, I – длина дискретных значений сигнала, и создаются массивы фаз и амплитуд.

  3. Запоминается разность фаз между каждыми соседними сегментами.

  4. Двоичная последовательность данных представляется как π/2 или -π/2, отображая соответственно, 1 или 0.

  5. С учетом разности фаз воссоздается массив фаз.

  6. Восстановление звукового сигнала осуществляется путем применения операции обратного ДПФ к исходной матрице амплитуд и модифицированной матрице фаз.

Для снижения уровня искажения в реализованном методе применялись следующие приёмы:

  • При формировании новых фаз внесение скрываемых данных начинается с высокочастотных составляющих.

  • Крайние сегменты остаются неизменными

Пример работы программы

Имеем сигнал с частотой дискретизации 44100 Гц, 16 битами в выборке и 1 каналом. Длительность сигнала составляет 9 сек.

Спектральная и временная диаграммы оригинального сигнала:

1.0 1.1

Скроем следующее сообщение:

There is nothing more than math!

$ python stego_phase.py -i "wav/beat.wav" -m "msg/msg.txt" -o "wav/stego.wav"    
reading wave container... 
preparing container...	
performing fft transform...
msg integration...
saving stego container...
Done.
Remember segment width to recover message: 1024

Спектральная и временная диаграммы сигнала с скрытым сообщением:

2.0 2.1

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

$ python stego_phase.py -i "wav/stego.wav" -m "msg/msg_recovered.txt" --karg 1024
reading wave container...
preparing container...
performing fft transform...
recovering message...
Done.

Для более точного анализа можно воспользоваться программой для расчёта разностных и корреляционных показателей искажения.


Графики были получены в программе iZotope Rx

Литература

  1. Г.Ф. Конахович, А.Ю. Пузыренко, «Компьютерная стеганография Теория и практика», «МК- Пресс», Киев, 2006.

Лицензия

Лицензия Creative Commons

Исходный код «py-stego-phase» выложен на условиях GNU GPLv3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.