柯 琦,廖琪男,甘宇健,李國(guó)祥
(廣西財(cái)經(jīng)學(xué)院 計(jì)算機(jī)系,廣西 南寧 530003)
隨著Internet和多媒體技術(shù)的發(fā)展,在信息安全領(lǐng)域中基于數(shù)字圖像的信息隱藏技術(shù)已成為熱點(diǎn)研究課題之一。在當(dāng)今數(shù)字化信息時(shí)代,各種文件資料經(jīng)常被掃描成數(shù)字化文檔,以二值圖像存儲(chǔ)方式保存,并在網(wǎng)絡(luò)上傳輸,例如各種證書、證明材料、合同票據(jù)或機(jī)關(guān)要文等。可見二值圖像的信息隱藏保護(hù)是非常重要的。二值圖像的像素點(diǎn)只有黑白兩種像素值(即“0”、“1”兩種像素值),若隨意修改像素值可能使原圖像產(chǎn)生非常大的變化,留下明顯的修改痕跡。因此需對(duì)二值圖像這一特性進(jìn)行信息隱藏方法的研究。
目前用于二值圖像的信息隱藏方法有分塊嵌入法、文字特征修改法、游程修改法、結(jié)構(gòu)微調(diào)法等[1-5],圖像分塊法相對(duì)其他方法容易實(shí)現(xiàn),信息隱藏量大且隱蔽性好。文獻(xiàn)[6]提出了一種基于分塊的二值圖像信息隱藏算法,算法將原圖像置亂分塊,對(duì)“可修改度”塊最大的像素進(jìn)行修改以嵌入信息。該算法的視覺透明度好但嵌入量小。文獻(xiàn)[7-8]通過獲取圖像奇偶性進(jìn)行分塊,選取可嵌入的奇偶性矩陣塊進(jìn)行像素修改嵌入,使得奇偶性矩陣塊所代表的信息和嵌入信息相一致,進(jìn)而完成數(shù)據(jù)的嵌入和提取,但隱藏的信息容量均有限。文獻(xiàn)[9]利用STC編碼在載體塊序列中選擇一條信息嵌入的最佳修改路徑,實(shí)現(xiàn)信息的嵌入。該算法能夠減小載密圖像的失真度,保持二值圖像中L型的方差統(tǒng)計(jì)特性,抵抗相關(guān)的隱寫檢測(cè),但計(jì)算量大。文獻(xiàn)[10]根據(jù)黑白像素交接處將圖像分成可用塊和不可用塊進(jìn)行信息嵌入。文獻(xiàn)[11]對(duì)圖像分塊后根據(jù)塊中黑白像素的數(shù)量,自適應(yīng)地嵌入秘密信息量。文獻(xiàn)[12-14]的二值圖像分塊算法則出現(xiàn)了“黑白孤島點(diǎn)”現(xiàn)象。
在上述研究基礎(chǔ)上,文中提出一種新的二值圖像特大容量信息隱藏算法,其容量、隱蔽性和穩(wěn)定性等均優(yōu)于以上分塊算法,且不出現(xiàn)“黑白孤島點(diǎn)”現(xiàn)象。
文中算法對(duì)圖像進(jìn)行2×2分塊,如果載體圖像和信息圖像的大小不是2的倍數(shù),則對(duì)圖像進(jìn)行擴(kuò)展,使之符合后再進(jìn)行分塊,但擴(kuò)展的子塊不做信息嵌入。假設(shè)符合2×2分塊的載體圖像記為C,其像素大小設(shè)為M×N;信息圖像記為S,其像素大小為m×n。
把載體圖像、信息圖像都劃分成不重疊的2×2子塊,用2×2的信息塊沿著載體圖像的黑白相間邊緣(2×2黑白子塊)填充來實(shí)現(xiàn)信息嵌入。為了避免在全黑或全白載體圖像中嵌入信息,以及實(shí)現(xiàn)信息的盲提取,可嵌圖像子塊和嵌入信息子塊必須是非全0和非全1。這就要求把信息子塊中全0和全1的子塊修改為非全0和非全1子塊,這樣便破壞了原始信息。但是,如果信息子塊中全0和全1的子塊不多,則提取出的錯(cuò)誤像素信息就不影響信息的識(shí)別。該算法可行的基礎(chǔ)就是對(duì)信息圖像進(jìn)行調(diào)制預(yù)處理,使信息子塊出現(xiàn)全0和全1的概率最小,從而不足以影響提取信息的識(shí)別。
混沌系統(tǒng)是一種復(fù)雜的非線性動(dòng)力系統(tǒng),能產(chǎn)生具有遍歷性、良好的偽隨機(jī)性和對(duì)初值的敏感性等特征的混沌序列。為簡(jiǎn)便有效起見,采用一個(gè)簡(jiǎn)單且被廣泛研究的Logistic一維混沌系統(tǒng)產(chǎn)生算法所需的混沌序列。Logistic系統(tǒng)定義為:
xn+1=μxn(1-xn)
(1)
其中,μ(0≤μ≤4)為分枝參數(shù)。當(dāng)xn∈(0,1),且3.569 945 6<μ≤4時(shí),Logistic映射處于混沌狀態(tài),此時(shí)生成的序列{xn,n=0,1,2…}是非周期、不收斂和不相關(guān)的,對(duì)x0非常敏感,因此具有良好的隨機(jī)統(tǒng)計(jì)特性。
該算法應(yīng)用Logistic混沌序列調(diào)制信息圖像,使信息0、1像素隨機(jī)分布,2×2子塊中全0和全1的機(jī)會(huì)最低。
1.信息圖像像素位置變換。
像素位置變換的目的是破壞像素之間的相關(guān)性。像素位置變換是指將原圖像像素位置(i,j)通過某種方式轉(zhuǎn)變到另一個(gè)新的位置(row,col)。為了獲得好的置亂效果,利用Logistic混沌序列決定像素變換的新位置。
首先,將產(chǎn)生的混沌序列{Xi|i=1,2,…,m×n}重新升(降)序排序得到新序列{cXi|i=1,2,…,m×n},其密鑰取key1。其次,用Xi的位置索引值替換cXi,構(gòu)成索引序列{sXi|i=1,2,…,m×n}。最后,根據(jù)sX序列將原像素(i,j)按行列順序變換到新位置(row,col):

