Tato aplikace implementuje různé steganografické metody pro skrývání dat ve video souborech:
-
LSB metoda pomocí Hammingova kódu (7, 4): Tato metoda využívá techniku Least Significant Bit (LSB) pro vložení dat do nejméně významných bitů pixelů. Zároveň využívá Hammingův kód (7, 4) pro detekci a opravu chyb, což zvyšuje odolnost proti poškození dat. Je vhodná pro situace, kdy je prioritou zachování kvality videa a přesnost extrakce skrytých dat.
-
DWT metoda pomocí BCH kódů (15, 11): Tato metoda kombinuje diskrétní vlnkovou transformaci (DWT) pro rozklad obrazu na frekvenční pásma a BCH kódy pro robustní zakódování dat. Skrytá data jsou vložena do frekvenčních složek videa, které jsou méně nápadné pro lidské oko. Tato metoda je lepší pro situace, kde je důležitější odolnost vůči detekci než přesnost extrakce.
-
Metoda založená na psychovizuální analýze DCT a pohybu objektů: Tato metoda využívá diskrétní kosinovou transformaci (DCT) a analyzuje pohyb objektů ve videu. Tajná data jsou skryta v DCT koeficientech v oblastech videa, kde dochází k pohybu, což pomáhá minimalizovat viditelnost změn. Tato metoda je ideální pro videa s dostatečným pohybem, kde je klíčová maximální kvalita výsledného videa.
data_testing/: Obsahuje testovací video souborysrc/: Zdrojový kód aplikacemethods/: Implementace jednotlivých steganografických metodutils/: Pomocné nástroje pro zpracování videa a binárních dat
tests/: Adresář s příkladový souborem s ukázkou výpočtů metrik pro testování.main.py: Hlavní spouštěcí skript aplikacesetup.py: Skript pro instalaci aplikace
- Python 3.9 nebo novější
- FFmpeg
Pro běh programu je nutné mít nainstalován FFmpeg. Doporučuji ke stahování využít Chocolatey.
Postup instalace FFmpeg:
- Otevřete příkazový řádek jako správce
- Zadejte příkaz:
choco install ffmpeg-full
-
Stáhněte si celou složku na své zařízení.
-
Přejděte do složky
video_steganography_implementations:cd video_steganography_implementations -
Nainstalujte aplikaci a všechny potřebné závislosti pomocí
setup.py:pip install .
Po instalaci můžete aplikaci spustit pomocí příkazu:
python main.py
Po spuštění se zobrazí úvodní menu obsahující stručný popis metod a dvě tlačítka: Zakódovat pro vložení zprávy do videa a Dekódovat pro dekódování zprávy ze stego videa.
- Vyberte metodu steganografie z rozbalovací nabídky v horní části okna.
- Klikněte na tlačítko Vybrat video a zvolte video soubor (podporované formáty: MP4, AVI, MOV).
- Do textového pole napište zprávu, kterou chcete skrýt. Zpráva může obsahovat pouze základní znaky bez diakritiky (např. písmena A-Z, číslice a běžné symboly).
- Vyplňte požadované klíče a parametry podle zvolené metody. Doporučuje se použít klíče v rozmezí od 0 do 20. U metody využívající BCH codes je výhodné zadat z roletky hodnotu 5. Zachová zprávu co nejvíce původní a dostraní větší množství chyb.
- Klikněte na Potvrdit pro zahájení vkládání zprávy.
Po vložení zprávy se stego video automaticky uloží jako video.avi do složky s programem. Po úspěšném vložení zprávy se zobrazí oznamovací okno s klíči, které jsou nezbytné pro dekódování zprávy z videa. Je důležité tyto klíče bezpečně zaznamenat, protože jejich ztráta znemožní dekódování. Aplikace také automaticky generuje náhodné klíče pro dodatečné zabezpečení.
- Vyberte stejnou metodu steganografie jako při vkládání.
- Klikněte na tlačítko Vybrat stego-video a zvolte video se skrytou zprávou.
- Zadejte stejné klíče a parametry, které byly použity při vkládání. V případě metody DCT psychovisual and object motion vložte odpovídající JSON soubor.
- Klikněte na Potvrdit pro zahájení dekódování zprávy.
Pro úspěšné dekódování je naprosto nezbytné použít stejnou metodu a klíče jako při vkládání zprávy. Jakákoliv odchylka může vést k neúspěšnému dekódování nebo získání nesprávné zprávy.
Pokud se objeví chybová hláška OSError: Could not load shared object file: llvmlite.dll, která se může objevit při importu knihovny galois. Tato knihovna následně používá numba, což vede k problému s llvmlite. Pro vyřešení problému postupujte následovně:
- Zkuste nejprve přeinstalovat
numbaallvmlite. - Pokud to nepomůže, stáhněte a nainstalujte Visual C++ Redistributable:
- Pro x64: Stáhnout VC Redist x64
- Další verze a informace: Visual Studio 2017 Redistributable
- Po instalaci restartujte počítač.