Пояснительная записка (ПЗ) (1210512), страница 7
Текст из файла (страница 7)
Это знание можноиспользовать для того, чтобы перезаписать его содержимое, подменив еговалидными данными или полностью разрушить старые.Для устранения этого недостатка можно использовать более гибкийстеганографический ключ, позволяющий увеличить стойкость алгоритма,увеличив количество вариантов маршрута возможной записи скрываемыхданных.2.4.1 Описание стеганогарфического методаОписываемый стеганогарфический метод является расширением метода сокрытия в спектре изображения после квантования (назовем его «SJpeg»).Стеганографическое преобразование F метода SJpeg имеют следующий вид:M × B × K → B*,где M – скрываемые бинарные данные.
В реализации программы использовалась текстовая информация в кодировке UTF-8, преобразованная в бинарныеданные;B – стеганоконтейнер, который представляет из себя любой графическийфайл. Кодирование сокрыто под процесс сжатия изображения и использует информацию о RGB-значениях пикселей изображения;K – стеганоключ, кортеж вида K = <KY = <KYc, KYb>, KCb = <KCbc, KCbb>,KCr = <KCrc, KCrb>[, Kq]>, в состав которого входит информация об используемых для сокрытия компонентах цветовой кодировки YCbCr, маска для блокаДКП-коэффициентов после этапа квантования для выбора элементов блока, которые будут использоваться для сокрытия информации, и битовая маска длинывосемь для выбора позиций, в которые будут записываться скрываемые данные38(ключ компоненты Ki, где i ϵ {Y, Cb, Cr}).
Дополнительным параметром можносчитать требуемое на выходе качество изображения Kq;B* – результирующий графический файл с расширением jpeg, которыйничем не отличается от обычных графических файлов этого формата и содержит сжатое входное изображение.Разрабатываемый стеганографический метод относится к слепым методам,так как для чтения записанного сообщения не требуется оригинального файла.Чтобы прочитать данные нужен результирующий файл, полученный по окончанию выполнения алгоритма, и стеганоключ, аналогичный тому, который использовался в процессе прямого стеганографического преобразования (кодирования).Метод SJpeg состоит из следующих этапов, выполняемых в порядке перечисления: выделение из графического файла массива RGB-компонент; преобразование цветового пространства из RGB в YCbCr; поддискретизация; ДКП; квантование; внедрение информации кодирование; формирование файла формата jpeg.Первым этапом осуществляется выделение массива RGB-компонент, описывающих изображение, из заданного графического файла.
Затем происходит выполнение обычного JPEG сжатия изображений до этапа кодирования (преобразование цветового пространства, поддискретизация, ДКП и квантование).На этом этапе коэффициенты для поддискретизации Hi равны единице, а таблицы квантования строятся с учетом ключа Kq (качество).После получения матрицы ДКП-коэффициентов происходит внедрениескрываемого сообщения M.Определяется компонента С, частью которой является текущий блок, если39текущая компонента используется для сокрытия информации, то значения матрицы ДКП-коэффициентов выписываются в натуральном порядке – слеванаправо, сверху-вниз – получаем последовательность no размерности |no| = 64.Осуществляется обход последовательности от нулевого коэффициента до последнего, если коэффициент входит в множество KCc, то в него внедряется информация согласно ключу KCb, придерживаясь порядка от младшего к старшему(англ.
little-endian – малым концом). Рассмотрим пример.Пусть матрица ДКП-коэффициентов имеет вид:161,-1, -10,24,56,10,29, -30, 19,10,38,-5, -10,9,5,0, -2,3,7, -5, -1,-8,7, -14,0,1, -29,1, -15,5,1,-9,4,-5,9,0,0,3,4,8, -16,-4,-1,-2,3,-12,3,-1,1,-3,5,8,0,0,0, -6, 10,2,0,3,-5, -1, -6,-1.Сообщение M = «evo» = {01100101, 01110110, 01101111}.Маска блока Kc = {2, 9, 42, 54}, а маска Kb = {0, 2} = 000001012 = 510.Выписываем последовательность no = {151, -1, -10, -5, -10, 0, 9, 5, 24, 56, 38,7, -14, 0, -2, 3, 10, 29, -30, 19, 7, -5, -1, -8, 10, 1, -29, 1, -15, 5, 1, -9, -12, 4, -5, 9, 0,0, 3, 4, 8, -16, -4, -1, -2, 0, -6, 10, 3, -1, 1, -3, 3, 2, 0, 3, 5, 8, 0, 0, -5, -1, -6, -1}.Коэффициенты, в которые будет записываться информация выделены полужирным.
Выпишем значения этих коэффициентов (полужирным обозначены биты, вкоторые разрешена запись информации):no2 = –1010 = 111101102,no9 = 5610 = 001110002,no42 = –410 = 111111002,no54 = 010 = 000000002.Для хранения значений сообщения используется четыре коэффициента подва бита, следовательно, в текущий блок можно записать один байт информации.40Возьмем первый символ «e» (011001012) и запишем его значение в биты заданных коэффициентов (измененные биты пометим подчеркиванием), получим:no*2 = 111100112 = –1310,no*9 = 001110012 = 5710,no*42 = 111111002 = –410,no*54 = 000000012 = 110.Максимальное изменение значения ДКП-коэффициента равно трем, что будет незаметно человеческому глазу при просмотре результирующего изображения.В результате блок коэффициентов будет иметь следующий вид:161,-1, -10,24,57,10,29, -30, 19,10,38,-5, -13,9,5,0, -2,3,7, -5, -1,-8,7, -14,0,1, -29,1, -15,5,1,-9,4,-5,9,0,0,3,4,8, -16,-4,-1,-2,3,-12,3,-1,1,-3,5,8,0,0,0, -6, 10,2,1,3,-5, -1, -6,-1.Последним шагом будет кодирование изображения по алгоритму Хаффманас фиксированной таблицей и формирование файла в формате jpeg.Извлечение информации состоит из трех шагов: разбор файла в формате jpeg; декодирование кода Хаффмана с фиксированной таблицей; извлечение внедренных данных.Для того, чтобы можно было определить, содержит ли стеганоконтейнерскрытые данные, перед внедрением полезной информации в контейнер внедряется флаг 0xFF66 и длина скрываемого сообщения длиной два байта (возможнаядлина сообщения от 0 до 65535 байт).412.4.2 Анализ криптостойкости алгоритмаВ отличии от JSteg стеганографический метод SJpeg обладает лучшимипоказателями криптостойкости, потому что позволяет задавать ключ, которыйможет принимать значения из большого диапазона.Для подсчета количества вариантов задания стеганографических ключей используется формула подсчета количества размещений из двух элементов (используется, не используется) по количеству возможных элементов ключа с исключением варианта, когда ни один из элементов ключа не используется.
Тривозможных компоненты дают 23 – 1 вариантов их выбора в виде стеганографического ключа. Каждый ключ для блока ДКП-коэффициентов компоненты дает264 – 1 вариантов задания значения, а маску байта можно задать 28 – 1 способами.Общее количество возможных значений стеганоключа складывает из его составляющих и равно (23 – 1)( 264 – 1)( 28 – 1) – примерно 33∙1021 (275). Тогда как вJSteg используется только один ключ, чтобы позволяет как считать информацию,так и перезаписать ее без особых сложностей.В основе разработанного метода лежит метод наименьшего значащего бита(англ.
Least Significant Bit, LSB, НЗБ), поэтому алгоритм неустойчив к детектированию стеганоконтейнеров с помощью гистограммного анализа.Внедрение равномерно распределенного сообщения уменьшает разницумежду частотами распределения соседних коэффициентов дискретного косинусного преобразования.SJpeg помогает практически устранить это изменение благодаря тому, чтовнедрение информации происходит по заданному ключу, то гистограмма распределения частот изменяется меньше.Даже если с помощью гистограммного анализа обнаружится факт сокрытияинформации, то извлечь ее все равно проблематично из-за использования стеганоключа, без знания которого невозможно получить доступ к внедренным данным.422.4.3 Оценка качества внедрения информацииСтеганографические методы, внедряющие данные в графические файлы,искажают изображения, поэтому важно оценить видимость влияния внедренияданных на визуальное восприятие изображения человеческим глазом.Для эксперимента было выбрано изображение с разрешением 32 на 32пикселя с непрерывным изменением тона, чтобы лучше было видно влияниеизменения параметров на визуальное отображение.Оригинальный размер изображения 21,7 Кб, при сжатии изображения скачеством 100 оно может превысить первоначальный размер, потому чтотекущий алгоритм проводит поддискретизацию цветоразностных компонент скоэффициентомHравнымединице.Видоригинальногоизображенияпредставлен на рис.