Вопрос

Каковы основные и простые Алгоритмы стеганографии и методы?

Я имею в виду стеганографию, применяемую к изображениям.

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

Это было полезно?

Решение

Каковы основные и простые алгоритмы и методы стеганографии? Я имею в виду стеганографию, применяемую к изображениям.

Я написал библиотеку за это давно, чтобы я мог описать процесс.

В основном, если у вас есть формат файла, скажем, 24-битный формат BMP. Сначала вам нужен способ прочитать и писать пиксели в этот формат файла. Либо вы можете использовать библиотеку или написать свой собственный, как только вы узнаете, что является форматом файла.

Изображение можно рассматривать как ряд пикселей. Рассмотрим изображение 4x4 пикселей:

xxxx.
xxxx.
xxxx.
xxxx.

Номер эти пиксели от 1 до 16:

01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16

Каждый пиксель, который пронумерован выше, имеет красный компонент, зеленый компонент и синий компонент. Каждый из этих компонентов составляет 1 байт каждый, и поэтому каждый компонент можно рассматривать как значение от 0 до 255. (24-битные = 8бит для красных, 8 битов для зеленых, 8 битов для синего цвета). Таким образом, каждое из чисел выше, имеет 3 набора значений от 0 до 255.

Таким образом, в приведенном выше примере с изображением 4x4 у вас есть 16 пикселей * 3COLOR_COMPONENTS = 48 байтов данных на вашем изображении. Как правило, вы будете делать, это использовать только наименее значительный бит каждого цветного компонента для кодирования вашего изображения. В этом случае у вас будет 48 битов данных, доступных для вас, доступных для вас, доступных для вас, чтобы кодировать любое 6 байтового сообщения, которое вы хотите.

Чтобы сделать это легче, хотя давайте просто посмотрим на кодировку простого 3-битного сообщения в один пиксель. И давайте предположим, что мы используем только 1 бит на цветной компонент. Допустим, мы хотим кодировать 3-битное сообщение: 111

Вот пример ценности пиксель 1. выше, прежде чем вы закончите данные:

R: 10101011.
G: 11111010.
B: 00011010.

То, что вы делаете, это измените только наименее значимые для новых данных:

R: 1010101. 1
G: 1111101. 1
B: 0001101. 1

Пиксель будет выглядеть одинаково к человеческому глазу, но теперь вы используете наименее значительный бит для представления данных, которые вы хотите кодировать.

Если вы хотите кодировать более 3 битов данных в один пиксель, вы также можете сделать это. Что происходит, в том, что вы будете кодировать больше, чем просто наименее значимый бит, вы можете использовать наименьшее количество 2 важных битов или наименьших 3 и т. Д. Чем больше битов, которые вы используете, вы начнете замечать немного разницы в Качество изображения. Вы можете использовать до 7 битов, хотя и ваше изображение все равно будет выглядеть узнаемым.

Обычно у вас будет намного более 3 битов данных, которые вы хотите кодировать. Чем больше данных, которые вы хотите кодировать, вам придется иметь больше пикселей, либо использовать больше битов на пиксель для кодирования данных. Допустим, у вас есть 9 битов данных, которые вы хотите кодировать, хорошо, если вы используете только наименее значимые биты, вам нужно 3 пикселей для кодирования этой информации. Если вы хотите использовать только 1 пиксель, хотя вы можете сделать это, используя 3 наименее значимых битов на цветной компонент для кодирования этих данных.

Для выполнения этого типа работы вы, вероятно, захотите создать некоторые функции для легкого работы с битами данных, которые абстрактны укомплектованностями постоянно рассмотрения с битовыми операторами.

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

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

Вам действительно необходимо иметь понимание форматов файлов, чтобы выполнить этот тип работы. Или, по крайней мере, используете библиотеку, которая может управлять форматом файла и файла данных для вас. Если вы действительно заинтересованы в этой теме, я предлагаю начать с простого формата файлов, такого как BMP и узнать его. Вы всегда можете найти спецификации формата файла на таких сайтах, как www.wothit.org.

Как программа распознает зашифрованное сообщение на изображении без исходного изображения?

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

Другие советы

Изменение наименее значимых битов растровых пикселей.

Для хорошего обзора см. эта страница

Существуют буквально бесконечные способы скрыть информацию в изображениях.

Один простой способ - заметить, что изменение наименее значимых битов каждого значения RGB не делает заметную разницу, поэтому настройка наименее значимого бита каждого байта в изображении дает нам (#-bits-in-image / 8) биты для хранения скрытых данных в.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top