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

Использование блочных помехоустойчивых кодов для стеганографического сокрытия информации Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
255
40
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОМЕХОУСТОЙЧИВОЕ КОДИРОВАНИЕ / БЛОЧНЫЕ КОДЫ / НЕДВОИЧНЫЕ КОДЫ РИДА-СОЛОМОНА / СТЕГАНОГРАФИЯ / КОРРЕКТИРУЮЩАЯ СПОСОБНОСТЬ / КОРРЕКЦИЯ ОШИБОК

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Рощин А.Б., Захаров В.В.

В настоящей статье проанализированы вопросы сокрытия информации (стеганографии) в помехоустойчивых кодах. Прослежена краткая история помехоустойчивого кодирования от их появления в пятидесятых годах двадцатого века до настоящего времени. Определены двоичные (коды Хемминга, коды Боуза-Чоудхури-Хоквенгема) и недвоичные (коды Рида-Соломона) блочные помехоустойчивые коды. Обозначена взаимосвязь между помехоустойчивым кодированием и сокрытием информации (стеганографией). Сформулированы основные требования к стегоконтейнерам в предлагаемой схеме сокрытия информации. Предложены конкретные варианты схем помехоустойчивого кодирования, позволяющих реализовать эффективное сокрытие и безопасное извлечение скрытой информации. Уделено внимание процедуре вкрапления информации в стегоконтейнер. Изложены варианты усложнения предложенной схемы сокрытия информации для повышения безопасности предлагаемой схемы сокрытия информации и ее стойкости к стегоанализу.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Рощин А.Б., Захаров В.В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

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

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

Рощин Андрей Борисович,

доцент кафедры 402, к.т.н., ФГБОУ ВО «Московский авиационный институт (национальный исследовательский университет)», optimist2000@yandex.ru

Захаров Вячеслав Владимирович,

старший преподаватель кафедры 402, ФГБОУ ВО «Московский авиационный институт (национальный исследовательский университет)», job.zaharov@yandex.ru

В настоящей статье проанализированы вопросы сокрытия информации (стеганографии) в помехоустойчивых кодах. Прослежена краткая история помехоустойчивого кодирования от их появления в пятидесятых годах двадцатого века до настоящего времени. Определены двоичные (коды Хемминга, коды Боуза-Чоудхури-Хоквенгема) и недвоичные (коды Рида-Соломона) блочные помехоустойчивые коды. Обозначена взаимосвязь между помехоустойчивым кодированием и сокрытием информации (стеганографией). Сформулированы основные требования к стегоконтейнерам в предлагаемой схеме сокрытия информации. Предложены конкретные варианты схем помехоустойчивого кодирования, позволяющих реализовать эффективное сокрытие и безопасное извлечение скрытой информации. Уделено внимание процедуре вкрапления информации в стегоконтейнер. Изложены варианты усложнения предложенной схемы сокрытия информации для повышения безопасности предлагаемой схемы сокрытия информации и ее стойкости к стегоанализу. Ключевые слова: помехоустойчивое кодирование, блочные коды, недвоичные коды Рида-Соломона, стеганография, корректирующая способность, коррекция ошибок.

о

о

см

О!

^

I-О ш т х

<

т о х

X

История помехоустойчивого кодирования ведет свое начало с изобретения в 1950 году американским математиком Ричардом Хеммингом двоичного кода, способного исправлять одиночные ошибки. Уже к началу 70-х годов двадцатого века в этой области было предложено огромное количество эффективных способов кодирования и декодирования с исправлением ошибок, многие из которых используются в телекоммуникационных системах по сей день. К таким кодам относятся коды Боуза-Чоудхури-Хоквенгема (коды БЧХ), коды Рида-Соломона (РС-коды), сверточ-ные коды и их комбинации (каскадные коды).

В начале 90-х годов двадцатого века в связи с активным развитием спутниковой и мобильной связи, беспроводного широкополосного доступа и цифрового телевидения, произошел новый всплеск интереса к алгоритмам помехоустойчивого кодирования. В результате появились очень эффективные и перспективные схемы кодирования: турбокоды, коды с низкой плотностью проверок на четность (LDPC-коды), фонтанные коды [1].

Основным принципом любого помехоустойчивого кода является внесение в передаваемый информационный цифровой поток избыточных символов, которые при декодировании позволяют исправить возникшие при восстановлении сигнала в приемной части битовые ошибки. Избыточные символы могут добавляться к информационной комбинации, не нарушая ее (систематическое кодирование), а могут перемешиваться с информационными символами (несистематическое кодирование). Приведем структуру кодовой комбинации систематического кода Хемминга (7,4):

1 1 1 1 0 1 1 0 | 1 | 0

Информационные символы Избыточные символы

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

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

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

Разумеется, не каждый помехоустойчивый код может быть использован в качестве стегоконтей-нера. К примеру, упомянутый выше код Хемминга (7,4) способен исправлять только одиночные ошибки и в каждую кодовую комбинацию можно будет вставить не более 1 бита скрываемой информации. Кроме того, необходим эффективный алгоритм выбора позиции разряда в кодовой комбинации, в которую будет осуществляться вкрапление информации. Ниже приводятся рекомендации по выбору параметров кода и способу вкрапления и извлечение информации.

Стегоконтейнер

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

