Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Стеганографические программы




Courier и S-Tools

 

Цель работы

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

 

Общие сведения

При сокрытии сообщений методами компьютерной стеганографии часто используют информацию, скрытую в последнем (наименьшем) значащем бите LSB (L ast S ignificant B its). В отечественных публикациях для его обозначения используют аббревиатуру НЗБ (наименьший значащий бит). При цифровом представлении графики и звука последний бит контейнера является малозначимым, часто изменяющимся по случайному закону. Шумы, возникающие при аналого-цифровом преобразовании звука и изображения (шумы квантования), случайным образом изменяют последний бит каждого отсчёта.

Рассмотрим простейший учебный пример.

Предположим, что имеется последовательность двоичных чисел (8 байт), отображающих в цифровом виде какой-то графический образ в формате BMP:

 

10100001-10101110-11010110-11001110-11000111-11001010-11010110-11101101

 

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

Предположим, что в приведённый выше фрагмент контейнера необходимо «запрятать» русскую букву «А», представленную с помощью кодовой таблицы CP-1251. Десятичное представление буквы «А» имеет вид 192D, а двоичное — 11000000B.

Модифицируя имеющийся блок двоичных чисел (контейнер), поместим в контейнер двоичное число 11000000В. При этом 8 бит файла-сообщения записываются в 8 чисел файла-контейнера:

 

1010000 0 -1010111 0 -1101011 0 -1100111 0 -1100011 0 -1100101 0 -1101011 1 -1110110 1

 

Эта же процедура внедрения скрытой информации иллюстрируется следующей таблицей. Заметим, что здесь буква «А» записана, начиная с младших битов.

Следующая таблица наглядно показывает порядок внедрения битов.

 

Пиксель 1

Пиксель 2

Пиксель 3

R G B R G B R G B
Байт 1 Байт 2 Байт 3 Байт 4 Байт 5 Байт 6 Байт 7 Байт 8 Байт 9
0 0 0 0 0 0 1 1

 

 

 

0 0 0 0 0 0 1 1 Биты

 

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

Примером может служить стегосистема для сокрытия цифровых данных в графических или звуковых файлах (патент США 6_023_511). Стегосистема делит исходный (скрываемый) файл и файл контейнер на множество одинаковых по размеру блоков данных, нумерует блоки данных файла контейнера (формирует индексы), сравнивает каждый блок данных скрываемого файла с блоками данных контейнера, отыскивает наиболее похожие блоки данных в контейнере, определяет номера индексов наиболее сходных блоков данных в контейнере для каждого блока данных из скрываемого файла и скрывает все полученные индексы в младших разрядах младших слов контейнера.

 

 

Идея скрытой передачи одного рисунка в другом рисунке состоит в том, что исходный рисунок и графический контейнер разбивают на блоки одинакового размера (в показанном выше примере размер каждого блока 8х8 пикселей, а число блоков равно 16). Каждый блок передаваемого рисунка заменяют блоком контейнера, который имеет наибольшее сходство с заменяемым блоком. Для нахождения наиболее сходных блоков используется логическая операция Исключающее ИЛИ.

На принимающую сторону передают номера блоков контейнера в нужной последовательности. Для показанных рисунков последовательность такая: 3-4-2-2-7-16-9-10-11-2-13-14-2-1-2-2. Нумерация блоков выполнена слева направо и сверху вниз.

Таким образом, передаваемый рисунок заменяется числами (индексами). Принятый рисунок будет отличаться от переданного, так как он состоит из фрагментов другого рисунка. Понятно, что воспроизведение на приёме будет тем точнее, чем больше полностью совпадающих блоков в передаваемом рисунке и контейнере. В приведённых рисунках полностью совпадают незаполненные (пустые) блоки, а также блок 6 исходного рисунка полностью идентичен блоку 16 контейнера.

