專利名稱:基于公鑰的可逆數(shù)字水印方法
技術(shù)領(lǐng)域:
本發(fā)明專利涉及計(jì)算機(jī)安全、電子商務(wù)、電子商務(wù)、圖像處理等領(lǐng)域。
背景技術(shù):
數(shù)字水印技術(shù)是指在一個(gè)載體圖像內(nèi)嵌入一個(gè)水印圖像的技術(shù)。根據(jù)載體圖像與水印圖像的關(guān)系,可以將數(shù)字水印分為信息隱藏和圖像認(rèn)證兩類。在實(shí)現(xiàn)信息隱藏時(shí),載體圖像僅僅實(shí)現(xiàn)隱藏水印圖像的目的,水印圖像是一幅需要保護(hù)的秘密信息圖像。當(dāng)水印圖像從載體圖像內(nèi)提取完成后,載體圖像的作用即失效,可以將其丟棄。在實(shí)現(xiàn)圖像認(rèn)證時(shí),水印信息是和載體圖像密切相關(guān)的。此時(shí)的水印圖像通常是載體圖像的輔助性說(shuō)明信息,例如圖像的哈希函數(shù)值,版權(quán)人簽名、版權(quán)信息等。由于在水印嵌入過(guò)程中不可避免地要修改載體圖像,從而對(duì)其造成一定的失真。而像醫(yī)療、軍事等領(lǐng)域?qū)D像質(zhì)量要求較高,甚至不允許像素級(jí)別的改變。這就要求在提取水印圖像后能夠完全復(fù)原載體圖像,這種技術(shù)稱為可逆數(shù)字水印技術(shù)。目前主要的可逆數(shù)字水印技術(shù)有:位平面壓縮算法、低像素層算法、基于直方圖的雙射圓變換算法、提升小波變換算法、差分?jǐn)U展算法、基于灰度直方圖的算法等。例如,Ni等人提出了采用三個(gè)最大值和最小值點(diǎn)進(jìn)行信息隱藏,該方法能夠隱藏比基本直方圖算法更多的信息。但是統(tǒng)計(jì)分析結(jié)果表明,該方法運(yùn)算量較大,需要記憶的嵌入提取條件相對(duì)較多,同時(shí)可能存在溢出造成圖像無(wú)法完全復(fù)原。針對(duì)上述缺點(diǎn),顧巧論等人提出了采用多個(gè)連續(xù)零值點(diǎn)與峰值像素匹配進(jìn)行嵌入信息的算法,仿真結(jié)果表明該算法能夠嵌入更多的信息。上述算法均未考慮算法實(shí)施的安全性,為了確保嵌入信息的安全性,Lee等人提出了一種基于直方圖變換的公鑰可逆數(shù)字水印方法,但是該方法并未考慮水印圖像的安全,使得攻擊者在獲知水印的情況下,將載體圖像惡意篡改并再次應(yīng)用公鑰嵌入水印后,此時(shí)的載體圖像仍舊能夠順利通過(guò)認(rèn)證。
發(fā)明內(nèi)容
該發(fā)明專利首先對(duì)載體圖像直方圖中峰值點(diǎn)與左右兩側(cè)的零值點(diǎn)之間的像素點(diǎn)進(jìn)行移位,然后提取載體圖像的特征值,將該特征值與經(jīng)過(guò)混沌系統(tǒng)加密的數(shù)字水印進(jìn)行異或處理后,采用公鑰將其嵌入到處理后的載體圖像內(nèi)。圖像的驗(yàn)證過(guò)程是嵌入過(guò)程的逆過(guò)程,驗(yàn)證完成后,根據(jù)峰值點(diǎn)及其與零值點(diǎn)之間的關(guān)系將移位的像素點(diǎn)復(fù)原,即可完全復(fù)原原始圖像。采用公鑰系統(tǒng)和混沌系統(tǒng)充分保證了系統(tǒng)的安全性,峰值點(diǎn)與其兩側(cè)的零值點(diǎn)之間的像素移位既保證了能夠嵌入更多的信息和較高的峰值信噪比,又保證了所有的像素點(diǎn)都能被認(rèn)證。通過(guò)對(duì)大量的圖像進(jìn)行仿真分析,結(jié)果顯示該方法具有較高的安全性,與參考文獻(xiàn)比較,能夠嵌入更多的信息量,同時(shí)具有更高的透明性。該算法能夠廣泛應(yīng)用于軍事、醫(yī)療、衛(wèi)星圖像的可逆信息隱藏和圖像認(rèn)證中。
圖1描述了單位峰值點(diǎn)能嵌入的水印信息位數(shù)En、所需左右兩側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)總和Sn、所需左側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)Ln、所需右側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)Rn之間的關(guān)系
具體實(shí)施例方式I水印嵌入認(rèn)證水印信息由載體圖像生成的特征值與水印信息進(jìn)行運(yùn)算生成。該過(guò)程將認(rèn)證信息嵌入到載體圖像內(nèi)。(I)載體圖像處理讀取載體圖像O,繪制出其直方圖,找出該直方圖的峰值點(diǎn)Max及其左側(cè)的連續(xù)零值點(diǎn) Li, i e [O, Max),右側(cè)連續(xù)零值點(diǎn) Ri, i e (Max, 255]。為了確保所有像素點(diǎn)都能被認(rèn)證,并提高水印信息的嵌入容量和嵌入信息后圖像的透明性,針對(duì)峰值點(diǎn)及在直方圖左右兩側(cè)的連續(xù)零值點(diǎn)進(jìn)行匹配嵌入。單位峰值點(diǎn)能嵌入的水印信息位數(shù)En、所需左右兩側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)總和Sn、所需左側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)Ln、所需右側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)Rn之間的關(guān)系如圖1所示。如果峰值點(diǎn)左右兩側(cè)的零值點(diǎn)個(gè)數(shù)均大于>/2j,則將左側(cè)連續(xù)個(gè)零值點(diǎn)作為嵌入處理位,另一側(cè)需要處理的連續(xù)零值點(diǎn)個(gè)數(shù)為「W砂;如果在峰值點(diǎn)兩側(cè)的某一側(cè)中連續(xù)零值點(diǎn)個(gè)數(shù)Zn (Zn = Ln或Zn = Rn)小于卻U則將該側(cè)的連續(xù)零值點(diǎn)作為嵌入處理位,另一側(cè)需要匹配的連續(xù)零值點(diǎn)個(gè) 數(shù)為Zn' (Zn' = Sn-Zn)。比如,需要在圖像O內(nèi)根據(jù)單個(gè)峰值點(diǎn)Max = 230嵌入3位信息,則需要連續(xù)零值點(diǎn)個(gè)數(shù)為Sn = 7,其中Ln+Rn = Sn,Ln e
, Rn e
。如果峰值點(diǎn)兩側(cè)的零值點(diǎn)個(gè)數(shù)均大于3,則將其左側(cè)所有像素值小于230,并且像素值個(gè)數(shù)大于O的像素值減去3 ;將其右側(cè)所有像素值大于230,并且像素值個(gè)數(shù)大于O的像素值加上4。這樣,在峰值點(diǎn)的左右兩側(cè)共空出7個(gè)零值點(diǎn)。如果峰值點(diǎn)兩側(cè)其中某一側(cè)(假定為左側(cè))的零值點(diǎn)個(gè)數(shù)Ln小于3,則將該側(cè)的所有像素值小于230,像素值個(gè)數(shù)大于O的像素值減去Ln ;將其另外一側(cè)(對(duì)應(yīng)為右側(cè))所有像素值大于230,像素值個(gè)數(shù)大于O的像素值加上Rn,Rn = Sn-Ln,Ln e
, Rn e
, Sn = 7。經(jīng)過(guò)處理后的載體圖像標(biāo)記為0d。(2)水印信息生成RIPEMD報(bào)文摘要算法是在歐洲RACE的RIPE項(xiàng)目中由研發(fā)人員開發(fā)而成的,這些研究人員曾對(duì)MD4和MD5部分進(jìn)行了攻擊。該算法以一個(gè)任意長(zhǎng)度的報(bào)文作為輸入,產(chǎn)生一個(gè)160位的報(bào)文摘要作為輸出。RIPEMD所產(chǎn)生的散列碼中的每一位比特位都是輸入中每一比特位的函數(shù),因此隨機(jī)選擇兩個(gè)報(bào)文,即使他們具有相似的規(guī)律性,也很難產(chǎn)生相同的散列碼。對(duì)原始載體圖像O,處理過(guò)的載體圖像0d,進(jìn)行如下計(jì)算,Hv = Hash (Μ, N, O, 0d) (I)式中,Hash (.)是RIPEMD報(bào)文摘要函數(shù),M,N是載體圖像的長(zhǎng)和寬,Hv是經(jīng)過(guò)計(jì)算得到的160位的RIPEMD報(bào)文摘要輸出。選擇一幅二進(jìn)制圖像Logo作為載體圖像的基礎(chǔ)認(rèn)證信息圖像(水印圖像),例如可以是圖像所有人的版權(quán)信息圖像或約定的秘密信息圖像等。將載體圖像轉(zhuǎn)換為一個(gè)長(zhǎng)度為L(zhǎng)sn的序列Ls。例如載體圖像Logo為U !),則其轉(zhuǎn)換序列Ls為(0011)。
計(jì)算載體圖像可以嵌入的信息容量,計(jì)算公式為,Len = NMax.En(2)式中,NMax為峰值點(diǎn)像素個(gè)數(shù),En為每個(gè)峰值像素點(diǎn)對(duì)應(yīng)的嵌入位個(gè)數(shù),Len為載體圖像可以嵌入的數(shù)據(jù)容量。根據(jù)Len的長(zhǎng)度對(duì)序列Hv和Ls進(jìn)行周期性迭代得到序列HVp和Lsp,使得這兩個(gè)序列的長(zhǎng)度均為L(zhǎng)en0例如Len = 5, Hv = (Oil),Ls = (1000),則處理后得到,Hvp =(01101),Lsp = (10001)。對(duì)Hvp和Lsp進(jìn)行異或操作,得到載體圖像的水印認(rèn)證信息,具體方式為,Iy = Lsp^Htp(3)例如:Hvo= (01101), Lsp = (10001),則所得的計(jì)算結(jié)果為 w = (11100)。(3)認(rèn)證信息生成應(yīng)用公鑰加密系統(tǒng)對(duì)水印信息w進(jìn)行加密,具體實(shí)現(xiàn)為,Swo = E (Ku.W) (4)式中, 函數(shù)Ε(.)為公鑰體系的加密函數(shù),Ku為公鑰,Swo為計(jì)算結(jié)果。(4)認(rèn)證信息加密為了提高認(rèn)證信息的安全性,采用Logistic混沌系統(tǒng)對(duì)生成的信息進(jìn)行加密處理,應(yīng)用的混沛系統(tǒng)為,1,.,=1- j.cl-u](5)應(yīng)用混沌系統(tǒng)生成與Swo大小相等的二值序列Ls,然后將Ls與Swo進(jìn)行異或操作,具體為,s ,= ti s o(6)(5)認(rèn)證信息的嵌入嵌入認(rèn)證信息時(shí),順序掃描經(jīng)過(guò)處理的載體圖像0d,如果遇到峰值點(diǎn)Max,則從經(jīng)過(guò)混沌置亂后的信息序列Sw中選取η個(gè)比特位,如果選取的η個(gè)比特位均為0,則像素值保持不變;否則,計(jì)算選取序列的和Sb,根據(jù)峰值點(diǎn)兩側(cè)零值點(diǎn)個(gè)數(shù)情況,將Max與Sb進(jìn)行算術(shù)運(yùn)算完成/[目息嵌入。如,載體圖像Od峰值點(diǎn)兩側(cè)的零值點(diǎn)個(gè)數(shù)均大于3,在掃描過(guò)程中遇到峰值點(diǎn)Max,則從要隱藏的序列中選取3個(gè)比特位,如果選取的3個(gè)比特位均為0,則像素值保持不變;否則,計(jì)算選取序列的和Sb,如果mod (Sb, 2) = O,則將峰值點(diǎn)減去Sb/2 ;如果mod (Sb,2) = I,則將峰值點(diǎn)加上「《叫。另一種情況下,如果峰值點(diǎn)某側(cè)(以左側(cè)為例)的零值點(diǎn)個(gè)數(shù)小于3,例如,Ln =2,在掃描過(guò)程中遇到峰 值點(diǎn)Max,則從要隱藏的序列中選取3個(gè)比特位,如果選取的3個(gè)比特位均為0,則像素值保持不變;否則,計(jì)算選取序列的和Sb,如果Sb ( 2則將峰值點(diǎn)減去Sb,如果Sb > 2,則將峰值點(diǎn)加上Sb。按照上述步驟順序掃描圖像內(nèi)所有像素點(diǎn),即可完成嵌入。在實(shí)際操作中,可以根據(jù)不同的圖像先選取一個(gè)峰值點(diǎn)對(duì)應(yīng)3位嵌入信息完成嵌入,嵌入完成后根據(jù)所得到的峰值信噪比和實(shí)際需要的嵌入容量對(duì)嵌入位數(shù)進(jìn)行進(jìn)一步的修正。嵌入了認(rèn)證信息的載體圖像記為Odw。2認(rèn)證過(guò)程
認(rèn)證過(guò)程是對(duì)圖像是否發(fā)生篡改進(jìn)行認(rèn)證并完全復(fù)原原始圖像的過(guò)程。認(rèn)證時(shí)首先從要認(rèn)證的圖像內(nèi)提取認(rèn)證信息,再將認(rèn)證信息與原始水印信息進(jìn)行運(yùn)算,完成對(duì)圖像的認(rèn)證,同時(shí)將載體圖像復(fù)原。(1)認(rèn)證信息提取提取認(rèn)證信息時(shí),首先確定在信息嵌入時(shí)選取的單位峰值點(diǎn)能嵌入的水印信息位數(shù)En、所需左右兩側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)總和Sn、左側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)Ln、右側(cè)連續(xù)零值點(diǎn)個(gè)數(shù)Rn。然后,順序掃描需要驗(yàn)證的載體圖像Odw',如果遇到峰值點(diǎn)Max,則提取En個(gè)比特位O ;如果遇到峰值點(diǎn)相關(guān)點(diǎn),則根據(jù)該點(diǎn)具體值,將該值與Max進(jìn)行算術(shù)運(yùn)算完成信息提取。如,在提取過(guò)程中,如果遇到像素點(diǎn)Max,則提取3位秘密信息均為O ;如果遇到像素點(diǎn)的值為[Max-Ln.Max+Rn],則提取信息為L(zhǎng)n或Rn。將提取的秘密信息轉(zhuǎn)換為3位二進(jìn)制。例如,提取到的信息為4,則將其轉(zhuǎn)換為3位二進(jìn)制100。按照上述步驟順序掃描圖像內(nèi)所有像素點(diǎn),即可完成認(rèn)證信息的提取,得到認(rèn)證信息Swrc。應(yīng)用加密過(guò)程使用的混沌系統(tǒng)和初始密鑰,生成與Swrc等長(zhǎng)的序列Lsn,并將它們進(jìn)行異或操作,得到序列Swr,具體為,
權(quán)利要求
1.一種基于公鑰的可逆數(shù)字水印方法的方法,其特征是首先對(duì)載體圖像直方圖中峰值點(diǎn)與左右兩側(cè)的零值點(diǎn)之間的像素點(diǎn)進(jìn)行移位,然后提取載體圖像的特征值,將該特征值與經(jīng)過(guò)混沌系統(tǒng)加密的數(shù)字水印進(jìn)行異或處理后,采用公鑰將其嵌入到處理后的載體圖像內(nèi)。圖像的驗(yàn)證過(guò)程是嵌入過(guò)程的逆過(guò)程,驗(yàn)證完成后,根據(jù)峰值點(diǎn)及其與零值點(diǎn)之間的關(guān)系將移位的像素點(diǎn)復(fù)原,即可完全復(fù)原原始圖像。采用公鑰系統(tǒng)和混沌系統(tǒng)充分保證了系統(tǒng)的安全性,峰值點(diǎn)與其兩側(cè)的零值點(diǎn)之間的像素移位既保證了能夠嵌入更多的信息和較高的峰值信噪比,又保證了所有的像素點(diǎn)都能被認(rèn)證;
2.根據(jù)權(quán)利要求1所述的方法,其特征是應(yīng)用混沌系統(tǒng)保證了信息的安全性;
3.根據(jù)權(quán)利要求1所述的方法,其特征是采用了公鑰算法。
全文摘要
基于公鑰的可逆數(shù)字水印方法,屬于計(jì)算機(jī)安全、電子商務(wù)、電子政務(wù)、圖像處理等技術(shù)領(lǐng)域。該方法首先對(duì)載體圖像直方圖中峰值點(diǎn)與左右兩側(cè)的零值點(diǎn)之間的像素點(diǎn)進(jìn)行移位,然后提取載體圖像的特征值,將該特征值與經(jīng)過(guò)混沌系統(tǒng)加密的數(shù)字水印進(jìn)行異或處理后,采用公鑰將其嵌入到處理后的載體圖像內(nèi)。圖像的驗(yàn)證過(guò)程是嵌入過(guò)程的逆過(guò)程,驗(yàn)證完成后,根據(jù)峰值點(diǎn)及其與零值點(diǎn)之間的關(guān)系將移位的像素點(diǎn)復(fù)原,即可完全復(fù)原原始圖像。仿真結(jié)果顯示該方法具有較高的安全性,能夠嵌入更多的信息量,同時(shí)具有更高的透明性。該算法能夠廣泛應(yīng)用于軍事、醫(yī)療、衛(wèi)星圖像的可逆信息隱藏和圖像認(rèn)證中。
文檔編號(hào)G06T1/00GK103164833SQ20111041052
公開日2013年6月19日 申請(qǐng)日期2011年12月12日 優(yōu)先權(quán)日2011年12月12日
發(fā)明者李立宗 申請(qǐng)人:天津職業(yè)技術(shù)師范大學(xué)