В соответствии с этими рассуждениями в качестве стегоконтейнера предлагается использовать коды Рида-Соломона. РС-коды, известные также как недвоичные коды БЧХ, нашли широчайшее применения в системах цифровой памяти и связи: в системах космической связи, в системах цифровой записи CD и DVD, в телевидении высокой четкости [1].

В отличие от двоичных кодов БЧХ, оперирующих с элементами конечного поля GF(2), РС-коды работают с двоичными комбинациями, принадлежащими конечному полю GF(2m). Так, в конечном поле GF(24=16) один кодовый символ соответствует 4-битной комбинации, а в поле GF(28=256) один символ соответствует одному байту. Эта особенность РС-кодов очень привлекательна с точки зрения формирования стегоконтейнера: блок скрываемой информации, состоящий из 4 бит (полубайт) или 8 бит (байт) может быть записан целиком вместо одного символа кодовой комбинации РС-кода.

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

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

Для поиска позиции предлагается использовать генератор псевдослучайных чисел, например, алгоритм Блюм-Блюма-Шуба [2].

В этом алгоритме для вычисления последовательности случайных чисел используется итеративное равенство Х¡ = Хи2 (mod n), где n=p*q, p и q - простые числа, удовлетворяющие равенству p = q = 3 (mod 4). Начальное значение последовательности Х0 выбирается из диапазона чисел от 2 до n-1 и предполагается известным как отправителю, так и получателю информации.

Поскольку значение модуля n, используемого в алгоритме не совпадает с блоковой длиной РС-кода, предлагается приводить каждое из вычисленных значений последовательности Х¡ по модулю размерности конечного поля, в котором образован РС-код. Например, для РС-кода (15,9), образованного в поле GF(l6) значения Х¡ будут приводится по модулю числа 16, а для кода (255,239), образованного в поле GF(256) - по модулю числа 256.

Рассмотрим пример вкрапления информации в три кодовые комбинации РС-кода (15,9) с использованием генератора случайных чисел Блюм-Блюма-Шуба.

При следующих параметрах генератора случайных чисел:

p = 7, q = 11, n = p*q = 77, Хо=7 Будет формироваться следующая случайная последовательность:

x

X

о го А с.

X

го m

о

Х1= Х(Т(то0 n)=72(mod 77)=49

Х2=Х1(то0 n)=492(mod 77)=14

Хэ=Х22(то0 n)=142(mod 77)=42

ю 7

М О

to

а>

о

сч

I-«. OI

Полученная последовательность, взятая по модулю 16 дает нам числа: 1,14,10, которые будут определять позиции в кодовых комбинациях, в которые будет осуществляться вкрапление данных.

Приведем три комбинации РС-кода (15,9) и отметим в них позиции, подлежащие замене на встраиваемую информацию:

9 |1 1 1 9 0 10 5 7 13 6 14 15 3

2Д5 11 4 6 1 8 2 2 11 7 7 14 9 15

4 |12 0 10 3 7 1 5 9 8 3 3 1 7 14

После вкрапления последовательности данных: 2, 11, 14,... кодовые комбинации примут вид:

9J1 1 1 9 0 10 5 7 13 6 14 15 2 3

11|5_ 11 4 6 1 8 2 2 11 7 7 14 9 15

|4 |12 0 10 14 7 1 5 9 8 3 3 1 7 14

В приемной части генератор случайных чисел, аналогичный описанному выше позволит извлечь вкрапленные данные из кодовых комбинаций, а декодер будет способен извлечь информацию, заложенную в кодовые комбинации, поскольку с точки зрения декодера вкрапленная информация является одиночными ошибочно принятыми символами. Декодер РС-кода (15,9) способен исправить до трех символьных ошибок в кодовой комбинации и без труда справится с ошибками одиночными.

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

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

Литература

1. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. М.: «Техносфера», 2005

2. Lenore Blum, Manuel Blum, and Michael Shub. «A Simple Unpredictable Pseudo-Random Number Generator», SIAM Journal on Computing, volume 15, pages 364—383, May 1986

Application of block error-correction codes for

steganographic concealment of information Roshchin A.B., Zakharov V.V.

Moscow Aviation Institute (National Research University) The article deals with the questions of data concealment (steganography) in error-correction codes. A short history of error-correction coding is described: from its origins to nowadays. Binary codes (such as Hamming codes, BCH-codes) as well as non-binary codes (Reed-Solomon codes) are defined. Relationship between error-correction coding and steganografy is indicated. Main requirements to stegocontainers in the proposed scheme of data concealment are described. Definite coding schemes that allow realizing of effective procedures of data hiding and safe extraction of data are proposed. Some attention is paid to procedure of data insertion to stegocontainer. A few variants of proposed scheme of data concealment improvement are suggested. These variants are able to make the scheme more safe and resistant to stegoanalisys. Key words: error correction coding, linear block codes, nonbinary Reed-Solomon codes, steganography, error-correcting capability, error correction

References

1. Morelos-Zaragoza R. The art of error-correcting coding. M .:

"Technosphere", 2005

2. Lenore Blum, Manuel Blum, and Michael Shub. "A Simple Unpredictable Pseudo-Random Number Generator," SIAM Journal on Computing, volume 15, pages 364-383, May 1986

О Ш

m x

3

<

m о x

X

i Надоели баннеры? Вы всегда можете отключить рекламу.