Steganography

綜合症網格程式碼 (STC) 是如何工作的?

  • August 5, 2021

引入了 Syndrome-trellis 程式碼以最大限度地減少隱寫術中的嵌入失真。請參閱本文:使用網格編碼量化最小化隱寫術中的嵌入影響

背景資料

以下段落可在本網站上找到:

Syndrome-trellis 碼本質上是由奇偶校驗矩陣表示的二進制線性卷積碼。這種表示允許將它們用於不需要通道程式碼的資訊嵌入問題。

下圖顯示了取自論文的 STC 範例。據說目標是找到一個向量 $ y $ 這樣 $ Hy=m $ 在哪裡 $ H $ 是發送方和接收方之間的共享奇偶校驗矩陣,並且 $ m $ 是要傳達的秘密資訊。我理解了向量 $ y $ 作為生成的隱寫圖像,將傳送給接收者,然後接收者將能夠提取 $ m $ 使用共享 $ H $ .

每個 $ y $ 令人滿意的 $ Hy=m $ 表示為通過格子的路徑,其中路徑從最左邊的全零狀態開始並向右延伸。該路徑顯示了使用越來越多的位的(部分)校正子的逐步計算 $ y $ . 例如,圖 2 中的前兩條邊從列連接狀態 00 $ p0 $ 下一列中有狀態 11 和 00,對應於添加 $ (y1 = 1) $ 或不添加 $ (y1 = 0) $ 的第一列 $ H $ 分別為綜合徵。一般來說,如果有一條路徑將該狀態與最左邊的全零狀態連接起來,我們將網格中的狀態稱為可達

我不明白頂部命名的這部分論文(第 5 頁):

從每個可達狀態,兩條邊向右延伸;它們對應於將矩陣H的下一列添加或不添加到目前部分伴隨式,並分別標記為 1 和 0。因此,網格中沿路徑的邊緣標籤對應於隱寫對象y的各個位。

問題

可達狀態如何向右延伸?據說每個可達狀態只有 2 個擴展,每個擴展對應於添加/不添加矩陣H的下一列,分別標記為 1 和 0。對於列 $ p0 $ , 擴展到狀態 00 和 11。狀態 11 是添加矩陣H的第一列“11” ?但是,在下一列的右側 $ p0 $ 在狀態 00,節點擴展到狀態 00 和狀態 10。為什麼它擴展到 10 而不是 01,因為 01 是矩陣H的下一列?

圖 2,來自 p。“使用網格編碼量化最小化隱寫術中的嵌入影響”的 7: STC 範例

您必須使用 XOR 操作添加或不添加以下列。讓我解釋一下第一個狀態。

從 $ p_0 $ 至 $ 1 $ :

我們在 $ 00 $ 狀態,如果我們什麼都不做,我們繼續 $ 00 $ 狀態。但是如果我們添加 $ 11 $ (第一個 H 列)我們去狀態 $ 11 = 00 \oplus 11 $ .

從 $ 1 $ 至 $ 2 $ :

如果我們在 $ 00 $ 狀態,我們什麼都不做,我們繼續在 00 狀態,但是如果我們添加 $ 10 $ (第二個 H 列)我們去狀態 $ 10 = 10 \oplus 00 $ . 如果我們在 $ 11 $ 狀態,我們什麼也不做,我們繼續 $ 11 $ 狀態,但是如果我們添加 $ 10 $ (第二個 H 列)我們去狀態 $ 01 = 10 \oplus 11 $ .

從 $ p_1 $ 至 $ 3 $ :

如果我們在 $ 00 $ 狀態,我們什麼也不做,我們繼續 $ 00 $ 狀態,但是如果我們添加 $ 11 $ (第三個 H 列)我們去狀態 $ 11 = 00 \oplus 11 $ . 如果我們在 $ 01 $ 狀態,我們什麼也不做,我們繼續 $ 01 $ 狀態,但是如果我們添加 $ 11 $ (第三個 H 列)我們去狀態 $ 10 = 01 \oplus 11 $ ).

以下狀態也一樣。

引用自:https://crypto.stackexchange.com/questions/93401