原始方案
介紹
該方案主要關注加密域可逆資訊隐藏,即内容所有者在發送前先将原始載體加密,加密後的載體經資料隐藏者擷取并嵌入資訊後發送給接收者,接收者根據相應密鑰進行解密及資訊提取. 由于在某些場合下内容所有者并不信任資料隐藏者,即内容所有者擔心載體内容被資料隐藏者洩露,是以,需要一種加密域的可逆資訊隐藏方案.
現有的加密域可逆資訊隐藏方法
1) 加密前不做任何處理,通過簡單修改部分密文資料以嵌入資訊;
2) 将密文資料壓縮以騰出空間容納額外資訊;
3) 加密圖像前先進行預處理,預留出空間以便于資訊嵌入;
4) 用公鑰機制加密載體資料,利用加密技術的同态性嵌入資訊.
論文實作方案
方案整體結構如圖1 所示. 内容所有者利用加密密鑰對原始圖像進行加密,得到加密圖像;資料隐藏者将加密圖像分塊,利用資訊嵌入密鑰将圖像塊分組,在每組中嵌入多比特資訊,之後将含有秘密資訊的加密圖像發送給接收者. 接收者先利用加密密鑰将密文圖像解密,得到1 幅與原始圖像近似的解密圖像,之後根據自然圖像空間相關性與資訊嵌入密鑰提取秘密資訊并恢複原始圖像.
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CZmR2MiFWMwYjM3kDNjVWY0MjN0IDMiVWOyEjNlZzY08CX5AzLclDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL1M3Lc9CX6MHc0RHaiojIsJye.png)
圖1 方案結構圖
即:内容所有者:
- 首先,用加密密鑰将原始圖像加密
- 然後,将加密圖像分塊并分組
資料隐藏者:
- 最後,通過修改每組圖像塊中的1塊來嵌入秘密資訊
接收者:
- 将含有秘密資訊的加密圖像解密後,得到1幅與原始圖像近似的解密圖像
- 再根據自然圖像的空間相關性恢複圖像并提取秘密資訊
圖像加密
對于未經壓縮的灰階圖像,任意1 個圖像像素pi,j的取值範圍為[0,255],(i, j)表示像素在塊中的位置. pi,j 可用8 bit 來表示,設各像素的比特位為bi,j,0,bi,j,1,…,bi,j,7,則
其中⌊⋅⌋·表示向下取整. 内容所有者利用加密密鑰産生1 個僞随機比特流ri,j,k ,與圖像像素各比特位bi,j,k逐位進行異或運算
所得到的Bi,j,k即圖像像素pi,j加密的結果,之後将加密圖像傳送給資料隐藏者.
資訊嵌入
資料隐藏者獲得加密圖像後,在不知道原始圖像内容情況下,也能執行秘密資訊嵌入操作.首先将加密圖像分塊,再将圖像塊分組,修改每組圖像塊中1 個嵌入資訊. 具體步驟如下:
- 将圖像分塊,每塊大小s *s. 設圖像大小為M *N,則共有n 個圖像塊:
基于圖像塊分組的加密域可逆資訊隐藏-實作
- 将k 個圖像塊分為1 組(k≤n),記為H1,H2,…,Hk ,各組互不重疊,則共有 組.圖像塊的分組方式由資訊嵌入密鑰決定,即由資訊嵌入密鑰決定圖像塊的排列順序,按此順序每k 個塊分為1 組. 對每組通過修改k 個圖像塊中1 個塊來嵌入資訊. 修改方式如步驟3 所示. 由于k 個圖像塊對應了資料修改時的k 種可能,是以,在每組中可嵌入t 比特二進制資訊(
基于圖像塊分組的加密域可逆資訊隐藏-實作 基于圖像塊分組的加密域可逆資訊隐藏-實作
- 将加密後的t 比特二進制資訊轉換為十進制數m (0≤m≤2t - 1≤k - 1),修改第m + 1個圖像塊Hm +1,即在目前組中嵌入了t 比特資訊.對Hm +1的修改方式如圖2 所示,将圖像塊按棋盤格方式劃分,之後将綠色部分所代表像素的第L 位取反(1≤L≤8),即通過翻轉綠色部分像素的第L 位實作秘密資訊嵌入.
圖2 圖像塊中的像素分布
- 對各組均按步驟3 嵌入資訊即完成資訊嵌入操作.
由于圖像共分為g 組,每組嵌入t 比特資訊. 是以資訊嵌入容量為
圖像解密
将密文圖像像素用8 bit 表示:b’i ,j,0,b’i ,j,1,…,b’i ,j,7,利用加密密鑰産生1 個僞随機比特流ri,j,k ,并與b’i ,j,k逐位進行異或運算
所得到的B’i ,j,k為像素各比特的解密結果,則解密像素灰階值為
解密圖像内容與原始圖像近似,由資訊嵌入過程可知,包含額外資訊的解密圖像相對于原始圖像的最小均方誤差MSE (mean square error)為
則解密圖像的峰值信噪比PSNR (peak signal to noise ratio)為
根據式(8)對應不同參數L、k,解密圖像峰值信噪比的理論值如表1 所示. 不難看出,設定合适的參數可獲得品質較高的解密圖像.。在本實驗中,參數選擇用:k=8,L=4
資訊提取及圖像恢複
接收者用加密密鑰将密文圖像解密後,得到與原始圖像大緻相同的解密圖像. 此時,可根據資訊嵌入密鑰恢複原始圖像并提取秘密資訊. 每組圖像塊中有且僅有1 個被修改,則接收者隻需找出每組圖像塊中被修改的塊即可恢複圖像并提取資訊.
由于自然圖像具有空間相關性,是以,圖像被修改後的平滑度小于修改前. 對于被修改的圖像塊,其平滑度較小,将其以相同方式再次修改後便傳回到未修改狀态,此時平滑度較大. 被修改的圖像塊經二次修改後平滑度變大,而未被修改的圖像塊經二次修改後平滑度變小. 據此便可找出每組圖像塊中被修改的塊. 衡量圖像塊平滑度的公式為
式中:pu,v為塊中對應的像素值,(u,v)為像素在塊中的位置; d1 反映了中心像素與其預測值的差異;d2反映了相鄰像素的差異;d3 表示邊沿像素與其預測值的差異; f 為衡量目前塊的平滑度,f 越大表示平滑度越小.
資訊提取及圖像恢複的具體步驟如下:
- 将圖像按照與發送端相同方式分塊并分組,對每組按步驟2 恢複圖像并提取資訊.
- 對目前組的k 個圖像塊H1,H2,…,Hk按式(9) ~ (12)分别計算f 值,記為f1, f2,…, fk .按圖2 所示方式,将此k 個圖像塊中黑色部分所代表像素的第L 位取反,得到k 個新圖像塊H’1,H’2,…,H’k ,再按式(9) ~ (12)分别計算f 值,記為f’1,f’2,…, f’k .
令A = fa - f憶a (1 ≤ a ≤ k),分别計算各圖像塊所對應的A 值,記為A1,A2,…,Ak . 對于未經修改的圖像塊,fa <f’a ;而對于被修改的圖像塊,fa >f’a . 即被修改圖像塊的A 值最大. 設Aw = max{A1,A2,…,Ak },(1 ≤ w ≤ k),則認為第w 個圖像塊被修改,将H1,H2,…,H’w ,…,Hk 作為恢複的圖像塊,w -1 作為目前組提取的十進制數,轉換為二進制後即為提取的秘密資訊.
- 對各組均重複步驟2 即得到秘密資訊與恢複圖像.
原始實驗結果
參數設定:
M*N:256*256
s*s:8*8
k:4
t:2
L:4
(1)原始圖像
(2)加密圖像 (3)帶有水印的加密圖像
(4)帶有水印的解密圖像(5)去除水印恢複原圖
(6)嵌入的水印資訊
(7)從水印提取的資訊
分别計算(1)和(5)與(1)和(4)的最小均方誤差和峰值信噪比,可以看出解密後帶有水印的圖像的峰值信噪比為40多,而去除後的圖像的峰值信噪比為無窮,也就是說完美恢複為原圖像。而水印資訊也完美提取出來了。
方案改進
- 原始方案隻對灰階圖檔有效,改進方案增加對彩色圖檔的支援
- 原始方案在提取圖像時需要周遊所有的像素塊,改進方案周遊的像素塊減少,這是因為原始方案利用了一個改變參數,在每組中最大值所對應的塊為隐藏資訊快,而實際上根據計算公式可以得出最大值是正數而其他值是負數,是以不需要在整組中作比較隻需要在計算後與0相比即可得出,而之後的也就沒意義了
- 原始方案在資訊嵌入時分塊大小是确定的,改進方案根據需要嵌入的資訊長度動态變化分塊大小,以達到嵌入更多資訊的目的
- 原始方案在資訊嵌入時選擇以一種方式改變圖像,改進方案以兩種方式改變,可将嵌入資訊長度增加一倍
- 原始方案隻改變一層像素(不管是灰階還是彩色),改進方案對于彩色圖檔可以在每一層嵌入不同的資訊,增加嵌入資訊容量改進結果
改進結果
k:8
t:3
分别計算(1)和(5)與(1)和(4)的最小均方誤差和峰值信噪比,可以看出解密後帶有水印的圖像的峰值信噪比為40多,而去除後的圖像的峰值信噪比為無窮,也就是說完美恢複為原圖像。而水印資訊也完美提取出來了。而彩色圖像的峰值信噪比要比灰階圖像高,具有更好的隐藏效果。
GUI界面
可以看到嵌入368bit資訊時,圖像的PSNR值是非常好的,由于加解密用的異或,速度比較快,且提取資訊後的圖像與原圖像NC值為1,說明無損提取,完全加密域可逆資訊隐藏。
總結
問題
對于上述的改進方案還是有些問題的,上述改進隻是在理論上通過,實驗中還沒全部驗證,比如嵌入容量是否會提升很多,利用嵌入資訊的長度自動設定組數k,這樣做是否會提升容量;還有利用圖像的平滑度去找到修改的圖像塊,正确性是否有待保證,是都每次能保證每次都能找到等,還需後續繼續學習探索。
參考文獻
[1]程航, 王子馳, 張新鵬. 基于圖像塊分組的加密域可逆資訊隐藏[J]. 北京工業大學學報, 2016, 42(5):722-728.