任克強,肖璐瑤
(江西理工大學 信息工程學院,江西 贛州 341000)
信息技術的快速發展使得多媒體數據在互聯網上的傳播變得越來越頻繁,但互聯網是一個開放空間,在傳播過程中第三方可能會對數據進行非法監控、竊取、偽造或損壞。因此,多媒體數據的安全[1-4]變得更加重要。數據隱藏技術是近年來為提高多媒體數據的安全性而廣泛研究的領域之一,包括水印和隱寫在內的數據隱藏技術可以分為不可逆的數據隱藏技術和可逆的數據隱藏技術[5-6]。這種分類取決于通過提取秘密數據恢復原始圖像的能力。
中心折疊技術(Center Folding Technique,CFT)和最低有效位(Least Significant Bit,LSB)替換方法是數據隱藏中常用的方法。中心折疊技術是折疊秘密數據并隱藏在雙圖像中。文獻[7]提出了一種基于雙圖像的可逆數據隱藏方法,在將秘密數據嵌入載體圖像之前,利用中心折疊的方法調整秘密數據的范圍來減少圖像的失真。提高了嵌入容量并且降低了圖像失真。LSB替換方法[8-9]是用秘密數據來替換像素的最低有效位。文獻[10]提出了四像素差分和修改LSB替換的方法。秘密數據通過修改k位的LSB替換方法隱藏到每個像素中,其中k由四像素塊的平均差值決定。文獻[11]提出了基于PVD和LSB替換的隱寫方法,使用LSB替換和最佳像素調整處理將秘密數據嵌入圖像。在嵌入容量方面有很大提升,同時保持隱秘圖像的質量,但算法復雜度高。文獻[12]采用Baker算法進行圖像置亂,利用人眼不敏感像素點的細微變化,利用3種顏色R、G和B的最低位用于圖像隱藏。文獻[13]提出一種改進的最低有效位(LSB)方法將一系列三進制秘密數據嵌入到載體圖像中,使其易于嵌入和提取數據,同時具有高嵌入容量;但如果嵌入容量較低,隱秘圖像的質量低。文獻[14]提出一種基于位平面混合PVD和LSB高容量可逆數據隱藏,通過劃分位平面,同時使用兩種技術進行秘密數據嵌入,很大程度上提高了嵌入容量但隱秘圖像質量還有待提高。
針對文獻[13]的不足,本文提出一種基于中心折疊和最低有效位替換的大容量數據隱藏方法。首先將載體圖像像素劃分為兩個位平面,然后把秘密數據利用中心折疊技術進行折疊,實現秘密數據的嵌入,最后使用最低有效位替換方法在嵌入后的像素繼續嵌入秘密數,以提高隱藏算法的性能。
LSB替換方法是隱寫術在空間域中的替換方法,其原理用秘密數據比特替換BMP圖像中的最低有效比特。這意味著,由于人眼對像素點的細微變化不敏感,3種顏色R,G和B的最低位用于隱藏數據。因為數據隱藏在最低位,所以它相當于疊加微弱信號,因此很難在視覺上檢測到它,但只要接收方知道隱藏數據的位置和嵌入時使用的算法,接收方就可以提取隱藏數據。

(1)
當k=2時,給定兩個像素(145,188),通過用秘密位替換像素的2位LSB來獲得新像素(146,191)。

圖1 LSB替換示例(k=2) Fig.1 LSB substitution example(k=2)
秘密比特可以直接從隱秘像素中提取而無需任何額外信息。
(2)
秘密比特102和112可以從圖1中的146=100100102和191=101111112中提取。

(3)
為了生成兩個隱秘圖像,利用式(4)將d值分成兩種類型。
(4)

(5)
當k=4時,像素值為78,通過中心折疊技術來獲得新像素75和80。

圖2 中心折疊技術示例(k=4)Fig.2 Framework of image measuring system

(6)


(7)
通常,傳統的LSB替換方法只修改像素的兩個最低有效位,從而可能會導致溢出。文獻[13]是在最低有效位替換方法的基礎上進行改進的。該方法可以在每個灰度像素中隱藏兩個三進位數,在嵌入之前,通過在像素上加1或減1來解決溢出的問題,使其變得容易嵌入和提取數據,同時具有高嵌入容量。但是當嵌入容量較低時,該方法并不比傳統的LSB替換方法表現更好。為此,本文引入了位平面的概念,將載體圖像的像素劃分成兩個位平面,分別使用中心折疊技術和最低有效位替換方法換嵌入秘密數據,很好地解決了文獻[13]中的問題,同時,很大程度上提高了嵌入容量。
本文根據k的取值,判斷像素是否滿足嵌入秘密數據的條件,選取相應的像素采用融合中心折疊和最低有效位替換算法嵌入秘密數據,嵌入秘密數據的方案如圖3所示。

