Skip to content

DaisyRo/Steganography

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Steganography

ЗМП-51

LSB Steganography Toolkit & Research Suite

Python-реализация метода наименее значащих битов (LSB) для скрытого встраивания данных в 8-битные полутоновые BMP-изображения. Проект включает CLI-инструмент, модули визуализации битовых плоскостей, расчёта метрик качества (PSNR, MSE, SSIM) и статистического анализа с доверительными интервалами.

Разработан в рамках исследовательской работы по сравнительному анализу пригодности различных типов изображений (естественные сцены, медицинские рентгенограммы, научные астрофизические снимки) для LSB-стеганографии.


Структура проекта

.
├── code/                       # Исходный код и вспомогательные скрипты
│   ├── steg_tool.py            # Основной CLI-инструмент (embed / extract-msg / extract-plane)
│   ├── visualize_bitplanes.py  # Массовая визуализация 8 битовых плоскостей (сетка 2×4)
│   ├── analyze_bitplanes.py    # Расчёт бинарной энтропии плоскостей
│   ├── step_c_metrics.py       # Внедрение в k=1,2,3 + расчёт PSNR/MSE/SSIM
│   ├── step_d_histograms.py    # Построение гистограмм яркости (Original vs Stego)
│   ├── step_e_table.py         # Сводная сравнительная таблица метрик
│   ├── calc_ci.py              # Расчёт 95% доверительных интервалов (PSNR, дисперсия)
│   └── secret.bin              # Тестовое секретное сообщение (~32 Кб)
├── data/                       # Наборы данных-контейнеров (512×512, 8-bit BMP)
│   ├── bmp_boss/               # BOSSbase 1.01 (естественные сцены, 100 файлов)
│   ├── bmp_med/                # Medical X-Ray (рентгенограммы, 100 файлов)
│   └── bmp_other/              # SOHO/EIT Solar Images (научные снимки, 100 файлов)
├── results/                    # Результаты экспериментов
│   ├── research/               # Визуализации плоскостей, гистограммы, тестовые stego
│   ├── stego_examples/         # Примеры внедрения во все контейнеры
│   ├── tables/                 # CSV-таблицы метрик и доверительных интервалов
│   └── figures/                # Графики PSNR CI, boxplot, примеры плоскостей
├── requirements.txt            # Зависимости Python
└── README.md                   # Документация проекта

Установка и зависимости

  1. Клонируйте репозиторий:
    git clone https://github.com/DaisyRo/Steganography.git
    cd Steganography
    Создайте виртуальное окружение и установите зависимости:
    python3 -m venv venv

source venv/bin/activate pip install -r requirements.txt Основной инструмент (code/steg_tool.py)

1. Внедрение сообщения в k-ю плоскость

python3 code/steg_tool.py --mode embed
--image data/bmp_boss/1.bmp
--k 1
--message code/secret.bin
--output results/stego_examples/test_k1.bmp

2. Извлечение сообщения

python3 code/steg_tool.py --mode extract-msg
--image results/stego_examples/test_k1.bmp
--k 1
--output results/extracted_test.bin

3. Извлечение битовой плоскости (визуализация)

python3 code/steg_tool.py --mode extract-plane
--image data/bmp_boss/1.bmp
--k 3
--output results/figures/plane_k3.bmp

Исследовательские скрипты

Скрипт Назначение
visualize_bitplanes.py Генерация сеток 2×4 с плоскостями $k=1..8$ для 5 изображений из каждого набора
analyze_bitplanes.py Расчёт бинарной энтропии плоскостей $k=1..6$
step_c_metrics.py Внедрение в $k=1,2,3$ + вывод таблицы PSNR/MSE/SSIM
step_d_histograms.py Построение гистограмм яркости (Original vs Stego $k=1$)
calc_ci.py Статистический анализ всех 300 изображений: 95% ДИ для PSNR и дисперсии битов

Результаты и ключевые выводы

Параметр Значение / Вывод
Ёмкость контейнера 262 144 бит на плоскость (512×512 пикселей)
Встраиваемый объём до 32 004 байт (32 Кб + 4-байтный заголовок длины)
Качество при $k=1$ PSNR ≈ 51.25 дБ, SSIM > 0.98, визуальные искажения отсутствуют
Динамика искажений При переходе $k \to k+1$: MSE возрастает в ~4×, PSNR падает на ~6.02 дБ (теоретическое соответствие подтверждено на 300 изображениях)
Статистическая надёжность 95% ДИ для PSNR: ±0.002 дБ — высокая стабильность метода across всех типов контейнеров
Влияние типа контейнера • Естественные сцены (BOSS): $H \approx 1.00$ (макс. шумоподобность)
• Медицинские/научные: $H \approx 0.87–0.99$ (структурированы, выше уязвимость к χ²)

Все таблицы, графики и визуализации сохранены в папке results/.

About

ЗМП-51

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors