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