Некоторые приложения теории кодирования. Учебное пособие
.pdf
9.3. Матричное сокрытие
9.3. Матричное сокрытие
Построим алгоритм embed на основе [n, k]2-кода C, имеющего радиус покрытия R. Пусть H – проверочная матрица кода C, c Fn2 — блок контейнера, m Fn2−k – блок секретного сообщения. И пусть
cHT = m′ ̸= m.
Задача заключается в преобразовании контейнера c в стегоконтейнер z так, чтобы zHT = m. Преобразовать — это значит найти вектор e, как можно меньшего веса, чтобы
(c + e)HT = m.
Перепишем это равенство в следующем виде:
(c + e)HT = cHT + eHT = m′ + eHT = m.
Получаем, что нужно решить уравнение HeT = m − m′, требуя, чтобы вес вектора e был как можно меньше. Алгоритм extract — это умножение вектора z на матрицу HT .
Так как код имеет радиус покрытия R, то wt(e) R. Следовательно,
α = n −n k, e (n − k)/R.
Заметим, что при использовании матричного сокрытия нет свободы выбора изменяемых координат в векторе c, по сравнению с наивной реализацией embed, что не всегда допустимо, например, из-за наличия битов в покрывающем объекте, изменение которых может снизить скрытность.
9.4. Пример
Рассмотрим случай, когда покрывающим объектом является неподвижное RGB-изображение (Red-Green-Blue) размера 100 × 100 пикселей, а алгоритм getbits состоит в построении контейнера C из наименее значащих битов в тройках байтов, описывающих цвет каждого пикселя. Именно, графический файл представляется как последовательность троек байтов, где первый байт, входящий в каждую тройку, описывает яркость красного
91
Глава 9. Схема сокрытия информации
цвета, второй байт – яркость зеленого цвета, третий байт – яркость синего цвета. Для рассматриваемого изображения длина контейнера составит 100 × 100 × 3 = 30000 битов. При наивном сокрытии одного бита в блоке из семи битов эффективность составит 2, а относительная длина – 1/7 (535 байтов). Если же использовать [7, 4]2-код C, с проверочной матрицей H вида (6.7), который имеет радиус покрытия 1, то эффективность этого способа сокрытия не менее 3, а относительная длина – 3/7 (1607 байтов).
9.5. Метод «мокрая бумага»
Пусть контейнер представляет собой вектор C FN2 , в который требуется вложить сообщение m Fm2 , при этом часть координат контейнера изменять запрещается (это могут быть, например, биты, изменение которых повысит вероятность обнаружения факта сокрытия). Такие координаты называются «мокрыми», а оставшиеся — «сухими». Предполагается также, что получатель не различает «сухие» и «мокрые» координаты и должен извлекать данные, не обладая этой информацией. Пусть ω — множество «сухих» координат контейнера C. Обозначим стегоконтейнер через z. Отправитель и получатель заранее договариваются об используемой (l×m)-матрице D (l m), и извлечение должно производиться по правилу:
DzT = mT . |
(9.1) |
Введем обозначение v = z−C. Тогда D(C+v)T = mT , DvT = mT −DCT = me T . Пусть vω — вектор, составленный из координат вектора v с номерами из множества «сухих» координат ω, а vω¯ — вектор из оставшихся координат. Тогда DvT = DωvωT + Dω¯ vωT¯ , где Dω — матрица, составленная из столбцов матрицы D с номерами из ω. Так как vω¯ = 0, то
DωvT = mT . (9.2)
ω e
Таким образом, для вложения необходимо решить систему (9.2) относительно vω при известных D, ω и me . Отметим, что при множественных передачах сообщений некоторую трудность вызывает согласование матрицы D на приемной и передающей стороне. Авторы метода в [14] предлагают управлять процессом построения матриц с помощью генератора псевдослу-
92
9.6. Конструкция ZZW
чайных чисел. Кроме того, приемной стороне может быть неизвестна длина передаваемого сообщения: отправитель будет вкладывать информацию наибольшей возможной длины, которая может отличаться от передачи к передаче, в зависимости от совместности системы (9.2). Для решения этой проблемы авторы метода предлагают резервировать в начале сообщения L = log2 M бит, где M — максимально возможная длина вкладываемого сообщения, обычно равная длине контейнера. В этом случае получатель может сгенерировать первые L строк матрицы D, получить начало передаваемого сообщения и узнать его длину. В дальнейшем производится построение всей матрицы D необходимого размера и извлечение сообщения. Емкость канала уменьшается незначительно и асимптотически не влияет на эффективность.
9.6. Конструкция ZZW
Для описания конструкции ZZW [15] рассмотрим контейнер C FN2 , N = m2r, который представляется в виде матрицы:
|
c1,2 |
|
c2,2 |
. . . |
cm,2 |
|
|
T |
T |
T |
|
|
|||
|
c1,1 |
|
c2,1 |
. . . |
cm,1 |
|
|
|
|
|
|
|
|||
. |
|
|
. |
|
... |
. |
|
|
= |
c1 r |
c2 r |
. . . cmr |
. |
(9.3) |
|
|
|
|
|
|
|
|
|
|
|
|
" c1,2 |
c2,2 |
. . . cm,2 |
# |
|
c1,2r |
|
1 |
c2,2r |
|
1 . . . cm,2r |
|
1 |
|
|
|
|
|
|
||
|
|
− |
|
|
− |
. . . |
|
− |
|
|
|
|
|
|
|
|
c1,2r |
|
c2,2r |
cm,2r |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для контейнера вида (9.3) предлагается образовать два стегоканала. Первый из них для удобства назовем каналом сумм. Он представляет собой
вектор y = (y1, . . . , ym), yi = 2j=1r ci,j для всех i = 1, ..., m. В y может быть вложено сообщение m1 = (m1,1, . . . , m1,m) путем инвертирования одного
любого бита в i-ом столбце матрицы (9.3), если m1,i ̸= yi. Обозначим через τ множество номеров координат yi, которые необходимо изменить для вложения сообщения m1 в y:
τ = {i {1, . . . , m}: m1,i ̸= yi}, |τ| = µ. |
(9.4) |
Для случайного контейнера (9.3) вложение можно осуществить, изменив в нем в среднем m/2 бит. Второй стегоканал образуется из векторов c1,...,cm
93
Глава 9. Схема сокрытия информации
с помощью проверочной матрицы H для [2r −1, 2r −r −1, 3]2-кода Хэмминга. Так как радиус покрытия кода Хэмминга равен единице, то для любого вектора si Fr2 найдется такой вектор ei веса Хэмминга не более 1, что H(ci + ei)T = sTi . Иными словами, изменив значение не более чем одного бита в векторе ci, можно получить любой наперед заданный синдром. Это используется для вложения сообщения m2 по методу «мокрой бумаги» во второй стегоканал, называемый далее каналом векторов. Контейнером во втором канале является последовательность бит синдромов si, «сухими» координатами являются биты тех синдромов, номера которых принадлежат множеству τ вида (9.4), а биты остальных синдромов являются «мокрыми». Для получения нужного синдрома достаточно внести одно изменение в исходный вектор ci. Если i τ, но вектор ci требуется оставить без изменений при вложении по методу «мокрой бумаги», то производится инверсия бита ci,2r в контейнере вида (9.3). Таким образом, в контейнер вида (9.3) будут вложены сообщения m1 и m2.
Параметры стегосистемы зависят от способа вложения в канал сумм. Кроме того, существует некоторая недетерминированность в емкости канала векторов, поскольку количество «сухих» позиций зависит от результата вложения в канал сумм. Тем не менее, в рассматриваемом варианте в контейнер длины N = m2r возможно вложить l = m + rm2 бит (в среднем), изменив значения k = m/2 бит (в среднем).
Верхняя граница для соотношения параметров стегосистемы:
l nH2(k/N),
где H2(x) = −x log2 x−(1−x) log2(1−x), 0 x 1/2 — функция двоичной энтропии. Для отношения скорости и эффективности сокрытия эта граница
может быть переформулирована так:
e(α) |
α |
, 0 α 1, |
(9.5) |
H−1(α) |
|||
2 |
|
|
|
где H2−1 — функция, обратная функции двоичной энтропии. При определенных значениях параметров эффективность вложения в рамках ZZWконструкции близка к верхней границе (9.5).
94
9.7. Пример
9.7. Пример
Рассмотрим пример сокрытия информации по методу ZZW. Пусть m = 4, r = 3, то есть контейнер должен иметь длину N = m2r = 32 бита. Предположим также, что в методе «мокрая бумага», который используется для сокрытия информации в канале векторов, выбрана (6 × 12)-матрица ((rm/2 × rm)-матрица) D полного ранга вида
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
|
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
D = |
1 0 0 1 0 1 0 0 1 0 0 0 . |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пусть C F322 — контейнер, (m1, m2) F42 × F62 — сообщение:
C = (11010001111100111110011001000100)
(m1, m2) = (1001, 101011).
Представим контейнер C в виде (8 × 4) матрицы (как показано в (9.3)):
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
1 |
1 |
1 |
0 |
|
|
|
|
|
|
|
0 |
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
T |
T |
T |
T |
|
|
1 1 0 0 |
= |
c1 |
c2 |
c3 |
c4 |
. |
(9.6) |
|||
|
|
|
|
" 1 1 0 0 # |
||||||
0 0 0 0 |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Канал сумм представляет собой вектор y = (0011), являющийся суммой всех строк матрицы (9.6), в том числе и последней. Так как
y m1 = (0011) (1001) = (1010),
95
Глава 9. Схема сокрытия информации
то необходимо изменить под одному биту в первом и третьем столбцах матрицы (9.6), чтобы вложить сообщение m1 в канал сумм. Таким образом, τ = {1, 3}. Теперь построим «мокрые» биты канала векторов. Такими битами будут синдромы векторов c2 и c4 относительно проверочной матрицы H [7, 4, 3]2-кода Хэмминга:
H = |
0 |
1 |
1 |
0 |
0 |
1 |
1 . |
|
0 |
0 |
0 |
1 |
1 |
1 |
1 |
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
Имеем: c2HT = (011), c4HT = (100). Чтобы вложить сообщение m2 = (101011) в канал векторов, необходимо решить уравнение
(x1, x2, x3, 0, 1, 1, x4, x5, x6, 1, 0, 0)DT = (101011).
Перепишем это уравнение в виде:
1 0 0 0 0 0 x2 |
|
0 |
||||
0 0 1 0 |
0 |
0 |
|
x1 |
|
0 |
1 0 0 0 0 1 x3 |
= |
0 . |
||||
|
|
|
|
|
|
|
1 1 1 0 1 |
0 |
· x4 |
|
0 |
||
|
|
|
|
|
|
|
1 0 0 0 1 |
1 x5 |
|
1 |
|||
|
|
|
|
|
|
|
0 0 1 1 0 |
1 x6 |
|
0 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отметим, что уравнение не всегда может иметь решение. Поэтому следует подбирать (v ×mr)-матрицу D так, чтобы ее любая (v ×mr/2)-подматрица была ранга v (если полагать, что в среднем будет m/2 «мокрых» синдромов). Отметим, что всегда можно подобрать такую матрицу D за счет уменьшения v (за счет уменьшения длины вкладываемого сообщения m2).
В нашем примере решение существует, так как полученная (6 × 6)- подматрица имеет ранг 6. Решением будет вектор
(x1, x2, x3, x4, x5, x6) = (0, 1, 0, 0, 1, 0).
Следовательно, к вектору c1 следует добавить такой вектор e1 веса 1, чтобы (c1 +e1)HT = (010), а к вектору c3 — вектор e3 веса 1, чтобы (c3 +e3)HT =
96
9.8. Вопросы для самоконтроля
(010). Так как c1HT = (111), c3HT = (001), то
e1HT = (101), e3HT = (011),
откуда e1 = (0000100), e3 = (0010000).
Таким образом, изменив два бита контейнера длиной 32 бита, удалось вложить 10 бит сообщения. Стегоконтейнер имеет вид (измененные биты обведены):
|
1 |
1 |
1 |
1 |
|
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
|
1 |
0 |
0 |
. |
|
0 |
|||
|
|
|
|
|
|
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
1 |
0 |
|
|
|
|
|
|
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
9.8. Вопросы для самоконтроля
1.Основные элементы стегосистемы.
2.Наивное сокрытие. Матричное сокрытие.
3.Метод «мокрая бумага». Конструкция ZZW.
97
Литература
1.Huffman W Cary, Pless Vera. Fundamentals of error-correcting codes. — Cambridge university press, 2010.
2.Rao Thammavarapu RN, Nam Kil-Hyun. Private-key algebraic-coded cryptosystems // Conference on the Theory and Application of Cryptographic Techniques / Springer. — 1986. — P. 35–48.
3.Struik Ren´e, van Tilburg Johan. The Rao-Nam scheme is insecure against a chosen-plaintext attack // Conference on the Theory and Application of Cryptographic Techniques / Springer. — 1987. — P. 445–457.
4.Blum Avrim, Kalai Adam, Wasserman Hal. Noise-tolerant learning, the parity problem, and the statistical query model // Journal of the ACM (JACM). — 2003. — Vol. 50, no. 4. — P. 506–519.
5.Hopper Nicholas J, Blum Manuel. Secure human identification protocols // Advances in Cryptology—ASIACRYPT 2001: 7th International Conference on the Theory and Application of Cryptology and Information Security Gold Coast, Australia, December 9–13, 2001 Proceedings 7 / Springer. — 2001. — P. 52–66.
6.Gilbert Henri, Robshaw Matthew JB, Seurin Yannick. How to encrypt with the LPN problem // Automata, Languages and Programming: 35th International Colloquium, ICALP 2008, Reykjavik, Iceland, July 7-11, 2008, Proceedings, Part II 35 / Springer. — 2008. — P. 679–690.
7.Gaborit Philippe, Lauradoux Cedric, Sendrier Nicolas. Synd: a fast codebased stream cipher with a security reduction // 2007 IEEE international symposium on information theory / IEEE. — 2007. — P. 186–190.
98
Литература
8.McEliece Robert J. A public-key cryptosystem based on algebraic // Coding Thv. — 1978. — Vol. 4244. — P. 114–116.
9.Niederreiter H. “Knapsack-type cryptosystems and algebraic coding theory”, Prob. of Control and Inf // Theory. — 1986. — Vol. 15, no. 2. — P. 159.
10.Hofheinz Dennis, H¨ovelmanns Kathrin, Kiltz Eike. A modular analysis of the Fujisaki-Okamoto transformation // Theory of Cryptography Conference / Springer. — 2017. — P. 341–371.
11.Courtois Nicolas T, Finiasz Matthieu, Sendrier Nicolas. How to achieve a McEliece-based digital signature scheme // Advances in Cryptology—ASIACRYPT 2001: 7th International Conference on the Theory and Application of Cryptology and Information Security Gold Coast, Australia, December 9–13, 2001 Proceedings 7 / Springer. — 2001. — P. 157– 174.
12.Коржик В И, Яковлев Виктор Алексеевич. Неасимптотические оценки эффективности кодового зашумления одного канала // Проблемы передачи информации. — 1981. — Vol. 17, no. 4. — P. 11–18.
13.Heegard Chris. Partitioned linear block codes for computer memory with’stuck-at’defects // IEEE Transactions on Information Theory. — 1983. — Vol. 29, no. 6. — P. 831–842.
14.Writing on wet paper / Fridrich Jessica, Goljan Miroslav, Lisonek Petr, and Soukal David // IEEE Transactions on signal processing. — 2005. — Vol. 53, no. 10. — P. 3923–3935.
15.Zhang Weiming, Zhang Xinpeng, Wang Shuozhong. Maximizing steganographic embedding efficiency by combining Hamming codes and wet paper codes // Information Hiding: 10th International Workshop, IH 2008, Santa Barbara, CA, USA, May 19-21, 2008, Revised Selected Papers 10 / Springer. — 2008. — P. 60–71.
99
Учебное пособие
Косолапов Юрий Владимирович
Некоторые приложения теории кодирования
Подписано в печать 25.12.2024 г. Бумага офсетная. Формат 60×84 1/16. Тираж 30 экз. Усл. печ. лист. 5,81. Уч.-изд. л. 5,0. Заказ № 9809.
Издательство Южного федерального университета.
Отпечатано в отделе полиграфической, корпоративной и сувенирной продукции Издательско полиграфического комплекса КИБИ МЕДИА ЦЕНТРА ЮФУ.
344090, г. Ростов на Дону, пр. Стачки, 200/1, тел (863) 243 41 66.
