補丁算法是一種基于圖像中由像素組組成的集合之間的關系來攜帶秘密信息的圖像隱寫方法。集合可以由系數(shù)、系數(shù)組或其它特征量組成,集合之間的關系可以是大小關系、邏輯關系、能量關系或奇偶性關系等。補丁算法通過修改兩個集合之間的某種關系來嵌入秘密信息,根據對應的集合關系來提取秘密信息。該方法的最大優(yōu)點之一是可以實現(xiàn)盲檢測,可適用于空域、變換域和壓縮域,適應性較強。
【摘要】針對經典補丁算法進行信息隱藏時嵌入容量極低的缺陷,基于圖像置亂和分塊的方法,提出一種改進的圖像隱寫算法。首先將載體圖像進行恰當分塊并進行充分置亂,置亂程度以分塊的均方差來衡量,然后在置亂圖中選擇分塊對進行信息嵌入。實驗結果表明,該方法可將載體圖像的嵌入容量由1比特擴展到數(shù)百比特,同時具有視覺不可覺察性,對JPEG壓縮和噪聲攻擊有較好的魯棒性,可抵御卡方、RS和SPA分析等平面域的經典隱寫分析算法。
【關鍵詞】圖像置亂,置亂度,圖像隱寫,補丁算法
1引言
補丁算法的典型算法只能隱藏1比特的信息,即只能說明該圖像是否存在秘密信息,隱藏的信息量比較小,但算法的魯棒性較強。文獻[3]中提出一種改進的補丁算法算法,可在音頻文件的變換域嵌入水印信息,實驗結果表明,該方法可抵御MP3、AAC等音頻壓縮算法的處理。文獻[4]中也提出了一種改進的頻域音頻數(shù)字水印方案,該方案在統(tǒng)計檢測理論的基礎上,使用音頻信號的頻域嵌入秘密信息,改進后的算法提高了嵌入的信息量,并且具有較好的魯棒性和不可見性。文獻[5]中利用補丁算法方法并結合量化索引調制提出了一個抗剪切的數(shù)字水印方案,對圖像分塊后進行重復嵌入,該方法對剪切攻擊有較好的魯棒性。
補丁算法原理如下:隨機選擇兩個集合A={ai}和B={bi},要求A和B中含有相同的特征量(如像素值、變換域系數(shù)等),設為n;將集合A中所有特征量增加d,同時將集合B中所有特征量減少d,這樣兩個集合中的樣值都經過微小的改動,集合的關系相應發(fā)生改變,實現(xiàn)秘密信息的嵌入。
對于集合A和B的挑選要求兩個集合的特征量的均值在未修改之前盡量接近,越接近,隱藏和提取的效果越好。常見的方法如根據圖像像素的縱橫坐標之和的奇偶性分為兩組,或者隨機選擇。但這些方法挑選出來的樣本均值差異并不總為零,這樣會影響該算法的性能。影響的原因很明顯:若集合A、B的特征量均值差異較大,則對集合中的樣本值進行調整(也即隱寫嵌入)后,并不能保證調整后的集合A'和B'滿足希望的集合關系,從而會影響秘密信息的提取。為降低秘密信息提取的誤碼率,只能增加調整的幅值,這樣無疑會降低載密圖像的質量,容易引起攻擊者的懷疑。
本文給出一種挑選集合的方式,可使集合A、B的特征量均值盡可能接近,由此可以在圖像中選擇多對集合,進而隱藏多比特信息,提高補丁算法的嵌入率。
根據補丁算法算法的原理,若選取像素點的灰度值作為特征量,則挑選A、B集合的理想狀態(tài)是圖像中的所有像素點在圖像平面內按灰度值均勻分布,這樣選出的兩個集合的均值會等于0。自然圖像要承載一定信息,一般不會滿足該要求。為此,可對圖像進行置亂變換,當圖像達到最佳置亂狀態(tài)時,各個灰度值的像素在圖像平面內應該是均勻分布的。目前已有的置亂算法主要包括Arnold[6-7]變換、仿射變換[8]、Walsh變換[9]、Hilbert曲線變換[10]等,這些置亂變換后圖像的直觀效果各不相同。許多置亂變換具有周期性。迭代地對一幅數(shù)字圖像進行變換,即將每次置亂的輸出作為下次置亂的輸入,可以得到一系列的置亂圖像,經過一個周期的置亂后,可以變換回原圖。本文利用這種性質,在最佳的置亂狀態(tài)中挑選集合(假設此時置亂次數(shù)為t,則t可作為隱寫密鑰的一部分),進行數(shù)據隱寫,隱寫后再進行相應次數(shù)的置亂變換,將其恢復為人眼無法與載體圖像區(qū)分的載密圖像。提取秘密信息時,需要將載密圖像進行t次置亂,然后按照隱寫時的方式找出攜帶秘密信息的集合,從而恢復出秘密信息。為了衡量置亂的程度,[11]在分析置亂圖像差分值統(tǒng)計分布特性的基礎上,建立了理想置亂圖像差分統(tǒng)計分布線性模型,并以此為基礎,提出了三種置亂度盲評價算法:斜率絕對差法、差分絕對差法和重疊面積法。[12]提出一種基于分塊信息熵方差的圖像置亂程度評估方法;[13]提出了一種基于各點相關性的圖像置亂程度衡量方法;[14]提出一種基于Walsh變換的圖像置亂程度評價方法。
2本文方法
2.1圖像置亂度衡量
本文中,結合補丁算法挑選集合的思想,以圖像分塊中像素均值的方差來衡量置亂程度。假設最理想的置亂狀態(tài)是各個灰度級的像素在整體范圍內均勻分布,也即按照某個合適的大小對圖像進行分塊后,每個分塊中某灰度值的像素點個數(shù)都等于平均值。則在最佳置亂狀態(tài)下,圖像分塊相對于圖像均值的方差最小。
設給定的N×N大小的數(shù)字圖像用A={aij}N×N表示,求最佳置亂狀態(tài)的過程如下:
步驟1計算整幅圖像像素值的均值image_ave,
。1)
步驟2將圖像按照合適大小分為num個子塊,然后求各個子塊的像素值均值相對與image_ave的方差std,其中avei是第i個分塊的均值,
(2)
步驟3對圖像進行一個周期的迭代置亂,并用(2)計算各個置亂狀態(tài)下的方差。方差達到最小的狀態(tài)即為最佳置亂狀態(tài)。
理想情況下,在最佳置亂狀態(tài)的圖中任意選擇兩個相同大小的集合A、B,其均值可近似看作相同。
2.2隱寫嵌入過程
為嵌入更多秘密信息,可以將置亂圖劃分成大小合適的子塊,每個子塊可當作一個集合,選擇兩個子塊即可嵌入1bit信息。為區(qū)分嵌入的信息是“1”還是“0”,可采用下面方法:
設選擇的兩個子塊集合分別為A={ai}、B={bi},計算兩個集合均值的差值dif,
。3)
n是A、B集合中元素的個數(shù)。當隱寫嵌入“1”時,放大其差值,若嵌入“0”時,則縮小差值。例如,若dif>0,說明A集合的均值大于B集合均值,為放大差值,則令A中所有樣點的像素值加d(d>0),B中所有樣點的像素值減d;若嵌入“0”時,為縮小差值,則令A中所有樣點的像素值減d,B中所有樣點的像素值加d。d的取值可由用戶根據需要確定。提取秘密信息時,按照同樣的置亂、分塊和集合選擇方式,找出對應的集合A、B。計算A、B的樣本均值之差dif,若|dif|?莛r*d,則提取出秘密信息1,否則提取出秘密信息0。r是根據情況確定的檢測閾值。
隱寫過程可描述如下:
步驟1選擇載體圖像,置亂到最佳置亂程度,設此時置亂次數(shù)為t。
步驟2根據密鑰K,在置亂圖像中選擇分塊集合對A、B。
步驟3若需嵌入的秘密信息b=“1”,則按式(4)對集合A,B中的元素進行差值擴大;若b=“0”,則按式(5)進行差值縮小。ai、ai指集合A、B中的元素,ai'和bi'為修改后的元素值。
步驟4將置亂載密圖繼續(xù)進行(T-t)次迭代置亂,得到載密圖像。T為圖像的置亂周期。
故隱寫過程的密鑰由兩部分組成:置亂次數(shù)t和選擇集合位置的密鑰k。
2.3秘密信息提取
秘密信息提取過程:
步驟1選擇測試圖像,進行t次置亂。
步驟2根據密鑰k,在置亂圖像中選擇分塊集合對A、B。計算A、B的樣本均值之差dif。若|dif|>r*d,則提取出秘密信息1,否則提取出秘密信息0。
3實驗結果
3.1圖像置亂結果
利用本文中的置亂評價方法,當圖像分塊大小分別為16×16、32×32、64×64、128×128時,以lena圖為例,所得的最佳置亂圖分別如圖1所示。可以看出,在本文中的置亂度衡量方法下,達到最佳置亂的時候,各個灰度值的像素在整個圖像范圍內分布較為均勻。本文提出的置亂度的衡量指標與人眼視覺感知的混亂程度相符。
。╝)16×16(b)32×32(c)64×64(d)128×128
3.2圖像隱寫結果
隱寫測試使用lena、baboon、pepper、sailboat等經典測試圖像,分塊大小分別取16×16、32×32、64×64,相應的秘密信息長度分別為512比特、128比特和32比特,分塊越小,則嵌入的秘密比特數(shù)越多。
測試中置亂變換采用Arnold變換。秘密信息是二進制的隨機序列。
圖2中為16×16分塊和32×32分塊隱寫前后的lena圖,加密前后視覺上無法區(qū)分。為進一步提高嵌入后載密圖像的質量,可以考慮使用編碼的方式進行秘密信息的嵌入,以減少對載體圖像的修改。
。╝)16×16分塊隱寫前后
。╞)32×32分塊隱寫前后
3.3算法魯棒性測試
表1中列出了當分塊大小為32×32時,對測試圖像進行不同壓縮品質因子的壓縮后,提取秘密信息的誤碼率。對多數(shù)圖像,即使壓縮因子達到20,仍能正確提取出90左右的秘密信息,如果壓縮因子不小于40,則能正確提取出95%左右的秘密信息。因此,該方法對JPEG壓縮有較好的魯棒性。
表2列出了對載密圖像分別添加均值為0,方差為0.005的高斯白噪聲和0.005的椒鹽噪聲后提取秘密信息的誤碼率。
由于高斯白噪聲對圖像影響較大,該方法抵御高斯白噪聲攻擊的性能稍差,抵御椒鹽噪聲的性能較好。
3.4算法安全性測試
本算法屬于平面域的隱寫算法,故使用平面域隱寫分析算法的經典檢測方法卡方分析、RS分析和SPA分析檢測其安全性。表3為32×32分塊大小時,三種方法檢測出的隱寫率。當使用卡方分析方法時,有3幅圖像檢測不出隱寫,對于sailboat圖像,對無隱寫的原圖估計的隱寫率也有0.36,故應是載體圖像的影響。當使用RS和SPA方法時,估計的隱寫率均為負值,說明這些隱寫分析方法對本文算法無效,該算法有較好的安全性。
4結束語
針對補丁算法算法嵌入率低的缺憾,在對圖像進行充分置亂的基礎上,利用置亂圖的分塊進行信息的嵌入。該方法每幅圖可嵌入的秘密信息從1比特提升到幾十至數(shù)百比特,可用于隱藏版權標識等少量信息。實驗結果表明,該算法具有視覺不可見性,同時對JPEG壓縮和低強度的噪聲具有魯棒性,對常見的平面域隱寫分析方法有較好的安全性。
參考文獻
[1]Bender,W,Gruhl,D,Morimoto,N,&Lu,A.Techniquesfordatahiding[J].ImageProcessing,IEEETransactionson,1997,6(12):1673-1687.
[2]楊榆.信息隱藏與數(shù)字水印實驗教程[M].北京:國防工業(yè)出版社.2010.43-46.
[3]In-KwonYeo,HyoungJoongKim.Modifiedpatchworkalgorithm:anovelaudiowatermarkingscheme,SpeechandAudioProcessing,IEEETransactionson,2003,11(4),381-386.
[4]王丹華,范鐵生,魏曉蕊等.基于補丁算法的頻域音頻數(shù)字水印的改進方案[J].自動化技術與應用,2007,26(1):99-101.
[5]王麗,趙媛媛,趙耀等.一種抗剪切的魯棒數(shù)字水印[J].數(shù)據采集與處理,2006,21(3):330-333.
[6]丁瑋,閆偉齊,齊東旭.基于Arnold變換的數(shù)字圖像置亂技術[J].計算機輔助設計與圖形學學報,2001,13(4):338-341.
轉載請注明來自:http://www.jinnzone.com/jisuanjiwangluolw/29901.html