專利名稱:基于易碎水印和值合并技術(shù)的安全圖像認(rèn)證方法
技術(shù)領(lǐng)域:
本實用新型技術(shù)方案屬于數(shù)字圖像精確認(rèn)證技術(shù)領(lǐng)域,涉及基于易碎水印的圖像認(rèn)證方法。
背景技術(shù):
視覺是人類感知信息最重要的途徑,人們從外部世界獲得信息的70%~80%是從視覺獲得,而人眼可感知的信息大部分是以圖像形式出現(xiàn)的。現(xiàn)代數(shù)字技術(shù)的發(fā)展把人們帶進(jìn)了一個嶄新的時代。對于多媒體數(shù)據(jù)而言,數(shù)字多媒體數(shù)據(jù)具有傳統(tǒng)模擬時代無法比擬的優(yōu)點。然而,數(shù)字媒體在帶給人們方便的同時,也帶來了一些潛在的風(fēng)險。它們很容易被惡意篡改,給使用者造成嚴(yán)重的后果。因此如何對數(shù)字圖像進(jìn)行認(rèn)證(即,如何確保數(shù)字圖像的正確性)就成為急待解決的問題之一。
要解決數(shù)字圖像的真實性問題,一般有兩種方法傳統(tǒng)密碼學(xué)中的認(rèn)證方法和基于數(shù)字水印的方法。
現(xiàn)有基于傳統(tǒng)密碼學(xué)的圖像認(rèn)證方法使用圖像的灰度直方圖[1]、邊緣[2]、塊灰度均值[3]等產(chǎn)生簽名信息,并把簽名信息保存在圖像的文件頭中或第三方數(shù)據(jù)庫中。這類方法由密碼學(xué)中嚴(yán)格的數(shù)學(xué)推導(dǎo)和證明作保證,因此安全性較高。但是該類方法用于圖像認(rèn)證時表現(xiàn)出一些不足需要額外的數(shù)據(jù)存儲和管理;篡改定位精度有限;有的算法(如基于公鑰加密的認(rèn)證算法)計算復(fù)雜,不適合圖像這種大數(shù)據(jù)量數(shù)據(jù)的運算。因此基于易碎水印的圖像認(rèn)證技術(shù)近年來逐漸成為一個研究熱點[4~6]。該技術(shù)和傳統(tǒng)密碼學(xué)中認(rèn)證技術(shù)相比具有如下一些優(yōu)點[7]不需要額外的數(shù)據(jù)管理;可以判斷篡改類型;可以比較精確地進(jìn)行篡改定位等等。
文[8]把給定的圖標(biāo)作為水印并嵌入原始圖像,具有一定的篡改檢測和定位能力,但易遭受共謀攻擊。文[9]和文[10]分別使用塊均值和DCT系數(shù)作為圖像特征來計算水印,該類方法的水印信號和圖像本身相關(guān),具有較強的抗共謀攻擊的能力,但易遭受特征提取攻擊[11]。文獻(xiàn)[12]通過把圖像分割為各個獨立的小塊,然后分別在各個小塊上計算并嵌入各自的水印,具有較強的篡改檢測能力,提高了篡改定位的精度,但難以抵抗量化攻擊[13,14]。文獻(xiàn)[13]中指出了導(dǎo)致量化攻擊的前提是認(rèn)證單元之間在計算、嵌入水印時互不相關(guān),并指出消除分塊獨立性可以抵抗量化攻擊。Celik在文獻(xiàn)[15,16]中提出了一種分層的分塊認(rèn)證算法來消除分塊獨立性,但篡改定位的精度不夠高。文[17]中采用由分塊編號和圖像唯一索引構(gòu)成的標(biāo)識與128位的哈希值進(jìn)行異或產(chǎn)生水印并嵌入圖像,其產(chǎn)生的標(biāo)識用來消除分塊獨立性,可抵抗量化攻擊,該算法可以把篡改定位到大小為128個象素的子塊上,其篡改定位能力優(yōu)于Celik的方法,但其標(biāo)識的構(gòu)造存在安全隱患。
發(fā)明內(nèi)容
針對現(xiàn)有圖像認(rèn)證系統(tǒng)易受攻擊的缺陷,本發(fā)明提供一種安全、高效的基于易碎水印和值合并技術(shù)的安全圖像認(rèn)證方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案如下基于易碎水印和值合并技術(shù)的安全圖像認(rèn)證方法,它由如下步驟組成(1)使用種子密鑰,經(jīng)密鑰生成函數(shù)產(chǎn)生每個認(rèn)證單元的密鑰信息;(2)構(gòu)造象素值VCT運算,并對每一個認(rèn)證單元,使用其密鑰,產(chǎn)生該單元的象素合并值;(3)構(gòu)造位置信息VCT運算,對每個單元產(chǎn)生其位置信息合并值;(4)在本單元密鑰的控制下,通過水印產(chǎn)生函數(shù),將(2)、(3)中得到的合并值進(jìn)行計算,得到水印信息,并嵌入本認(rèn)證單元。
所述的嵌入算法為對每個m×n的圖像塊,有如下步驟(1)用戶使用種子密鑰K,經(jīng)密鑰生成函數(shù)ξ(·):ξ(·)=(ξ1T(·),ξ2T(·),Λ,ξCT(·))T]]>產(chǎn)生第i個圖像塊Ii的密鑰Ki:Ki=ξiT(K),]]>C表示圖像I經(jīng)大小為m×n分塊后得到的總塊數(shù)。
(2)在密鑰Ki的控制下,使用VCT將Ii的高位象素值進(jìn)行合并,合并方法為
a.設(shè)水印嵌入到象素中的低p位平面,因此在計算水印時先將圖像塊Ii中所有象素的低p位置0,得 b.令向量Bi=(I^i1,I^i2,Λ,I^im×n)T,]]>其中 為 中第j個象素值的高8-p位,j=1,2,Λ,m×n。作象素值VCT運算(·),使Vi=(Bi,Ki)。(·)滿足當(dāng)且僅當(dāng)Bi=Bi′時,(Bi,Ki)=(Bi′,Ki)。
(3)使用VCT對塊Ii的位置信息(Xi,Yi)組成的位置信息向量PiPi=(Xi,Yi)T,其中Xi是塊的行信息,Yi是塊的列信息。構(gòu)造位置信息VCT運算φ(·)(φ(·)與(·)具有相同的屬性),產(chǎn)生位置信息合并值LiLi=φ(Pi,Ki)。
(4)使用象素合并值向量Vi和塊位置信息合并值Li,并在密鑰Ki的控制下,通過水印產(chǎn)生函數(shù)f(·)產(chǎn)生水印信息wiwi=f(Vi,Li,Ki);(5)把水印wi嵌入到Ii中,得到含水印圖像塊Ii′Ii′=Embed(Ii,wi,p);所述的認(rèn)證算法為使用與嵌入算法步驟(1)中相同的算法和密鑰,從待測圖像塊Ii″中產(chǎn)生水印信息wi′;從Ii″的低p位提取嵌入的水印wi″;通過檢查wi′和wi″是否相等,從而判別待認(rèn)證圖像塊Ii″是否能通過認(rèn)證。
嵌入算法中的步驟(1),使用種子密鑰產(chǎn)生各個圖像塊所需的密鑰,在增強系統(tǒng)抗攻擊難度的同時隱含“記住”總分塊數(shù)用于抵抗裁減攻擊。
嵌入算法中的步驟(2)(3),使用VCT產(chǎn)生合并值和VCT運算的構(gòu)造原則。
嵌入算法中的步驟(4),把象素合并值和位置信息合并值一起作為水印產(chǎn)生函數(shù)的輸入用于抵抗量化攻擊。
水印產(chǎn)生函數(shù)應(yīng)使選擇的水印策略滿足|πi|(i=1,2,Λ,|M|)彼此相等或近似相等,以增加攻擊者進(jìn)行選擇塊攻擊的難度。
1.針對共謀攻擊。本發(fā)明使用的水印由圖像本身生成,不同的圖像通過水印產(chǎn)生算法將產(chǎn)生不同的水印,由此可以有效抵抗共謀攻擊。
2.針對特征提取攻擊。本發(fā)明提出了“值合并技術(shù)——VCT(ValueCombination Technique)”,并給出VCT運算的構(gòu)造原則。由于認(rèn)證單元灰度值和VCT產(chǎn)生的合并值是一一對應(yīng)的,因此避免了灰度值不同、合并值相同的這種“碰撞”現(xiàn)象,使得攻擊者對認(rèn)證系統(tǒng)的攻擊變的極為困難。
3.針對量化攻擊。本發(fā)明使用VCT對認(rèn)證單元的位置信息進(jìn)行合并,并將得到的位置信息合并值也作為水印產(chǎn)生函數(shù)的一個輸入。使得產(chǎn)生的水印和該認(rèn)證單元的位置相關(guān),因此抵抗了量化攻擊。
4.由于合并值向量作為水印產(chǎn)生函數(shù)的輸入,并且考慮算法抵抗偽認(rèn)證攻擊的能力。本發(fā)明使用多維混沌級聯(lián)系統(tǒng)作為水印產(chǎn)生函數(shù)。
5.由于現(xiàn)有的“高位計算、低位嵌入”的算法設(shè)計思想,使得認(rèn)證單元和產(chǎn)生的水印之間呈現(xiàn)多對一的關(guān)系,因此對單幅圖像可能出現(xiàn)“漏檢”的現(xiàn)象。本發(fā)明從類劃分的角度,對算法的可靠性進(jìn)行分析,給出可靠性分析的一般準(zhǔn)則和算法設(shè)計的參考原則。
和現(xiàn)有技術(shù)相比,本發(fā)明由于使用了VCT等一系列技術(shù),使得本發(fā)明對包括特征提取攻擊、量化攻擊等在內(nèi)的偽認(rèn)證攻擊具有很強的抵抗力;安全性分析表明對本發(fā)明進(jìn)行偽認(rèn)證攻擊幾乎不可能成功;同時本發(fā)明對象素灰度值直接進(jìn)行操作,不涉及圖像的正交變換,這使得本發(fā)明具有較快的運算速度,適合高效的對大量圖像進(jìn)行操作;針對現(xiàn)有的易碎水印設(shè)計思想造成的“漏檢”現(xiàn)象,提出了算法可靠性的概念,并給出了可靠性分析的一般準(zhǔn)則,基于此提出了算法設(shè)計的參考原則。
圖1為本發(fā)明的基本原理示意圖;圖2為實數(shù)在計算機(jī)中的表示形式;圖3為原始實驗圖像;圖4為多級混沌級聯(lián)示意圖;圖5為含水印圖像;
圖6為第100行100列灰度值減1后的圖像;圖7為對圖6進(jìn)行檢測的篡改定位圖;圖8為對本發(fā)明提出的方案進(jìn)行量化攻擊得到的圖像;圖9為對圖8進(jìn)行檢測的篡改定位圖;圖10為由不考慮位置信息的方案得到的含水印圖像;圖11為對圖10進(jìn)行檢測的篡改定位圖;圖12為對圖10進(jìn)行量化攻擊的示意圖;圖13為對圖12進(jìn)行檢測的篡改定位圖。
具體實施例方式
1.本發(fā)明采用的算法描述1.1算法原理本發(fā)明借鑒文獻(xiàn)[12]中使用的分塊思想完成對圖像的篡改檢測和篡改定位。首先對圖像I進(jìn)行塊大小為m×n的分塊,然后對每個圖像塊獨立計算水印并嵌入,定位精度為m×n。為保證含水印圖像的質(zhì)量,在嵌入過程中本發(fā)明使用高位計算水印,低位嵌入水印的方法。
如圖1所示,本方案由嵌入算法和認(rèn)證算法組成。嵌入算法通過對圖像I中象素值高位平面進(jìn)行計算,得到水印W;并將W嵌入圖像I的低位平面中,形成含水印圖像I′認(rèn)證算法使用與嵌入算法中相同的算法和參數(shù),對待測圖像I″(I′被攻擊后得到I″)的象素值高位平面進(jìn)行計算,產(chǎn)生水印W′;并從待測圖像I″的低位平面提取“原來”嵌入的水印W″;通過比較W′和W″是否相等來判斷圖像是否能通過認(rèn)證。
1.2嵌入算法對每個m×n的圖像塊,有如下步驟1)用戶使用種子密鑰K,經(jīng)密鑰生成函數(shù)ξ(·):ξ(·)=(ξ1T(·),ξ2T(·),Λ,ξCT(·))T]]>產(chǎn)生第i個圖像塊Ii的密鑰Ki:Ki=ξiT(K),]]>C表示圖像I經(jīng)大小為m×n分塊后得到的總塊數(shù)。
2)在密鑰Ki的控制下,使用VCT將Ii的高位象素值進(jìn)行合并,合并原理如下a.設(shè)水印嵌入到象素中的低p位平面,因此在計算水印時先將圖像塊Ii中所有象素的低p位置0,得 b.令向量Bi=(I^i1,I^i2,Λ,I^im×n)T,]]>其中 為 中第j個象素值的高8-p位,j=1,2,Λ,m×n。作象素值VCT運算(·),使Vi=(Bi,Ki)。(·)滿足當(dāng)且僅當(dāng)Bi=Bi′時,(Bi,Ki)=(Bi′,Ki)。
例如令Bi=(x1,x2,Λ,xm×n)T,作g(Bi,Ki)=^y1,1u1,2ΛΛy1,ky2,1y2,2ΛΛy2,kMym×nk,1ym×nk,2ΛΛym×nk,k=^Vi.1Vi,2MVi,m×nk,a=1,2,Λ,k,b=1,2,Λ,m×nk.---(1)]]>其中ya,b是向量Bi中的一個元素,由Ki決定。產(chǎn)生包含 個元素的合并值向量Vi:Vi=(Vi,1,Vi,2,Λ,Vi,m×nk)T.]]>3)使用VCT對塊Ii的位置信息(Xi,Yi)組成的位置信息向量PiPi=(Xi,Yi)T,其中Xi是塊的行信息,Yi是塊的列信息。構(gòu)造位置信息VCT運算φ(·)(φ(·)與(·)具有相同的屬性),產(chǎn)生位置信息合并值LiLi=φ(Pi,Ki)。
4)使用象素合并值向量Vi和塊位置信息合并值Li,并在密鑰Ki的控制下,通過水印產(chǎn)生函數(shù)f(·)產(chǎn)生水印信息wiwi=f(Vi,Li,Ki);5)把水印wi嵌入到Ii中,得到含水印圖像塊Ii′Ii′=Embed(Ii,wi,p);1.3認(rèn)證算法認(rèn)證算法也是以圖像塊為單位的,步驟如下1)使用嵌入算法中相同的算法和密鑰,從待測圖像塊Ii″中產(chǎn)生水印信息wi′;2)從Ii″的低p位提取嵌入的水印wi″;
3)通過檢查wi′和wi″是否相等,從而判別待認(rèn)證圖像塊Ii″是否能通過認(rèn)證。
2.算法分析2.1值合并技術(shù)VCT目前很多算法把從圖像提取的特征作為水印(或用來計算水印)。特征選取攻擊的前提是所選取的用來表達(dá)圖像的特征量并不能充分表達(dá)圖像的全部信息[7],即修改后的圖像仍能提取出用來表達(dá)未修改的圖像特征的特征量。
命題1使用嵌入算法中構(gòu)造的象素值VCT運算(·),可以抵抗特征提取攻擊。
證明給定圖像塊Ii、密鑰Ki,產(chǎn)生向量Bi;任意修改Ii到Ii′,由Ii′產(chǎn)生向量Bi′,根據(jù)(·)的構(gòu)造,當(dāng)Bi≠Bi′時,有不等式(Bi,Ki)≠(Bi′,Ki)成立。因此使用合并值(Bi,Ki)作為圖像的“特征”,可以抵抗特征提取攻擊。
注1值得注意的是,對圖像塊Ii直接使用VCT可以抵抗特征選取攻擊,但是考慮計算機(jī)對數(shù)據(jù)表示精度的限制,把圖像塊中m×n個象素一起進(jìn)行值合并,產(chǎn)生的合并值很可能超出了計算機(jī)的表示精度,所以為了解決這個問題,本發(fā)明對圖像塊進(jìn)行k粒度分組,并以分組為單位進(jìn)行值合并。
命題2將使用位置信息VCT運算φ(·)產(chǎn)生的合并值Li作為水印產(chǎn)生器f(·)的一個輸入,可以抵抗量化攻擊,并且篡改定位的精度依然是是圖像塊的大小m×n。
證明嵌入算法中對圖像塊Ii的位置信息Pi使用φ(·)進(jìn)行了合并,由于構(gòu)造的位置信息合并運算φ(·)是一一對應(yīng)的,所以不可能出現(xiàn)當(dāng)位置信息Pi改變時,合并值Li不變的這種“碰撞”現(xiàn)象。合并值Li作為水印產(chǎn)生器f(·)的一個輸入,可以使產(chǎn)生的該塊的水印wi和該塊的位置相關(guān)。因此可抵抗通過互換圖像塊進(jìn)行修改圖像的量化攻擊。
注2目前分塊獨立思想的算法常常會遭受量化攻擊[13,14]。常用抗量化攻擊的方法是使每個圖像塊的水印依賴其它圖像塊,可是這種方法會降低算法的篡改定位精度力。本算法中把塊位置信息合并值作為本塊水印產(chǎn)生器的一個輸入,這樣可以在不降低篡改定位精度的同時,抵抗量化攻擊。算法的篡改定位精度仍然是圖像塊的大小m×n。
2.2分塊、分組大小的選擇由于混沌具有遍歷性、內(nèi)隨機(jī)性和初值敏感性,使得從混沌軌道擬合混沌迭代方程和控制參數(shù)變得極為困難。同時因為混沌系統(tǒng)便于構(gòu)造,所以本發(fā)明選用混沌迭代作為水印產(chǎn)生函數(shù)f(·)。
由于使用混沌系統(tǒng)計算水印,混沌系統(tǒng)的值域是實數(shù)域,因此需要考慮計算機(jī)對實數(shù)的表示。設(shè)實數(shù)在某計算機(jī)系統(tǒng)中用ε位表示,其中尾數(shù)τ位(包括符號位)。形式如圖2設(shè)γ為使用該表示形式的十進(jìn)制小數(shù)的有效位。根據(jù)圖2知計算機(jī)中實數(shù)的尾數(shù)和指數(shù)是分開表示的,因此在γ的范圍中最大可以表示的十進(jìn)制數(shù)為 并“應(yīng)該”可以存放到τ個比特位中。如果2τ-1等于 時,那么有效數(shù)字范圍為γ。如果兩者不相等,那么有效數(shù)字為(γ-1)或γ。
因為合并函數(shù)(·)是對圖像灰度值進(jìn)行考慮,每個灰度值不大于255。因此分組粒度k必須滿足3*k≤γ?;煦缦到y(tǒng)輸出的結(jié)果為εbits,即圖像塊的嵌入容量為εbits。如果水印嵌入到象素的低p位平面,因此分塊大小m×n應(yīng)滿足m×n=ε/p。
2.3安全性分析基于圖像本身的圖像認(rèn)證算法的優(yōu)劣與否是和對該算法進(jìn)行偽認(rèn)證的難易程度相對應(yīng)的。出現(xiàn)偽認(rèn)證主要是因為圖像和由其產(chǎn)生的水印之間不是一一對應(yīng)的關(guān)系,導(dǎo)致了在圖像高位不同的情況下可能產(chǎn)生相同的水印。本方案能否抵抗攻擊?抵抗能力的強弱如何?為回答這些問題,本發(fā)明僅以一個具體的算法來說明本方案對攻擊者而言是困難的。
根據(jù)算法思想可知,由原圖像計算水印要經(jīng)過分組、合并、產(chǎn)生水印等過程。設(shè)圖像塊Ii的大小為m×n,分組粒度為k。設(shè)水印嵌入到圖像的低p位平面,將圖像塊Ii中所有象素的低p位置0,得 并且根據(jù)以上分析,可知水印wi為m×n×pbits。密鑰Ki控制合并運算(·)、φ(·)和水印產(chǎn)生函數(shù)f(·),其形式為Ki=Ki,1Ki,2Ki,3Ki,4,其中通過Ki,1控制(·);Ki,2控制φ(·);Ki,3控制輸入f(·)的初始變量的選?。籏i,4控制f(·)中混沌迭代的次數(shù)。Ki,1,Ki,2,Ki,3,Ki,4分別是十進(jìn)制di,1,di,2,di,3,di,4位整數(shù)。
使用第2節(jié)中的(1)式作為象素VCT運算。對于塊Ii的位置信息向量PiPi=(Xi,Yi)T,有位置信息VCT運算φ(Pi,Ki)=^x1x2=^Li.]]>在此xa(a=1,2)分別為位置信息Xi或Yi。
圖像塊Ii經(jīng)過(·)運算后得到 個合并值,它們與位置信息合并值Li一起作為f(·)的初始變量,通過迭代產(chǎn)生該塊的水印信息wi。因此混沌迭代f(·)具有 個輸入。
考慮攻擊者對系統(tǒng)進(jìn)行最高強度的攻擊,即(·)、φ(·)和f(·)對攻擊者而言是完全知曉的,攻擊者不知的僅僅是(·)、φ(·)和f(·)的輸入,這些輸入完全由系統(tǒng)的密鑰所確定,因而攻擊者在沒有密鑰的情況,只能對系統(tǒng)的所有的輸入可能進(jìn)行窮舉。事實上A.當(dāng)(·)的結(jié)構(gòu)已知時,合并值Vi完全由Ki確定,因此攻擊者必須窮舉所有形如(1)式的合并值。根據(jù)(·)可知,對于合并值向量中的第一個元素共有Cm×nk×k!種可能,第二個元素共有Cm×n-kk×k!種可能,以此類推第 個元素有Ckk×k!種可能。因此象素合并值向量共有(Cm×nk×k!)×(Cm×n-kk×k!)×Λ×(Ckk×k)種可能,即Pm×nk×Pm×n-kk×Λ×Pkk=(m×n)!]]>種可能。因此在不知道Ki,1時,象素合并值有(m×n)!種可能。
B.類似A中分析,位置信息合并值有2!種可能。
C.當(dāng)f(·)的結(jié)構(gòu)已知時,水印計算由混沌迭代f(·)的初值選取控制Ki,3和f(·)的迭代次數(shù)Ki,4確定?;煦绲?個輸入,所以有 種初值選??;由于Ki,4是十進(jìn)制di,4位整數(shù),所以混沌迭代次數(shù)有10di,4種可能。因此從合并值得到水印值共有 種可能。
由A,B和C知當(dāng)攻擊者已知(·)、φ(·)和f(·)的結(jié)構(gòu)時,對一個圖像塊成功進(jìn)行偽認(rèn)證的概率是1/[(m×n)!×2!×(m×nk+1)!×10di,4.]]>如設(shè)m×n=8×8,k=4,di,4=3,當(dāng)(·)和f(·)結(jié)構(gòu)均已知時,攻擊者偽認(rèn)證成功的概率為1/(8×8)!×2!×17!×103≈10-106??梢姳景l(fā)明的方案與文[17](偽認(rèn)證成功的概率為1/252≈10-15,篡改定位精度為128bits)相比,安全性得到了明顯的提高,并且篡改定位的精度也提高了2倍。
注3在(·)、φ(·)和f(·)結(jié)構(gòu)都已知的情況下,攻擊者進(jìn)行攻擊的難度不僅取決于密鑰Ki,而且與分塊大小m×n也有關(guān),當(dāng)m×n較小的時候,抵抗攻擊的能力會降低。方案實施者應(yīng)根據(jù)安全性和實際應(yīng)用的需要,構(gòu)造更為合適的(·)、φ(·)和f(·)及分塊大小的設(shè)置來滿足不同應(yīng)用和安全要求。
2.4可靠性分析以上分析是對算法安全性的分析,主要是考慮攻擊者對認(rèn)證系統(tǒng)的攻擊。盡管對攻擊者而言攻擊系統(tǒng)是困難的。但正如前面所分析的那樣,高位計算,低位嵌入的方法是一種多對一的映射關(guān)系(水印嵌入到圖像的低p位平面,但考慮含水印圖像的圖像質(zhì)量,p的取值一般不超過2),因而存在著對單幅圖像的攻擊可能是有效的,即存在被篡改后的圖像(圖像塊)仍可通過認(rèn)證。本小節(jié)僅從這個角度對算法的可靠性進(jìn)行分析。
定義1若圖像塊Ii被篡改,且該塊仍可通過認(rèn)證,則稱為該塊漏檢。
定義2若一幅圖像被篡改了D塊,且所有被篡改的塊都漏檢(通過認(rèn)證),則稱為圖像出現(xiàn)D塊漏檢。
本發(fā)明的算法是篡改檢測和定位同時進(jìn)行的。但從應(yīng)用角度來看,圖像認(rèn)證首先是判斷圖像是否被篡改,然后定位圖像被篡改的地方。因此當(dāng)圖像被篡改D塊后,只要有一塊被檢測出遭到篡改,即斷定圖像是不真實的。因此,只有所有被篡改的塊都通過了認(rèn)證時,才產(chǎn)生圖像漏檢。由定義2,若記圖像D塊漏檢概率為P,則檢測的正確率為1-P。
對于大小為m×n的圖像塊Ii,水印嵌入到圖像的低p位平面,水印嵌入實際上是一種映射關(guān)系,記為映射Ω∶?!鶰,其中Γ是大小為m×n圖像塊的高(8-p)位平面空間,M是水印信息的空間,則|Γ|=2m×n×(8-p),|M|=2m×n×p。由映射Ω可將Γ分成|M|類Γ=Yi=1|M|πi,πiIπj=πi,i=jφ,i≠j---(2)]]>其中πi={α|α∈ΓΛΩ(α)=βi,βi∈M,i=1,2,Λ,|M|},則圖像塊Ii的高(8-p)位平面必屬于某πj。若αμ是圖像塊Ii高(8-p)位平面,且αμ≠αν,αμ,αν∈πi時,用αν來替換αμ,則檢測仍能通過,即產(chǎn)生偽認(rèn)證。圖像塊Ii被篡改且能通過認(rèn)證的概率記為P(Ii),則P(Ii)=|πj||Γ|,]]>記為Pij。則有如下結(jié)論性質(zhì)1若圖像的Ii1,Ii2,Λ,IiD塊被篡改,則圖像的漏檢率為 證明由分析可知對圖像塊Iij(j=1,2,Λ,D)的漏檢概率為Pij。對于一幅篡改了D塊的圖像,各塊發(fā)生漏檢可以認(rèn)為是相互獨立的事件,則由定義2知,所有被篡改的塊都漏檢的概率為P=Pi1×Pi2×Λ×PiD=Πj=1DPij.]]>性質(zhì)2若圖像的Ii1,Ii2,Λ,IiD塊被篡改,則D塊能被全部定位的概率為 證明由于對圖像塊Iij(j=1,2,Λ,D)的漏檢概率為Pij。所以塊Iij可檢測出來的概率為1-Pij。由于各塊發(fā)生漏檢是相互獨立的事件,所以D塊能被全部定位的概率為(1-Pi1)×(1-Pi2)×Λ×(1-PiD)=Πj=1D(1-Pij).]]>事實上,攻擊者對系統(tǒng)乃至于對一幅圖像的攻擊主要取決于系統(tǒng)設(shè)計的策略和算法的優(yōu)劣。如果映射Ω能使|πi|(i=1,2,Λ,|M|)均勻,即P(Ii)=|πj||Γ|=|Γ|/|M||Γ|=1|M|,i=1,2,Λ,|Γ|,]]>那么攻擊者對圖像每一塊成功的篡改的可能性是一樣的,從而攻擊者進(jìn)行選擇塊攻擊的難度是一樣的;否則,存在一個圖像塊Ii,使得P(Ii)>1|M|,]]>即對某些特定的圖像塊攻擊難度降低,攻擊者進(jìn)行選擇塊攻擊成功的可能性增加。比如,設(shè)圖像大小為64×64,圖像分塊大小m×n=8×8,p=1,映射Ω能使|πi|(i=1,2,Λ,64)均勻,則每一塊的漏檢概率為2-64;當(dāng)D=10時,該圖像的漏檢概率為(2-64)10=2-640≈10-193,因此,該圖像檢測結(jié)果的正確性為1-2-640≈1。所有篡改的塊都能被精確定位的概率為(1-2-64)10≈1。
注4易碎水印的首要任務(wù)是檢測圖像是否被篡改,因此圖像的漏檢概率 決定算法的可靠性。當(dāng)D值增加時, 減小,說明每一塊都正確定位的概率減??;然而,當(dāng)D值增加時, 增大,說明篡改的圖像塊越多,算法的檢測結(jié)果越可靠。需要指出的是位置合并值對水印也是有影響的,但從便于分析的角度來說,分析時并未涉及。
注5設(shè)計者選擇的水印策略應(yīng)該滿足|πi|(i=1,2,Λ,|M|彼此相等或近似相等,從而使得攻擊者進(jìn)行選擇塊攻擊的難度增加。此外,嵌入位p值的大小也影響算法可靠性的強弱。高位計算,低位嵌入的方法就可能不是多對一的關(guān)系,而可能是一對一的關(guān)系,那么算法就不會產(chǎn)生漏檢,從而可靠性達(dá)到100%。但是考慮到要保證含水印圖像具有較好的圖像質(zhì)量,一般來說取p≤2,即水印嵌入到象素的最低位或最低兩位。
根據(jù)以上的算法原理,下面給出本發(fā)明的一個具體實現(xiàn)。將著重從保真度、篡改檢測定位能力、抗量化攻擊三個方面來說明算法的有效性。本實現(xiàn)在C++Builder6.0編程環(huán)境下進(jìn)行,采用IEEE/ANSI中雙精度浮點數(shù)進(jìn)行運算,根據(jù)標(biāo)準(zhǔn)可知ε=64,τ=53,γ=15~16。擬嵌入水印的圖像是大小為256×256的灰度圖,如圖3所示。
根據(jù)算法置分塊大小m×n=8×8,分組粒度k=4,水印嵌入到圖像象素的LSB(Least Signature Bits)中,即p=1。為簡單起見,對每個圖像塊都使用同樣的密鑰,即向量函數(shù)ξ(·)中有ξ1T(·)=ξ2T(·)=Λ=ξNT(·)]]>成立。
象素值VCT運算(·)原始圖像塊Ii中所有象素的LSB置0;由Ki,l控制Arnold變換(注還可以是其它置亂)的變換次數(shù),利用Arnold變換對圖像塊Ii進(jìn)行置亂,令Ki,l=10,得到置亂后的圖像塊 ;將其象素值以4粒度分組并按順序合并,得到如下形式的合并值向量ViVi=(0.y1y2y3y4,0.y5y6y7y8,Λ,0.y61y62y63y64)T,其中ya表示 中的第a個元素,a=1,2,Λ,64。
位置信息VCT運算(·)是對塊位置信息向量PiPi=(Xi,Yi)T(Xi是塊的行信息,Yi是塊的列信息)中的元素進(jìn)行合并LiLi=0.XiYi,由Ki,2控制合并運算,還可以采用更為復(fù)雜的方式來合并位置信息,如按位插值等。
考慮把象素合并值和位置合并值作為混沌系統(tǒng)的輸入,因此設(shè)計的混沌系統(tǒng)f(·)應(yīng)具有17個輸入(16個象素合并值,1個位置合并值)。并由Ki,3控制16個象素合并值作為初值輸入混沌I~混沌IV輸入排列。本實驗使用順序排列的方式將象素合并值輸入混沌系統(tǒng)(即依次輸入第1個、第2個,直到第16個象素合并值,作為混沌的初值)?;煦缦到y(tǒng)采用如下形式,它由五個4維混沌和一個2維混沌系統(tǒng)級聯(lián)而成,如圖4所示。
對于2維混沌系統(tǒng),使用Baker映射進(jìn)行迭代。Baker映射的迭代方程如(3)式xu(n+1)=2×xu(n)xu(n)∈
]>其中所有的4維迭代都具有相同的迭代方程和控制參數(shù)。使用的4維迭代方程是由一維Bernoulli映射擴(kuò)展而成。其具體的迭代方程B(xq,xr,xs,xt)如(4)式因為本發(fā)明構(gòu)造的B(xq,xr,xs,xt)是4維映射,故系統(tǒng)的Lyapunov指數(shù)應(yīng)有4個,分別記為λq,λr,λs,λt。由于xq,xr,xs均為一維分段線性混沌映射。根據(jù)文[18]中提供的算法進(jìn)行計算λq=1nlimn→∞Σj=0n-1ln|xq′|=ln1nlimn→∞Σj=0n-1|xq′|=ln2>0.]]>同理可證λr>0,λs>0??梢娪成銪(xq,xr,xs,xt)中至少有3個Lyapunov指數(shù)大于0,因此該映射是一個超混沌系統(tǒng)。
Ki,4控制混沌迭代次數(shù),根據(jù)級聯(lián)混沌系統(tǒng)的組成,由Ki,4產(chǎn)生6個混沌的迭代次數(shù)。本實現(xiàn)中令4維混沌迭代的次數(shù)分別是5次、13次、40次、31次、33次,每個4維迭代結(jié)束后取xt作為輸出。Baker映射的迭代次數(shù)為19次,取xv作為整個混沌系統(tǒng)的輸出,即水印輸出。
由圖3根據(jù)以上給定的具體算法和參數(shù)產(chǎn)生的含水印圖像如圖5所示保真度使用掩蔽峰值信噪比(MPSNR)來度量圖像的失真,有MPSNR=10×log10(2552/E2)[dB],其中E=MNmaxm,nIm,n2/Σm,n(Im,n-Im,n′)2,]]>和N表示了圖像的大小。對圖3、圖4進(jìn)行計算的MPSNR=49.6422。比較圖3和圖5,可見含水印圖像的保真度較高。
篡改檢測和定位能力圖6是對圖5(含水印圖像)的第100行、第100列象素灰度值減1后得到的圖像;圖7是通過認(rèn)證過程后篡改檢測和定位的結(jié)果,其中篡改定位圖像中黑色的塊表示認(rèn)證通過,白色的塊表示認(rèn)證失敗,即對應(yīng)的含水印圖像中在該塊存在篡改??梢姳痉桨改軌驒z測出輕微的修改,定位粒度為8×8的圖像塊。
抗量化攻擊圖8~圖13表示了位置信息是否參與水印計算對抗量化攻擊的影響。
1)當(dāng)位置信息參與水印計算時,可以檢測出量化攻擊帶來的塊替換修改。對圖8進(jìn)行量化攻擊(第8行第10列的8×8的塊和第25行第20列的塊互換)得到圖5,圖9表示了使用本方案對圖8進(jìn)行認(rèn)證,得到的篡改定位圖??梢姳景l(fā)明所提出的方案在抵抗量化攻擊的同時,篡改定位的粒度沒有增大,仍為圖像分塊的大小(8×8的圖像塊)。
2)當(dāng)位置信息不參與水印計算時,圖10~圖13說明了在這種情況下出現(xiàn)了偽認(rèn)證。具體實現(xiàn)如下由于位置信息不參與水印計算,因此級聯(lián)混沌系統(tǒng)剔除Baker映射,混沌系統(tǒng)由混沌I~混沌V組成,水印由混沌V輸出,其它參數(shù)均不變(不需要Baker映射的迭代次數(shù))。圖10是圖3由位置信息不參與水印計算而得到的含水印圖像。圖11是對圖10進(jìn)行認(rèn)證的結(jié)果(由于圖10沒有經(jīng)過攻擊者修改,所以所有的塊全部認(rèn)證通過)。
對圖10進(jìn)行量化攻擊(第8行第10列的8×8的塊和第25行第20列的塊互換)得到圖12。圖13顯示,所有的塊也都通過認(rèn)證,因此出現(xiàn)偽認(rèn)證。
權(quán)利要求
1.基于易碎水印和值合并技術(shù)的安全圖像認(rèn)證方法,其特征在于,它由如下步驟組成(1)使用種子密鑰,經(jīng)密鑰生成函數(shù)產(chǎn)生每個認(rèn)證單元的密鑰信息;(2)構(gòu)造象素值VCT運算,并對每一個認(rèn)證單元,使用其密鑰,產(chǎn)生該單元的象素合并值;(3)構(gòu)造位置信息VCT運算,對每個單元產(chǎn)生其位置信息合并值;(4)在本單元密鑰的控制下,通過水印產(chǎn)生函數(shù),將(2)、(3)中得到的合并值進(jìn)行計算,得到水印信息,并嵌入本認(rèn)證單元。
2.如權(quán)利要求1所述的安全圖像認(rèn)證方法,其特征在于,所述的嵌入算法為對每個m×n的圖像塊,有如下步驟(1)用戶使用種子密鑰K,經(jīng)密鑰生成函數(shù)ξ(·):ξ(·)=(ξ1T(·),ξ2T(·),Λ,ξCT(·))T]]>產(chǎn)生第i個圖像塊Ii的密鑰Ki:Ki=ξiT(K),]]>C表示圖像I經(jīng)大小為m×n分塊后得到的總塊數(shù)。(2)在密鑰Ki的控制下,使用VCT將Ii的高位象素值進(jìn)行合并,合并方法為a.設(shè)水印嵌入到象素中的低p位平面,因此在計算水印時先將圖像塊Ii中所有象素的低p位置0,得 b.令向量Bi=(I^i1,I^i2,Λ,I^im×n)T,]]>其中 為 中第j個象素值的高8-p位,j=1,2,Λ,m×n。作象素值VCT運算(·),使Vi=(Bi,Ki)。(·)滿足當(dāng)且僅當(dāng)Bi=Bi′時,(Bi,Ki)=(Bi′,Ki)。(3)使用VCT對塊Ii的位置信息(Xi,Yi)組成的位置信息向量Pi∶Pi=(Xi,Yi)T,其中Xi是塊的行信息,Yi是塊的列信息。構(gòu)造位置信息VCT運算φ(·)(φ(·)與(·)具有相同的屬性),產(chǎn)生位置信息合并值Li∶Li=φ(Pi,Ki)。(4)使用象素合并值向量Vi和塊位置信息合并值Li,并在密鑰Ki的控制下,通過水印產(chǎn)生函數(shù)f(·)產(chǎn)生水印信息wi∶wi=f(Vi,Li,Ki);(5)把水印wi嵌入到Ii中,得到含水印圖像塊Ii′∶Ii′=Embed(Ii,wi,p)。
3.如權(quán)利要求2所述的安全圖像認(rèn)證方法,其特征在于,所述的認(rèn)證算法為使用與嵌入算法步驟(1)中相同的算法和密鑰,從待測圖像塊Ii″中產(chǎn)生水印信息wi′;從Ii″的低p位提取嵌入的水印wi″;通過檢查wi′和wi″是否相等,從而判別待認(rèn)證圖像塊Ii″是否能通過認(rèn)證。
4.如權(quán)利要求2所述的安全圖像認(rèn)證方法,其特征在于,嵌入算法中的步驟(1),使用種子密鑰產(chǎn)生各個圖像塊所需的密鑰,在增強系統(tǒng)抗攻擊難度的同時隱含“記住”總分塊數(shù)用于抵抗裁減攻擊。
5.如權(quán)利要求2所述的安全圖像認(rèn)證方法,其特征在于,嵌入算法中的步驟(2)(3),使用VCT產(chǎn)生合并值和VCT運算的構(gòu)造原則。
6.如權(quán)利要求1所述的安全圖像認(rèn)證方法,其特征在于,嵌入算法中的步驟(4),把象素合并值和位置信息合并值一起作為水印產(chǎn)生函數(shù)的輸入用于抵抗量化攻擊。
7.如權(quán)利要求1~6中任意一項所述的安全圖像認(rèn)證方法,其特征在于,水印產(chǎn)生函數(shù)應(yīng)使選擇的水印策略滿足|πi|(i=1,2,Λ,|M|)彼此相等或近似相等,以增加攻擊者進(jìn)行選擇塊攻擊的難度。
全文摘要
本發(fā)明涉及一種基于易碎水印和值合并技術(shù)的安全圖像認(rèn)證方法,它由如下步驟組成(1)使用種子密鑰,經(jīng)密鑰生成函數(shù)產(chǎn)生每個認(rèn)證單元的密鑰信息;(2)構(gòu)造象素值VCT運算,并對每一個認(rèn)證單元,使用其密鑰,產(chǎn)生該單元的象素合并值;(3)構(gòu)造位置信息VCT運算,對每個單元產(chǎn)生其位置信息合并值;(4)在本單元密鑰的控制下,通過水印產(chǎn)生函數(shù),將(2)、(3)中得到的合并值進(jìn)行計算,得到水印信息,并嵌入本認(rèn)證單元。本發(fā)明對包括特征提取攻擊、量化攻擊等在內(nèi)的偽認(rèn)證攻擊具有很強的抵抗力;安全性分析表明對本發(fā)明進(jìn)行偽認(rèn)證攻擊幾乎不可能成功;同時本發(fā)明對象素灰度值直接進(jìn)行操作,不涉及圖像的正交變換,這使得本發(fā)明具有較快的運算速度,適合高效地對大量圖像進(jìn)行操作。
文檔編號G06T1/00GK101021938SQ200610017419
公開日2007年8月22日 申請日期2006年2月16日 優(yōu)先權(quán)日2006年2月16日
發(fā)明者劉粉林, 張 杰, 高山青 申請人:劉粉林, 張 杰, 高山青