Хорошая статья. Само то почитать вечером, сильно не напрягая мозги. Хотелось бы почитать о других алгоритмах и способах стенографии в таком же непринужденном стиле.
P.S. Возможно, не лишним будет предупреждение о трафике, все-таки почти мегабайт в двух изображениях.
Метод тривиален, его обнаружение тоже тривиально. Мне знакомый, занимающийся этой темой, рассказывал, что со многими картинками прокатит такой способ: вытягиваем младшие биты со всего изображения и строим на их основе черно-белое изображение того разрешение. Получившаяся Картинка должна быть очень сильно похожа на оригинал, если нет — то там что-то есть, и этого знания, что что-то есть иногда вполне достаточно.
Есть и другие, более продвинутые методы, над которыми он и работал.
На этот алгоритм есть простая, но в то же время интересная (как мне кажется) атака.
Как правило, в качестве картинке-контейнера выступает фотография. В настоящей фотографии вероятности встретить, скажем, пиксели со значениями R равными 128 и 129 отличаются (аналогично для значений 130 и 131). Мы же записываем в младший бит фактически равномерно распределённый шум, поэтому выравниваем вероятности для соседних чётных и нечётных значений.
Анализируя разности между количествами таких вот соседних пикселей, можно сделать предположение о том, присутствует в изображении вложение или нет, и даже оценить его размер, если вложение «упаковано» в подряд-идущих пикселях. Метод реально работающий, нашёл его в книжке «Цифровая стеганография», когда сам интересовался этим вопросом.
Это всё хорошо, но есть два небольших замечания:
1. При записи информации, можно во всех остальных байтах тоже заменить последние биты, тогда граница сообщения будет не так видна.
2. Важно понимать, что для злоумышленника доступно только изображение с закодированным текстом. Т.е. исходного изображения нет, поэтому побайтовое сравнение изображений не сработает.
Итоговая версия программа может менять 1, 2 или 4 последних пикселя. Причём, если размер контейнера позволяет, то искажения минимальны. А зашумление остальных пикселов я добавил, спасибо.
Это будет очень по стеганографичному — я ведь эту картинку вытащил из отчёта (.doc), увеличив масштаб немного и сделав скриншот. Теоретически конечно возможно… Ставлю плюс тому кто сможет)
LSB стеганография