Этот способ позволяет не только скрытно передать изображение, но и сжать информацию. Каждый блок исходного изображения (для цветного изображения 8х8х24 = 1536 бит) заменяется одним числом. В 24-х битном рисунке 1600х800 (объём 3,66 Мбайт) содержится 20 тысяч блоков 8х8. Для записи номеров этих блоков достаточно пяти десятичных цифр, то есть 40 бит на каждый блок. Для скрытой передачи рисунка с помощью индексов достаточно 0,1 Мбайт информации. Таким образом можно осуществить сжатие в 36 раз. Однако это будет сжатие с потерями, так как принятый рисунок отличается от исходного.

Эта идея может быть использована и для скрытой передачи одного звукового файла в другом звуковом файле (в контейнере). В этом случае отыскивают сходные отсчёты (семплы) и также передают лишь номера отсчётов контейнера.

 


 

 

Для успешного выполнения лабораторных работ необходимо знание структуры графического файла формата BMP (см. следующий рисунок).

 

 

Два байта 42H и 4DH, представленные в шестнадцатеричной системе счисления, указывают на то, что формат данного файла BMP. В соответствии с кодовой таблицей CP-1251 эти числа после декодирования дают латинские буквы BM (то есть, графический формат Bit Map).

Шестнадцатеричное число 66Н, расположенное по адресу 02Н, говорит о том, что размер данного файла равен 102 байта. Это значение получено путём перевода шестнадцатеричного числа 66Н в десятичную систему счисления. Число 36Н, записанное по адресу 0AH, показывает, с какого адреса начинается запись картинки (это – смещение от начала). По адресу 12H указана ширина рисунка, выраженная в пикселях. В данном случае число пикселей равно 5. Высота рисунка указывается в ячейке 16Н (для выбранного рисунка 3 пикселя). В ячейке 1AH указано число плоскостей на рисунке – 1. По адресу 1СН указана глубина цвета. В данном случае число 18Н говорит о том, что для формирования цветовых оттенков этого рисунка используется 24 бита. В ячейке 22Н указывается объем памяти, необходимый для запоминания битовой карты (объем рисунка без служебной информации).

Приведённый файл содержит рисунок, показанный слева.

Рисунок состоит из 15-ти пикселей (прямоугольник 5х3). Одиннадцать пикселей белые, пиксель в левом верхнем углу прямоугольника чёрный (1), в левом нижнем углу красный (2), в правом нижнем – зелёный (3) и в верхнем правом – синий (4).

Запись битовой карты в память начинается с левого нижнего угла рисунка. Красный пиксель (2) описывается составляющими R=255, G=0, B=0. Запись в память (при увеличении адреса ячейки) ведётся в обратном порядке B-G-R (синий – зелёный – красный). Таким образом, в самую первую ячейку битовой карты (адрес 36) заносится синяя составляющая B=00. В ячейку 37 записывается зелёная составляющая красного пикселя G=00, а в ячейку 38 красная составляющая R=FF (см. следующий рисунок). На рисунке красный пиксель обозначен цифрой 2.

Следующие три пикселя в нижней строке белые. Поэтому очередные девять байт имеют максимальное значение FFH (255D). В ячейках 42, 43 и 44 размещаются три байта зелёного пикселя (цифра 3).

В ячейке 45 размещён байт 00 – это дополнение, предназначенное для выравнивания строк дампа памяти. Эта ячейка избыточная, она не несёт никакой полезной информации, но её содержимое передаётся вместе с рисунком.

Следующие пять пикселей рисунка (вторая строка) – белые. Эти пиксели описываются с помощью пятнадцати байт FFH, которые размещены в ячейках памяти 46Н…54Н. В ячейке 55Н помещается выравнивающий байт 00.

В ячейках 56, 57 и 58 размещаются байты 00 – это цветовые компоненты чёрного пикселя. Далее на рисунке размещены 3 белых пикселя верней строки. Им соответствуют девять байт FFH.

В ячейках 62, 63 и 64 размещаются цветовые составляющие синего пикселя.

Ячейка 65 используется для выравнивания. Три дополнительных байта обозначены цифрой 5.

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

