李國(guó)利,邵利平,任平安
(陜西師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710119)
隨著互聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的信息通過(guò)網(wǎng)絡(luò)傳輸,在給人們帶來(lái)極大便利的同時(shí),也存在一定安全隱患。為保護(hù)傳輸中的秘密信息安全,人們提出用圖像來(lái)隱藏秘密信息的方法,并把它應(yīng)用在分存[1-4]、密寫[5-6]和水印上。但這些方法的本質(zhì)都是傳統(tǒng)修改式嵌入的信息隱藏方法,需修改載體圖像,會(huì)對(duì)嵌密載體視覺(jué)質(zhì)量造成較大影響,容易引起攻擊者的懷疑。
為避免這類問(wèn)題,人們提出了紋理生成式無(wú)載體信息隱藏,它主要包括紋理構(gòu)造式信息隱藏和紋理拼接式信息隱藏。其中紋理構(gòu)造式信息隱藏是通過(guò)模擬紋理生成的方式來(lái)產(chǎn)生一些類自然紋理,例如文獻(xiàn)[7-9]生成類水影畫紋理來(lái)隱藏秘密信息,但這類方法所生成的紋理都是非自然紋理,從而不能對(duì)秘密信息進(jìn)行有效掩蓋。
紋理拼接式隱藏最早來(lái)源于文獻(xiàn)[10-11],通過(guò)樣例紋理填充的方式對(duì)表達(dá)秘密信息的局部二值模式像素點(diǎn)進(jìn)行掩蓋,但由于不能很好地對(duì)局部二值模式進(jìn)行掩蓋,從而易引起密寫分析者的懷疑和秘密信息泄露。為避免此問(wèn)題,文獻(xiàn)[12-14]都是通過(guò)紋理小塊拼接的方式來(lái)產(chǎn)生與給定樣本相似的含密紋理。但文獻(xiàn)[12]引入鏡像操作使得編碼和非編碼樣本小塊存在明顯的區(qū)別特征,導(dǎo)致編碼小塊直接泄露。文獻(xiàn)[13-14]中秘密信息分段和樣本小塊類別之間存在著固定的一一對(duì)應(yīng)關(guān)系,易引起攻擊者的懷疑,導(dǎo)致安全性較低。另外文獻(xiàn)[12-14]都是采用縫合線算法[15]來(lái)對(duì)重疊區(qū)域的紋理進(jìn)行縫合??p合線算法的原理是由特定位置出發(fā),在重疊區(qū)域?qū)ふ也町愖钚〉目p合線將重疊區(qū)域的紋理進(jìn)行縫合,但由特定位置起始的差異最小的縫合線并不意味著是經(jīng)歷重疊區(qū)域所有像素差異最小的縫合線,易產(chǎn)生縫合痕跡,從而不能對(duì)秘密信息進(jìn)行掩蓋。
針對(duì)文獻(xiàn)[12-14]存在的問(wèn)題,文中提出了一種結(jié)合隨機(jī)映射和改進(jìn)縫合線的紋理合成信息隱藏方法。首先根據(jù)樣本小塊的均值大小將其分為若干個(gè)類別,通過(guò)結(jié)合編碼小塊的隨機(jī)放置位置建立起秘密信息分段和樣本小塊類別之間的隨機(jī)映射關(guān)系,然后結(jié)合編碼小塊的隨機(jī)坐標(biāo)位置,從對(duì)應(yīng)樣本小塊類別中隨機(jī)選擇一個(gè)作為編碼樣本小塊來(lái)對(duì)秘密信息進(jìn)行表達(dá)并將其放置在空白圖像中的特定坐標(biāo)位置上。最后將相鄰編碼樣本小塊按改進(jìn)縫合線紋理合成方法來(lái)生成含密紋理。
同文獻(xiàn)[12-14]相比,該方法可生成較高質(zhì)量的紋理圖像來(lái)對(duì)秘密信息進(jìn)行掩蓋;同文獻(xiàn)[13-14]相比,秘密信息分段和編碼樣本小塊之間不存在固定的一對(duì)一關(guān)系,從而具有較高的安全性。
(1)
其中,符號(hào)“?」”表示向下取整。
(2)
(3)
記二值秘密信息序列B的長(zhǎng)度為l,由于編碼樣本小塊P0,P1,…,Pc-1總共有n0個(gè)類別,因此每個(gè)編碼樣本小塊可表達(dá)log2n0個(gè)秘密比特,從而將B劃分為L(zhǎng)組,即:b0,b1,…,bL-1。其中L和l之間滿足式4的約束,將b0,b1,…,bL-1轉(zhuǎn)換為10進(jìn)制數(shù),可得10進(jìn)制數(shù)B0,B1,…,BL-1。
L=「l/log2n0?
(4)
(5)
(6)
(7)
注:若Pi=Φ,則意味著Pcur的i邊界區(qū)不存在相鄰的樣本塊,因此僅需直接將Pcur的i邊界區(qū)直接放置在對(duì)應(yīng)區(qū)域即可,而不需要進(jìn)行縫合。
(8)
(9)
(10)
(11)
(12)
(13)
(a)Pcur的邊界區(qū) (b)與Pcur進(jìn)行拼接的Ptt
(c)傳統(tǒng)裂縫拼接法 (d)改進(jìn)的裂縫拼接法
(14)
按式15提取出對(duì)應(yīng)10進(jìn)制秘密信息Bk,k=0,1,…,L-1,將B0,B1,…,BL-1轉(zhuǎn)換為長(zhǎng)度為log2c比特的二值比特位串,從而可得到二進(jìn)制數(shù)b0,b1,…,bL-1,然后按式16截取前l(fā)個(gè)比特作為最終提取出的秘密信息B。
(15)
B=trunc(b0‖b1‖…‖bL-1,l)
(16)
其中,trunc()函數(shù)是二值比特位串截取函數(shù)。
以下給出完整的結(jié)合隨機(jī)映射和改進(jìn)縫合線的紋理合成信息隱藏與恢復(fù)算法,記為算法1和算法2。
算法1:結(jié)合隨機(jī)映射和改進(jìn)縫合線的紋理合成隱藏算法。
(6)用P0,P1,…,Pc來(lái)填充Q上的空白區(qū)域,將存在重疊區(qū)域的小塊按照改進(jìn)縫合線算法對(duì)相鄰小塊拼接,最終將Q作為含密紋理圖像輸出。
算法2:結(jié)合隨機(jī)映射和改進(jìn)縫合線的紋理合成信息提取算法。
同文獻(xiàn)[12-14]相比,所提方法可生成較高質(zhì)量的紋理圖像來(lái)對(duì)秘密信息進(jìn)行掩蓋;同文獻(xiàn)[13-14]相比,秘密信息分段和編碼樣本小塊之間不存在固定的一對(duì)一關(guān)系,從而具有較高的安全性。
實(shí)驗(yàn)測(cè)試環(huán)境為Window 10操作系統(tǒng),CPU為Intel(R) Core(TM) i5-6600,主頻為3.31 GHz,內(nèi)存為8.00 GB,編碼語(yǔ)言為JAVA jdk1.8.0_65,采用的測(cè)試樣例圖像如圖2(a)和2(b)所示,分別是分辨率為128×128的8位灰度圖像stone1和stone2。嵌入秘密信息為“陜西師大”,其對(duì)應(yīng)的二值比特位串為64位,如圖2(c)所示。
圖2 測(cè)試樣例圖像和二值比特秘密信息
使用峰值信噪比(PSNR)對(duì)攻擊以后的含密樣本圖像視覺(jué)質(zhì)量進(jìn)行衡量,通過(guò)誤碼率(EBR)對(duì)秘密信息恢復(fù)情況進(jìn)行評(píng)價(jià),所有計(jì)算均保留小數(shù)點(diǎn)后4位有效數(shù)字。PSNR和EBR的計(jì)算式為:
(17)
(18)
(19)
其中,berr為錯(cuò)誤的秘密信息比特?cái)?shù);ball為秘密信息總比特?cái)?shù)。
在實(shí)驗(yàn)中,由樣例圖像按光柵掃描順序逐像素滑動(dòng)得到的樣本小塊分辨率為32×32,這些樣本小塊的核心區(qū)域被設(shè)定為樣本小塊中心大小為16×16的中心區(qū)域并按均值大小劃分為16個(gè)類別。
為驗(yàn)證正確性,選取樣例圖像(圖2(a)和圖2(b)),由3組不同的密鑰分別按算法1隱藏秘密信息并按算法2提取秘密信息。圖3和圖4分別給出了生成的含密紋理圖像和提取的秘密信息,與之對(duì)應(yīng)的實(shí)驗(yàn)參數(shù)和秘密信息恢復(fù)情況如表1所示,其中生成的含密紋理圖像的大小為224×224。
從圖3可以看出,算法1生成的含密紋理圖不會(huì)產(chǎn)生明顯的縫合痕跡,整體視覺(jué)質(zhì)量較好。從表1和圖4可以看出,對(duì)于不同的密鑰,算法2均能完全提取秘密信息,提取的秘密信息相對(duì)于原秘密信息的EBR為0,說(shuō)明秘密信息可完整恢復(fù),因此正確性得以驗(yàn)證。
圖3 正確性驗(yàn)證實(shí)驗(yàn)含密紋理圖樣
圖4 正確性驗(yàn)證實(shí)驗(yàn)秘密信息恢復(fù)圖樣
表1 正確性驗(yàn)證實(shí)驗(yàn)
為驗(yàn)證密鑰依賴性,選取圖2(a)作為樣例圖,按表2對(duì)密鑰R進(jìn)行調(diào)整,然后按算法2提取秘密信息。表2是密鑰依賴性實(shí)驗(yàn)的參數(shù),其中“-”表示被修改;圖5是密鑰依賴性實(shí)驗(yàn)提取的秘密信息,其中“1”和“0”代表提取的“1”和“0”是錯(cuò)誤的。
從表2可看出,密鑰參數(shù)的改變,將導(dǎo)致提取出的秘密信息EBR趨近于0.5,從而半數(shù)左右的秘密信息比特在提取時(shí)發(fā)生錯(cuò)誤,秘密信息無(wú)法提取,因此文中所述策略對(duì)密鑰的改變具有完全的依賴性。
圖5 密鑰依賴性實(shí)驗(yàn)秘密信息恢復(fù)圖樣
表2 密鑰依賴性驗(yàn)證實(shí)驗(yàn)參數(shù)
為驗(yàn)證所提策略的抗攻擊能力,按不同強(qiáng)度的椒鹽噪聲和不同質(zhì)量因子的JPEG壓縮分別對(duì)圖3(a)嵌密載體進(jìn)行攻擊,然后按算法2提取秘密信息。椒鹽噪聲攻擊強(qiáng)度分別為5%、15%和20%,JPEG壓縮中選取的質(zhì)量因子分別為80和90。圖6和圖7是攻擊后的含密紋理圖像和與之對(duì)應(yīng)的秘密信息恢復(fù)結(jié)果。
圖6 抗攻擊實(shí)驗(yàn)含密紋理圖樣
圖7 抗攻擊實(shí)驗(yàn)秘密信息恢復(fù)圖樣
表3給出了對(duì)應(yīng)的實(shí)驗(yàn)參數(shù)。從表3和圖6可以看出,椒鹽噪聲和JPEG壓縮都會(huì)導(dǎo)致含密紋理圖的視覺(jué)質(zhì)量下降。以給定的實(shí)驗(yàn)樣例紋理為例,對(duì)于5%、15%和20%的椒鹽噪聲攻擊,含密紋理圖對(duì)應(yīng)的PSNR約為17~9 dB;對(duì)于JPEG壓縮,當(dāng)取質(zhì)量因子為80~90時(shí),其對(duì)應(yīng)的含密紋理圖像的PSNR為30.749 8~36.568 2 dB。含密紋理圖像盡管遭受了不同程度噪聲以及JPEG壓縮攻擊,當(dāng)椒鹽噪聲強(qiáng)度為5%和15%,JPEG壓縮質(zhì)量因子為80和90時(shí),按算法2提取的恢復(fù)信息的誤碼率為0,表明所提方法具備一定的抗攻擊能力,且能有效提取秘密信息。
表3 抗攻擊實(shí)驗(yàn)參數(shù)
傳統(tǒng)修改式信息隱藏方法[1-6]需修改原始載體圖像,不僅會(huì)降低載體圖像視覺(jué)質(zhì)量,同時(shí)也易引起攻擊者的懷疑。紋理構(gòu)造式信息隱藏方法[7-9]只能生成簡(jiǎn)單質(zhì)地的非自然紋理,不能對(duì)秘密信息進(jìn)行有效的掩蓋。紋理拼接式信息隱藏方法[12-14]秘密信息與樣本小塊之間存在著固定的映射關(guān)系或碼塊間的區(qū)別特征,導(dǎo)致安全性較低。針對(duì)以上問(wèn)題,提出了一種結(jié)合隨機(jī)映射和改進(jìn)縫合線的紋理合成隱藏方法。首先根據(jù)樣本小塊核心區(qū)域均值將其分為若干個(gè)類別,每個(gè)類別中的小塊代表相同的秘密信息,通過(guò)編碼小塊的隨機(jī)位置建立起秘密信息分段和樣本小塊類別之間的隨機(jī)映射關(guān)系,然后結(jié)合編碼小塊的隨機(jī)位置,從對(duì)應(yīng)樣本小塊類別中隨機(jī)選擇一個(gè)樣本小塊作為編碼樣本小塊來(lái)對(duì)秘密信息進(jìn)行編碼并將其放置在空白圖像中的特定位置上。最后將相鄰編碼樣本小塊按改進(jìn)縫合線紋理合成方法來(lái)生成含密紋理圖像。實(shí)驗(yàn)結(jié)果表明,該方法生成的含密紋理圖像視覺(jué)質(zhì)量較好,可通過(guò)高質(zhì)量的合成紋理來(lái)對(duì)秘密信息進(jìn)行掩蓋,秘密信息分段和編碼樣本小塊不一一對(duì)應(yīng),且完全依賴于用戶密鑰并具備一定的抗攻擊能力。