任克強(qiáng),肖璐瑤
(江西理工大學(xué) 信息工程學(xué)院,江西 贛州 341000)
信息技術(shù)的快速發(fā)展使得多媒體數(shù)據(jù)在互聯(lián)網(wǎng)上的傳播變得越來越頻繁,但互聯(lián)網(wǎng)是一個(gè)開放空間,在傳播過程中第三方可能會(huì)對(duì)數(shù)據(jù)進(jìn)行非法監(jiān)控、竊取、偽造或損壞。因此,多媒體數(shù)據(jù)的安全[1-4]變得更加重要。數(shù)據(jù)隱藏技術(shù)是近年來為提高多媒體數(shù)據(jù)的安全性而廣泛研究的領(lǐng)域之一,包括水印和隱寫在內(nèi)的數(shù)據(jù)隱藏技術(shù)可以分為不可逆的數(shù)據(jù)隱藏技術(shù)和可逆的數(shù)據(jù)隱藏技術(shù)[5-6]。這種分類取決于通過提取秘密數(shù)據(jù)恢復(fù)原始圖像的能力。
中心折疊技術(shù)(Center Folding Technique,CFT)和最低有效位(Least Significant Bit,LSB)替換方法是數(shù)據(jù)隱藏中常用的方法。中心折疊技術(shù)是折疊秘密數(shù)據(jù)并隱藏在雙圖像中。文獻(xiàn)[7]提出了一種基于雙圖像的可逆數(shù)據(jù)隱藏方法,在將秘密數(shù)據(jù)嵌入載體圖像之前,利用中心折疊的方法調(diào)整秘密數(shù)據(jù)的范圍來減少圖像的失真。提高了嵌入容量并且降低了圖像失真。LSB替換方法[8-9]是用秘密數(shù)據(jù)來替換像素的最低有效位。文獻(xiàn)[10]提出了四像素差分和修改LSB替換的方法。秘密數(shù)據(jù)通過修改k位的LSB替換方法隱藏到每個(gè)像素中,其中k由四像素塊的平均差值決定。文獻(xiàn)[11]提出了基于PVD和LSB替換的隱寫方法,使用LSB替換和最佳像素調(diào)整處理將秘密數(shù)據(jù)嵌入圖像。在嵌入容量方面有很大提升,同時(shí)保持隱秘圖像的質(zhì)量,但算法復(fù)雜度高。文獻(xiàn)[12]采用Baker算法進(jìn)行圖像置亂,利用人眼不敏感像素點(diǎn)的細(xì)微變化,利用3種顏色R、G和B的最低位用于圖像隱藏。文獻(xiàn)[13]提出一種改進(jìn)的最低有效位(LSB)方法將一系列三進(jìn)制秘密數(shù)據(jù)嵌入到載體圖像中,使其易于嵌入和提取數(shù)據(jù),同時(shí)具有高嵌入容量;但如果嵌入容量較低,隱秘圖像的質(zhì)量低。文獻(xiàn)[14]提出一種基于位平面混合PVD和LSB高容量可逆數(shù)據(jù)隱藏,通過劃分位平面,同時(shí)使用兩種技術(shù)進(jìn)行秘密數(shù)據(jù)嵌入,很大程度上提高了嵌入容量但隱秘圖像質(zhì)量還有待提高。
針對(duì)文獻(xiàn)[13]的不足,本文提出一種基于中心折疊和最低有效位替換的大容量數(shù)據(jù)隱藏方法。首先將載體圖像像素劃分為兩個(gè)位平面,然后把秘密數(shù)據(jù)利用中心折疊技術(shù)進(jìn)行折疊,實(shí)現(xiàn)秘密數(shù)據(jù)的嵌入,最后使用最低有效位替換方法在嵌入后的像素繼續(xù)嵌入秘密數(shù),以提高隱藏算法的性能。
LSB替換方法是隱寫術(shù)在空間域中的替換方法,其原理用秘密數(shù)據(jù)比特替換BMP圖像中的最低有效比特。這意味著,由于人眼對(duì)像素點(diǎn)的細(xì)微變化不敏感,3種顏色R,G和B的最低位用于隱藏?cái)?shù)據(jù)。因?yàn)閿?shù)據(jù)隱藏在最低位,所以它相當(dāng)于疊加微弱信號(hào),因此很難在視覺上檢測(cè)到它,但只要接收方知道隱藏?cái)?shù)據(jù)的位置和嵌入時(shí)使用的算法,接收方就可以提取隱藏?cái)?shù)據(jù)。
(1)
當(dāng)k=2時(shí),給定兩個(gè)像素(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)
為了生成兩個(gè)隱秘圖像,利用式(4)將d值分成兩種類型。
(4)
(5)
當(dāng)k=4時(shí),像素值為78,通過中心折疊技術(shù)來獲得新像素75和80。
圖2 中心折疊技術(shù)示例(k=4)Fig.2 Framework of image measuring system
(6)
(7)
通常,傳統(tǒng)的LSB替換方法只修改像素的兩個(gè)最低有效位,從而可能會(huì)導(dǎo)致溢出。文獻(xiàn)[13]是在最低有效位替換方法的基礎(chǔ)上進(jìn)行改進(jìn)的。該方法可以在每個(gè)灰度像素中隱藏兩個(gè)三進(jìn)位數(shù),在嵌入之前,通過在像素上加1或減1來解決溢出的問題,使其變得容易嵌入和提取數(shù)據(jù),同時(shí)具有高嵌入容量。但是當(dāng)嵌入容量較低時(shí),該方法并不比傳統(tǒng)的LSB替換方法表現(xiàn)更好。為此,本文引入了位平面的概念,將載體圖像的像素劃分成兩個(gè)位平面,分別使用中心折疊技術(shù)和最低有效位替換方法換嵌入秘密數(shù)據(jù),很好地解決了文獻(xiàn)[13]中的問題,同時(shí),很大程度上提高了嵌入容量。
本文根據(jù)k的取值,判斷像素是否滿足嵌入秘密數(shù)據(jù)的條件,選取相應(yīng)的像素采用融合中心折疊和最低有效位替換算法嵌入秘密數(shù)據(jù),嵌入秘密數(shù)據(jù)的方案如圖3所示。
圖3 秘密數(shù)據(jù)嵌入方案流程圖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]內(nèi),那么它可以用于嵌入。否則,像素可能會(huì)導(dǎo)致溢出。溢出處理將在3.4節(jié)中描述。
(8)
(9)
(10)
(11)
S6:重復(fù)S1~S5直到載體圖像中的像素嵌入秘密比特流。
提取秘密數(shù)據(jù)是反向嵌入的過程,首先從隱藏像素的最低有效部分提取秘密數(shù)據(jù),再通過平均像素值恢復(fù)圖像并提取秘密數(shù)據(jù),提取秘密數(shù)據(jù)的方案如圖4所示。
圖4 秘密數(shù)據(jù)提取方案流程圖Fig. 4 Secret data extraction scheme flow chart
提取過程描述如下:
(12)
(13)
(14)
(15)
(16)
S4:重復(fù)S1~S3直到秘密比特流全部提取。
在秘密數(shù)據(jù)嵌入的過程中,當(dāng)原始像素大于256-2k-1或小于2k-1時(shí),會(huì)發(fā)生溢出的問題。在保證不加劇圖像失真的前提下,采用不嵌入或修改像素的方法來解決這個(gè)問題。在信息提取和圖像恢復(fù)過程中,如果兩個(gè)隱秘圖像的像素相等并且大于256-2k-1或小于2k-1,那么此時(shí)的隱秘像素就是原始像素。
本文算法在Windows 10+MATLAB 2016平臺(tái)來驗(yàn)證其性能,在標(biāo)準(zhǔn)灰度測(cè)試圖數(shù)據(jù)庫(kù)中選取了Lena、Airplane、Boat和Baboon這4幅具有不同紋理特征的512×512的標(biāo)準(zhǔn)灰度圖像作為原始圖像,如圖5所示。
圖5 原始圖像Fig.5 Original image
本文算法的性能通過測(cè)量峰值信噪比(Peak Signal to Noise Ratio,PSNR)和嵌入容量(Embedding Capacity,EC)來進(jìn)行評(píng)估。秘密數(shù)據(jù)的嵌入容量意味著可以嵌入原始圖像中的秘密數(shù)據(jù)量,峰值信噪比意味著隱秘圖像的失真程度。PSNR定義為:
(17)
3種算法的嵌入容量(EC)和峰值信噪比(PSNR)的實(shí)驗(yàn)結(jié)果如表1所示。文獻(xiàn)[13]平均可以嵌入960 065位秘密數(shù)據(jù),平均PSNR為37.65 dB。文獻(xiàn)[14]將平均嵌入容量提高到了1 051 542。相比文獻(xiàn)[13]和文獻(xiàn)[14]的算法,本文算法很大程度上提高了嵌入容量,平均嵌入容量為1 572 778位。從實(shí)驗(yàn)結(jié)果可以看出,本文算法在嵌入容量和圖像質(zhì)量之間保持了很好的平衡,即提高嵌入容量的同時(shí)很好地保證了圖像的質(zhì)量。
表1 不同算法的最大嵌入容量和視覺圖像質(zhì)量的比較Tab.1 Comparison of maximum embedding capacity and visual image quality of different algorithms
續(xù) 表
圖6是Lena、Airplane、Boat和Baboon4幅標(biāo)準(zhǔn)灰度圖像中不同秘密數(shù)據(jù)的嵌入容量與PSNR之間的關(guān)系的比較。從圖6中3種算法的性能曲線中看出,文獻(xiàn)[14]基于文獻(xiàn)[13]提高了一定的嵌入容量,但相應(yīng)地,對(duì)于相同的嵌入能力,圖像質(zhì)量略有下降。本文算法的性能優(yōu)于比較的文獻(xiàn)[13]和文獻(xiàn)[14],提高嵌入容量的同時(shí)圖像的質(zhì)量也得到提高。本文算法的平均嵌入容量為1 572 778 bit,平均PSNR為35.90 dB。
圖6 3種算法性能的比較Fig.6 Performance comparison of three algorithms
針對(duì)嵌入容量較低時(shí)隱秘圖像質(zhì)量較低的問題,本文提出了一種大容量的基于中心折疊和最低有效位替換的數(shù)據(jù)隱藏方法。在同一位平面中同時(shí)使用中心折疊技術(shù)和最低有效位替換來提高嵌入容量。首先在每個(gè)像素上生成兩個(gè)位平面。在最高有效位中使用中心折疊技術(shù),并且在位平面中的k位區(qū)域上應(yīng)用最低有效位替換。實(shí)驗(yàn)結(jié)果表明,與文獻(xiàn)[13]和文獻(xiàn)[14]相比,本文算法的嵌入容量增加了512 236~612 713位;圖像的質(zhì)量提高了約2 dB,是一種有效可行的數(shù)據(jù)隱藏方法。