Для внедрения цифровых данных в мультимедийные контейнеры разработано большое число коммерческих и любительских программ. Например, S-Tools, JPHS, Open Puff, Courier, StegoMagic и др.

 

 

На рисунке показан пользовательский интерфейс программы Courier (автор программы — Kelce Wilson). Программа позволяет скрыть передаваемое сообщение внутри рисунка или фотографии. В качестве контейнера используется рисунок, созданный студенткой Е. Яшновой.

Программа управляется с помощью пяти командных кнопок: Open a New Bitmap (Открыть новый рисунок), Extract Message (Извлечь сообщение), Hide New Message (Скрыть новое сообщение), Save Bitmap (Сохранить рисунок), Help — Instructions (Помощь).

Максимально возможное число символов в сообщении зависит от размера выбранного рисунка-контейнера.

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

Теоретически один пиксель 24-битной цветной картинки позволяет скрыть 3 бита секретной информации.

Если размер цветного рисунка или фотографии составляет 400 ´ 600 пикселей, то такой контейнер способен вместить 400 × 600 × 3 = 720000 бит секретной информации. Так как для передачи (или хранения) одного символа текста требуется 1 байт информации, то контейнер может содержать «начинку» объёмом 90 000 байт (т. е. символов, букв, цифр). Такой контейнер-рисунок способен уместить более 30 страниц секретного текста.

Анализ работы программы Courier показал, что её автор не полностью руководствовался теорией стеганографии и для маскировки сообщения использовал два последних (младших) бита файла-контейнера (а не один, как этого требует теория). Это позволило ему вдвое увеличить объем хранимой в контейнере информации.

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

Значительно профессиональнее сделана программа Steganography-Tools (сокращённое название S-Tools, автор — Andrew Brown). Данная программа вначале сжимает текст сообщения, затем шифрует его методами криптографии и лишь потом помещает сообщение в файл-контейнер. При этом скрываемая информация равномерно «распыляется» по всей поверхности рисунка.

В качестве контейнера программа допускает использовать как графические, так и звуковые файлы. Графические файлы должны быть представлены в форматах BMP или GIF, а звуковые файлы — в формате WAV.

Криптографическое шифрование осуществляется по одному из алгоритмов (IDEA, DES, Triple DES или MDC) со 128-битным ключом, причём ключ формируется из символов пароля, введённого пользователем.

Порядок работы с программой достаточно прост. Он базируется на принципе Drag and Drop (перенеси и положи). Вначале нужно развернуть окно программы так, чтобы оно занимало часть экрана. На свободной части экрана развернуть Проводник или папку Мой компьютер с изображением значка (пиктограммы, иконки) файла-контейнера. Иконку файла-контейнера следует перенести внутрь окна программы S-Tools. В правом нижнем углу программы появится информация с указанием допустимого объёма файла-сообщения. Затем по технологии Drag and Drop внутрь окна нужно перенести иконку файла-сообщения. После этого следует ввести пароль и сохранить зашифрованное сообщение.

Дешифрация скрытого сообщения ведётся в обратном порядке: вначале скрытый файл перетаскивается (буксируется) внутрь окна программы. Затем правой кнопкой вызывается контекстное меню и вводится использованный пароль (пункт Reveal).

На рисунке показан внешний вид программы S-Tools с изображённым звуковым файлом-контейнером (его имя — AUTORUN). Надпись в правом нижнем углу информирует пользователя о том, что внутрь программы можно запрятать текст объёмом 10 810 байт.

Музыкальные файлы позволяют скрывать большой объем информации. Так, если преобразование аналогового сигнала в цифровой сигнал происходит с частотой дискретизации 44,1 кГц, то это позволяет ежесекундно сохранять 44 100 бит информации в монофоническом сигнале и 88 200 бит — в стереофоническом. Таким образом, в звуке, длящемся 1 секунду, можно поместить текст объёмом более 10 Кбайт.

 

 

Завершая данный раздел, приведём краткое сравнение способов создания шифрованных сообщений методами криптографии и стеганографии.

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


 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...