Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НИРС Итоговая работа.docx
Скачиваний:
0
Добавлен:
11.01.2024
Размер:
2.03 Mб
Скачать

Четвертая презентация: Алгоритм стеганографии Least Significant Bit (Наименьшие Значащие Биты)

В четвертой презентации мне нужно было выбрать и разобрать один алгоритм, для этого я выбрал Least Significant Bit (Наименьшие Значащие Биты).

Наиболее популярной цветовой моделью является RGB, где цвет представляется в виде трех составляющих: красного, зеленого и голубого. Каждая компонента кодируется в классическом варианте с помощью 8 бит, то есть может принимать значение от 0

до 255. Именно здесь и прячется наименее значащий бит. Важно понять, что на один RGB-цвет приходится приходится аж три таких бита.

Чтобы представить их более наглядно, проделаем пару небольших манипуляций.

Как и было обещано, возьмем картинку с котиком в png формате.

Разобьем её на три канала и в каждом канале возьмем наименее значащий бит. Создадим три новых изображения, где каждый пиксель обозначает НЗБ. Ноль — пиксель белый, единица соответственно черный.

Получаем вот что.

Красный канал

Зеленый канал

Синий канал

Но, как правило, изображение встречается в «собранном виде». Чтобы представить НЗБ трех компонент в одном изображении, достаточно компоненту в пикселе, где НЗБ равен единице, заменить на 255, и в обратном случае заменить на 0.

Тогда получается вот это

Почему это работает?

Посмотрите на изображения ниже.

Это незаполненный стегоконтейнер:

А это заполненный на 95%:

Видите разницу? А она есть. Почему так?

Посмотрим на два цвета: (0, 0, 0) и (1, 1, 1), то есть на цвета, различные только НЗБ в каждой компоненте.

Небольшие различия в пикселях при первом, втором и третьем взгляде, заметны не будут. Дело в том, что наш глаз может различить около 10 миллионов цветов, а мозг всего лишь около 150. Модель RGB же содержит 16 777 216 цветов.

А где котик?

И первой в списке атак на LSB-стеганографию выступает визуальная атака. Звучит странно, не правда ли? Ведь котик с секретом никак не выдавал себя как заполненный стегоконтейнер на первый взгляд. Хммм… Нужно всего лишь знать, куда смотреть. Несложно догадаться, что нашего пристального внимания заслуживают только НЗБ.

У заполненого стегоконтейнера изображение с НЗБ выглядит так:

Не верите? Вот вам НЗБ со всех трех каналов отдельно:

Красный канал

Зеленый канал

Синий канал

Это специфичный для сокрытия сообщения «рисунок» в НЗБ. На первый взгляд это кажется простым шумом. Но при рассмотрении проглядывается структура. Здесь видно, что стегоконтейнер заполнен под завязку. Если бы мы взяли сообщение в 30% от вместимости бедного котика, то получили такую бы картину:

Его НЗБ:

~70% котика осталось неизменным.

Что такое 30% котика?

Размер котика 603х433 пикселей.

30% от этого размера равны 78 329 пикселям.

В каждый пиксель помещается 3 бита информации.

Итого 78 329 * 3 = 234 987 бит или чуть меньше, чем 30 килобайт помещается в 30% котика.

А в целого котика поместится около 100 килобайт. Такие дела.