一種改進(jìn)的高保真脆弱水印方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于脆弱水印技術(shù)領(lǐng)域,具體涉及一種改進(jìn)的高保真脆弱水印方法。
【背景技術(shù)】
[0002] 脆弱水印是一種重要的技術(shù)用于保護(hù)數(shù)字圖像內(nèi)容完整性、檢測(cè)和定位篡改區(qū)域 以及恢復(fù)原始圖像內(nèi)容。一般來(lái)說(shuō),現(xiàn)有的脆弱水印機(jī)制是在宿主圖像中不可察覺(jué)地嵌入 一些附加信息,由認(rèn)證信息和恢復(fù)信息組成,其中認(rèn)證信息將來(lái)提取后可用來(lái)進(jìn)行篡改檢 測(cè)和定位,恢復(fù)信息則可以用來(lái)恢復(fù)篡改區(qū)域中的原始圖像內(nèi)容。早期的脆弱水印研究大 多關(guān)注篡改區(qū)域的檢測(cè)和定位,而近期的脆弱水印更加強(qiáng)調(diào)篡改定位基礎(chǔ)上的圖像恢復(fù)功 能。
[0003] 由于近期的脆弱水印機(jī)制因嵌入了過(guò)多的比特而導(dǎo)致受保護(hù)圖像的質(zhì)量遭到較 嚴(yán)重的破壞,人們開(kāi)始關(guān)注如何保證嵌入水印的圖像具備更高的質(zhì)量。最近,Lin等人提出 了一種性能非常優(yōu)越的高保真水印算法,通過(guò)key-lock-pair system系統(tǒng),利用一種加權(quán) 求和函數(shù)在包含2n個(gè)像素的塊內(nèi)嵌入(n+1)位認(rèn)證信息,只需使原圖像塊中一個(gè)像素的值 加1或減1即可實(shí)現(xiàn),這種方法的優(yōu)越性就在于嵌入水印的圖像的PSNR(峰值信噪比)和 現(xiàn)有的其他水印方法相比非常高,因?yàn)閷?duì)原圖像的改動(dòng)實(shí)在太少了,因此就保證了嵌入水 印圖像的高保真度。但是這個(gè)方案有一個(gè)重要的不足,就是只提供了篡改檢測(cè)和定位功能, 而沒(méi)有提供圖像恢復(fù)功能,也就是說(shuō)被篡改的區(qū)域無(wú)法恢復(fù)成原來(lái)的狀態(tài)。后來(lái)Marco等 人指出了原方案中存在的若干問(wèn)題,進(jìn)一步完善了原方案,但可惜的是仍然沒(méi)有加入圖像 恢復(fù)的功能。因此,本專利借助于VQ(矢量量化)技術(shù)在保證和原方案一樣的高保真度的 前提下加入圖像恢復(fù)功能,設(shè)計(jì)了一種功能更加完善的脆弱水印方法,和原方案相比對(duì)宿 主圖像沒(méi)有更多的改動(dòng)。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足而提供了一種兼具高保真特性和圖像恢復(fù)功能的改 進(jìn)的高保真脆弱水印方法。
[0005] 本發(fā)明為解決上述技術(shù)問(wèn)題采用如下技術(shù)方案,一種改進(jìn)的高保真脆弱水印方 法,其特征在于具體步驟為:
[0006] (1)水印嵌入過(guò)程
[0007] 步驟1,圖像首先被劃分成不重疊的大小為8X8的VQ塊,每個(gè)VQ塊又被劃分成 16個(gè)認(rèn)證塊;
[0008] 步驟2,獲得圖像每個(gè)VQ塊的碼字索引,然后把這些碼字索引進(jìn)行置亂,迭代 Arnold貓映射Ic1,k2, k3, k4次,Arnold貓映射如下所示:
[0010] 其中(Xl,yi)代表圖像中塊的位置,dPs是排列的控制參數(shù),用于作為用戶密鑰, N是正方形圖像中每行或每列的塊數(shù),對(duì)于每個(gè)VQ塊,記錄下每次迭代后移動(dòng)到該塊內(nèi)的 碼字索引,于是4個(gè)不同的碼字索引總計(jì)40比特就作為要嵌入該塊內(nèi)的恢復(fù)信息,這些恢 復(fù)信息負(fù)責(zé)恢復(fù)碼字索引原所代表的圖像塊;
[0011] 步驟3,對(duì)于每個(gè)VQ ±夬,根據(jù)用戶密鑰將8位認(rèn)證信息分別隨機(jī)嵌入到VQ塊中的 8個(gè)認(rèn)證塊當(dāng)中,隨后,將40比特的恢復(fù)信息嵌入到VQ塊中的剩余存儲(chǔ)空間中;
[0012] (2)篡改檢測(cè)、定位和恢復(fù)
[0013] 步驟1,對(duì)圖像進(jìn)行分塊,如上所述,劃分為VQ塊和認(rèn)證塊;
[0014] 步驟2,對(duì)于每個(gè)VQ塊,從16個(gè)認(rèn)證塊中根據(jù)用戶密鑰提取8比特認(rèn)證信息和40 比特恢復(fù)信息,然后把40比特恢復(fù)信息轉(zhuǎn)換成對(duì)應(yīng)圖像其它4個(gè)不同VQ塊的碼字索引;
[0015] 步驟3,通過(guò)驗(yàn)證提取的認(rèn)證信息檢測(cè)VQ塊是否被篡改,并記錄下篡改塊;
[0016] 步驟4,執(zhí)行逆Arnold貓映射k4, k3,匕和k ^欠,如果有未篡改的VQ塊移動(dòng)到了篡 改區(qū)域,說(shuō)明篡改塊可以恢復(fù),因?yàn)閷?duì)應(yīng)于篡改塊的碼字索引之前已經(jīng)經(jīng)過(guò)移動(dòng)嵌入到了 未被篡改的塊中,沒(méi)被篡改的碼字索引用來(lái)恢復(fù)被篡改的圖像塊,即用壓縮過(guò)的VQ塊代替 原圖像塊;
[0017] 步驟5,用正確的碼書(shū)中的碼字即VQ塊恢復(fù)所有被篡改且可恢復(fù)的圖像塊。
[0018] 本發(fā)明在不改變嵌入水印圖像的高保真特性的前提下,結(jié)合VQ技術(shù)加入了圖像 恢復(fù)功能,是一種更加完善且更實(shí)用的脆弱水印機(jī)制,并且通過(guò)實(shí)驗(yàn)表明,無(wú)論從恢復(fù)率還 是恢復(fù)效果上來(lái)看都比較令人滿意,當(dāng)篡改區(qū)域不超過(guò)整個(gè)圖像大小一半時(shí),90%以上的 篡改區(qū)域都能正確恢復(fù)。
【附圖說(shuō)明】
[0019] 圖1是成功檢測(cè)概率與η的關(guān)系;
[0020] 圖2是脆弱水印和篡改下的圖像效果圖,圖中(a)原始圖像Lena,(b)矢量量化圖 像Lena,(c)嵌入水印的圖像Lena,(d)篡改后的圖像(c),(e)檢測(cè)到的篡改區(qū)域;(f)無(wú) 法恢復(fù)的塊,(g)圖像(d)的恢復(fù)結(jié)果;
[0021] 圖3是不同形狀的篡改區(qū)域下的圖像恢復(fù)效果圖,圖中(a)圓點(diǎn)類型的篡改,(b) 恢復(fù)后的圖像(a),(c)平行線類型的篡改,(d)恢復(fù)后的圖像(c),(e)切角類型的篡改, (f) 恢復(fù)后的圖像(e),(g)不規(guī)則形狀的篡改,(h)恢復(fù)后的圖像(g);
[0022] 圖4是不同篡改區(qū)域百分比下的圖像恢復(fù)率;
[0023] 圖5是不同大小篡改區(qū)域下的圖像恢復(fù)效果圖,圖中(a) 10%的篡改,(b)恢復(fù)后 的圖像(a),(c) 30 %的篡改,⑷恢復(fù)后的圖像(c),(e) 50 %的篡改,(f)恢復(fù)后的圖像(e), (g) 70%的篡改,(h)恢復(fù)后的圖像(g)。
【具體實(shí)施方式】
[0024] 以下通過(guò)實(shí)施例對(duì)本發(fā)明的上述內(nèi)容做進(jìn)一步詳細(xì)說(shuō)明,但不應(yīng)該將此理解為本 發(fā)明上述主題的范圍僅限于以下的實(shí)施例,凡基于本發(fā)明上述內(nèi)容實(shí)現(xiàn)的技術(shù)均屬于本發(fā) 明的范圍。
[0025] 實(shí)施例
[0026] 1.原設(shè)計(jì)方案
[0027] I. IKey-lock-pair 系統(tǒng)
[0028] Key-lock-pair系統(tǒng)于1984年首次提出,多應(yīng)用于訪問(wèn)控制以及相關(guān)應(yīng)用。舉個(gè) 例子,對(duì)于數(shù)據(jù)庫(kù)里每一個(gè)資源文檔來(lái)說(shuō),只有特定用戶可以訪問(wèn)文檔的內(nèi)容,用戶密鑰只 能解鎖特定的文檔。
[0029] 表1訪問(wèn)控制矩陣
[0031] 假定4個(gè)用戶和5個(gè)資源文檔所對(duì)應(yīng)的訪問(wèn)控制矩陣如表1所示。我們首先選定 一個(gè)素?cái)?shù)3,它大于訪問(wèn)控制矩陣?yán)锼械捻?xiàng)值,然后隨機(jī)構(gòu)造4X4的非奇異矩陣,其項(xiàng)值 在伽羅華域GF(3)上:
令矩陣K的行,即K1,為用戶仏的密鑰。K 1= [0 I 2 1],K2= [0 2 I 1],K3= [2 1 0 2],K4= [0 2 0 2]。假定文檔 j 的鎖值表示為 L j,那 么用戶U1對(duì)文檔j的訪問(wèn)權(quán)限就由K1^L,構(gòu)成,其中指的是在伽羅華域GF⑶上的內(nèi)積。 如果j = LL1= [X I x2 x3 x4],可以得到下列在GF (3)上的等式:
求解后,可以得到L1= [2 2 1 0]。同樣,可以計(jì)算出其他鎖值L2= [2 2 0 2],L3= [I 0 1 0],L4= [2 0 2 2],L5= [0 I 0 0]。例如,用戶U4對(duì)文檔F5的訪問(wèn)權(quán)限可以這樣計(jì)算: K4*L5= [0 2 0 2]*[0 I 0 0] = 2,和表 1 相應(yīng)的項(xiàng)值一致。
[0032] 1. 2脆弱水印嵌入過(guò)程
[0033] 圖像首先被劃分成不重疊的相同大小的包含2n個(gè)像素的塊,包含(n+1)個(gè)比特的 認(rèn)證信息A可以通過(guò)key-lock-pair系統(tǒng)嵌入到每一個(gè)塊中。為簡(jiǎn)便起見(jiàn),在GF(2)上進(jìn) 行計(jì)算。對(duì)于每一個(gè)塊,通過(guò)用戶密鑰UK生成一個(gè)(n+1) X (n+1)的非奇異密鑰矩陣K。要 嵌入A,首先通過(guò)求解(1)式找到鎖值L = [I1, 12, · · ·,ln+1]T。
[0034] A = K*L (1)
[0035] 然后,得到的鎖矩陣L就被看作是水印。
[0036] 因?yàn)長(zhǎng)包含(n+1)個(gè)元素,其二進(jìn)制值的范圍是[0, 2n+1_l]。在包含2"個(gè)像素的 塊中,用一個(gè)加權(quán)求和函數(shù)來(lái)選擇塊中一個(gè)可變的像素。若塊中像素 Sp1,P2…,p2n,一個(gè)塊 的加權(quán)求和函數(shù)可以定義如下:
[0038] 顯然,f也在[0,2n+1_l]范圍中,如果對(duì)Pni的值增加1或減少l,f的值在模2 n+1之 后就可以增加或減少m。這樣,就可以通過(guò)對(duì)塊中的一個(gè)可變像素加1或減1來(lái)嵌入L的值 了,也就是讓f和L的值相等。
[0039] 例如,一個(gè)塊大小為2X2,即η = 2,鎖值為L(zhǎng) = [0 I 1]τ,其二進(jìn)制 值為3。假定塊中4個(gè)像素值分別為125,101,98和99,那么加權(quán)求和函數(shù)f = (lX125+2X101+3X98+4X99)mod23= 1,和L的二進(jìn)制值不相等,即1乒3,因此,要想嵌 入L我們就需要計(jì)算L和f的差值:3-1 = 2,這預(yù)示著我們需要對(duì)第2個(gè)像素的值進(jìn)行加 I :101+1 = 102。這樣一來(lái),嵌入水印的塊中的像素值就變成了 125,102,98和99。因?yàn)檫@ 種方法對(duì)宿主圖像每個(gè)塊的改動(dòng)非常少,所以可以保證圖像的高保真度。
[0040] 根據(jù)Kerckhoff原理,攻擊者會(huì)知道密碼系統(tǒng)中除密鑰之外的任何內(nèi)容,所以原 方案存在一個(gè)安全方面的問(wèn)題:攻擊者可以在不知道用戶密鑰的情況下直接從嵌入水印的 圖像中計(jì)算得到每一塊的加權(quán)求和函數(shù)值,即鎖值,進(jìn)而可以隨意修改原始圖像內(nèi)容,只須 保持篡改后的加權(quán)求和函數(shù)值和原鎖值相同就不會(huì)使脆弱水印檢測(cè)到篡改。改進(jìn)方法也比 較簡(jiǎn)單,計(jì)算f的時(shí)候?qū)K內(nèi)像素根據(jù)用戶密鑰進(jìn)行置亂即可。
[0041] 1.3篡改認(rèn)證過(guò)程
[0042] 因?yàn)樗∏度胫骹和L相等,(n+1)位認(rèn)證信息A就可以根據(jù)式(1)通過(guò)A = K*f 來(lái)獲得,如果提取出的認(rèn)證信息與原來(lái)嵌入的不一致,就說(shuō)明發(fā)生了篡改,漏檢率為l/2n+1。
[0043] 2.設(shè)計(jì)一種帶恢復(fù)功能的改進(jìn)方案
[0044] 原脆弱水印方案的優(yōu)點(diǎn)在于能夠保持宿主圖像的高保真度,一個(gè)重要的不足就是 不能進(jìn)行篡改后的圖像自恢復(fù)。
[0045] 要使脆弱水印機(jī)制具備恢復(fù)功能,就需要在原始圖像中嵌入一些額外的恢復(fù)信 息。但是嵌入更多的信息意味著對(duì)受保護(hù)的