Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сборник задач по дисциплине «Информатика» для ВУЗов. Методические указания к проведению практических занятий по дисциплине «Информатика», для студенто
.pdf
81
Практическая работа № 12
«Стеганографические методы защиты информации»
1. Цель работы
Получить представление о методах скрытой передачи информации.
2. Связь с другими темами практических работ
Данная практическая работа опирается на практические работы
«Системы счисления», «Логические основы работы ЭВМ» и позволяет по-
лучить представление о скрытой передаче информации в младших битах
графического файла.
3. Теоретические сведения и расчётные формулы
Стеганография — это наука, изучающая такие методы организации
передачи (и хранения) секретных сообщений, которые скрывают сам факт
передачи (или хранения) информации.
Криптография превращает открытый текст в нечитаемый набор символов (криптограмму). Криптограмма передаётся по открытому каналу
связи, и защита информации держится на сложности подбора секретного
ключа. Факт передачи криптограммы не скрывается от противника.
Стеганография нацелена на сокрытие фа
Сообщение (его называют вложением) помещают (внедряют) в контейнер,
свойства которого практически не изменяются при внедрении данных.
Все контейнеры можно разделить на контейнеры-оригиналы и контейнеры-результаты. Контейнер-оригинал (или «пустой» контейнер) — это
контейнер, который не содержит скрытой информации. Контейнеррезультат (или «заполненный» ко
рый внедрена секретная информация. Под ключом понимается секретный
элемент, который определяет порядок занесения (внедрения) сообщения в
контейнер.
Число разнообразных контейнеров и методов внедрения вложений велико. Многие приёмы сокрытия информации основываются на «обмане»
органов чувств человека. При сокрытии информации в графических и видео файлах и
регистрирует эти изменения.
При сокрытии информации в текстовых документах умышленно вы-
зменения кадров столь незначительны, что глаз человека
нтейнер, стего) — это ко
кта пер
едачи информации.
нтейнер, в кото-
не

82
бирают цвета символов и бумаги одинаковыми (скажем, зелёные). В электронных документах используют невидимые (непечатаемые) символы
(пробел, табуляцию).
В звуковых Midi-файлах незначительно изменяют длительности звучания нот и за счёт этого скрывают передаваемое сообщение. При вложении информации в аудио файлы изменения контейнера не должны регистрироваться слухом человека.
Однако такие треб
ваться лишь в простейших случаях. При передаче ценной конфи-
пользо
ования к степени сокрытия информации могут ис-
денциальной информации сделанные вложения не должны обнаруживаться
даже с помощью специальных программно-аппаратных средств и профессиональных алгоритмов стегоанализа (например, с помощью статистического анализа контейнеров, спектрального анализа и т.п.).
Упрощённо идею стеганографии иллюстрирует следующий ри
Рисунок
нужно трактовать так. Добавление скрываемого текста практиче-
сунок.
ски не изменяет рисунок. В данном случае контейнером служит графическое изображение.
Обычно размеры контейнера в несколько раз превышают объем
встраиваемых в них сообщений. Колоссальные объёмы HTML-страниц,
графических, текстовых, звуковых и видео файлов, хранящихся на серверах
Интернета, позволяют практически неконтролируемо и незаметно обмениваться секретной информацией между пользователями, находящимися в
разных точках земного шара.
Рассмотрим простейший учебный пример.
Пример 1.
Имеется последовательность двоичных чисел (8 байт), отображающих
в цифровом виде некоторый графический образ в формате BMP:
10100001-10101110-11010110-11001110-
11000111-11001010-11010110-11101101
Необходимо скрыть в контейнере русскую букву «А», представлен-
ную с помощью кодовой таблицы CP-1251.
Решение.
Десятичное представление буквы «А» имеет вид 192D, а двоичное —

83
11000000B. Модифицируя имеющийся блок двоичных чисел (контейнер),
поместим в контейнер двоичное число 11000000В. При этом 8 бит файласообщения записываются в 8 чисел файла-контейнера:
10100000-10101110-11010110-11001110-11000110-11001010-11010111-11101101
Эта же процедура внедрения скрытой информации иллюстрируется
следующей таблицей. Заметим, что здесь буква «А» записана, начиная с
младших битов.
Исследовать содержимое графических контейнеров можно с помощью редакторов памяти (например, Hex Editor Neo 6.11, HEdit32). В дальнейшем рассмотрение принципов стеганографии будет производиться с
помощью файлов, сформированных программой Courier. Особенностью
этой программы является внедрение данных в два младших бита.
Для примера ниже показано содержимое файла с изображением чёрного прямоугольника размером 10х4 пикселя. Первые строки (54 байт) содержат служебную информацию (заголовок). Так
как прямоугольник чёр-
ного цвета, то байты, отображающие цвет прямоугольника, содержат нули
(00).
В левом столбце указаны восьмиразрядные шестнадцатеричные числа – адреса ячеек памяти. Правее приведено содержимое ячеек памяти в
шестнадцатеричной системе счисления.
Нужно обратить внимание на следующую деталь. При статическом
распределении оперативной памяти (которое уже не используется в современных ЭВМ) адреса операндов будут совпадать с адресами ячеек памяти
ОЗУ. При динамическом расп
ределении памяти физические адреса определяются операционной системой в зависимости от наличия свободного места в ОЗУ.
В дальнейшем будем использовать термин «ячейка памяти», понимая под этим адрес операнда в исходном файле, не забывая, что при динамическом рас
пределении памяти физический адрес в ОЗУ будет иным.

