專利名稱:一種票據(jù)的數(shù)字水印防偽方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種票據(jù)的數(shù)字水印防偽方法。
背景技術(shù):
隨著信息時(shí)代的到來,特別是Internet的普及,信息的安全保護(hù)問題日益突出。當(dāng)前的信息安全技術(shù)基本上以密碼學(xué)理論為基礎(chǔ),其保護(hù)方式均是控制文件的存取,即將文件加密成密文,使非法用戶不能解讀,隨著多媒體技術(shù)的廣泛應(yīng)用,需要進(jìn)行加密、認(rèn)證和版權(quán)保護(hù)的聲像數(shù)據(jù)也越來越多。數(shù)字化的聲像數(shù)據(jù)從本質(zhì)上來說就是數(shù)字信號(hào),如果對(duì)這類信號(hào)也采用密碼加密的方式,則其本身的信號(hào)屬性就被忽略了。最近幾年,許多研究人員放棄了傳統(tǒng)的密碼學(xué)的技術(shù)路線,嘗試采用各種信號(hào)處理的方法對(duì)聲像數(shù)據(jù)進(jìn)行隱蔽加密,并將該技術(shù)應(yīng)用于制作多媒體的“數(shù)字水印”。
數(shù)字水印技術(shù)是指用信號(hào)處理的方法在數(shù)字化的多媒體數(shù)據(jù)中嵌入隱含的標(biāo)記,這種標(biāo)記通常是不可見的,只有通過專用的檢測(cè)器或閱讀器才能提取。數(shù)字水印設(shè)計(jì)必須滿足非法用戶不能識(shí)別,只能夠被合法的版權(quán)擁有者所確認(rèn)的要求。
數(shù)字水印處理技術(shù)可以劃分為兩大類時(shí)域水印處理技術(shù)和變換域水印處理技術(shù)。時(shí)域水印處理技術(shù)的優(yōu)點(diǎn)是水印的嵌入和檢測(cè)的速度快,缺點(diǎn)是抗噪聲、濾波、壓縮等攻擊能力差,而且嵌入水印信息小,在變換域水印處理技術(shù)中,首先將數(shù)字信號(hào)的采樣數(shù)據(jù)進(jìn)行某種變換(如離散傅立葉變換、離散余弦變換——DCT或離散小波變換——DWT)。然后結(jié)合變換自身的特性和人的要求將水印信息嵌入到數(shù)字信號(hào)的變換域系數(shù)上,最后通過逆變換恢復(fù)出含有水印信息的數(shù)字信號(hào)。變換域水印處理技術(shù)的優(yōu)點(diǎn)是嵌入水印的信息量大,抗噪聲、濾波、壓縮等攻擊能力比較強(qiáng),嵌入水印的穩(wěn)健性好,變換域水印處理技術(shù)是目前數(shù)字水印處理技術(shù)的主流研究方向。但是另一個(gè)方面,已有的變換域數(shù)字水印方法,不能實(shí)施數(shù)字信號(hào)的無損表示,因此也不能應(yīng)用于票據(jù)的防偽。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種票據(jù)的數(shù)字水印防偽方法,這種方法由于采用了一維整數(shù)DCT變換和Rijndael加密,可實(shí)現(xiàn)圖像的無損重構(gòu),并具有很好的安全性。
為實(shí)現(xiàn)上述目的,在數(shù)字圖像信號(hào)中加入水印信號(hào)的步驟為1)、由校驗(yàn)器將待加密的二進(jìn)制數(shù)據(jù)流做一次CRC校驗(yàn),生成兩個(gè)字節(jié)長(zhǎng)的校驗(yàn)核,將待加密的二進(jìn)制數(shù)據(jù)流隨機(jī)截取8n-2個(gè)字節(jié)數(shù)據(jù),n≥2,若截取數(shù)據(jù)字節(jié)數(shù)不夠則以0或1填充滿,并將校驗(yàn)核添加在所截取數(shù)據(jù)流的后面,生成待加密的明文;2)、將待加密的明文輸入頻域變換器,頻域變換器將明文按8點(diǎn)分段,并對(duì)每段作一維整數(shù)DCT變換,得到IntDCT系數(shù);3)、水印插入器將數(shù)字水印信息加入到IntDCT系數(shù)的中頻部分,得到含有水印信息的IntDCT系數(shù);4)、加密器將含有水印信息的IntDCT系數(shù)進(jìn)行128位密鑰的Rijndael加密,生成密文;
5)、將密文輸入亂碼器進(jìn)行區(qū)域截取UUEncode,使其可以表現(xiàn)為可識(shí)別的字母信息,最后得到了票面上的隱含數(shù)字水印的防偽碼。
提取水印信號(hào)的步驟1)、將隱含數(shù)字水印的防偽碼輸入到解碼器進(jìn)行反區(qū)域截取UUEncode,得到密文;2)、將密文輸入解密器進(jìn)行反Rijndael解密,輸出IntDCT系數(shù);3)、將IntDCT系數(shù)輸入到水印提取器,得到數(shù)字水印。
本發(fā)明所具有的優(yōu)點(diǎn)A、采用有限長(zhǎng)的明文,可大大提高系統(tǒng)的速度,并減小系統(tǒng)軟、硬件的開支;B、采用整體校驗(yàn)可以檢驗(yàn)出所有的一位的改動(dòng)和連續(xù)的兩位改動(dòng),實(shí)現(xiàn)對(duì)整體數(shù)據(jù)的保護(hù);C、采用一維整數(shù)DCT變換和密鑰長(zhǎng)度為128位的Rijndael加密,可抗擊所有的攻擊,確保加密數(shù)據(jù)信息的安全。
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的說明。
附圖1為向數(shù)字信號(hào)中加入水印信息的原理框圖。
附圖2為從含有水印信號(hào)的數(shù)字信號(hào)提取水印信息的原理框圖。
附圖3為第一種8點(diǎn)整數(shù)DCT流程圖。
附圖4為第二種整數(shù)DCT流程圖。
具體實(shí)施例方式參見圖1,要將水印信息插入到待加密的二進(jìn)制數(shù)據(jù)流中,首先由校驗(yàn)器1將待加密的二進(jìn)制數(shù)據(jù)流做一次CRC校驗(yàn),以防止非法改動(dòng)待加密的二進(jìn)制數(shù)據(jù)流,并對(duì)待加密的二進(jìn)制數(shù)據(jù)流作整體保護(hù),生成兩個(gè)字節(jié)長(zhǎng)的校驗(yàn)核,將待加密的二進(jìn)制數(shù)據(jù)流隨機(jī)截取14字節(jié)數(shù)據(jù)(也可選為22、30字節(jié)等,字節(jié)越短,則系統(tǒng)速度越快,并可減少系統(tǒng)的軟、硬件開支),若不夠14字節(jié)則填充0(或1)至14字節(jié),并將校驗(yàn)核添加在所截取14字節(jié)數(shù)據(jù)的后面,生成16字節(jié)待加密的明文。
上述的CRC校驗(yàn)原理如下CRC檢驗(yàn)原理實(shí)際上就是在一個(gè)p位二進(jìn)制數(shù)據(jù)序列之后附加一個(gè)r位二進(jìn)制檢驗(yàn)碼(序列),從而構(gòu)成一個(gè)總長(zhǎng)為n=p+r位的二進(jìn)制序列,例如,p位二進(jìn)制數(shù)據(jù)序列D=[dp-1dp-2......d1d0],r位二進(jìn)制檢驗(yàn)碼R=[rr-1rr-2....r1r0],所得到的這個(gè)n位二進(jìn)制序列就是M=[dp-1dp- 2......d1d0rr-1rr-2....r1r0];附加在數(shù)據(jù)序列之后的這個(gè)檢驗(yàn)碼與數(shù)據(jù)序列的內(nèi)容之間存在著某種特定的關(guān)系。如果因干擾等原因使數(shù)據(jù)序列中的某一位或某些位發(fā)生錯(cuò)誤,這種特定關(guān)系就會(huì)被破壞,因此,通過檢查這一關(guān)系,就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)正確性的檢驗(yàn)。
校驗(yàn)碼R是通過對(duì)數(shù)據(jù)序列D進(jìn)行二進(jìn)制除法取余式運(yùn)算得到的,它被一個(gè)稱為生成多項(xiàng)式的(r+1)位二進(jìn)制序列G=[grgr-1....g1g0]來除,用多項(xiàng)式形式表示為xrD(x)G(x)=Q(x)+R(x)G(x)----(1)]]>其中,xrD(x)表示將數(shù)據(jù)序列D左移r位(即在D的末尾再增加r個(gè)0位),Q(x)代表這一除法所得的商,R(x)就是所需的余式。這一運(yùn)算關(guān)系還可以用式(2)來表達(dá)R(x)=Re[xrD(x)G(x)]----(2)]]>其中,Re[]表示對(duì)括號(hào)內(nèi)的式子進(jìn)行取余式運(yùn)算。檢驗(yàn)碼的編碼計(jì)算如上所述,而檢驗(yàn)過程則是對(duì)M序列直接進(jìn)行除法取余式運(yùn)算,即M(x)G(x)=Q(x)+R(x)G(x)----(3)]]>或表示為R(x)=Re[M(x)G(x)]----(4)]]>所得到的余式R(x)若為零則表示數(shù)據(jù)正確,否則認(rèn)為發(fā)生錯(cuò)誤。
校驗(yàn)器1輸出的16字節(jié)待加密的明文送到頻域變換器2,頻域變換器2將16字節(jié)待加密的明文按8點(diǎn)分段,并對(duì)每段作一維整數(shù)DCT變換,得到IntDCT系數(shù)。
上述的一維整數(shù)DCT變換的算法如下第一類8點(diǎn)IntDCT-II的變換矩陣C811定義為C‾811=P8(1)I4J4I5R‾-π41P4(1)P4(1)I2J2111-1-1111]]>xR‾π4R‾π8T~-411-1-11-1-11I2I2I4J4I4-J4,(8)]]>而第二類IntDCT-II的變換矩陣C811又可以定義為C811=P8(1)I4-J2J2P4(1)T~-4I2J2111-1I2-I2R-π4R-π8I4]]>x11-1-11-1-11P4(1)I5R‾π41I4I4I4-J4,(9)]]>
利用整數(shù)變換的定義中非線性性質(zhì),對(duì)于任意整數(shù)序列,上述兩種IntDCT-II的輸出結(jié)果一般不同,因此在實(shí)際問題中可以根據(jù)需要選取合適的IntDCT-II。附圖3和附圖4分別給出了上述兩種8點(diǎn)IntDCT-II的流程圖。其中,I~2(1)=diag{1,-1},I~2(2)=diag{-1,1},I~2(3)=diag{-1,-1}.]]>現(xiàn)在將上述4點(diǎn)與8點(diǎn)IntDCT-II與IntDCT-IV推廣到一般的N=2t,t≥3點(diǎn)IntDCT-II與IntDCT-IV的設(shè)計(jì)。
注意到命題1中矩陣IM,VM,PM,PM(1),D,DM,JM本身為整數(shù)到整數(shù)的變換。 階矩陣 可以用來遞推定義IntDCT,而矩陣 包含了 個(gè)平面旋轉(zhuǎn),矩陣 可以通過整數(shù)變換近似得到。為了建立一般長(zhǎng)度的IntDCT的定義與算法,現(xiàn)在剩下的是需要對(duì)矩陣BN中的一個(gè)子塊矩陣 作整數(shù)變換近似,為此首先建立下面的引理。
引理1矩陣 存在下列兩種分解形式diag(2,2)=Rπ411-11,(10)]]>或者diag(2,2)=22-20111112-1110-121,(11)]]>(10)與(11)可以直接通過矩陣乘法建立,限于篇幅,此處略去。
由于(10)或(11)中出現(xiàn)的矩陣均為整數(shù)矩陣或具有提升結(jié)構(gòu)的矩陣,因此矩陣 可以通過整數(shù)變換來近似,設(shè)其整數(shù)變換為K2。
綜合上述討論,遞推地建立長(zhǎng)度N=2t,t≥3的IntDCT-II與IntDCT-IV矩陣如下C‾NII=PN(1)IN/200JN/2C‾N/2IIC‾N/2IVIN/2JN/2IN/2-JN/2.(4.12)]]>C‾NIV=PN(2)B‾NPN(2)PN(1)C‾N/2IIC‾N/2IIIN/2DN/2JN/2T~‾NIN2-IN2,(13)]]>其中,BN=diag(K2,VN-2), 包含了 個(gè)旋轉(zhuǎn)變換的整數(shù)提升矩陣分解。當(dāng)然,利用DCT-IV的對(duì)稱性,還可以象8點(diǎn)IntDCT-IV那樣,定義出多種整數(shù)DCT-IV以及相應(yīng)的多種整數(shù)DCT-II.現(xiàn)在將上述討論表達(dá)成下列算法。
算法(1).長(zhǎng)度N=2t,t≥3的IntDCT-II的計(jì)算設(shè)輸入序列為x(k),k=0,1,2,A,N-1.
第一步計(jì)算g(k)=x(k)+x(N-k-1),h(k)=x(k)-x(N-k-1),k=0,1,2,Λ,N2-1;]]>第二步分別計(jì)算序列g(shù)(k)與序列h(k)的 點(diǎn)IntDCT-II與IntDCT-IV,設(shè)其輸出為H1(k),0≤k≤N2-1]]>與H1(k),N2≤k≤N-1.]]>第三步序列重排X=PN(1)IN/200JN/2[H1,(0),H1(1),Λ,H1(N-1)]′.]]>上述三步按照長(zhǎng)度N遞推地進(jìn)行。
(2).長(zhǎng)度N=2t,t≥3的IntDCT-IV的計(jì)算設(shè)輸入序列為x(k),k=0,1,2,Λ,N-1.
第一步對(duì)于序列x(k),0≤k≤N2-1]]>以及-x(k),N2≤k≤N-1,]]>按照H=[h(0),h(1),Λ,h(N-1)]′=T~‾N[x(0),x(1),Λ,x(N2-1),-x(N2),Λ,-x(N-1)]′]]>作提升變換;第二步對(duì)于序列H的后半部作重排[h(N2),h(N2+1),Λ,h(N-1)]′:=[h(N-1),-h(N-2),h(N-3),-h(N-4),Λ,-h(N2)]′]]>然后分別計(jì)算h(k),0≤k≤N2-1]]>與h(k),N2≤k≤N-1]]>的 點(diǎn)IntDCT-II,設(shè)其輸出為H2(k),0≤k≤N2-1]]>與H2(k),N2≤k≤N-1;]]>第三步按照Y=PN(2)PN(1)[H2(0),H2(1),Λ,H2(N-1)]′]]>做序列重排,然后計(jì)算,y(2)y(N-1):=11-11,y(2k+1)y(2k+2):=11-11y(2k+1)y(2k+2),k=1,2,N/2-2;]]>第四步按照X=PN(2)Y]]>做序列重排得到所需要的IntDCT-IV序列。
注意到在IntDCT的定義中有些矩陣本身就是整數(shù)矩陣,且其逆除常數(shù)因子外也為整數(shù)矩陣,例如有VM-1=12Vm,PN(1)-1=PM(1)′,PN(2)-1=PN(2),JN-1=JN,(DMJM)-1=DMJM]]>以及IN2JN2IN2-JN2=12IN2IN2JN2-JN2.]]>經(jīng)頻域變換器2進(jìn)行一維整數(shù)DCT變換后,水印插入器3將水印信息加入到IntDCT系數(shù)的中頻部分,這樣得到含有水印信息的IntDCT系數(shù);加密器4將含有水印信息的IntDCT系數(shù)進(jìn)行密鑰長(zhǎng)度為128位Rijndael加密,并生成密文;生成的密文被送到UUEncode亂碼器5,采用UUEncode技術(shù)進(jìn)行區(qū)域截取,它是將二進(jìn)制數(shù)據(jù)流全部拆分成以位為單位的數(shù)據(jù)流,如相鄰兩個(gè)字節(jié)為a,b。則拆分的結(jié)果是a0a1a2a3a4a5a6a7b0b1b2b3b4b5b6b7
其中ai,bi={0,1}(i=0,1,....7)。對(duì)位數(shù)據(jù)流依次選取6位為一個(gè)單元組成一個(gè)碼,它的取值范圍是0-63,將其作為序號(hào),在給定的字符集里面取值,使其可以表現(xiàn)為可識(shí)別的字母信息,最后得到了票面上的隱含數(shù)字水印的防偽碼。
上述的加密器4也可采用其它公知的加密算法。
參見圖2,從隱含數(shù)字水印的防偽碼中提取水印信號(hào)的過程是將隱含數(shù)字水印的防偽碼輸入到解碼器6進(jìn)行反區(qū)域截取UUEncode,得到密文;將密文送到解密器7進(jìn)行反Rijndael解密,輸出含水印信息的IntDCT系數(shù);將含水印信息的IntDCT系數(shù)送到水印提取器8,得到數(shù)字水印。
權(quán)利要求
1.一種向票據(jù)數(shù)字信息中加入水印信號(hào)的方法,其特征在于包括以下步驟為a、由校驗(yàn)器(1)將待加密票據(jù)的二進(jìn)制數(shù)據(jù)流做一次CRC校驗(yàn),生成兩個(gè)字節(jié)長(zhǎng)的校驗(yàn)核,將待加密的二進(jìn)制數(shù)據(jù)流隨機(jī)截取8n-2個(gè)字節(jié)數(shù)據(jù),n≥2,若字節(jié)不夠則以0填充滿,并將校驗(yàn)核添加在截取數(shù)據(jù)流的后面,生成待加密的明文;b、將待加密的明文輸入頻域變換器(2),頻域變換器(2)將明文按(8)點(diǎn)分段,并對(duì)每段作一維整數(shù)DCT變換,得到IntDCT系數(shù);c、水印插入器(3)將數(shù)字水印信息加入到IntDCT系數(shù)的中頻部分,得到含有水印信息的IntDCT系數(shù);d、加密器(4)將含有水印信息的IntDCT系數(shù)加密,生成密文;e、將密文輸入亂碼器(5),采用UUEncode技術(shù)進(jìn)行區(qū)域截取,使其可以表現(xiàn)為可識(shí)別的字母信息,最后得到了票面上的隱含數(shù)字水印的防偽碼。
2.根據(jù)權(quán)利要求1所述的一種向票據(jù)數(shù)字信息中加入水印信號(hào)的方法,其特征在于所述步驟a中截取14個(gè)字節(jié)數(shù)據(jù)。
3.根據(jù)權(quán)利要求1或2所述的一種向票據(jù)數(shù)字信息中加入水印信號(hào)的方法,其特征在于所述的加密器(4)為Rijndael加密器。
4.一種從隱含數(shù)字水印的防偽碼中提取水印信息的方法,其特征在于包括以下步驟a、將隱含數(shù)字水印的防偽碼輸入到解碼器(6)進(jìn)行反區(qū)域截取,得到密文;b、將密文輸入解密器(7)進(jìn)行反Rijndael解密,輸出IntDCT系數(shù);c、將IntDCT系數(shù)輸入水印提取器(8),得到數(shù)字水印。
全文摘要
一種票據(jù)的數(shù)字水印防偽方法,經(jīng)對(duì)待加密票據(jù)信息進(jìn)行整體校驗(yàn)、隨機(jī)截取、填充后,再進(jìn)行一維整數(shù)DCT變換、Rijndael加密、區(qū)域截取UUEncode,得到隱含數(shù)字水印的防偽碼,這種數(shù)字水印防偽方法由于采用了有限長(zhǎng)的明文,可大大提高系統(tǒng)的速度,并減小系統(tǒng)軟、硬件的開支;采用整體校驗(yàn)可以檢驗(yàn)出所有的一位的改動(dòng)和連續(xù)的兩位改動(dòng),實(shí)現(xiàn)對(duì)整體數(shù)據(jù)的保護(hù);采用一維整數(shù)DCT變換和密鑰長(zhǎng)度為128位的Rijndael加密,可抗擊所有的攻擊,確保加密票據(jù)數(shù)據(jù)信息的安全。
文檔編號(hào)G06K5/00GK1421782SQ01131570
公開日2003年6月4日 申請(qǐng)日期2001年11月28日 優(yōu)先權(quán)日2001年11月28日
發(fā)明者田力, 鮑家文, 羅永 , 成禮智, 毛紫陽 申請(qǐng)人:佳程防偽科技(深圳)有限公司