圖3 秘密數據嵌入方案流程圖Fig.3 Secret data embedding scheme flow chart
嵌入過程描述如下:
S1:原始圖像的像素記為:X={x1,1,x1,2,x1,3...,xH,W}其中H和W分別是圖像的高度和寬度。判斷像素xi,j的大小,如果它在范圍[2k,256-2k]內,那么它可以用于嵌入。否則,像素可能會導致溢出。溢出處理將在3.4節中描述。

(8)


(9)


(10)


(11)
S6:重復S1~S5直到載體圖像中的像素嵌入秘密比特流。

提取秘密數據是反向嵌入的過程,首先從隱藏像素的最低有效部分提取秘密數據,再通過平均像素值恢復圖像并提取秘密數據,提取秘密數據的方案如圖4所示。

圖4 秘密數據提取方案流程圖Fig. 4 Secret data extraction scheme flow chart
提取過程描述如下:
(12)
(13)
(14)
(15)

(16)
S4:重復S1~S3直到秘密比特流全部提取。
在秘密數據嵌入的過程中,當原始像素大于256-2k-1或小于2k-1時,會發生溢出的問題。在保證不加劇圖像失真的前提下,采用不嵌入或修改像素的方法來解決這個問題。在信息提取和圖像恢復過程中,如果兩個隱秘圖像的像素相等并且大于256-2k-1或小于2k-1,那么此時的隱秘像素就是原始像素。

本文算法在Windows 10+MATLAB 2016平臺來驗證其性能,在標準灰度測試圖數據庫中選取了Lena、Airplane、Boat和Baboon這4幅具有不同紋理特征的512×512的標準灰度圖像作為原始圖像,如圖5所示。


圖5 原始圖像Fig.5 Original image
本文算法的性能通過測量峰值信噪比(Peak Signal to Noise Ratio,PSNR)和嵌入容量(Embedding Capacity,EC)來進行評估。秘密數據的嵌入容量意味著可以嵌入原始圖像中的秘密數據量,峰值信噪比意味著隱秘圖像的失真程度。PSNR定義為:
(17)

3種算法的嵌入容量(EC)和峰值信噪比(PSNR)的實驗結果如表1所示。文獻[13]平均可以嵌入960 065位秘密數據,平均PSNR為37.65 dB。文獻[14]將平均嵌入容量提高到了1 051 542。相比文獻[13]和文獻[14]的算法,本文算法很大程度上提高了嵌入容量,平均嵌入容量為1 572 778位。從實驗結果可以看出,本文算法在嵌入容量和圖像質量之間保持了很好的平衡,即提高嵌入容量的同時很好地保證了圖像的質量。

表1 不同算法的最大嵌入容量和視覺圖像質量的比較Tab.1 Comparison of maximum embedding capacity and visual image quality of different algorithms

續 表
圖6是Lena、Airplane、Boat和Baboon4幅標準灰度圖像中不同秘密數據的嵌入容量與PSNR之間的關系的比較。從圖6中3種算法的性能曲線中看出,文獻[14]基于文獻[13]提高了一定的嵌入容量,但相應地,對于相同的嵌入能力,圖像質量略有下降。本文算法的性能優于比較的文獻[13]和文獻[14],提高嵌入容量的同時圖像的質量也得到提高。本文算法的平均嵌入容量為1 572 778 bit,平均PSNR為35.90 dB。


圖6 3種算法性能的比較Fig.6 Performance comparison of three algorithms
針對嵌入容量較低時隱秘圖像質量較低的問題,本文提出了一種大容量的基于中心折疊和最低有效位替換的數據隱藏方法。在同一位平面中同時使用中心折疊技術和最低有效位替換來提高嵌入容量。首先在每個像素上生成兩個位平面。在最高有效位中使用中心折疊技術,并且在位平面中的k位區域上應用最低有效位替換。實驗結果表明,與文獻[13]和文獻[14]相比,本文算法的嵌入容量增加了512 236~612 713位;圖像的質量提高了約2 dB,是一種有效可行的數據隱藏方法。