專利名稱:基于混沌散列函數(shù)的分塊脆弱水印生成與認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種定位型脆弱水印嵌入與認(rèn)證方法,用于數(shù)字圖像的認(rèn)證,即對(duì)數(shù)字圖像的完整性、真實(shí)性進(jìn)行證明。
背景技術(shù):
近年來(lái),隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展與信息媒體的數(shù)字化,推動(dòng)了基于數(shù)字水印的圖像認(rèn)證技術(shù)的飛速發(fā)展。根據(jù)容忍圖像被修改的程度來(lái)劃分,基于數(shù)字水印的圖像認(rèn)證技術(shù)可分為精確認(rèn)證(Hard Authentication)和模糊認(rèn)證(SoftAuthentication)。它們各自有不同的應(yīng)用場(chǎng)合,分別用脆弱水印和半脆弱水印技術(shù)來(lái)實(shí)現(xiàn)。
精確認(rèn)證要解決的主要問(wèn)題是篡改定位與系統(tǒng)安全性之間的矛盾,理想的目標(biāo)是提出一種既安全可靠又能精確定位篡改的算法。1998年Wong在文獻(xiàn)1“Awatermark for image integrity and ownership verification”(P.W.WongProceedings of IS & T PIC Conference(Portland,OR),May 1998)中提出了一種基于分塊的脆弱水印算法,該算法將原始圖像分為8*8不相交的塊,利用MD5散列函數(shù),以圖像塊高7位、圖像大小及密鑰為明文生成圖像塊摘要,與分塊水印標(biāo)示異或(XOR)后嵌入該圖像塊的最低位。該算法被稱為“塊獨(dú)立”脆弱水印算法,考慮算法的實(shí)用性文獻(xiàn)中選取能證明所有者身份的小塊水印標(biāo)記通過(guò)拼接生成水印。M.Holliman和N.Memon在文獻(xiàn)2“Counterfeiting attacks onoblivious block-wise independent invisible watermarking schemes”(M.Holliman和N.Memon IEEE Trans on Image Processing,2000.3(9)432-441)中指出該算法存在安全問(wèn)題,并對(duì)該算法成功地實(shí)施了量化(vector quantization)攻擊。針對(duì)該攻擊,研究者提出了不同的改進(jìn)算法,改進(jìn)后的算法在一定程度可以抵抗量化攻擊,但是與原算法相比,改進(jìn)后的算法要么降低了篡改定位精度,要么增加了參數(shù)的管理難度。Fridrich在文獻(xiàn)3“Security of Fragile AuthenticationWatermarks with Localization”(J.Fridrich Proc.SPIE,Vol.4675,Security andWatermarking of Multimedia Contents,San Jose,California,January,2002,pp.691-700)中描述了對(duì)定位型脆弱水印算法的一種Verification Device攻擊,有學(xué)者將其成為黑盒攻擊,該攻擊將有目的篡改的水印圖像提交認(rèn)證設(shè)備(或稱為黑盒認(rèn)證器),根據(jù)多組認(rèn)證結(jié)果的組合,試圖得到不能被認(rèn)證算法檢測(cè)的篡改或推斷水印算法的秘密信息。已有抵抗該攻擊的方法一般采用認(rèn)證結(jié)果不給出篡改定位信息和限制提交次數(shù)。認(rèn)證結(jié)果不給出篡改定位信息在一定程度上抹煞了基于數(shù)字水印的圖像認(rèn)證技術(shù)的優(yōu)點(diǎn),限制提交次數(shù)也很難有效控制。另外,傳統(tǒng)的MDx(Message Digest X,各版消息摘要函數(shù))和SHA(SecureHash Algorithm,安全散列函數(shù))兩類散列函數(shù)族相繼被攻破,采用該類散列函數(shù)實(shí)現(xiàn)的認(rèn)證水印算法的安全性也受到一定懷疑。由上述分析可以看出,采用已有分塊認(rèn)證水印算法會(huì)帶來(lái)定位精度降低,參數(shù)管理復(fù)雜,不宜硬件實(shí)現(xiàn)、存在安全隱患等缺點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于混沌散列函數(shù)的分塊脆弱水印生成與認(rèn)證方法,該方法對(duì)圖像篡改的定位精度高,同時(shí)其參數(shù)管理容易;算法的安全性高,既可以有效抵抗量化攻擊,又可以有效抵抗黑盒攻擊。
本發(fā)明解決其技術(shù)問(wèn)題,所采用的技術(shù)方案為基于混沌散列函數(shù)的分塊脆弱水印生成與認(rèn)證方法,包括如下步驟(1)、水印生成將大小為M×N的原始圖像X的最低有效位置零,將其分為n個(gè)k×l互不相交的原始置零圖像塊Xr,r=1,2...,n;另將水印標(biāo)記B也分為n個(gè)子標(biāo)記Br,r=1,2...,n。
以原始置零圖像塊Xr,r=1,2...,n、水印子標(biāo)記Br,r=1,2...,n和原始圖像X大小M,N的值拼成明文Mr,將該明文Mr和設(shè)定的密鑰SK,利用基于復(fù)合非線性數(shù)字濾波器的混沌散列計(jì)算后得到長(zhǎng)度為k*l的散列值Hr,將該散列值Hr變換成k行、l列的二值水印塊Wr,r=1,2...,n;將二值水印塊Wr按原始置零圖像塊Xr的空間位置排列,拼成二值水印圖像W=[Wr];設(shè)定加密密鑰為key,利用置亂加密函數(shù)P(.)對(duì)二值水印圖像W進(jìn)行置亂加密,得到待嵌入的水印Wkeyp=P(key,W).]]>(2)、水印嵌入將(1)步生成的待嵌入的水印Wkeyp嵌入到原始圖像X的最低位生成水印圖像Y。
(3)、水印提取對(duì)水印圖像Y傳輸后收到的被測(cè)圖像Y*,取被測(cè)圖像Y*最低位的水印Wkeyp′=mod(I*,2),]]>根據(jù)密鑰key對(duì)其置亂恢復(fù),得到從被測(cè)圖像Y*最低位恢復(fù)的二值水印圖像W′=P-1(key,WP′),其中P-1(.)為置亂函數(shù)P(.)的反函數(shù);將被測(cè)圖像Y*的最低有效位置零,將其分為n個(gè)k×l互不相交的被測(cè)置零圖像塊Yr*,r=1,2...,n,以被測(cè)置零圖像塊Yr*代替(1)步的原始置零圖像塊Xr,按(1)步相同的方法生成被測(cè)圖像Y*的二值水印圖像W*=[Wr*];]]>再將被測(cè)圖像Y*最低位恢復(fù)的二值水印圖像W′減去被測(cè)圖像Y*的二值水印圖像W*,得到水印差值圖像ΔW=|W′-W*|。
(4)認(rèn)證將(3)步得到的水印差值圖像ΔW分為n個(gè)互不相交的大小為k×l的水印差值圖像塊ΔWr,r=1,2,...,n;根據(jù)水印差值圖像塊ΔWr中非零元素的個(gè)數(shù)tr與設(shè)定閾值T的關(guān)系,進(jìn)行被測(cè)置零圖像塊篡改和水印篡改的判定,具體的判定規(guī)則為若差值圖像ΔW中存在0<tr<T的水印差值圖像塊ΔWr,則判定被測(cè)圖像中有水印被篡改;如果存在tr≥T的水印差值圖像塊ΔWr,則判定該水印差值圖像塊ΔWr對(duì)應(yīng)的被測(cè)置零圖像塊Yr*被篡改;若無(wú)被測(cè)置零圖像塊Yr*被篡改,則認(rèn)證通過(guò)。
顯然,本發(fā)明的被測(cè)圖像置零塊,實(shí)際上也就是該被測(cè)圖像塊的非水印部分。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是1、將二值水印圖像W進(jìn)行置亂加密后,再嵌入圖像最低位,水印圖像塊Yr的最低位并不是本圖像塊Yr自身生成的二值水印塊Wr。因此實(shí)施量化攻擊時(shí),替換水印置零圖像塊Yr的同時(shí),必須找出二值水印塊Wr在水印圖像中的分布規(guī)律,以替換該圖像塊的二值水印塊Wr,認(rèn)證算法才不能檢測(cè)出該篡改。由于二值水印塊Wr基于密鑰隨機(jī)分布在整個(gè)二值水印圖像中,沒(méi)有密鑰是很難找到的。因此,本發(fā)明既不用增加圖像索引參數(shù),也不用增加圖像塊周圍的相關(guān)信息,在參數(shù)管理容易,定位精度高的情況下,就能有效抵抗量化攻擊。
2、本發(fā)明算法根據(jù)設(shè)定的閾值T,可以有效區(qū)分對(duì)非水印部分和水印部分的篡改。當(dāng)被測(cè)圖像中非水印部分被篡改時(shí),算法能夠有效檢測(cè)篡改并準(zhǔn)確指出被篡改的被測(cè)置零圖像塊Yr*,也即能定位出被測(cè)圖像中非水印部分被篡改的位置,定位精度高;當(dāng)被測(cè)圖像中有水印被篡改時(shí),只要對(duì)水印的篡改量不是很大,認(rèn)證結(jié)果不給出水印被篡改的位置信息且使其通過(guò)認(rèn)證,在提高水印圖像利用率的同時(shí),還可以有效提高算法抵抗黑盒攻擊的能力。這使得本發(fā)明既體現(xiàn)了基于數(shù)字水印認(rèn)證技術(shù)的優(yōu)點(diǎn),又能有效抵抗黑盒攻擊。
3、基于復(fù)合非線性數(shù)字濾波器構(gòu)造的散列函數(shù)生成二值水印塊,沒(méi)有復(fù)雜的浮點(diǎn)運(yùn)算,比現(xiàn)有的混沌散列方法運(yùn)算速度更快,且更易于擴(kuò)充和軟硬件實(shí)現(xiàn);不用更改算法結(jié)構(gòu),即可生成任意指定長(zhǎng)度的散列輸出,使得本發(fā)明的圖像塊大小可以方便的改變,以適應(yīng)圖像傳輸?shù)母鞣N不同安全性要求。
4、將水印子標(biāo)記Br作為散列函數(shù)明文中的一部分作散列計(jì)算,因此水印標(biāo)記B可以是二值圖像,也可以是非二值圖像;子標(biāo)記Br的二進(jìn)制的長(zhǎng)度可以為任意長(zhǎng),使Br中取不同元素的可能性增大,有效減少同一水印圖像中等價(jià)圖像塊的個(gè)數(shù);避免通過(guò)修改水印圖像塊的最低位,改變圖像塊中嵌入的水印標(biāo)記,從而使任意兩個(gè)圖像塊等價(jià)。這也使得本發(fā)明能較好的抵抗量化攻擊。
5、利用基于密鑰的混沌散列函數(shù)和置亂算法雙重加密,擴(kuò)大了密鑰空間,進(jìn)一步提高算法的安全性;具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
圖1水印生成流程圖。
圖2水印提取流程圖。
圖3置亂密鑰空間示意圖。
圖4為用本發(fā)明算法進(jìn)行水印嵌入及認(rèn)證的仿真圖例。
圖5為用本發(fā)明算法對(duì)替換等價(jià)圖像塊組非水印部分的認(rèn)證仿真圖例。
圖6為用本發(fā)明算法對(duì)替換相同位置的等價(jià)圖像塊組(包括非水印部分和水印部分)的認(rèn)證仿真圖例。
圖7為用本發(fā)明算法對(duì)水印部分篡改的認(rèn)證仿真圖例。
實(shí)施例基于混沌散列函數(shù)的分塊脆弱水印生成與認(rèn)證方法,包括如下步驟一、水印生成圖1示出水印生成過(guò)程為1、水印生成將大小為M×N的原始圖像X的最低有效位置零,通過(guò)分塊將其分為n個(gè)k×l互不相交的原始置零圖像塊Xr,r=1,2...,n;另將水印標(biāo)記B也分為n個(gè)子標(biāo)記Br,r=1,2...,n。
以原始置零圖像塊Xr,r=1,2...,n、水印子標(biāo)記Br,r=1,2...,n和原始圖像X大小M,N的值拼成明文Mr,將該明文Mr和設(shè)定的密鑰SK,利用基于復(fù)合非線性數(shù)字濾波器的混沌散列計(jì)算后得到長(zhǎng)度為k*l的散列值Hr,通過(guò)維數(shù)變換將散列值Hr變換成k行、l列的二值水印塊Wr,r=1,2...,n;將二值水印塊Wr按原始置零圖像塊Xr的空間位置排列,拼成二值水印圖像W=[Wr]。
上述的散列計(jì)算直接采用本申請(qǐng)人申請(qǐng)的申請(qǐng)?zhí)枮?00510021190.6,名稱為“基于復(fù)合非線性數(shù)字濾波器的混沌散列構(gòu)造方法”的專利申請(qǐng)方法進(jìn)行計(jì)算。
為說(shuō)明本發(fā)明在相同條件下抵抗量化攻擊的能力,本實(shí)施例的水印標(biāo)記B及原始圖像X和水印的分塊方法均與Wong算法(文獻(xiàn)1“A watermark for imageintegrity and ownership verification”P.W.Wong Proceedings of IS & T PICConference(Portland,OR),May 1998)相同,即k×l=8×8。
2、圖1還示出,在生成二值水印圖像W后,通過(guò)設(shè)定加密密鑰為key,利用置亂加密函數(shù)P(.)對(duì)二值水印圖像W進(jìn)行置亂加密,得到待嵌入的水印Wkeyp=P(key,W).]]>置亂加密是保證算法抵抗量化攻擊的關(guān)鍵,因此置亂加密的密鑰空間應(yīng)該足夠的大,以提高算法抵抗密鑰強(qiáng)力攻擊的能力。本實(shí)施例基于混沌系統(tǒng)對(duì)初值的極端敏感性、良好的隨機(jī)性等特點(diǎn),利用混沌映射生成的隨機(jī)序列對(duì)水印圖像進(jìn)行置亂加密,并以混沌初值作為置亂函數(shù)的密鑰key,上述置亂加密函數(shù)P(.)具體描述為①根據(jù)設(shè)定的密鑰key,利用混沌映射生成長(zhǎng)度為L(zhǎng)=M*N的多值混沌序列S,采用穩(wěn)定排序法生成地址有序序列A。
本實(shí)施例采用現(xiàn)有的混沌映射系統(tǒng)sn+1=(1+0.3(sn-1-1.08)+379sn2+1001*zn2)mod3---(1)]]>其中,zn是任意的混沌序列(本文取logistic混沌映射)?;煦绯踔底鳛橄到y(tǒng)的密鑰,該混沌映射初值在(-1.5,1.5)之間時(shí)系統(tǒng)具有混沌吸引子,兩個(gè)初值s0和s1分別記為key1和key2,logistic混沌映射初值z(mì)0在(0,1)之間,該初值記為key3,因此置亂加密密鑰key={key1,key2,key3}。
根據(jù)公式(1)生成長(zhǎng)度為L(zhǎng)的多值混沌序列S=(s1,s2,...,si,...,sL)。對(duì)混沌序列S采用穩(wěn)定排序法,生成地址有序序列A=(a1,a2,...,ai,...,aL),ai=1,2,...,L,使得混沌序列滿足sa1≤sa2≤···≤saL.]]>②利用上步生成的地址有序序列A對(duì)W置亂,生成待嵌入的二值水印圖像Wkeyp。
根據(jù)地址有序序列A,將W(i,j)放在Wkeyp(iw,jw)的位置,滿足(iw-1)*N+jw=a(i-1)*N+j,即 其中, jw=atij-(iw-1)*N,]]>tij=(i-1)*N+j,i=1,2,...M,j=1,2,...,N。
上述置亂算法要求混沌序列的長(zhǎng)度等于圖像的像素?cái)?shù),對(duì)其進(jìn)行排序的時(shí)間復(fù)雜度較高。下面再給出一種改進(jìn)的置亂加密方案將水印圖像W分為大小為mk*nk的圖像塊,從每個(gè)圖像塊中選取第i個(gè)像素生成W的子圖像Wi,i=1,2,...mk*nk,將上述混沌序列S分為等長(zhǎng)的子序列Si,i=1,2,...mk*nk,則Wkeyip=P(keyi,Wi),]]>keyi表示生成的第i段混沌子序列Si的密鑰。再有Wkeyp形成待嵌入的水印圖像Wkeyp。
二、水印嵌入水印嵌入將(一)步生成的待嵌入的水印Wkeyp嵌入到原始圖像X的最低位生成水印圖像Y。
三、水印提取圖2示出水印提取過(guò)程為對(duì)水印圖像Y傳輸后收到的被測(cè)圖像Y*,取被測(cè)圖像Y*最低位的水印Wkeyp′=mod(I*,2),]]>根據(jù)密鑰key對(duì)其置亂恢復(fù),得到從被測(cè)圖像Y*最低位恢復(fù)的二值水印圖像W′=P-1(key,WP'),其中P-1(.)為置亂函數(shù)P(.)的反函數(shù)。
同時(shí),將被測(cè)圖像Y*的最低有效位置零,分塊后將其分為n個(gè)k×l互不相交的被測(cè)置零圖像塊Yr*,r=1,2...,n,以被測(cè)置零圖像塊Yr*代替(一)步的原始置零圖像塊Xr,按(一)步水印生成相同的方法(圖1與圖2中虛線框中的部分)生成被測(cè)圖像Y*的二值水印圖像W*=[Wr*].]]>再將被測(cè)圖像Y*最低位恢復(fù)的二值水印圖像W′減去被測(cè)圖像Y*的二值水印圖像W*得到水印差值圖像ΔW=|W′-W*|。
四、認(rèn)證將(三)步得到的水印差值圖像ΔW分為n個(gè)互不相交的大小為k×l水印差值圖像塊ΔWr,r=1,2,...,n;根據(jù)水印差值圖像塊ΔWr中非零元素的個(gè)數(shù)tr與設(shè)定閾值T的關(guān)系,進(jìn)行被測(cè)置零圖像塊篡改和水印篡改的判定,具體的判定規(guī)則為若差值圖像ΔW中存在0<tr<T的水印差值圖像塊ΔWr,則判定被測(cè)圖像中有水印被篡改;如果存在tr≥T的水印差值圖像塊ΔWr,則判定該水印差值圖像塊ΔWr對(duì)應(yīng)的被測(cè)置零圖像塊Yr*也即被篡改;若無(wú)被測(cè)置零圖像塊Yr*被篡改,則認(rèn)證通過(guò)。
本發(fā)明在實(shí)施時(shí)閾值T應(yīng)考慮以下因素根據(jù)概率論的定理若t服從參數(shù)為n,p的二項(xiàng)分布t~B(n,p),則t小于給定閾值T的概率為P(t<T)=Σi=0T-1Cnipi(1-p)n-i---(3)]]>其中,Cni表示從n個(gè)元素中任意選取i個(gè)的組合數(shù)。
若被測(cè)圖像塊Yr*非水印部分被篡改,即Y‾r*≠X‾r,]]>理想散列函數(shù)的散布效果應(yīng)該是初值的細(xì)微變化將導(dǎo)致結(jié)果的每個(gè)比特都以50%的概率變化,因此差值圖像塊ΔWr中每個(gè)比特不為零的概率pX‾r=0.5.]]>設(shè)trX表示由于被測(cè)圖像塊Yr*非水印部分改變?cè)斐搔r中非零點(diǎn)的個(gè)數(shù),本實(shí)施例中,圖像塊中的元素個(gè)數(shù)為k*l=8*8=64,則trX‾~B(64,PX‾r).]]>如果被測(cè)圖像的水印被篡改,設(shè)Δw表示水印的改變量,prΔw表示水印改變量為Δw時(shí)差值圖像塊ΔWr中每個(gè)比特不為零的概率,有置亂加密函數(shù)P(.)可知,被篡改的水印置亂恢復(fù)后在二值水印圖像W′中呈均勻分布,因此prΔw=Δw/(M*N),]]>r=1,2,...,n,設(shè)trΔw表示由于水印改變?cè)斐搔r中非零元素的個(gè)數(shù),因此trΔw~B(64,prΔw);]]>認(rèn)證水印算法中,攻擊者的目的不是破壞水印的,因此攻擊者對(duì)水印的篡改量Δw不會(huì)太大。假設(shè)攻擊者對(duì)水印的篡改量不超過(guò)圖像的1/8,即prΔ<1/8.]]>根據(jù)公式(3)分別計(jì)算閾值T取不同值時(shí)trX和trΔw小于閾值T的概率,在此給出閾值T等于10、15、20時(shí)trX和trΔw小于閾值T的概率的計(jì)算結(jié)果P(trX‾<10)=1.7711*10-9,]]>P(trX‾<15)=9.4048*10-7,]]>P(trX‾<20)=0.0018]]>P(trΔw<10)≤0.7254,]]>P(trΔw<15)≤0.9751,]]>P(trΔw<20)≤0.9999.]]>因此通過(guò)選取適當(dāng)?shù)拈撝礣,可以按一定概率區(qū)分非水印部分和水印部分的篡改,并定位被測(cè)圖像非水印部分被篡改的圖像塊。本文選取T=15,有上述計(jì)算結(jié)果可知非水印部分篡改不被檢測(cè)的概率為9.4048*10-7,即非水印部分篡改后被檢測(cè)出的概率為99.9999%。當(dāng)水印的篡改量不超過(guò)1/8,即prΔw<1/8]]>時(shí),水印篡改誤判為圖像塊篡改的概率為1-0.9751=0.0289。
本發(fā)明的效果可以通過(guò)以下性能分析驗(yàn)證量化攻擊的分析在本發(fā)明的有益效果部分已經(jīng)給出,此處不在重復(fù)。下面給出本發(fā)明其它特性的詳細(xì)分析。
定位圖像篡改能力分析由上述閾值選取的概率分析可知,因?yàn)閳D像塊的非水印部分改變時(shí)相應(yīng)散列函數(shù)的變化率在50%左右,使得本發(fā)明檢測(cè)并定位圖像非水印篡改塊的能力很強(qiáng),非水印部分一旦被篡改,本發(fā)明方法能以較高的概率檢測(cè)出該篡改(如以上實(shí)施例的非水印部分篡改的檢出概率為99.9999%)。
黑盒攻擊黑盒攻擊的前提條件是攻擊者擁有一個(gè)黑盒驗(yàn)證器,黑盒的輸入是一幅待認(rèn)證圖像,輸出是篡改檢測(cè)的結(jié)果,即“成功”或“失敗”,有時(shí)還輸出篡改定位結(jié)果。攻擊者通過(guò)多次有計(jì)劃地修改圖像,然后把修改后的圖像作為黑盒的一個(gè)輸入,通過(guò)多組認(rèn)證結(jié)果的組合,有可能推斷出水印嵌入所用的密鑰或其它秘密信息。
本發(fā)明根據(jù)設(shè)定閾值T可以有效區(qū)分對(duì)非水印部分和水印部分的篡改,非水印部分被篡改時(shí),認(rèn)證結(jié)果可以有效檢測(cè)篡改并準(zhǔn)確定位出圖像被篡改的位置;水印部分被篡改時(shí),認(rèn)證結(jié)果可以識(shí)別出是水印被篡改,而不給出水印被篡改的位置信息。僅水印被篡改并不影響被測(cè)圖像的真實(shí)性,認(rèn)證算法讓其通過(guò)認(rèn)證,這既可以使真實(shí)的圖像得到充分利用,又可以避免攻擊者通過(guò)修改水印,而試圖通過(guò)對(duì)多次認(rèn)證結(jié)果進(jìn)行分析,估計(jì)出二值水印塊在水印圖像中分布的可能。總之,本發(fā)明可以有效抵抗黑盒攻擊,同時(shí)認(rèn)證結(jié)果又給出了對(duì)圖像非水印部分篡改的位置,突出了基于數(shù)字水印的圖像認(rèn)證技術(shù)的優(yōu)點(diǎn)。
置亂密鑰空間為考察本發(fā)明采用的置亂加密算法的密鑰空間,利用本發(fā)明的置亂加密算法和設(shè)定的密鑰key,對(duì)二值圖像W進(jìn)行置亂加密Wkeyp=P(key,W),]]>二值圖像的相似度用像素差錯(cuò)率來(lái)衡量,其定義如下T(W,W′)=Σi=1mΣj=1nW(i,j)⊕W′(i,j)m*n---(4)]]>其中,為模2加,m,n為二值圖像W的大小,有定義可以看出,對(duì)二值圖像W和W′,當(dāng)T(W,W′)=0時(shí),W與W′相同;當(dāng)T(W,W′)=1時(shí),W與W′相反;當(dāng)T(W,W′)的值在0.5左右時(shí),可認(rèn)為W與W′的差別為隨機(jī)的。
設(shè)Δk為密鑰key的變化量,定義密鑰變化量的平均像素差錯(cuò)率為TΔkT‾Δk=Σkey∈IKEY1mkeyT(Wkeyp,Wkey+Δkp)---(5)]]>其中,Ikey為密鑰空間,mkey為密鑰空間的測(cè)度。
本實(shí)施例的置亂加密密鑰key={key1,key2,key3}。測(cè)試時(shí),首先從密鑰空間Ikey中隨機(jī)選定100個(gè)密鑰,固定其它兩個(gè)密鑰,對(duì)每個(gè)密鑰keyi(i=1,2,3)的變化量Δk分別取10-k,k=1,2...,20,根據(jù)公式(5)計(jì)算當(dāng)密鑰變化量為Δk時(shí)TΔk的值,繪制出keyi(i=1,2,3)的Δk-TΔk關(guān)系曲線,如圖3所示。
圖3中,橫坐標(biāo)為密鑰keyi(i=1,2,3)的變化量Δk,縱坐標(biāo)為相應(yīng)的密鑰變化量的平均像素差錯(cuò)率TΔk。測(cè)試結(jié)果表明,當(dāng)key1變化量Δk為10-12數(shù)量級(jí)時(shí),TΔk的值為接近0.5,當(dāng)key1變化量Δk為10-13時(shí),TΔk趨向于0,因此算法對(duì)輸入初始值key1的精度為10-12數(shù)量級(jí)。同理,由圖3可以看出,算法對(duì)key2和key3的精度為10-15數(shù)量級(jí),這說(shuō)明算法對(duì)密鑰高度敏感,在密鑰取值范圍內(nèi),密鑰空間的數(shù)量級(jí)約為1042,密鑰空間是很大的。
本發(fā)明方法的計(jì)算機(jī)仿真分析原始圖像Xcar-woman和Xcar均為256×392×8的灰度圖像,像素值介于
之間,水印標(biāo)記B的大小為24×96且為公開的,是Wong文獻(xiàn)中的二值水印標(biāo)記。水印圖像的不可見性采用峰值信噪比(dB)來(lái)衡量。
圖4為用本發(fā)明算法進(jìn)行水印嵌入及認(rèn)證的仿真圖例,圖4中Xcar-woman為原始圖像,Ycar-woman為相應(yīng)的水印圖像,B為水印標(biāo)記,ΔWcar-woman為水印差值圖像。Xcar-woman與Ycar-woman的峰值信噪比為51.1422,顯示該算法具有良好的不可見性。利用本發(fā)明對(duì)水印圖像Ycar-woman進(jìn)行認(rèn)證得到的水印差值圖像ΔWcar-woman,該差值圖像ΔWcar-woman中的元素值全為零(tr=0,r=1,2,…,n),判定該被測(cè)圖像中既沒(méi)有水印被篡改,也沒(méi)有被測(cè)置零圖像塊Yr*被篡改,認(rèn)證通過(guò)。
圖5為用本發(fā)明算法對(duì)替換等價(jià)圖像塊組非水印部分的認(rèn)證仿真圖例,圖5中Xcar為原始圖像,Ycar為相應(yīng)的水印圖像,Y*1為篡改圖像(被測(cè)圖像),ΔW*1為差值圖像。篡改圖像Y*1是用圖4中的Ycar-woman的等價(jià)圖像塊組105160,8196(即Ycar-woman中的“柱子”)的非水印部分替換Ycar(177232,8196)的非水印部分得到的。認(rèn)證檢測(cè)結(jié)果得到的差值圖像ΔW*1中存在柱狀分布的稠密非零點(diǎn),每塊中的非零點(diǎn)個(gè)數(shù)tr均大于閾值T,準(zhǔn)確定位出了被篡改的被測(cè)置零圖像塊Yr*的位置。
圖6為用本發(fā)明算法對(duì)替換相同位置的等價(jià)圖像塊組(包括非水印部分和水印部分)的認(rèn)證仿真圖例,圖6中Ycar-woman為水印圖像,Y*2為篡改圖像,ΔW*2為差值圖像,ΔW*2-O為用閾值T處理得到的認(rèn)證檢測(cè)結(jié)果。篡改圖像Y*2是用圖5Ycar中的169200,161240(即車牌)圖像塊組(包括非水印部分和水印部分)替換Ycar-woman中的169200,161240得到的。ΔW*2為相應(yīng)的差值圖像,其中存在稀疏和稠密的非零點(diǎn),稀疏的非零點(diǎn)說(shuō)明被測(cè)圖像Y*2中有水印被篡改,稠密的“車牌狀”分布的非零點(diǎn)說(shuō)明被測(cè)圖像Y*2中有“車牌狀”的被測(cè)置零圖像塊Yr*被篡改;ΔW*2-O為用閾值T(本實(shí)驗(yàn)取T=15)處理得到的認(rèn)證檢測(cè)結(jié)果,認(rèn)證結(jié)果準(zhǔn)確定位出了被篡改的被測(cè)置零圖像塊Yr*的位置(車牌),而沒(méi)有給出水印篡改的位置信息。
圖7為用本發(fā)明算法對(duì)水印部分篡改的認(rèn)證仿真圖例,圖7中Ycar-woman為水印圖像,Y*3為篡改圖像,ΔW*3為差值圖像,ΔW*3-O為用閾值T處理得到的認(rèn)證檢測(cè)結(jié)果。篡改圖像Y*3是通過(guò)改變Ycar-woman中圖像塊組169200,161240的水印部分得到的。ΔW*3為相應(yīng)的差值圖像,其中存在的稀疏的非零點(diǎn),說(shuō)明被測(cè)圖像Y*3中有水印被篡改;ΔW*3-O為用閾值T(本實(shí)驗(yàn)取T=15)處理得到認(rèn)證檢測(cè)結(jié)果每塊中的非零點(diǎn)個(gè)數(shù)tr均小于閾值T,判定被測(cè)圖像Y*3沒(méi)有被測(cè)置零圖像塊Yr*被篡改,也即被測(cè)圖像的非水印部分沒(méi)有被篡改之處,認(rèn)證通過(guò)。由于僅對(duì)水印篡改不影響被測(cè)圖像的真實(shí)性,認(rèn)證通過(guò)是合理的。
由仿真結(jié)果可以看出對(duì)圖像進(jìn)行量化攻擊時(shí),無(wú)論是不同位置的等價(jià)圖像塊,還是相同位置的等價(jià)圖像塊,替換時(shí)被替換位置的水印部分是否改變,算法均能有效區(qū)分非水印部分和水印部分的篡改,并準(zhǔn)確定位出被測(cè)圖像中非水印被篡改的位置;當(dāng)水印被篡改時(shí),只要對(duì)水印的篡改量不是很大,認(rèn)證結(jié)果不給出水印被篡改的位置信息且使其通過(guò)認(rèn)證,既可以提高水印圖像的利用率,還可以有效提高算法抵抗“黑盒攻擊”的能力。
權(quán)利要求
1.一種基于散列函數(shù)的分塊脆弱水印生成與認(rèn)證方法,包括如下步驟(1)、水印生成將大小為M×N的原始圖像X的最低有效位置零,將其分為n個(gè)k×l互不相交的原始置零圖像塊Xr,r=1,2...,n;另將水印標(biāo)記B也分為n個(gè)子標(biāo)記Br,r=1,2...,n;以原始置零圖像塊Xr,r=1,2...,n、水印子標(biāo)記Br,r=1,2...,n和原始圖像X大小M,N的值拼成明文Mr,將該明文Mr和設(shè)定的密鑰SK,利用基于復(fù)合非線性數(shù)字濾波器的混沌散列計(jì)算后得到長(zhǎng)度為k*l的散列值Hr,將該散列值Hr變換成k行、l列的二值水印塊Wr,r=1,2...,n;將二值水印塊Wr按原始置零圖像塊Xr的空間位置排列,拼成二值水印圖像W=[Wr];設(shè)定加密密鑰為key,利用置亂加密函數(shù)P(.)對(duì)二值水印圖像W進(jìn)行置亂加密,得到待嵌入的水印Wkeyp=P(key,W);]]>(2)、水印嵌入將(1)步生成的待嵌入的水印Wkeyp嵌入到原始圖像X的最低位生成水印圖像Y;(3)、水印提取對(duì)水印圖像Y傳輸后收到的被測(cè)圖像Y*,取被測(cè)圖像Y*最低位的水印Wkeyp′=mod(I*,2),]]>根據(jù)密鑰key對(duì)其置亂恢復(fù),得到從被測(cè)圖像Y*最低位恢復(fù)的二值水印圖像W′=P-1(key,WP′),其中P-1(.)為置亂函數(shù)P(.)的反函數(shù);將被測(cè)圖像Y*的最低有效位置零,將其分為n個(gè)k×l互不相交的被測(cè)置零圖像塊Yr*,r=1,2...,n,以被測(cè)置零圖像塊Yr*代替(1)步的原始置零圖像塊Xr,按(1)步相同的方法生成被測(cè)圖像Y*的二值水印圖像W*=[Wr*];]]>再將被測(cè)圖像Y*最低位恢復(fù)的二值水印圖像W′減去被測(cè)圖像Y*的二值水印圖像W*,得到水印差值圖像ΔW=|W′-W*|;(4)認(rèn)證將(3)步得到的水印差值圖像ΔW分為n個(gè)互不相交的大小為k×l的水印差值圖像塊ΔWr,r=1,2,...,n;根據(jù)水印差值圖像塊ΔWr中非零元素的個(gè)數(shù)tr與設(shè)定閾值T的關(guān)系,進(jìn)行被測(cè)置零圖像塊篡改和水印篡改的判定,具體的判定規(guī)則為若差值圖像ΔW中存在0<tr<T的水印差值圖像塊ΔWr,則判定被測(cè)圖像中有水印被篡改;如果存在tr≥T的水印差值圖像塊ΔWr,則判定該水印差值圖像塊ΔWr對(duì)應(yīng)的被測(cè)置零圖像塊Yr*被篡改;若無(wú)被測(cè)置零圖像塊Yr*被篡改,則認(rèn)證通過(guò)。
全文摘要
本發(fā)明公開了一種基于混沌散列函數(shù)的分塊脆弱水印生成與認(rèn)證方法。該方法以原始置零圖像塊、圖像大小(M、N)的值、水印子標(biāo)記及密鑰為混沌散列函數(shù)的明文生成二值水印塊,將二值水印塊按圖像塊空間位置生成的水印圖像置亂加密后嵌入圖像的最低位,通過(guò)差值圖像檢測(cè)和定位篡改。本發(fā)明利用復(fù)合非線性數(shù)字濾波器構(gòu)造的混沌散列函數(shù),并將密鑰作為明文的一部分生成二值水印塊,實(shí)現(xiàn)簡(jiǎn)單且具有更高的安全性;將水印置亂加密后嵌入圖像的最低位,通過(guò)設(shè)定的閾值可以有效區(qū)分圖像非水印部分與水印部分的篡改,并準(zhǔn)確定位非水印部分被篡改的位置,既不降低分塊水印算法的定位精度,也不需要增加參數(shù)管理的難度,且可以有效抵抗量化攻擊和黑盒攻擊。
文檔編號(hào)H04L9/00GK1835018SQ20051002119
公開日2006年9月20日 申請(qǐng)日期2005年6月30日 優(yōu)先權(quán)日2005年6月30日
發(fā)明者張家樹, 和紅杰 申請(qǐng)人:西南交通大學(xué)