專利名稱:數(shù)字條碼水印及防偽方法
技術(shù)領(lǐng)域:
本發(fā)明是一種在條碼上嵌入數(shù)字水印并實(shí)現(xiàn)防偽功能的方法,屬于模式識別及信息安全領(lǐng)域。
條碼是由一組規(guī)則排列的條、空以及對應(yīng)的字符組成的標(biāo)記,“條”指對光線反射率較低的部分,“空”指對光線反射率較高的部分,這些條和空組成的數(shù)據(jù)表達(dá)一定的信息,并能夠用特定的設(shè)備識讀。由于條碼技術(shù)具有輸入速度快、準(zhǔn)確度高、成本低、可靠性強(qiáng)等優(yōu)點(diǎn),因此得到了廣泛應(yīng)用。但隨著應(yīng)用領(lǐng)域的不斷擴(kuò)展,傳統(tǒng)的一維條碼漸漸表現(xiàn)出了它的局限首先,使用一維條碼,必須通過連接數(shù)據(jù)庫的方式提取信息才能明確條碼所表達(dá)的信息含意,因此在沒有數(shù)據(jù)庫或者不便聯(lián)網(wǎng)的地方,一維條碼的使用就受到限制;其次,一維條碼表達(dá)的只能為字母和數(shù)字,而不能表達(dá)漢字和圖像,在一些需要應(yīng)用漢字的場合,一維條碼便不能很好的滿足要求;另外,在某些場合下,大信息容量的一維條碼通常受到標(biāo)簽尺寸的限制,也給產(chǎn)品的包裝和印刷帶來了不便。二維條碼的誕生解決了一維條碼不能解決的問題,它能夠在橫向和縱向兩個方位同時表達(dá)信息,不僅能在很小的面積內(nèi)表達(dá)大量的信息,而且能夠表達(dá)漢字和存儲圖像。二維條碼的出現(xiàn)拓展了條碼的應(yīng)用領(lǐng)域,因此被許多不同的行業(yè)所采用。但是二維條碼的容量仍然有限,不能完全滿足很多需要大信息量的應(yīng)用場合。而且二維條碼的錄入、掃描和識別、解碼裝置與一維條碼完全不兼容,因此如果客戶從使用一維條碼轉(zhuǎn)為二維條碼,則需要大量額外的軟硬件投資。
數(shù)字水印是向宿主數(shù)據(jù)(如圖像、聲音、視頻信號等)中添加某些信息以達(dá)到文件真?zhèn)舞b別、版權(quán)保護(hù)等功能。嵌入的水印信息隱藏于宿主文件中,不影響原始文件的可觀性和完整性。數(shù)字水印在版權(quán)保護(hù)、秘密信息的傳遞、電子商務(wù)中的數(shù)據(jù)檢測、網(wǎng)絡(luò)驗(yàn)證以及數(shù)據(jù)防偽以及數(shù)據(jù)認(rèn)證等方面有重要用途。
可對比的技術(shù)文獻(xiàn)有以下四篇[1]J.M.Acken,How watermarking adds value to digital content,Communicationsof the ACM,Vol.41,No.7,pp.74-77,1998.[2]F.A.P.Petitcolas,R.J.Anderson and M.G.Kuhn,Information hiding-asurvey,Proc.of the IEEE,special issue on protection of multimedia content,May 1999.[3]N.F.Johnson and S.Jajodia,Exploring steganographyseeing the unseen,IEEE Computer,Vol.31,No.2,pp.26-34,F(xiàn)ebruary 1998.[4]B.Schneier,Applied CryptographyProtocols,Algorthms,and Source Code inC,John Wiley & Sons,Inc.,ISBN0471128457,1996.
本發(fā)明給出在條碼上嵌入數(shù)字水印并能完成數(shù)字防偽的方法。其基本思想是在一維條碼或二維條碼中嵌入水印信息,并通過條碼信息,利用公開密鑰算法(如數(shù)字加密、數(shù)字簽名等)實(shí)現(xiàn)條碼的數(shù)字防偽功能。本發(fā)明對一維條碼而言,大大提高了一維條碼的信息量(相當(dāng)于二維條碼)而又不損害原有一維條碼的完整性和實(shí)用性。因此對包含水印的一維條碼,本方法完全兼容原有的一維條碼印制和掃描系統(tǒng)。對二維條碼而言,則可以進(jìn)一步增加條碼的信息量。本方法極大擴(kuò)展了條碼的應(yīng)用領(lǐng)域,使得在條碼中可以利用公開密鑰、數(shù)字簽名或其它加密算法有效實(shí)現(xiàn)條碼的數(shù)字防偽功能。本條碼水印方法是一種極為魯棒的信息嵌入方案。包含水印的條碼完全可以使用普通打印機(jī)或其他標(biāo)準(zhǔn)印刷設(shè)備印制,而且條碼經(jīng)過復(fù)制、傳真后,水印信息仍然可以通過掃描儀、攝像頭以及其它通用掃描設(shè)備被完整提取出來。
本發(fā)明的技術(shù)要點(diǎn)在于一.條碼水印算法數(shù)字水印(Digital Watermarking)是向多媒體數(shù)據(jù)中添加某些數(shù)字信息,一方面這些水印信息可起到保護(hù)原始數(shù)據(jù)的知識版權(quán),表示原文件的所有權(quán)等;另一方面水印信息還可以完成文件的真?zhèn)巫R別,完整性校驗(yàn)等功能,因此水印也可以廣泛應(yīng)用于證件、合同、普通文件以及電子商務(wù)的數(shù)據(jù)防偽上。
數(shù)字條碼水印算法主要由如下四個基本部分構(gòu)成1.一維和二維條碼的編碼與解碼算法。當(dāng)前有很多種不同的碼制標(biāo)準(zhǔn)。常用的一維條碼碼制包括EAN、UPC、128等;二維條碼碼制碼包括PDF417、Code49、Code one、Aztec等。通常一個完整的一維條碼其組成次序依次為靜區(qū)(前)、起始符、數(shù)據(jù)符、(中間分割符,主要用于EAN碼)、(校驗(yàn)符)、終止符、靜區(qū)(后)。二維條碼則可以是堆砌式(由多行短截的一維條碼堆疊而成)和矩陣式(在矩陣相應(yīng)元素位置上用點(diǎn)(或塊)的出現(xiàn)表示二進(jìn)制“1”,空的出現(xiàn)表示二進(jìn)制“0”,由點(diǎn)的排列組合確定了代碼表示的含義)。任何一個標(biāo)準(zhǔn)條碼碼制的編、解碼算法都可以集成到數(shù)字條碼水印算法中。
2.圖像預(yù)處理部分(見圖1)。首先由掃描儀、攝像頭或其它錄入設(shè)備讀入條碼圖像;然后根據(jù)讀入的信息,計算條碼位置、旋轉(zhuǎn)角度以及幾何變換參數(shù);第三,根據(jù)上一步驟得到的變換參數(shù)校正圖像的失真,然后對條碼圖像做進(jìn)一步處理(如濾波、邊緣檢測等)以提高圖像和水印的可處理性;最后恢復(fù)原始的條碼圖像。
3.水印數(shù)據(jù)的嵌入部分(見圖2)。嵌入部分是將水印信息添加到條碼中。嵌入部分的實(shí)施步驟是(1)輸入的條碼數(shù)據(jù)經(jīng)過條碼編碼系統(tǒng)得到條碼圖像;(2)將條碼圖像作為原始圖像,進(jìn)行水印嵌入操作。水印的嵌入模塊首先根據(jù)圖像中條碼元素(光線反射率較低的部分,如黑色“條”)的顏色和形狀找到它們的位置,然后將條碼元素劃分成小塊。塊形狀可以是方塊、圓點(diǎn)或其它特征圖形,每個塊中象素點(diǎn)的多少視具體應(yīng)用而定,象素點(diǎn)越少,塊的數(shù)量就越多,可嵌入的信息也越多,但是信息提取也越困難。每個塊可根據(jù)不同的需要嵌入一個或多個比特的信息(塊的圖像灰度級越高比特數(shù)也越大,如若塊圖像只有一個灰度級,那末每一個塊則只能嵌入一個比特的信息)。由于背景通常是白的,且人眼對圖像低頻部分(如白色背景)非常敏感,因而對圖像的背景部分(即光線反射率較高的部分,如白色“空”)保留不做更改。若以每個塊只嵌入一個比特為例,嵌入的方法為,如果嵌入水印信息為“1”,那么對應(yīng)塊的象素值被更改為預(yù)定義顏色值;若嵌入信息為“0”,則該塊保持原來的顏色值,不做更改。對每個塊而言,預(yù)定義顏色值的大小決定了水印信息的可見程度(預(yù)定義值越接近條碼元素色,水印越難覺察,相應(yīng)地水印提取也越困難),預(yù)定義顏色值的多少(即塊圖像灰度級)則決定嵌入水印的信息量(多個預(yù)定義顏色值可嵌入多個比特信息)。顯然一個條碼圖像中的水印信息量決定于條碼碼制、條碼數(shù)據(jù)、條碼大小、塊尺寸大小以及預(yù)定義顏色值的多少等因素。
4.水印信息的提取部分。水印的提取是從條碼圖像中恢復(fù)水印信息,基本上是嵌入部分的逆過程(見圖3)。水印提取算法可以有兩種選擇,一種是用條碼解碼算法首先恢復(fù)條碼數(shù)據(jù)(即恢復(fù)原始的條碼圖像)(見步驟一),然后再提取水印,這是私有的水印提取算法(即在檢測水印時有原始圖像作為參考圖像,可以大大提高檢測算法的魯棒性),另外一種是直接從條碼水印圖像中提取水印,則屬于公有的水印提取算法(無需原始圖像做參考,解碼速度塊,但魯棒性差)。具體采用何種提取算法視實(shí)際情況而定。
最后為提高水印算法的魯棒性,本發(fā)明采用如下幾項(xiàng)措施首先對輸入的含水印條碼圖像進(jìn)行圖像預(yù)處理,降低打印機(jī)、掃描儀或攝像頭錄入圖像帶來的圖像失真對水印檢測的負(fù)作用(見步驟二);其次水印信息中包含糾錯編碼(如BCH或RS碼)和校驗(yàn)碼(如32位CRC碼),可以保證條碼水印在受到污損的情況下,仍能可靠和完整地提取水印信息。
二.條碼水印的防偽方法在條碼水印的基礎(chǔ)上,本發(fā)明可實(shí)現(xiàn)條碼的數(shù)字防偽功能。對使用條碼并需要防偽的場合,利用公開密鑰算法(如RSA或橢圓算法)對條碼所對應(yīng)的信息進(jìn)行數(shù)字加密或數(shù)字簽名,加密密鑰為加密方的私鑰。私鑰為加密方所有,且私鑰僅用來制作信息的數(shù)字簽名(如在商標(biāo)中對商品信息做數(shù)字簽名)。然后將加密數(shù)據(jù)或數(shù)字簽名作為水印信息嵌入到一維水印條碼(指包含水印的一維條碼)、二維條碼或二維水印條碼中。如果信息載荷量容許,水印還可以包含加密算法的公鑰。公鑰是公開發(fā)布的,且公鑰只能用來作信息驗(yàn)證,而不能做信息加密用。因此任何一個條碼接受端(或驗(yàn)證端)均可利用加密方發(fā)布的公鑰(從數(shù)據(jù)驗(yàn)證中心、通過網(wǎng)絡(luò)或其他渠道得到)或者條碼信息所包含的公鑰對條碼數(shù)據(jù)進(jìn)行解密,然后做信息的真?zhèn)悟?yàn)證,從而實(shí)現(xiàn)條碼的數(shù)字防偽功能。這里我們強(qiáng)調(diào)的是,條碼信息的真?zhèn)悟?yàn)證并不需要條碼驗(yàn)證端與條碼發(fā)行端(或其它驗(yàn)證數(shù)據(jù)中心等)之間的網(wǎng)絡(luò)或其它直接聯(lián)系,只要驗(yàn)證方有條碼制作端的公鑰,就可以通過公開算法(如PGP,PKCS算法等)對任何一個條碼信息做驗(yàn)證。換句話講條碼所包含的信息已經(jīng)能夠?qū)π畔⒆鲎晕倚r?yàn)。
三.本發(fā)明與現(xiàn)有技術(shù)相比有以下優(yōu)點(diǎn)本發(fā)明在條碼技術(shù)的基礎(chǔ)上,利用數(shù)字水印技術(shù)將水印信息嵌入到條碼圖像中。條碼中包含水印,一方面不影響條碼的可讀性和完整性,保證原有條碼的印制和錄入系統(tǒng)可以正常工作,另一方面由于條碼目前被廣泛使用的一種自動識別技術(shù),大量增加條碼的信息載荷量,可以極大擴(kuò)展條碼的應(yīng)用領(lǐng)域。此外對一維水印條碼、二維條碼、二維水印條碼,本發(fā)明用公開密鑰算法實(shí)現(xiàn)有效的數(shù)字防偽功能,由于公開密鑰算法的有效性和不可偽造性,本發(fā)明實(shí)現(xiàn)的防偽功能穩(wěn)定且方便實(shí)用。
圖1是圖像預(yù)處理的流程2是嵌入水印數(shù)據(jù)的流程3是提取水印數(shù)據(jù)的流程4是一維條碼和一維水印條碼圖像圖5是二維條碼和二維水印條碼圖像實(shí)施例一、水印條碼的實(shí)現(xiàn)方法。根據(jù)條碼數(shù)據(jù),利用某一標(biāo)準(zhǔn)碼制(如UPCA)的編碼規(guī)則首先生成條碼圖像。然后在條碼圖像的基礎(chǔ)上根據(jù)條碼水印算法(步驟3)嵌入相應(yīng)的水印信息(水印可以條碼對應(yīng)的信息,也可以是對應(yīng)信息的加密數(shù)據(jù)或數(shù)字簽名),最后得到并輸出水印條碼。圖4為生成的一維條碼和包含水印的條碼圖像,圖5為生成的二維矩陣條碼和包含水印的條碼圖像。
二、水印條碼在防偽商品標(biāo)簽上的應(yīng)用。首先生產(chǎn)廠商用私鑰將商品的有效信息(如商品類型,種類,生產(chǎn)日期,批次,產(chǎn)品序列號等)加密或數(shù)字簽名后作為水印信息嵌入到條碼中。對普通使用者,原有條碼的掃描和識別系統(tǒng)仍然可以正常工作。但是條碼水印由于包含了商品信息的數(shù)字簽名或加密數(shù)據(jù),任何人都可以通過生產(chǎn)廠商的公鑰進(jìn)行條碼信息的驗(yàn)證。如果驗(yàn)證信息和商品信息吻合,則商品標(biāo)簽為真的,否則是偽造的。由于私鑰僅為廠商所有,其它任何人偽造的該廠商商品標(biāo)簽都無法通過該廠商公鑰的驗(yàn)證。該應(yīng)用的特點(diǎn)是條碼信息的驗(yàn)證僅需要公鑰(從側(cè)面保證了私鑰的保密性),由于算法公開,因此任何人均可以方便做真?zhèn)悟?yàn)證,無需網(wǎng)絡(luò)和數(shù)據(jù)庫的支持。
權(quán)利要求
1.數(shù)字條碼水印及防偽方法,其特征在于通過數(shù)字水印技術(shù),將數(shù)據(jù)嵌入到一維條碼和二維條碼中,并通過公開密鑰算法在條碼中紀(jì)錄其對應(yīng)信息的數(shù)字簽名、加密數(shù)據(jù)或公鑰,從而實(shí)現(xiàn)條碼的數(shù)字防偽功能。
2.根據(jù)權(quán)利要求1所述的數(shù)字條碼水印及防偽方法,其特征在于通過合適的數(shù)字水印算法把信息作為水印數(shù)據(jù)嵌入到一維和二維條碼中,從而使得原有的條碼可以包含更多信息(如文本、圖像等各種形式的數(shù)據(jù))。
3.根據(jù)權(quán)利要求1所述的數(shù)字條碼水印及防偽方法,其特征在于數(shù)字條碼水印方案可集成任何一個標(biāo)準(zhǔn)條碼碼制的編碼和解碼算法,使得條碼水印的制作和檢測可以一次完成,大大降低成本。原有條碼的形狀不受影響,因此原有的條碼制作和檢測設(shè)備仍然可以正常使用。
4.根據(jù)權(quán)利要求1所述的數(shù)字條碼水印及防偽方法,其特征在于根據(jù)條碼元素(光線反射率較低的部分,如黑色“條”)的顏色、形狀和位置,將條碼元素劃分成小塊(如方塊、圓點(diǎn)或其它特征圖形),每個塊可根據(jù)不同的需要嵌入一個或多個比特的信息。對每個塊通過預(yù)定義顏色值的設(shè)定(包括顏色值和灰度級)確定水印信息的可見程度和每個塊的嵌入信息量。
5.根據(jù)權(quán)利要求1所述的數(shù)字條碼水印及防偽方法,其特征在于水印提取算法可以有兩種選擇,一種是用條碼解碼算法首先恢復(fù)條碼數(shù)據(jù)然后再提取水印的私有水印提取算法,另外一種是直接從條碼水印圖像中提取水印的公有水印算法,增加條碼應(yīng)用的靈活性。利用糾錯編碼和水印信息的數(shù)字摘要確保在條碼水印受到污損的情況下可靠和完整地提取水印信息。
6.根據(jù)權(quán)利要求1所述的數(shù)字條碼水印及防偽方法,其特征在于對條碼所對應(yīng)的信息利用公開密鑰算法進(jìn)行數(shù)字加密或數(shù)字簽名,并將加密數(shù)據(jù)或數(shù)字簽名作為水印信息(如果條碼的信息載荷量容許,公鑰本身也可作為嵌入信息)嵌入到。加密或簽名用私鑰,解密或驗(yàn)證用公鑰。公鑰是公開發(fā)布的,且只用來作信息驗(yàn)證。只要驗(yàn)證方有條碼制作端的公鑰,就可以通過公開算法對條碼信息做真?zhèn)悟?yàn)證。
7.根據(jù)權(quán)利要求1所述的數(shù)字條碼水印及防偽方法,其特征在于可通過一維水印條碼、二維條碼和二維水印條碼制作通用防偽標(biāo)簽。將帶加密或簽名信息的條碼印制在防偽標(biāo)簽上,則任何標(biāo)簽驗(yàn)證端都可通過加密方的公鑰確定標(biāo)簽的真?zhèn)?,而無需驗(yàn)正數(shù)據(jù)中心或其它數(shù)據(jù)庫的支持。這樣制作的防偽標(biāo)簽可用一維水印條碼、二維條碼或二維水印條碼制作,并可應(yīng)用于任何需要鑒別文件、商品或其它數(shù)據(jù)真?zhèn)蔚膱龊稀?br>
全文摘要
本發(fā)明是一種針對條碼的數(shù)字水印和防偽技術(shù),屬于圖像處理與信息安全領(lǐng)域。利用數(shù)字水印技術(shù),本發(fā)明可將大量信息作為水印嵌入到現(xiàn)有一維和二維條碼中,且保持原有條碼的可讀性和完整性,并通過公開密鑰算法在條碼中紀(jì)錄其對應(yīng)信息的數(shù)字簽名或加密數(shù)據(jù),加密或簽名用私鑰,解密或驗(yàn)證用公鑰,從而實(shí)現(xiàn)條碼的數(shù)字防偽功能。
文檔編號G06F12/14GK1444145SQ02110959
公開日2003年9月24日 申請日期2002年3月7日 優(yōu)先權(quán)日2002年3月7日
發(fā)明者溫天 申請人:溫天