三. 基於區塊影像之可逆式直方圖量子資訊隱藏演算法
3.2 機密資訊藏入演算法
傳送方在進行量子資訊隱藏之前,必須準備兩個通道-量子通道和傳統通道:
(1)量子通道(quantum channel):
準備一個位置暫存器 D、一個像素暫存器 P、一個輔助暫存器 A、一個輔助暫存器 B 和一 個輔助暫存器 G。
(2)傳統通道(classical channel):
準備一個高點像素值ℎ1暫存器、一個高點像素值ℎ2暫存器和溢位像素值位置暫存器。
機密資訊藏入演算法步驟
輸入:原始影像 𝐼,大小為2𝑛× 2𝑛、機密資訊 𝑠(假設機密資訊位元個數小於雙高點總和) 輸出:偽裝影像 𝐼′、雙高點ℎ1、ℎ2和溢位像素值位置。
步驟 1:
準備 2n 個量子位元|0⟩D和𝑞個量子位元|0⟩P在量子通道中。得到
|𝜓0⟩ = |0⟩𝐷|0⟩𝑃
步驟 2:
根據原始影像 I 建構 NEQR 量子影像,首先對位置暫存器 2n 個|0⟩D執行 Hadamard gate,得 到
|𝜓1⟩ = (H|0⟩𝐷)⊗2n|0⟩𝑃 = 1
2𝑛∑2i=02𝑛−1|i⟩𝐷|0⟩𝑃。
步驟 3:
利用𝑈𝑝,建構量子影像中的像素值,得到原始影像 I 之 NEQR 表示式
|𝜓2⟩ = 𝑈𝑝(21𝑛∑2i=02𝑛−1|i⟩𝐷|0⟩𝑃) =21𝑛(∑2𝑖=02𝑛−1|i⟩𝐷|𝑐𝑖⟩𝑃)。
步驟 4:
檢查影像中的像素值是否有下限 0 和上限2𝑞− 1的像素值(溢位位置像素值),如果這些像素 值存在,則執行𝐹ℎ𝑐記錄在輔助暫存器 G 中;如果這些像素值不存在則直接跳到步驟 6,得到
步驟 5:
將溢位位置像素值實施修正,先執行𝐹+,再執行𝐹−:
(1)當輔助暫存器 G 為|01⟩𝐺時,則像素暫存器 P 執行像素值加 1 的動作。即執行𝐹+,將|𝑐𝑖⟩𝑃 = 0 之像素值加 1。
(2)當輔助暫存器 G 為|10⟩𝐺時,則像素暫存器 P 執行像素值減 1 的動作。即執行𝐹−,將|𝑐𝑖⟩𝑃 = 2𝑞− 1之像素值減 1。
|𝜓4⟩ = 𝐹+𝐹−(|𝜓3⟩) = 21𝑛(∑2𝑖=02𝑛−1|i⟩𝐷|𝑐̌⟩𝑖 𝑃|𝑔𝑖⟩𝐺)。
步驟 6:
記錄位移區塊像素值。判別在量子影像中的所有像素值是否小於、等於或大於雙高點ℎ1與ℎ2, 則執行𝑈ℎ𝑐,並分別將結果記錄在輔助暫存器 A 和 B 中,得到
|𝜓5⟩ = 𝑈ℎ𝑐(|𝜓4⟩ ⊗ |00⟩𝐴 ⊗ |00⟩𝐵) =21𝑛(∑2𝑖=02𝑛−1|i⟩𝐷|𝑐̌⟩𝑖 𝑃|𝑔𝑖⟩𝐺|𝑎𝑖⟩𝐴|𝑏𝑖⟩𝐵)。
步驟 7:
位移像素值區塊。先執行𝑈−,將|𝑐̌⟩𝑖 𝑃 < ℎ1所有像素值都減 1;再執行𝑈+,將|𝑐̌⟩𝑖 𝑃 > ℎ2所有 像素值都加 1,得到
|𝜓6⟩ = 𝑈−𝑈+(|𝜓5⟩) = 21𝑛(∑2𝑖=02𝑛−1|i⟩𝐷|𝑐̂⟩𝑖 𝑃|𝑔𝑖⟩𝐺|𝑎𝑖⟩𝐴|𝑏𝑖⟩𝐵)。
步驟 8:
藏入機密資訊。假設先以傳統方式模擬取得雙高點位置,依據獲得之雙高點位置所對應的機 密資訊𝑠𝑘 = 1,則執行底下的運算。將位置暫存器 D、輔助暫存器 A 與 B 當成控制位元,像 素暫存器 P 當成目標位元,先執行𝑈′−,再執行𝑈′+,將機密資訊藏入影像中,得到
|𝜓7⟩ = 𝑈′−𝑈′+(|𝜓6⟩) =21𝑛(∑2𝑖=02𝑛−1|i⟩𝐷|𝑐′̂⟩𝑖 𝑃|𝑔𝑖⟩𝐺|𝑎𝑖⟩𝐴|𝑏𝑖⟩𝐵)。
步驟 9:
歸零輔助暫存器 A 與 B。執行𝑈′ℎ𝑐,判別在量子影像中的所有像素值是否小於、等於或大於 高點像素值ℎ1、ℎ1− 1和高點像素值ℎ2、ℎ2+ 1,並分別記錄在輔助暫存器 A 和 B 中,得到
歸零輔助暫存器 G。如果存在溢位像素值,將位置暫存器 D 當成控制位元,輔助暫存器 G 當 成目標位元,執行𝐹′ℎ𝑐記錄在輔助暫存器 G 中,如果不存在則省略本步驟;得到
|𝜓9⟩ = 𝐹′ℎ𝑐(|𝜓8⟩) =21𝑛(∑2𝑖=02𝑛−1|i⟩𝐷|𝑐′̂⟩𝑖 𝑃|00⟩𝐺|00⟩𝐴|00⟩𝐵)。
步驟 11:
卸除輔助暫存器 G、A 與 B,得到偽裝影像。
|𝜓10⟩ =21𝑛(∑2𝑖=02𝑛−1|i⟩𝐷|𝑐′̂⟩𝑖 𝑃)。
透過量子通道(包含暫存器 D 和暫存器 P)和傳統通道(包含雙高點ℎ1、ℎ2和溢位像素值位置) 傳送給接收方。
為了更清楚了解上述的機密資訊藏入演算法,我們舉例說明如下:
資訊藏入演算法範例
假設影像大小為2 × 2、像素值(範圍 0~7)分別為 7、5、5、0,擬傳送機密資訊為s(010)2。 所以直方圖區塊最高點像素值ℎ1為5(101)2、另一高點像素值ℎ2 = ℎ1+ 1 = 6(110)2。
傳送方執行底下步驟傳送機密 s 給接收方:
7 5
5 0
圖 17 量子資訊實例圖 步驟 1:
準備 2 個量子位元|0⟩D和3 個量子位元|0⟩P在量子通道中,得到
|𝜓0⟩ = |00⟩D|000⟩P。
步驟 2:
步驟 3:
利用𝑈𝑝,建構量子影像中的像素值,得到原始影像 I 之 NEQR 表示式
|𝜓2⟩ =12(|00⟩D|111⟩P+ |01⟩D|101⟩P+ |10⟩D|101⟩P+ |11⟩D|000⟩P)。
步驟 4:
檢查影像中的像素值是否有下限0和上限7的溢位位置像素值,檢查結果存在0和7的像素值,
執行𝐹ℎ𝑐記錄在輔助暫存器 G 中,得到
|𝜓3⟩ = 𝐹ℎ𝑐(|𝜓2⟩ ⊗ |00⟩𝐺)
=12(|00⟩D|111⟩P|10⟩G+ |01⟩D|101⟩P|00⟩G+ |10⟩D|101⟩P|00⟩G+ |11⟩D|000⟩P|01⟩G)。
步驟 5:
將溢位位置像素值實施修正,先執行𝐹+,再執行𝐹−:
(1)當輔助暫存器 G 為|01⟩𝐺時,執行𝐹+,將|𝑐𝑖⟩𝑃 = 0之像素值加 1。
(2)當輔助暫存器 G 為|10⟩𝐺時,執行𝐹−,將|𝑐𝑖⟩𝑃 = 7之像素值減 1。
|𝜓4⟩ = 𝐹+𝐹−(|𝜓3⟩)
=12(|00⟩D|110⟩P|10⟩G+ |01⟩D|101⟩P|00⟩G+ |10⟩D|101⟩P|00⟩G+ |11⟩D|001⟩P|01⟩G)。
步驟 6:
記錄位移區塊像素值。執行𝑈ℎ𝑐,判別在量子影像中的像素值是否小於、等於或大於雙高點5與 6,並分別將結果記錄在輔助暫存器 A 和 B 中,得到
|𝜓5⟩ = 𝑈ℎ𝑐(|𝜓4⟩ ⊗ |00⟩𝐴⊗ |00⟩𝐵)
=1
2(|00⟩D|110⟩P|10⟩G|00⟩A|10⟩B+ |01⟩D|101⟩P|00⟩G|10⟩A|00⟩B+
|10⟩D|101⟩P|00⟩G|10⟩A|00⟩B+ |11⟩D|001⟩P|01⟩G|01⟩A|00⟩B)。
步驟 7:
位移像素值區塊。先執行𝑈−,將|𝑐̌⟩𝑖 𝑃 < 5所有像素值都減 1;再執行𝑈+,將|𝑐̌⟩𝑖 𝑃 > 6所有 像素值都加 1,得到
步驟 8:
步驟 12:
傳送量子通道(|𝜓10⟩ =12(|00⟩D|110⟩P+ |01⟩D|100⟩P+ |10⟩D|101⟩P+ |11⟩D|000⟩P))和傳統通 道(雙高點ℎ1 = 5、ℎ2 = 6、溢位像素值位置 0、3)給接收方。機密資訊藏入電路圖如圖 18。
圖 18 機密資訊藏入電路圖