(2)
其中,ceil(x)取不小于x的最近整數(shù),即等于或大于x的最近整數(shù)。圖像像素經(jīng)過位置置亂后,圖像將雜亂無章。
2.信息圖像像素值變換。
像素值變換是指使對(duì)像素值擴(kuò)散,對(duì)于二值圖像就是使像素值0和1均等。該算法采用混沌序列作為XOR異或操作數(shù)來調(diào)制信息圖像的像素值,具體方法如下:
(1)將混沌序列變換為1 bit無符號(hào)整數(shù)作為XOR操作數(shù)。
sY(i)=round(X(i)×10k)mod2
(3)
其中,i=1,2,…,m×n,k≥3。
(2)信息圖像的像素值變換。
像素值Is(i,j)的新像素值Is(i,j)為:
Is(i,j)=Is(i,j)⊕sY((i-1)×n+j)
(4)
其中,i=1,2,…,m;j=1,2,…,n。
原圖像的灰度直方圖統(tǒng)計(jì)特性經(jīng)過圖像像素值變換操作后將會(huì)被徹底改變,0、1個(gè)數(shù)則會(huì)接近相等。
為提高載密圖像的透視性和安全性,嵌入算法將由混沌序列隨機(jī)選擇嵌入塊。
信息嵌入基本步驟如下:
(1)載體圖像按2×2分塊,記為CB(u,v)。
(5)
其中,u=1,2,…,M/2;v=1,2,…,N/2。
(2)把混沌調(diào)制后的信息圖像按2×2不重疊分塊為SB(u,v)。
(6)
其中,u=1,2,…,m/2;v=1,2,…,n/2。
(3)用key2產(chǎn)生混沌序列{Xi|i=1,2,…,M/2×N/2},并生成序列{sXi|i=1,2,…,M/2×N/2}。
(4)根據(jù)序列sXi選擇載體圖像子塊CB(u,v),計(jì)算該子塊和SB(u,v)子塊的白色像素個(gè)數(shù)HC和HS。
(7)
(8)
(5)嵌入信息策略。
①若HC=0或4,不嵌入信息,CB(u,v)不變;
②若HC和HS都不為0和4,則CB(u,v)=SB(u,v);
③若HC不為0和4,HS為0或4,則需將信息塊的其一像素修改為載體圖像子塊對(duì)應(yīng)的像素值,即~SB(u,v)(i,j)=CB(u,v)(i,j),使HS=1或3。然后,CB(u,v)=SB(u,v)。這樣既能減少載體圖像像素的改變,又可保證盲提取的實(shí)現(xiàn)。
重復(fù)步驟4~5,直至信息嵌入完畢。
信息提取是嵌入的逆過程,但嵌入時(shí)修改的像素不可恢復(fù),成為信息的錯(cuò)誤像素。提取的信息經(jīng)反混沌調(diào)制后得到失真3.1%像素的信息圖像。
(1)信息誤碼率。
信息圖像按式2和式4混沌調(diào)制后,已成為0、1隨機(jī)分布的置亂圖像,對(duì)其2×2不重疊劃分后,子塊中全0或全1的概率僅為1/16,嵌入時(shí)被修改像素共為1/32,即誤碼像素為3.1%,這些錯(cuò)誤像素反調(diào)制后不會(huì)影響對(duì)信息的識(shí)別[15]。基于頻域信息隱藏算法提取的信息同樣有失真問題。
(2)算法的容量和透視性。
載體圖像按2×2不重疊分塊,且每可用塊嵌入信息最多,因此算法容量最大。
文中算法只在可嵌2×2子塊內(nèi)修改像素,不會(huì)像文獻(xiàn)[12-14]那樣出現(xiàn)“黑白孤島點(diǎn)”現(xiàn)象;由于調(diào)制后的嵌入信息隨機(jī)分布,載體圖像可嵌子塊像素分布也具有一定的隨機(jī)性,加上嵌入算法采取了減少改變載體像素的策略,可用子塊中每個(gè)像素可能被改變的概率應(yīng)該低于0.5,即單位嵌入信息的修改量應(yīng)低于0.5。因此該算法的透視性好。對(duì)于邊緣復(fù)雜或模糊的二值載體圖像,該算法的質(zhì)量幾乎不會(huì)下降。
實(shí)驗(yàn)平臺(tái)采用Matlab2012b,Logistic混沌系統(tǒng)密鑰key=(μ,x0)=(3.9,0.323 5),式3中k=3。
實(shí)驗(yàn)圖像分別選用Lena 512×512(圖1(a))、Text 480×400(圖2(a))和Logo 64×64(圖1(b)),結(jié)果如表1所示。

