李 笑,王春玲,陳 亮
(西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710048)
信息隱藏技術(shù)可以保證涉密信息的安全存儲(chǔ)和傳輸[1]。作為信息隱藏技術(shù)中最常用的LSB算法,雖然具有實(shí)現(xiàn)簡(jiǎn)單、不可見(jiàn)性高、運(yùn)算速度快等優(yōu)點(diǎn),但是,由于只在低位嵌入秘密信息,因此抵抗圖像處理的能力,如濾波、噪聲等攻擊比較差,隱藏容量也不夠大。一般來(lái)說(shuō),一個(gè)圖像信息隱藏系統(tǒng)最主要的特性是信息隱藏量[2]、不可見(jiàn)性[3]和魯棒性[4]。要想達(dá)到很好的隱藏效果,圖像的信息隱藏工具軟件應(yīng)該具有較大的嵌入量,較好的魯棒性,較強(qiáng)的嵌入和提取效率,較高的安全性,且人的肉眼看不到偽裝圖像和原載體圖像的任何區(qū)別。
衡量一個(gè)圖像信息隱藏系統(tǒng)在添加了剪裁、噪聲、壓縮等各種攻擊后對(duì)其影響程度的大小,取決于人眼視覺(jué)差異的大小。一個(gè)良好的的圖像信息隱藏系統(tǒng)應(yīng)當(dāng)具備相當(dāng)好的視覺(jué)隱蔽性[5]。在視覺(jué)隱蔽性方面,文獻(xiàn)[6]利用人類視覺(jué)系統(tǒng)結(jié)合信息隱藏的特性進(jìn)行了信息隱藏,使得人眼對(duì)局部圖像的感知特性加強(qiáng),符合視覺(jué)感知且復(fù)雜度較低;文獻(xiàn)[7]根據(jù)紋理掩蔽效應(yīng)中平滑區(qū)比較敏感的特征,把秘密信息分段并轉(zhuǎn)換后優(yōu)先藏在載體圖像比較復(fù)雜的區(qū)域,使得視覺(jué)差異和魯棒性明顯降低;文獻(xiàn)[8]在分析了人類視覺(jué)系統(tǒng)的各種掩蔽效應(yīng)后,將掩飾圖像劃分為3個(gè)嵌入程度不同的區(qū)塊,對(duì)圖像各個(gè)局部根據(jù)嵌入程度的不同嵌入不同量的秘密信息,增加了嵌入量且能保持較高的峰值信噪比。
本文基于人類視覺(jué)系統(tǒng),提出一種更能滿足隱藏需求的空域信息隱藏算法。該算法將最高有效位優(yōu)化算法與人類視覺(jué)系統(tǒng)相結(jié)合,既可以保證圖像的不可感知性,也可以提高其穩(wěn)健性和隱藏容量。
對(duì)于一個(gè)信息隱藏系統(tǒng)來(lái)說(shuō),不可感知性與隱藏量相互制約。嵌入秘密信息的量越大,不可感知性越差,所以壓縮秘密信息所占空間是平衡二者的關(guān)鍵[9]。出于不可感知性的考慮,秘密信息應(yīng)該嵌入到LSB位上,然而這樣處理雖然對(duì)圖像視覺(jué)影響不大,但經(jīng)過(guò)圖像處理后,秘密信息很容易被破壞,魯棒性很差。為了解決這個(gè)問(wèn)題,就要考慮在不改變視覺(jué)隱蔽性的同時(shí)將秘密信息嵌入到掩飾圖像的高位平面上[10]?;诖耍疚奶岢鲎罡呶恍蛄袃?yōu)化算法,將最高位平面與秘密信息進(jìn)行匹配替換,既保證了魯棒性又降低了秘密信息所占空間。算法如下:
Input(尺寸為M×N的秘密圖像);
Convert to sequence X=X[0],X[1]…X[M×N-1]∈{0,1};
Input (尺寸為m×n的載體圖像);
Extract each MSB bit of the carrier image;
Dim a,b as integer;
a=random(0,m);
b=random(0,n);//在載體圖像各MSB位隨機(jī)取點(diǎn)(a,b)
if(m-a)n+(n-j+1)≥M×N
Then (a,b)=(a,b);
Else (a,b)=(1,1);
End if;
For (a,b) to (a,b)+M×N
Convert to sequence T=T[0],T[1]…T[M×N-1]∈{0,1};//從(a,b)開(kāi)始取M×N個(gè)像素點(diǎn)轉(zhuǎn)化為一維序列T
End for;
Key=X?T;
For i=0 To M×N-1
If (Key[i]==1)
Then insert X[i] into the sorted sequence C[1…n];//保留此位對(duì)應(yīng)的X[i]追加到序列C中
Else 丟棄此位對(duì)應(yīng)的X[i];
End if;
End for;
Output(優(yōu)化后的秘密序列C[1…n]);
該算法通過(guò)對(duì)最高有效位的序列優(yōu)化,在不改變秘密信息的前提下,有效地減少了秘密信息在掩飾圖像中的占用空間,即可以嵌入更多的秘密信息。
人眼對(duì)一幅圖像各個(gè)區(qū)塊的敏感程度是不同的。要想從主觀上減少原載體圖像和嵌密載體的視覺(jué)差異,就要盡可能地將秘密信息嵌入在人眼敏感度較低的區(qū)塊中[11]。因此,構(gòu)建基于HVS的嵌入深度表就是為了根據(jù)人眼對(duì)圖像每個(gè)區(qū)塊敏感程度的不同,決定嵌入秘密信息量的多少,從而保證較好的不可感知性。
依據(jù)人類視覺(jué)系統(tǒng)中的紋理掩蔽效應(yīng)[12]和高亮度掩蔽效應(yīng)[13]劃分載體圖像。紋理掩蔽效應(yīng)表明:平滑區(qū)紋理稀疏,人眼敏感度高,只能嵌入少量信息;紋理區(qū)紋理復(fù)雜,可以嵌入較多的秘密信息。高亮度掩蔽效應(yīng)表明:在高灰度區(qū)嵌入效果好,嵌入量比較大;低灰度區(qū)嵌入效果差,嵌入量小。
為了保證隱秘圖像的不可感知性,載體中嵌入秘密信息的容量不能過(guò)大,否則視覺(jué)差異很明顯。對(duì)一副8位灰度圖像來(lái)說(shuō),嵌入容量不能超過(guò)4 bit,否則圖像會(huì)受到比較大的損壞[14]。為了使信息隱藏具有更好的隱蔽性,選擇了3位進(jìn)行秘密圖像的嵌入。構(gòu)建的嵌入深度表如表1所示。
表 1 嵌入深度表Tab.1 Embedded depth table
最高有效位的優(yōu)化算法有效降低了秘密信息的序列。在此基礎(chǔ)上,構(gòu)建嵌入深度表,將優(yōu)化后的秘密信息序列根據(jù)嵌入深度嵌入到劃分好的子塊中,從而實(shí)現(xiàn)將秘密信息嵌入到載體圖像中。
對(duì)于大多數(shù)灰度圖像來(lái)說(shuō),從圖像的第5位開(kāi)始就包含了圖片大部分的信息,對(duì)高位的改變會(huì)造成圖像較大的損壞,因此秘密信息不選擇從高位進(jìn)行嵌入。為了提高圖片的魯棒性,也不對(duì)LSB位進(jìn)行嵌入,所以選擇在第2,3,4位平面嵌入秘密信息。嵌入步驟如下:
1) 生成秘密信息。將原始秘密圖像的信息按照上述最高有效位的優(yōu)化算法進(jìn)行優(yōu)化,生成一個(gè)新的秘密信息。
2) 估計(jì)隱秘空間。以8×8大小為單位劃分掩飾圖像,按照HVS 2種掩蔽效應(yīng)的特性判斷子塊的類型,然后根據(jù)嵌入深度表估算出載體圖像隱藏空間的范圍。如果載體圖像可以隱藏秘密信息的空間小于新生成的秘密信息N,選擇新的載體圖像重新執(zhí)行上述步驟,否則繼續(xù)執(zhí)行。
3) 嵌入秘密信息。先將新生成的秘密信息N嵌入載體圖像的第2位平面,嵌入位置由隨機(jī)序列決定。利用HVS深度表判斷該位可否進(jìn)行嵌入,可以則進(jìn)行嵌入,不可以則重新選擇嵌入位置。掃描完第2位平面后,選取第3位平面進(jìn)行嵌入。重復(fù)上一過(guò)程,直到第4位平面結(jié)束。
4) 判斷秘密信息是否成功嵌入到載體圖像中。
1) 獲取載密圖像的信息以及嵌入秘密信息時(shí)用到的密鑰參數(shù)(隨機(jī)序列、嵌入深度等信息)。
2) 提取秘密信息。先從載密圖像第4位開(kāi)始提取秘密信息,依據(jù)提取步驟1)獲取的隨機(jī)序列和嵌入深度,找到嵌入位置并判斷是否有秘密信息的嵌入。若有,將秘密信息提取出來(lái),否則重新選擇嵌入位置進(jìn)行判斷,直到第4位平面掃描結(jié)束。然后獲取第3位和第2位的秘密信息。
3) 執(zhí)行最高有效位匹配算法的逆過(guò)程,提取出原始秘密信息。
基于上述算法,在Matlab 7.0環(huán)境下進(jìn)行實(shí)驗(yàn)。選取如圖1(a)所示的標(biāo)準(zhǔn)的512×512的lena灰度圖作為載體圖像,再選取一副如圖1(b)所示的大小為267×107的秘密圖像;按照本文嵌入算法,將圖1(b)嵌入到圖1(a)中,形成圖1(c)隱秘圖像;最后按照本文提取算法還原出來(lái)的秘密圖像如圖1(d)所示。
(a) 原圖 (b) 原始秘密圖像
(c) 嵌后的圖像 (d) 提取的秘密圖像圖 1 圖像隱藏算法的實(shí)現(xiàn)Fig.1 Schematic diagram of image hiding algorithm
從主觀上觀察圖1,可以看出原載體與嵌密載體幾乎沒(méi)有視覺(jué)區(qū)別,視覺(jué)效果良好,且秘密信息也可以幾乎無(wú)損地被正確提取出來(lái)。在理論上評(píng)價(jià)改進(jìn)算法的性能如下:
為了評(píng)價(jià)信息隱藏算法的可靠性和隱蔽性,采用峰值信噪比RPSN[15]衡量原載體與偽裝載體的區(qū)別。分別選取3幅標(biāo)準(zhǔn)的512×512灰度測(cè)試圖像作為載體圖像,如圖2所示。
圖 2 3幅標(biāo)準(zhǔn)的512×512灰度測(cè)試圖像Fig.2 Three standard 512×512 grayscale test images
將圖1(b)的秘密信息利用本文算法分別嵌入到圖2所示的3幅載體圖像,得到其RPSN值,并與傳統(tǒng)LSB算法和文獻(xiàn)[16-17]的算法進(jìn)行比較,結(jié)果如表2所示??梢钥闯?,本文算法具有較高的RPSN值,不可感知性較好。
表 2 不同算法嵌入相同秘密的RPSN值Tab.2 Different algorithms embed RPSNvalues for the same secret 單位:dB
為檢測(cè)該算法是否具有較好的隱藏容量,將圖1(a)作為載體圖像嵌入不同信息量,計(jì)算嵌入不同信息量時(shí)的RPSN值。將本算法與文獻(xiàn)[18-19]的算法進(jìn)行比較,結(jié)果如圖3所示。可以看出,當(dāng)RPSN相同時(shí),本文算法可以嵌入更多的信息量。
圖 3 不同算法在相同嵌入量下的RPSN比較Fig.3 Comparison of RPSN between the algorithm and other algorithms in the same embedding amount
為檢測(cè)該算法的魯棒性是否良好,對(duì)嵌入了秘密信息的偽裝載體進(jìn)行圖像剪切、噪聲攻擊。圖4分別給出了加0.005的椒鹽噪聲,加0.002的高斯噪聲攻擊,在上方裁剪1/16和在中間裁剪1/16的效果圖以及經(jīng)過(guò)攻擊后提取出來(lái)的秘密信息。
圖 4 各種攻擊及其提取的隱藏信息Fig.4 Various attacks and their hidden information extracted
從圖4可以看出,加入了攻擊后的隱秘圖像對(duì)提取出來(lái)的秘密信息雖然有一定影響,但秘密信息仍清晰可見(jiàn)。計(jì)算上述4種攻擊后的RPSN值,并與文獻(xiàn)[20]中算法的測(cè)試值比較,結(jié)果如表3所示。從表3可以看出,本文算法魯棒性較好。
表 3 常見(jiàn)攻擊的RPSN測(cè)試結(jié)果對(duì)比Tab.3 RPSN test for common attacks
為解決現(xiàn)有圖像信息隱藏算法的一些缺點(diǎn),本文設(shè)計(jì)并完成了一個(gè)基于最高有效位和人類視覺(jué)系統(tǒng)的空域信息隱藏算法的工具軟件,并對(duì)此工具軟件進(jìn)行了性能測(cè)驗(yàn)。實(shí)驗(yàn)結(jié)果表明:此工具軟件可以做到嵌入和提取秘密信息后的偽裝載體與原始載體沒(méi)有明顯的視覺(jué)差異,具有良好的不可見(jiàn)性;在保證RPSN值的情況下,能增加可嵌入秘密信息的容量;在添加了噪聲攻擊和剪裁攻擊等攻擊以后,可以保證較好的魯棒性;很好地平衡了不可見(jiàn)性、嵌入信息容量和魯棒性。所以,此工具軟件可以實(shí)現(xiàn)嵌密信息秘密可靠的傳遞,滿足用戶對(duì)私密信息的保護(hù),具有較高的應(yīng)用價(jià)值。