Метод псевдослучайной перестановки

Недостатком метода псевдослучайного интервала является то, что биты сообщения в контейнере размещены в той же последовательности, что и в самом сообщении, и только интервал между ними изменяется псевдослучайно. Поэтому для контейнеров фиксированного размера более целесообразным является использование метода псевдослучайной перестановки (выбора) [79], смысл которого заключается в том, что генератор ПСЧ образует последовательность индексов Метод псевдослучайной перестановки - student2.ru и сохраняет k-й бит сообщения в пикселе с индексом Метод псевдослучайной перестановки - student2.ru .

Пусть N — общее количество бит (самых младших) в имеющемся контейнере; PN — перестановка чисел {1,2,.... N). Тогда, если у нас имеется для скрытия конфиденциальное сообщение длиной n бит, то эти биты можно просто встроить вместо бит контейнера Метод псевдослучайной перестановки - student2.ru .

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

Вероятность, по крайней мере, одного пересечения оценивается как

Метод псевдослучайной перестановки - student2.ru (5.1)

При увеличении Метод псевдослучайной перестановки - student2.ru и Метод псевдослучайной перестановки - student2.ru данная вероятность стремится к единице.

Для предотвращения пересечений можно запоминать все индексы использованных элементов ji и перед модификацией нового пикселя выполнять предварительную его проверку на повторяемость. Также можно применять генераторы ПСЧ без повторяемости чисел. Последний случай рассмотрим более подробно.

Для наших целей функция перестановки также зависит от секретного ключа К. При этом генератор псевдослучайной перестановки PN -— это функция, которая для каждого значения К вырабатывает различные псевдослучайные перестановки чисел {1,2, ...,N}.

Обозначим через Метод псевдослучайной перестановки - student2.ru генератор перестановок с соответствующим ключом К. Если перестановка Метод псевдослучайной перестановки - student2.ru защищена по вычислению (то есть, взлом алгоритма требует неоправданно больших затрат вычислительных ресурсов нарушителя), то возможность раскрытия содержания или предположение самого только вида перестановок без владения информацией о секретном ключе К практически равняется нулю.

Секретный генератор псевдослучайной перестановки (ГПСП) может быть эффективно реализован на основе генератора псевдослучайной функции (ГПСФ) [98], который, как и ГПСП, вырабатывает различные, не подлежащие прогнозированию функции при каждом отдельном значении ключа; однако множество значений функций не должно равняться области ее определения. ГПСФ легко реализуется из секретной хэш-функции Н путем объединения аргумента i с секретным ключом К и взятия от результирующей битовой строки функции Н:

Метод псевдослучайной перестановки - student2.ru (5.2)

где Метод псевдослучайной перестановки - student2.ru — объединение (конкатенация) битовых строк К и i; Метод псевдослучайной перестановки - student2.ru — результирующая псевдослучайная функция от i, которая зависит от параметра К.

Генератор Луби (Luby) и Рекоффа (Reckoff) построен следующим образом. Запись вида Метод псевдослучайной перестановки - student2.ru подразумевает побитовое сложение по модулю 2 аргумента а с аргументом b, причем результат сложения имеет ту же размерность, что и а.

Пусть i— строка двоичных данных длиной Метод псевдослучайной перестановки - student2.ru .Разделим i на две части: х и у длиной l каждая, а ключ К— на четыре части: К1234. Тогда

Метод псевдослучайной перестановки - student2.ru

Для каждого значения ключа К алгоритм возвращает псевдослучайную перестановку из чисел Метод псевдослучайной перестановки - student2.ru Луби и Рекофф показали, что предлагаемая перестановка является настолько же секретной, насколько и генератор ПСФ. Они также предложили простой алгоритм перестановки из Метод псевдослучайной перестановки - student2.ru . Если значение функции Метод псевдослучайной перестановки - student2.ru представляет собой достаточно длинные битовые последовательности, тот же эффект можно получить, приняв, что у — первые l бит строки i, а х — последние Метод псевдослучайной перестановки - student2.ru бит.

Представленная выше конструкция позволяет получить перестановку Метод псевдослучайной перестановки - student2.ru из Метод псевдослучайной перестановки - student2.ru для произвольного k. Однако в случае, когда количество бит контейнер составляет N, возникает необходимость перестановки Метод псевдослучайной перестановки - student2.ru

