Pull to refresh

Comments 4

Довольно прямое решение. Можно было бы устанавливать только последний бит в цвете пикселя в 0 или 1. Это почти не изменяет цвет, так что битые пиксели не проявляются. Конечно, тогда на каждый байт надо потратить несколько пикселей, но их у нас предостаточно.
Можно для каждого компонента цвета, т.е rgb. Но это сработает только для png. Для jpg наверное тоже можно что-то менять, но это уже посложнее.

Однако если используют очевидные цвета (белый, черный), то такая стеганография уже подозрительная. Да и перевод фотографий в png тоже плохо.

Видать не так далеко вы были посланы учить матчасть ;)
Покопавшись чутка глубже, даже здесь на хабре, можно было бы заметить, что есть такая важная особенность в цветовосприятии, как очень слабая чувствительность глаза к синему цвету.


Лет десять или двенадцать назад мне доводилось баловаться с похожей задачкой, только в формате bmp, что не меняет сути. Я разделил плотность записи по каналам и добавил несколько режимов глубины внедрения.


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


Необходимо строго следить за пропорцией внедрения посторонних битов информации в три байта, кодирующие цвет.


Так как небольшие тексты на порядок меньше по объему нежели даже небольшие изображения, можно обходиться только парой бит синего канала и это гарантированно не проявит битых пикселей на итоговом изображении.


Можно было бы поиграться и посмотреть в сторону альфа-канала, при сохранении в режиме RGBA, может и там можно отжать парочку младших бит и не сильно исказить цвет, добавив ему прозрачности. Но в эту сторону я тогда не полез, честно было лень.


Наигравшись вдоволь я порадовался своей конгениальности и больше к таким забавам не возвращался. Тем более, что имея хоть где-нибудь оригинал изображения, Ева легко вычислит точки внедрения, а если это внедрение делалось напрямую, без предварительного шифрования, то это просто подарок на тарелочке с голубой каемочкой )))


Удачи вам в ваших изысканиях!

А зачем вообще брать готовую картинку? Кодируем каждый символ сообщения оттенком, раскидываем символы по сетке изображения, используя, например, поворотную сетку, и достраиваем картинку нейросетью до котика. экзиф по желанию. Про сетки ещё у Перельмана читал, переписка подпольщиков :)
Sign up to leave a comment.

Articles

Change theme settings