УДК 004.056.53
А.В. Клименко1, В.Н. Горбачев2
1 Санкт-Петербургский Горный университет
2 Высшая школа печати и медиатехнологий Санкт-Петербургского государственного университета промышленных технологий и дизайна, Санкт-Петербург
СЛЕПОЕ ДЕТЕКТИРОВАНИЕ ЦИФРОВОГО ВОДЯНОГО ЗНАКА В ИЗОБРАЖЕНИЯХ С ПАЛИТРОЙ БЕЗ ИЗМЕНЕНИЯ ЦВЕТА
Аннотация
В статье предлагается стеганографическая схема со слепым детектированием для сокрытия бинарного образца в цветных изображениях с палитрой. В алгоритме встраивания используются коды Лехмера для кодирования перестановкой строк палитры, в которых обычно требуется наличие палитры исходного контейнера. Найденные преобразования между изображением с палитрой и RGB-изображением позволяют извлечь встроенные данные без исходного контейнера.
Ключевые слова:
изображение с палитрой, стеганография, коды Лехмера, цифровой водяной знак, защита информации.
A.V. Klimenko, V.N. Gorbachev
THE BLIND DETECTION FOR PALETTE IMAGE WATERMARKING WITHOUT CHANGING THE COLOR
Abstract
To hide a binary pattern in the palette image a steganographic scheme with blind detection is considered. The embedding algorithm uses the Lehmer code by palette color permutations for which the cover image palette is generally required. The found transformation between the palette and RGB images allows to extract the hidden data without any cover work.
Keywords:
palette image, steganography, Lehmer code, digital watermark, information protection. Введение
Изображения с палитрой или индексированные изображения широко распространены в сети Интернет, и различные стеганографические приложения для защиты данных изображений имеют широкое применение. Графические форматы при сохранении исходного цифрового изображения генерируют палитру и массив данных, который может быть использован для сокрытия информации. Изменение набора данных или палитры в виде LSB-встраивания часто приводит к возникновению видимых артефактов. Возможные решения используют сортировку палитры, четность и адаптивное встраивание [1, 2] и другие.
Многочисленные техники встраивания основаны на том факте, что переупорядочивание цветов палитры и реиндексация набора данных не вызывают заметное изменение видимости изображения. Стеганографическая программа GIF-Shuffle применяет такой подход для GIF-изображений [3]. GIF-Shuffle кодирует сообщения при помощи перестановки строк палитры и
использует алгоритм, который генерирует перестановки в соответствии с заданным целым. Таким же способом в приложении SteganoGifPaletteOrder используются перестановки цветов в палитрах файлов формата GIF [4]. Наряду с цветными изображениями, такая техника, известная как GIF-it-Up позволяет встраивать скрытую информацию в полутоновое GIF-изображение [5]. Кодирование перестановками, также известное как коды Лехмера [6], предполагает выбор исходного упорядочения. Например, программа GIF-Shuffle сортирует палитру RGB-цветов GIF-файла, используя «естественный» порядок, то есть каждому цвету присваивается значение, рассчитываемое по формуле 6536R + 256G + B, и затем осуществляется сортировка по значениям. Это значит, что для восстановления скрытой информации требуется этот «естественный» порядок или, другими словами, требуется оригинал. С этой точки зрения стеганографическая система, использующая код, полученный при помощи перестановки, будет принадлежать классу систем с неслепым детектированием. Это не является существенным ограничением для системы. Такой «естественный» порядок может быть реализован в виде секретного ключа. Ключ распределяется среди легитимных пользователей при помощи многочисленных классических криптографических протоколов и при помощи квантового протокола, такого как BB84 [7].
В данной статье предлагается схема со слепым детектированием. Выбор обусловлен тем, что исходное изображение, так называемый cover work, может быть сгенерировано из стегоизображения с палитрой, если оно будет преобразовано в его RGB-представление. Это возможно благодаря специальному преобразованию между изображением с палитрой и RGB-изображением. Главная цель нашей статьи - предложить данную схему и обсудить встраивание бинарного образца с использованием кода Лехмера.
Для того чтобы повысить уровень секретности, приложения GIF-Shuffle и SteganoGifPaletteOrder используют кодирование. Возможным алгоритмом кодирования может быть ICE (Information Concealment Engine - устройство сокрытия информации) с 64-битным ключом [8]. Действительно, чтобы скрыть бинарные изображения, шифр Вернама может быть подходящим. Когда ключ внедряется при помощи случайной матрицы, может быть построено приложение типа одноразового блокнота. Это совершенное кодирование, если оно правильно хранится [9]. На практике использование приложений типа одноразового блокнота ограничено, так как для них требуется хранение и распределение объемного случайного ключа, что является очень затратным. Однако их современные разработки, основанные на оптическом распределении частиц случайной структуры, могут быть эффективны [10].
Статья организована следующим образом: вначале коротко обсуждается код Лехмера, затем предложены преобразования изображений с палитрой, в конце описана стеганографическая система со слепым детектированием.
Коды Лехмера
Код Лехмера пересчитывает перестановки при помощи целого числа, представленного в факториальной системе счисления.
Положительное число m может быть представлено в факториальной системе счисления как
п
т = 2 а,(к —1)! , (1)
к = 1 к
где разряды факториала а^ = [т /(к - 1)!]шосС(к) принимают значения из набора 0, 1, 2,..., к — 1, и функция целая часть [х] вычисляет наибольшее целое, меньшее либо равное х. Выражение (1) может быть представлено в виде факториала «-разрядного регистра, который хранит любое целое число из диапазона [0, п!—1]. Например, шесть факториальных разрядов от а6 до а1 числа 251 записываются как
251= (2, 0, 2, 0, 1, 0) = 2 • 5!+0 • 4!+2 • 3!+0 • 2!+1-1!+0 • 0! . (2)
Коды Лехмера являются одним из способов кодирования перестановок с использованием инверсии. Пара, составленная из элемента хк и его соседа справа х ■, к < ] , образует инверсию, если х^ > х.. Пусть ^ является числом
всех инверсий х^, тогда вектор Ч = (Чи, Ч2, Ч) может однозначно описать все перестановки для п входов. Так как имеется п — к элементов справа от элемента хк, он образует не больше чем п — к инверсий и ^ может принимать значения 0, 1, 2., п — к, где 0 означает отсутствие инверсии и шах^ = п — к. Например, пусть перестановка из п = 6 элементов будет Р(012345) = 204153, где 012345 является единичной перестановкой. Тогда шахЧ = (5,4,3,2,1,0), где 0 обозначает тот факт, что элемент 5 - последний, и у него нет элементов, расположенных справа от него. Для этого случая
Р(012345) = 2 0 4 1 5 3, (3)
Ч = (2, 0, 2, 0, 1, 0), где первый элемент 2 из Ч означает, что первый элемент перестановки 2 образует инверсии с 0 и 1.
Приведенные примеры из (2) и (3) показывают, что существует взаимно однозначное соответствие между перестановкой, представленной ее инверсиями, и целым числом т, представленным его факториальными цифрами 251= (2, 0, 2, 0, 1, 0)^ 204153.
Другой пример — перестановка с шахЧ = (п — 1 ,.,2, 1, 0), что соответствует полной инверсии входов риу (012. ..п — 1 = п —1...210)
п!—1 = (п — 1,..., 2, 1, 0)! <->п —1,...210. (4)
Коды Лехмера позволяют закодировать любое цифровое изображение, используя перестановку. Например, предположим, что бинарное изображение -это набор бинарных разрядов целого числа т, которое может быть представлено в факториальной системе счисления. Рис. 1 иллюстрирует первые шаги. Бинарное изображение из двух цветов (красный и черный), размером 41^41 пикселов, преобразуется в целое число т, которое содержит 503 десятичных и 256 факториальных разрядов. Факториальные разряды упорядочиваются в матрицы размером 16^16 пикселов и показаны на рис. 1, г.
m = 6564698395969575619217434227940305 2262927514418706831466750223276003872 1099600513329241782566259050945908508 4761196908058180120096364808627684263 4088484962456969448805852822358553400 1405291968405934503573972594829057605 8476812383597175408710472667191620399 1245407585476705668698314062405030956 4260610687404629442145262228325576745 6702827221058999922457074963411934271 9575008934491432084883380374181890845 2913113109912918283394016720617777589 0576106684850954733407687284808993361 0177648795478168370151424.0
а) б)
m = (0, 0, 2, 2, 2, 0, 6, 2, 8, 5, 2, 2, 0, 9, 8, 1, 11, 6, 11, 16, 18, 8, 10, 20, 2, 17, 11, 19, 8, 11, 5, 14, 24, 15, 21, 32, 16, 13, 10, 34, 35, 38, 36, 28, 27, 4, 1, 17, 30, 34, 23, 35, 43, 25, 14, 52, 15, 47, 27, 45, 28, 2, 33, 16, 31, 4, 59, 56, 65, 67, 8, 44, 69, 48, 52, 74, 43, 58, 18, 51, 63, 10, 79, 59, 65, 24, 64, 44, 54, 43, 7, 74, 23, 86, 45, 72, 30, 77, 61, 94, 6, 83, 83, 4, 92, 40, 18, 61, 105, 104, 17, 57, 64, 38, 74, 36, 41, 8, 31, 10, 14, 37, 62, 80, 42, 112, 97, 86, 100, 105, 89, 28, 3, 60, 35, 7, 25, 122, 126, 126, 105, 27, 77, 126, 55, 132, 93, 31, 4, 17, 78, 20, 93, 145, 81, 31, 126, 22, 143, 118, 19, 126, 103, 60, 60, 66, 159, 157, 64, 53, 70, 76, 8, 152, 66, 123, 128, 121, 2, 128, 20, 102, 115, 82, 179, 150, 38, 97, 188, 173, 68, 11, 49, 127, 97, 44, 32, 180, 54, 106, 91, 159, 32, 107, 30, 196, 92, 132, 17, 188, 189, 11, 67, 80, 152, 135, 148, 66, 87, 169, 180, 68, 159, 101, 179, 63, 122, 142, 197, 32, 229, 52, 230, 51, 51, 22, 234, 14, 206, 227, 174, 71, 73, 196, 243, 68, 28, 65, 199, 39, 163, 71, 232, 252, 4, 0)!
в) г)
Рис. 1. Кодирование бинарного изображения при помощи факториальных разрядов целого числа: а) бинарное изображение размером 41х 41 пикселов;
б) 503 целых числа, относящихся к бинарному изображению; в) 256 факториальных разрядов целого числа т; г) матрица размером 16х16 пикселов, представляющая факториальные разряды.
Затем, чтобы сгенерировать желаемую перестановку для заданного числа т, должна быть выбрана единичная перестановка. Этот факт является важным для процедур внедрения цвета для изображений с палитрой, основанных на цветовых перестановках. Для этого случая единичная перестановка является
заданной палитрой оригинала и это требуется для детектирования скрытых данных. В результате алгоритм детектирования будет использовать исходное изображение-оригинал и будет неслепым. Однако палитра оригинала может быть получена из стегоизображения благодаря отдельным свойствам преобразования цвета палитры.
Преобразование между изображением с палитрой и цветным изображением
Одно индексированное изображение может быть конвертировано в другое таким образом, что оба изображения будут иметь одинаковое RGB-представление, которое может быть преобразовано обратно только в одно из них.
С математической точки зрения изображение с палитрой или индексированное изображение может быть представлено в виде тензорного произведения С ¡ = I ® P, где I является набором данных или массивом
индексов, а P является палитрой, которая отображает цвета в RGB модели. Когда индекс i е I ссылается на палитру, из нее выбирается цвет, и
осуществляется преобразование Сpal ^ Crgb, где С ь является RGB- представлением изображения с палитрой, которое мы видим на экране.
Стандартное преобразование между цветным изображением и изображением с палитрой является необратимым. Обычное представление содержит 24 бита для цветного пиксела и 8 бит на пиксел для индекса палитры. Большое число алгоритмов квантования цвета позволяет конвертировать 24-битное цветное изображение в изображение с палитрой с 8-битным цветом Сpai (8). При этом энтропия не сохраняется и это преобразование с потерями, однако полученное изображение с палитрой может выглядеть хорошо.
Пусть изображение С ¡ (8) имеет свое RGB-представление при 8-битном
цвете С ¿. Используя некоторые алгоритмы квантования цвета, мы преобразуем
это RGB-изображение обратно в палитровое. Предполагается, что эти алгоритмы являются детерминированными, поэтому очевидно, что выходом становится СыЛ (8). Это значит, что существует взаимно однозначное соответствие между
С al (8) и Сш (8):
С^ъ « Сш. (5)
Но обратное преобразование может не соединить все пары изображений, и существуют изображения с палитрой, для которых (5) является необратимым.
Изображения с палитрой могут быть преобразованы из одного в другое с использованием различных подходов. Одновременное изменение индекса и цветов палитры может привести к преобразованию Сpal ^ Spal, где оба
изображения с палитрой имеют одинаковое RGB-представление С ¿. Пусть
Сpal и СггЪ связаны соотношением (5). Тогда очевидно, что алгоритмы
квантования преобразуют СтгЪ в Сpal вместо Spal. Это описывается следующим
отображением:
СтгЪ ^ Сpal ^ Spal ^ СтгЪ . (6)
Рис. 2 иллюстрирует отображение, заданное выражением (6). Здесь цветное изображение RGB Crgb и изображение с палитрой Cpal образованы
одно из другого при помощи функций в Matlab rgb2ind и ind2rgb в соответствии с выражением (5). Два изображения с палитрой заданы их массивами индексов, полутоновыми образцами и палитрами. Изображение S ^ является негативом от
C ¡. Негатив образуется при помощи замены индексов и цветов палитры или строк палитры с i ^ i = 255 — i. Являясь негативами друг друга, изображения, Cpal и Spal имеют одинаковое RGB-представление, заданное при помощи Crgb.
Стеганографическая схема со слепым детектированием
Два изображения с палитрой, которые имеют одинаковую RGB-видимость, могут быть представлены как контейнер и стегоконтейнер в стеганографической схеме, где скрытое сообщение может быть извлечено из стегоизображения.
Два изображения с палитрой, представленные на рис. 2, имеют одинаковый вид и одно из них (Spal) образуется из C pal при инверсии их цветов
и индексов. Используя этот подход, сообщение встраивается, и данная процедура может быть легко выполнена. Это следует из того, что кодирование Лехмера осуществляет перестановки таким образом, что инвертируются все n цветов, имеющие целое m = n!—1 (4). Это целое содержит не меньше чем N = log2(n!) бинарных разрядов и является сообщением M, введенным в палитру. Для палитры из n = 256 цветов N > 1684 и с точностью до 3 битов находим, что M является матрицей размером 41 х 41 из единиц, что может выглядеть как черный квадрат. Это означает, что кодирование сообщения в виде «черного квадрата» является полной инверсией цветов палитры.
Рис. 3 иллюстрирует введение бинарного изображения при помощи кода Лехмера. Бинарное изображение размером 41х 41 пикселов, представленное на рис. 1, а, внедряется в контейнер Cpal (рис. 2, б). Стегоизображение Spal, представленное на рис. 3, б, создается при помощи найденной перестановки цветов палитры и индексов C Часть перестановки приведена внизу на рис. 3, в.
После того, как сообщение встроено, полученное стегоизображение может быть сохранено в таких графических форматах, как GIF и PNG для дальнейшего использования в преобразованиях без какой-либо потери информации. Для того, чтобы извлечь сообщение из S , оно должно быть
загружено из GIF и PNG и в соответствии с (6), решение находится после выполнения следующих шагов:
Сра1
С^ь Бра1 ^
а)
б)
в)
г)
Рис. 2. Преобразования изображений: а) схема преобразования между цветным изображением и изображением с палитрой; б) и г) изображение с палитрой С и его негатив Б , представленные их наборами данных, полутоновыми изображениями и палитрами; в) те изображения с палитрой, которые имеют одинаковое ЯОБ-представление С .
а) б)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0 5 254 234 73 166 41 204 68 30 74 253 205 80 78 184 241 219 16 251 25 57 58 250 60 252
в)
Рис. 3. Введение бинарного изображения при помощи кода Лехмера: а) палитра контейнера; б) палитра стегоизображения, полученная перестановкой цветов и индексов; в) часть перестановки. Бинарное изображение и контейнер показаны на рис. 2, б), и 1, а).
• палитра извлекается из S ра1 и контейнер Cра1 генерируется из C b,
которое является представлением цвета обоих изображений - стегоизображения и контейнера;
• палитра извлекается из C ¡, которое является единичной перестановкой цветов;
• скрытое изображение извлекается из палитр при помощи кодирования Лехмера.
Следует отметить, что представленная схема не является секретной с точки зрения принципа Керхгоффса, так как она не имеет секретного ключа. В качестве возможного решения может быть предложено генерирование случайной бинарной матрицы, имеющей размер, равный размеру бинарного сообщения, и сочетание этих матриц, например, при помощи сложения по модулю (modular addition). Когда матрица является случайной и никогда не используется заново, найденная система (также известная как одноразовый блокнот) является неразрушимой.
Заключение
Разработана стеганографическая система со слепым детектированием для встраивания бинарного изображения в цветное изображение с палитрой. Алгоритм встраивания основан на кодировании строк палитры с использованием кодов Лехмера. Приведены примеры встраивания и извлечения изображений с использованием данной системы. Предложенная система может быть использована для внедрения цифрового водяного знака в цветное изображение с целью защиты информации.
Литература
1. Fridrich, J., Secure steganographic methods for palette images / J. Fridrich, R. Dui // In 3rd Information Hiding Workshop, Lecture Note on Computer Science (1768), New York, Heidelberg, 1999, Springer-Verlag. - Р.47-60.
2. Chang, C-C. Hiding data in colour palette images with hybrid strategies / C-C. Chang, C-C. Lin, Y-H. Chen // The Imaging Science Journal, Volume 57, Issue 1, 1 February 2009. -Р.19-29.
3. Режим доступа: http://www.darkside.com.au/gifshuffle
4. Режим доступа: http://users. skynet.be/glu/sgpo .htm
5. Lian, Shiguo. Yan Zhang. Handbook of Research on Secure Multimedia Distribution / Shiguo Lian, Yan Zhang // IGI Global, 2011. - Режим доступа: http://www.theargon.com/achilles/steganography/gif-it-up/
6. Lehmer, D.H. Teaching combinatorial tricks to a computer / D.H. Lehmer // Proc. Sympos. Appl. Math. Combinatorial Analysis, Vol. 10, Amer. Math. Soc., Providence, R. I., 1960. - Р.179-193.
7. Bennett, C.H. Quantum public key distribution system / C.H. Bennett, G. Brassard // IBM Tech. Discl. Bull. 28, 1985. - Р.3153- 3163.
8. Режим доступа: http://www.darkside.com.au/ice/index.html
9. Shannon, C. Communication theory of secrecy systems / C. Shannon // Bell System Technical Journal. Volume 28, Issue 4, October 1949. - Р.656-715.
10. Horstmeyer, R. Physical key-protected one-time pad / R. Horstmeyer, B. Judkewitz, I. Vellekoop, S. Assawaworrarit, C. Yang // [physics. optics], 26 Nov 2013. - Режим доступа: https://arxiv.org/pdf/1305.3886v2.pdf
Сведения об авторах
Клименко Андрей Валерьевич - к.т.н, доцент СПГУ, е-mail: [email protected]
Andrei V. Klimenko - Ph.D. (Tech. Sci.), associate professor of SPMU
Горбачев Валерий Николаевич - к.т.н, доцент ВШПМ СПГУПТиД, е-mail: valery. [email protected]
Valery N. Gorbachev - associate professor of High School of Print and Media SPUPTD