84
На следующем рисунке показана память графического контейнера, в
который записана буква Z.
.
В первых строчках файла содержится служебная информация (ячейки 0…2FH). Ниже приведён фрагмент памяти, где выделены ячейки памяти, в которых размещена скрываемая в контейнере буква Z.

85
Дадим пояснение к полученному результату.
Десятичный код буквы Z в кодировке CP-1251 равен 90D, что эквивалентно двоичному числу 01011010B.
Буква Z скрыта в дампе памяти последовательностью из четырёх чисел: 10B → 02H, 10B → 02H, 01B → 01H, 01B → 01H.
Этот результат получен следующим образом: берут группы по 2 бита
из двоичного кода буквы, начиная с младших (правых) разрядов, и заменяют ими 2 младших бита в соответств
ующих числах исходного файла-
контейнера.
Процесс разбиения кода буквы Z на пары битов и порядок их размещения в памяти с помощью программы Courier иллюстрирует следующая
таблица:
Двоичная СС 01 01 10 10
Шестнадцатеричная СС 01 01 02 02
Адреса шестнадцатеричные 3B 6D 6A 67
В соответствии с разработанным автором программы Courier алгоритмом младший (правый) байт будет расположен по адресу 67H, второй
байт расположен по адресу 6AH, третий – по адресу 6DH. Старший байт
будет храниться на некотором отдалении от этих трёх байтов, в ячейке по
адресу 3BH.
Рассмотрим ещё один пример.
Пример 2.
Предположим, что требуется скрыть в файле с изображением чёрного прямоугольника 10x4 пикселя латинские буквы RSX.
Решение.
Вначале приведём содержимое памяти начинённого контейнера, а
затем дадим комментарии к полученному результату.

86
На рисунке выделено полужирным шрифтом содержимое двенадцати ячеек, в которых скрыто 24 бита информации (три буквы по восемь бит).
Скрытая информация для изображения прямоугольника 10х4 пикселя размещается в ячейках с адресами, указанными в следующей таблице.
1 группа
битов (СЗР)
2 группа
битов
3 группа
битов
4 группа
битов (МЗР)
1 буква 3B 6D 6A 67
2 буква 3A 6C 69 66
3 буква 39 6B 68 65
Сделаем анализ дампа памяти.
Определим по кодовой таблице CP-1251 десятичный код заглавной
латинской буквы R и переведём это число в двоичную систему счисления:
82D → 01010010B.
После разбиения исходного байта на четыре части каждая пара битов помещается в ячейки памяти, адреса которых указаны в следующей
таблице.
Двоичная СС 01 01 00 10
Шестнадцатеричная СС 01 01 00 02
Адреса шестнадцатеричные 3B 6D 6A 67
Аналогичные операции выполняются для букв S и Х:
83D → 01010011B, 88D → 01011000B
Необходимо обратить внимание на то, что файл с изображением белого квадрата (или прямоугольника) содержит, в основном, шестнадцатеричные числа FF.
Для квадрата 10х10 пикселей адреса размещения скрываемой ин-
формации с помощью программы Courier приведены в следующей таблице.
1 группа
битов (СЗР)
2 группа
битов
3 группа
битов
4 группа
битов (МЗР)
1 буква FB 12D 12A 127
2 буква FA 12C 129 126
3 буква F9 12B 128 125

87
Рассмотрим ещё один способ скрытой передачи информации в графическом файле формата BMP. Структура файла показана на рисунке [15].
Два байта 42H и 4DH, представленные в шестнадцатеричной системе
счисления, указывают на то, что формат данного файла BMP. В соответствии с кодовой таблицей CP-1251 эти числа после декодирования дают латинские буквы BM (то есть, графический формат Bit Map).
Шестнадцатеричное числ
т о том, что размер данного файла равен 102 байта. Это значение полу-
ри
о 66Н, распол
оженное по ад
ресу 02Н, го
во-
чено путём перевода шестнадцатеричного числа 66Н в десятичную систему
счисления. Число 36Н, записанное по адресу 0AH, показывает, с какого
адреса начинается запись картинки (смещение). Ячейка 0EH содержит информацию о длине информационного подзаголовка (40 байт). По адресу
12H указана ширина ри
сунка, выраженная в пикселях. В данном случае
число пикселей равно 5. Высота рисунка указывается в ячейке 16Н (для
выбранного рисунка 3 пикселя). В ячейке 1AH указано число плоскостей на
рисунке – 1. По адресу 1СН указана глубина цвета. В данном случае число
18Н говорит о том, что для формирования цветовых оттенков этого рисунка испо
льзуется 24 бита. В ячейке 22Н указывается объем памяти, необходимый для запоминания битовой карты (объем рисунка без служебной информации).
Приведённый файл содержит рисунок, показанный ниже.
Рисунок состоит из 15-ти пикселей
(прямоугольник 5х3). Одиннадцать пикселей белые, пиксель в левом верхнем углу
прямоугольника чёрный (1), в левом нижнем углу красный (2), в правом нижнем
синий (3) и в верхнем правом – синий (4).
Запись битовой карты в память начинается с левого нижнего угла рисунка.
Красный пиксель (2) описывается состав-
–

88
ляющими 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. Другими словами, длина данных, описывающих отдельную строку рисунка, должна быть кратна четырём.
Именно дополнительные байты, предназначенные для выравнивания
строк, могут быть использованы для ск
рытой передачи информации в гра-
фическом файле.

4. Задания для выполнения практической работы
«Стеганографические методы защиты информации»
4.1. Извлечь информацию из графических контейнеров, сформиро-
ванных с помощью программы Courier.
Задача
1.
Дамп памяти
89
Таблица 12.1
2.
3.

90
Задача
4.
Дамп памяти
5.
6.
7.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