表1 信息圖像混沌調(diào)制效果
對(duì)于不同類型不同大小(足夠多樣本)的二值圖像,調(diào)制后的二值信息圖像的2×2分塊中,全0或全1的子塊為3.1%左右,實(shí)驗(yàn)結(jié)果和理論結(jié)果一致,混沌調(diào)制后的隨機(jī)性很理想。
(1)圖形圖像型二值圖像信息隱藏實(shí)驗(yàn)。
對(duì)于圖形圖像型二值圖像,可以嵌入作者信息、版權(quán)信息和秘密信息等。圖1為本次實(shí)驗(yàn)情況,像素被修改率為0.477,提取信息的誤碼率為3.05%。為了與文獻(xiàn)[10-11]的算法進(jìn)行比較,本次實(shí)驗(yàn)載體圖像周邊子塊不嵌信息。

圖1 圖像型二值圖像信息隱藏效果
(2)文本型二值圖像信息隱藏實(shí)驗(yàn)。
文本型二值圖像可以隱藏一些與文本有關(guān)的重要數(shù)據(jù)或認(rèn)證信息等。實(shí)驗(yàn)如圖2所示,像素被修改率為0.467,提取信息的誤碼率為3.13%。結(jié)果表明,圖2中提取信息的3.1%的失真度不影響對(duì)信息的識(shí)別,載密圖像透視性好。
(3)與其他相關(guān)算法的性能比較。
本次實(shí)驗(yàn)采用圖1(a)載體圖像和圖1(b)信息圖像。為了與文獻(xiàn)[10-11]的算法進(jìn)行比較,本次實(shí)驗(yàn)載體圖像周邊子塊不嵌信息。實(shí)驗(yàn)主要比較各算法的嵌入量和計(jì)算同一嵌入信息下的載體圖像的單位信息改變量。結(jié)果如表2所示。
文中算法嵌入策略為每塊嵌4位改4位,理論修改率低于0.5;文獻(xiàn)[10]嵌入策略為嵌3位改4位或嵌2位改4位,其平均塊嵌入量與具體載體圖像有關(guān),像素修改率最大;文獻(xiàn)[11]嵌入策略為嵌1位改1位,理論修改率為0.5。這些值與表1中的實(shí)驗(yàn)結(jié)果是一致的。
提出一種對(duì)二值圖像2×2分塊和利用混沌序列置亂的二值圖像特大容量信息隱藏算法,算法中的混沌序列也可選用更為安全的高維混沌系統(tǒng)序列。與其他2×2分塊算法相比,該算法的載體像素改變少,隱藏容量大。特大的隱藏容量是以犧牲信息3.1%的失真為代價(jià)的,但并不影響對(duì)信息的識(shí)別。應(yīng)用中可根據(jù)載體的容量、信息量和信息保真度要求選擇方案。