Оценка обложки для стеганографии изображения - PullRequest
0 голосов
/ 17 июня 2019

Некоторое время я интересовался стеганографией изображений и использовал steghide (Linux) в прошлом. Мне было интересно, есть ли (достаточно) простой, хотя и грубый калькулятор или расчет, который можно использовать, чтобы определить, насколько большим должен быть файл обложки для данного встроенного файла. (Извините, я использую здесь терминологию steghide ).

Например, предполагая, что у меня есть изображение 1024x768 (файл для встраивания), которое я хотел бы попытаться встроить в файл (файл steg), я должен найти изображение (файл обложки), достаточно большое для стигиджа, чтобы сделать его магия с.

Я начал с

  1. 1024 x 768 = 1497088 пикселей (~ 300 КБ)
  2. 1497088 пикселей, которым требуются значения RGB (8-битный каждый цвет?) = 2,48E13 бит
  3. 2,48E13 бит = 24 ГБ

... и, как вы можете видеть, с этого момента это стало немного неуклюже, поскольку (после некоторого тестирования) я ясно могу скрыть изображение размером 316 КБ в файл, который составляет 1% от этого размера файла 24 ГБ, поэтому мои расчеты уже далеко.

Значит, было интересно, существует ли «общее» правило, которое можно было бы применить для оценки размера файла, которое может понадобиться ожидаемому изображению? Я действительно ценю, что это зависит от ряда дополнительных факторов (глубина цвета и т. Д. Как для обложки, так и для встраивания) ...

1 Ответ

1 голос
/ 17 июня 2019

Перво-наперво, каждый алгоритм по-разному скрывает информацию, поэтому не существует общей формулы для емкости "стеганографии".

В вашем случае кажется, что вы скрываете целое изображение в пикселях файла обложки со скоростью внедрения 1 бит на пиксель. Общее количество битов, которые вы должны скрыть, составляет 1024x768x24 = 18874368. Я не знаю, как вы получили результат порядка 1e13, но именно здесь вы ошиблись. Кстати, 24 - результат предположения о RGB-изображении, где каждый пиксель имеет 3 цветовые плоскости, а каждый цвет имеет 8 битов.

Предполагая, что и обложка, и секретное изображение имеют одинаковое количество цветовых плоскостей, изображение обложки должно быть как минимум в 8 раз больше секрета. Таким образом, для секретного размера 1024x768 обложка может быть 4096x1536, или 8192x768, или 1024x6144 и т. Д.

Встраивание пиксельного массива напрямую похоже на встраивание файла bmp, который является несжатым. Вы можете добиться того же самого, сначала преобразовав свое изображение в png и вставив поток данных этого файла, что должно привести к уменьшению полезной нагрузки. Если вы не возражаете против сжатия с потерями, Jpeg должен приводить к уменьшению размера файлов.

...