Преимущество метода, предложенного в [79], заключается в том, что существует возможность ограничиться только имеющимися для Метод псевдослучайной перестановки - student2.ru аргументами. Пусть Метод псевдослучайной перестановки - student2.ru (квадратные скобки означают округление к наименьшему целому, которое больше или равно аргументу). Тогда Метод псевдослучайной перестановки - student2.ru . При этом подсчитываются значения Метод псевдослучайной перестановки - student2.ru ... и из последовательности удаляются любые числа, превышающие N. Таким образом, получают значения Метод псевдослучайной перестановки - student2.ru … Заметим, что это становится возможным, когда функция перестановки вычислена для возрастающих значений аргументов, начиная с единицы. Следовательно, генератор ПСП Метод псевдослучайной перестановки - student2.ru для произвольного N может быть построен на основе, алгоритма Луби и Рекоффа.

Если же N является составным (как в случае изображения), существует более удобный способ построения ГПСП. Представленные ниже алгоритм основан на блочном кодировании с произвольным размером блока [79, 99]. Количество бит контейнера должно представлять собой составное число из двух сомножителей приблизительно одинакового порядка то есть Метод псевдослучайной перестановки - student2.ru для некоторых Х и Y.

В случае, когда данные скрываются в НЗБ пикселей цифрового изображения, параметры X и Y являются размерами данного изображения. Для получения координаті-го пикселя изображения при скрытии бита сообщения Метод псевдослучайной перестановки - student2.ru необходимо выполнить следующие вычисления:

Метод псевдослучайной перестановки - student2.ru

где div(i,X) и mod(i,X) — функции, которые возвращают, соответственно, целое и остаток от деления i на X. Другой вариант формулы (5.3 е) применим в случае, если массив изображения предварительно был развернут в вектор (по строкам). Прибавление единицы необходимо при индексации элементов массива изображения, начиная с единицы.

Первые два раунда алгоритма ((5.3а) - (5.3г)) необходимы для того, чтобы "рассеять" биты скрываемого сообщения среди наименее значимых бит контейнера. При этом первый раунд придает случайный характер x-координатам пикселя-контейнера, а второй — у-координатам. Третий раунд необходим для противодействия атаке на открытый (незашифрованный) текст.

В случае использования только двух раундов, пусть Метод псевдослучайной перестановки - student2.ru а Метод псевдослучайной перестановки - student2.ru — значение перестановки. Если криптоаналитик способен предположить значение а и может получить пару "открытый текст — кодированный текст" Метод псевдослучайной перестановки - student2.ru для некоторого z, то он способен установить b. Несмотря на то, что авторы [79] считают, что предложенный ими алгоритм будет достаточно устойчивым и с тремя раундами, они признают, что в некоторых случаях может понадобиться четы а ре или более раундов, что должно повысить устойчивость алгоритма к взлому.

Промоделируем данный метод в программе MathCAD.

Шаг 1

Сообщение, которое необходимо скрыть: М="© Пузыренко А.Ю., 2005 г.".

Контейнер С— подмассив Всиней цветовой составляющей изображения рис. 5.3. При этом количество бит в сообщении: LM :strlen(M), LM=200 бит; геометрические размеры контейнера: X:=rows(C), X=128 пикселей; Y :=cols(C), Y=128 пикселей; N = X Y,

N = 16384.

Шаг 2

Для формирования ключа используем модуль (М.20), который позволяет на основании первичного ключа Метод псевдослучайной перестановки - student2.ru сформировать вектор, который будет содержать Метод псевдослучайной перестановки - student2.ru пар ключей (каждая пара ключей будет использоваться в соответствующем раунде вычисления координат x и у).

В данном модуле поочередно используются три функции:

• num2str(d) — преобразование аргумента-числа в соответствующую строку А;

• substr(A,0, 3) — выделение фрагмента строки А, который содержит три первых символа строки;

• str2num(a)— обратное преобразование а-фрагмента в число, которое и присваивается s-му элементу массива К.

Метод псевдослучайной перестановки - student2.ru

В случае Кs>255 с помощью аналогичной комбинации функций число сокращaется на один символ.

Рассмотрим пример вычисления пар ключей при Ко=125 и Метод псевдослучайной перестановки - student2.ru =6 (рис. S.10).

KT=

Рис. 6.10. Пример вычисления ключей К

Шаг 3

Встраивание бит сообщения в псевдослучайные пиксели контейнера выполним с помощью модуля (М.21), который реализует алгоритм (5.3). В начале модуля массиву Sприсваиваются значения исходного массива С. Также выполняется конвертирование сообщения из строкового формата в вектор двоичных данных Mvec_bin. При вычислении координат хи у используется операция векторизации, которая позволяет поэлементно складывать по модулю 2 двоичные векторы К и у (или х). При этом размерность указанных векторов должна быть одинаковой, для чего используется функция submatrix Метод псевдослучайной перестановки - student2.ru .

Метод псевдослучайной перестановки - student2.ru

Оценим степень "рассеяния" бит сообщения по массиву контейнера при разном количестве раундов Метод псевдослучайной перестановки - student2.ru вычисления координат х и у (рис. 5.11, формирование которого проводится аналогично формированию рис. 5.9).

Метод псевдослучайной перестановки - student2.ru

Рис. 5.11. Рассеяние бит сообщения по массиву контейнера при изменении параметра Метод псевдослучайной перестановки - student2.ru

Как видим, приемлемый уровень рассеяния достигается уже при Метод псевдослучайной перестановки - student2.ru =4.

Шаг 4

На принимающей стороне должны быть известны первичный ключ Метод псевдослучайной перестановки - student2.ru и массив цветности, в который выполнялось встраивание (S*). Из последнего получаются значения X*, Y*, N*. Модуль, предназначенный для извлечения скрытого сообщения, представлен ниже (М.22).

Метод псевдослучайной перестановки - student2.ru

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

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

Результаты вычисления визуального искажения сведены в табл. 5.1 (стр. 125).

Метод блочного скрытия

Метод блочного скрытия — это еще один подход к реализации метода замены и заключается в следующем [3]. Изображение-оригинал разбивается на Метод псевдослучайной перестановки - student2.ru непересекающихся блоков Метод псевдослучайной перестановки - student2.ru произвольной конфигурации, для каждого из которых вычисляется бит четности Метод псевдослучайной перестановки - student2.ru :

Метод псевдослучайной перестановки - student2.ru

В каждом блоке выполняется скрытие одного секретного бита Mi, Если бит четности, Метод псевдослучайной перестановки - student2.ru то происходит инвертирование одного из НЗБ блока Метод псевдослучайной перестановки - student2.ru , в результате чего Метод псевдослучайной перестановки - student2.ru . Выбор блока может происходить псевдослучайно с использованием стегакоключа.

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

Рассмотрим пример программы в MathCAD, которая позволяет выполнить стеганографическую защиту текстового сообщения методом блочного скрытия.

Шаг 1

Исходные данные соответствуют; принятым при моделировании предыдущего метода.

Шаг 2

Разбиение массива контейнера на блоки выполним следующим образом: если количество бит в сообщении Метод псевдослучайной перестановки - student2.ru не превышает количества столбцов Yмассива С, то один блок соответствует отдельному столбцу массива С. Если же Метод псевдослучайной перестановки - student2.ru , то один блок равен Метод псевдослучайной перестановки - student2.ru от отдельного столбца массива, где Метод псевдослучайной перестановки - student2.ru Значение Метод псевдослучайной перестановки - student2.ru должно быть известно получателю.

Данный алгоритм встраивания реализован в модуле (М.23). Начало модуля аналогично модулю (М.21). Счетчик Метод псевдослучайной перестановки - student2.ru позволяет выделять соответствующую соотношению Метод псевдослучайной перестановки - student2.ru часть от общей размерности столбца массива. При этом определяются индексы строк, начиная с которой (r1)и по которую (r2)выделяется фрагмент Метод псевдослучайной перестановки - student2.ru у-го столбца.

Для каждого блока Метод псевдослучайной перестановки - student2.ru выполняется вычисление бита четности b, Если b не равен текущему значению бита сообщения, то из блока Метод псевдослучайной перестановки - student2.ru случайным образом выбирается индекс n пикселя, интенсивность цвета которого увеличивается или уменьшается на единицу, в зависимости от того, четным или нечетным является его первичное значение. С помощью функции Метод псевдослучайной перестановки - student2.ru выполняется встраивание модифицированного массива Метод псевдослучайной перестановки - student2.ru в общий массив S, начиная со строки r1 и столбца у в сторону самых старших индексов строк и столбцов соответственно.

Метод псевдослучайной перестановки - student2.ru

Рис. 5.12. Рассеяние бит сообщения по массиву контейнера

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

Очевиден факт снижения количества модифицированных пикселей по сравнению с результатом применения двух предыдущих методов (см. рис. 5.9 и рис. 5.11).

Метод псевдослучайной перестановки - student2.ru

Шаг 3

Извлечение секретной информации осуществляется с помощью модуля (М.24). Результаты вычисления визуального искажения сведены в табл. 5.1(стр. 125)

Методы замены палитры

Для скрытия данных можно также воспользоваться палитрой цветов, присутствующих в формате изображения [80]. Палитра из N цветов определяется как список пар индексов Метод псевдослучайной перестановки - student2.ru , который определяет соответствие между индексом i и его вектором цветности Метод псевдослучайной перестановки - student2.ru (так называемая таблица цветов). Каждому пикселю изображения ставится в соответствие определенный индекс в таблице. Поскольку порядок цветов в палитре не важен для восстановления общего изображения, конфиденциальная информация может быть скрыта путем перестановки цветов в палитре.

Существует N! различных способов перестановки N-цветной палитры, чего вполне достаточно для скрытия небольшого сообщении. Однако методы скрытия, в основе которых лежит порядок формирования палитры, также являются неустойчивыми: любая атака, связанная со сменой палитры, уничтожает встроенное сообщение.

Чаще всего соседние цвета в палитре не обязательно похожи, поэтому некоторые стеганометоды перед скрытием данных упорядочивают палитру таким образом, что смежные цвета становятся подобными. Например, значение цвета может быть упорядочено по расстоянию d в RGB-пространстве, где Метод псевдослучайной перестановки - student2.ru [3].

Метод псевдослучайной перестановки - student2.ru

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

Некоторые стеганометоды [81] предусматривают уменьшение общего количества значений цветов (до N/2) путем "размывания" изображения. При этом элементы палитры дублируются таким образом, чтобы значение цветов для них различалось несущественно. В итоге каждое значение цвета размытого изображения соответствует двум элементам палитры, которые выбираются в соответствии с битом скрываемого сообщения.

Можно предложить следующий вариант метода замени палитры.

Шаг 1

Исходные данные — стандартные.

Шаг 2

Таблицу цветов получаем, например, используя подмассив интенсивности красного R (M.25). Секретность таблицы будет определять алгоритм ее формирования на основе массива R.

Метод псевдослучайной перестановки - student2.ru

Полученную таблицу Т упорядочим по интенсивности цветов с помощью функции csort(T,с), которая позволяет переставить строки массива Т таким образом, чтобы отсортированным оказался столбец с:

Метод псевдослучайной перестановки - student2.ru

На рис. 5.13 представлены фрагменты оригинальной и отсортированной цветовых таблиц.

T=   Tsort=    
     
     
     
     
     
     
  Метод псевдослучайной перестановки - student2.ru Метод псевдослучайной перестановки - student2.ru Метод псевдослучайной перестановки - student2.ru Метод псевдослучайной перестановки - student2.ru Метод псевдослучайной перестановки - student2.ru Метод псевдослучайной перестановки - student2.ru  
   
     
     
     
     
     

Рис. 8.13. Оригинальная (Т) и отсортированная (Тsort) цветовые таблицы

На рис. 5.14. представлена графическая интерпретация цветовых таблиц.

Метод псевдослучайной перестановки - student2.ru

Рис. 6.14. Графическое отображение цветовых таблиц Т и Тsort

Шаг 3

Модуль встраивания сообщения в контейнер (М.26) реализует следующий алгоритм.

Формирование битового вектора из символьной строки аналогично представленному в (М.21). Из массива контейнера С, путем перебора индексов строк (х) и столбцов (у), переменной pixприсваивается значение интенсивностей цвета соответствующих пикселей контейнера. Внутренним циклом Метод псевдослучайной перестановки - student2.ru выполняется поиск соответствующего значения интенсивности в отсортированной цветовой таблице Тsort.

В случае положительного исхода поиска, переменной n присваивается значение индекса, соответствующего данной интенсивности в таблице Т(первый столбец Тsort, а переменной Метод псевдослучайной перестановки - student2.ru — значение индекса, соответствующего данной интенсивности в таблице Тsort. Если НЗБ индекса n не равно текущему биту скрываемого сообщения, то происходит поиск ближайшего индекса, НЗБ которого равно биту сообщения. Поиск выполняется вниз (L) и вверх (Н) от индекса Метод псевдослучайной перестановки - student2.ru .

Предварительное присвоение переменным Метод псевдослучайной перестановки - student2.ru и Метод псевдослучайной перестановки - student2.ru значения -/+1000 гарантирует невозможность дублирования предыдущих значений Метод псевдослучайной перестановки - student2.ru , если продвижение вниз или вверх от индекса Метод псевдослучайной перестановки - student2.ru не привело к выполнению поставленного условия (последнее возможно при обнаружении индекса Метод псевдослучайной перестановки - student2.ru слишком близко к нижней или верхней границе отсортированной цветовой таблицы).

Шаг 4

При извлечении сообщения, на основе массива R* необходимо сформировать таблицы цветов Т и Тsort . Модуль, реализующий данную операцию, идентичен (М.25).

Шаг 5

Модуль извлечения (М.27) для интенсивности каждого пикселя массива S* выполняет поиск соответствующей интенсивности в цветовой таблице. При нахождении, Метод псевдослучайной перестановки - student2.ru -му элементу битового сообщения М* присваивается значение НЗБ индекса, соответствующее данной интенсивности в неотсортированной таблице. Полученный битовый вектор в конце модуля преобразуется в строку символов.

Метод псевдослучайной перестановки - student2.ru

Результаты вычисления визуального искажения сведены в табл. 5.1 (стр. 125).

Наши рекомендации