專利名稱:信息處理裝置及其控制方法、計算機程序和存儲介質(zhì)的制作方法
技術領域:
本發(fā)明涉及一種用于標識和鑒別數(shù)字信息的信息處理方法和裝置及存儲介質(zhì)。
背景技術:
近年來,計算機和網(wǎng)絡飛速發(fā)展,多種數(shù)字信息例如文本數(shù)據(jù)、圖像數(shù)據(jù)、音頻數(shù)據(jù)等被利用。這些數(shù)據(jù)信息不會因為例如老化而損壞,并且能被永久地、良好地保存。而且數(shù)字信息能被容易的編輯和處理。這種做法對于編輯和處理數(shù)字信息的用戶來說會更有利。
然而,對于在意外事件處理中使用證據(jù)照片的保險公司或是記錄建筑場所的進展情況的建筑公司,數(shù)字數(shù)據(jù)比模擬數(shù)據(jù)的可靠性低,而且數(shù)字數(shù)據(jù)作為證據(jù)的證明力比較弱。
因此,檢查任何篡改和/或偽造數(shù)字數(shù)據(jù)的視頻輸入裝置和系統(tǒng)被提了出來。
例如,眾所周知的一種使用數(shù)字簽名的系統(tǒng)是用于檢測任何篡改和/或偽造的系統(tǒng)。以下將簡要介紹數(shù)字簽名。
通過使用數(shù)字簽名,發(fā)送器可以同時發(fā)送數(shù)據(jù)以及與該數(shù)據(jù)相應的特征數(shù)據(jù),并且接收器通過檢驗特征數(shù)據(jù)而檢查數(shù)據(jù)的可靠性。如下所述,利用散列函數(shù)和公共密碼術而產(chǎn)生的數(shù)字簽名檢驗數(shù)據(jù)的可靠性。
令Ks為一個密鑰,Kp為一公共密鑰。那么,發(fā)送器通過利用散列函數(shù)來壓縮純文本數(shù)據(jù)M以執(zhí)行一種算術運算,該算術運算用于計算出給定長度(例如128字節(jié))的輸出h。發(fā)送器在經(jīng)過這樣的算術運算來產(chǎn)生數(shù)字簽名數(shù)據(jù)s用密鑰Ks變換h,也就是,D(Ks,h)=s。之后,發(fā)送器發(fā)送數(shù)字簽名數(shù)據(jù)s以及純文本數(shù)據(jù)M。
另一方面,接收器產(chǎn)生這樣一種算術運算用公共密鑰Kp對接收到的數(shù)字簽名數(shù)據(jù)s進行變換,即,E(Kp,s)=E(Kp,D(Ks,h″))=h″,同時產(chǎn)生這樣一種算術運算通過使用與發(fā)送器相同的散列函數(shù)來壓縮接收到的純文本數(shù)據(jù)M以計算h′。如果h′和h″相匹配,接收器確定接收到的數(shù)據(jù)M′是可靠的。
如果純文本數(shù)據(jù)M在發(fā)送器和接收器之間被篡改了,E(Kp,s)=E(Kp,D(Ks,h″))=hh″與通過使用與發(fā)送器同樣的散列函數(shù)壓縮接收到的純文本數(shù)據(jù)M′而得到的h′不相匹配,則檢測出數(shù)據(jù)被篡改。
如果對數(shù)字簽名數(shù)據(jù)s的篡改和對純文本數(shù)據(jù)M的篡改相一致,那么將無法檢查到這種篡改。然而在這種情況下,純文本數(shù)據(jù)M必須從h計算得出,但由于散列函數(shù)的單向性而不能產(chǎn)生這樣的操作。如上所述,通過使用利用了公共密碼術和散列函數(shù)的數(shù)字簽名可以正確的鑒別數(shù)據(jù)。
下面將解釋散列函數(shù),散列函數(shù)用來以高速產(chǎn)生數(shù)字簽名等。散列函數(shù)具有這樣一種功能,它可以處理任意長度的純文本數(shù)據(jù)M,并輸出一確定長度的輸出h。注意輸出量h稱為純文本數(shù)據(jù)M的散列值(或者信息摘要,數(shù)字指紋)。散列函數(shù)需要有單向性和抗沖突性。單向性意味著如果h是確定的,在計算上就不可能得出滿足h=H(M)的文本數(shù)據(jù)M??箾_突性意味著如果文本數(shù)據(jù)M是確定的,在計算上就不可能得出滿足H(M)=H(M′)的純文本數(shù)據(jù)M′(M≠M′),也不可能計算出滿足H(M)=H(M′)和M≠M′的純文本數(shù)據(jù)M和M′。
作為散列函數(shù),MD-2,MD-4,MD-5,SHA-1,RIPEMD-128,RIPEMD-160等等是公知的,并且這些算法是普遍的。
下面將介紹公共密碼術。在公共密碼術中,加密和解密密鑰是不同的,加密密鑰是公知的,而解密密鑰是保密的。公共密碼術具有如下特征,(a)既然加密和解密密鑰是不同的而且加密密鑰是公知的,那么不需要加密傳送加密密鑰,且很容易進行密鑰傳送;(b)既然每一個用戶的加密密鑰是公開的,用戶只需將他或她的解密密鑰保密;(c)可以實現(xiàn)接收器使用的一個鑒別函數(shù)來鑒別信息發(fā)送者是否是非法的,且信息是否被篡改;例如,如果使用公共加密密鑰Kp對純文本數(shù)據(jù)M進行加密由E(Kp,M)表示,使用私人解密密鑰Ks進行解密由D(Ks,M)表示,則公共密碼術的算法滿足下列兩個條件(1)如果Kp已知,容易得到E(Kp,M),如果Ks已知,容易得到D(Ks,M)。
(2)如果Ks未知,即使Kp,E,C=E(Kp,M)能夠確定,在算法上也不能確定M。
如果在滿足上述條件(1)和(2)的同時,滿足下面條件(3),則保密通信能夠?qū)崿F(xiàn)。
(3)可以將E(Kp,M)定義為用于所有文本數(shù)據(jù)M且D(Ks,E(Kp,M)))=M。那就是說,既然Kp為公眾所知,任何人都能得到E(Kp,M),但是只有知道私人密鑰Ks的人才能通過計算D(Ks,E(Kp,M)))而得出M。如果在滿足上述條件(1)和(2)的同時,滿足下面條件(4),則能夠?qū)崿F(xiàn)鑒別通信。
(4)可以將D(Ks,M)定義為用于所有文本數(shù)據(jù)M且E(Kp,D(Ks,M))=M。那就是說,只有知道私人密鑰s的人能夠得到D(Ks,M),如果第三者將他或她偽裝成了解密鑰Ks的人,通過使用一個錯誤的密鑰Ks′計算D(Ks′,M),則由于E(Kp,D(Ks′,M))≠M,所以接收器能夠確定接收到的信息是非法的。甚至當D(Ks,M)被篡改時,也會由于E(Kp,D(Ks′,M))≠M,使接收器能夠確定接收到的信息是非法的。
作為能夠?qū)崿F(xiàn)保密通信和鑒別通信的典型實施例,RSA密碼學,R密碼學,W密碼學等都是熟知的。
現(xiàn)代廣泛使用的RSA密碼學的加密和解密提供如下加密加密密鑰(e,n)加密變換C=Me(mod n)解密解密密鑰(d,n)解密變換M=Cd(mod n)n=p·q(這里p和q是兩個完全不同的素數(shù))如上所述,由于RSA密碼學在加密和解密中都要進行冪和余數(shù)的數(shù)學運算,所以與公共密碼術例如DES等進行比較,需要巨大的數(shù)學運算量,也就不容易達到高速處理。
如上所述,為了發(fā)現(xiàn)在前的數(shù)據(jù)是否被篡改和/或偽造,除了數(shù)字數(shù)據(jù)之外還需要一數(shù)字簽名。一般的,數(shù)字簽名被附加到數(shù)字數(shù)據(jù)的首部而發(fā)送。然而,添加的數(shù)字簽名很容易隨著數(shù)字數(shù)據(jù)的格式變換而被消除。如果數(shù)字簽名被消除了,數(shù)字數(shù)據(jù)將不能被鑒別。
日本專利公開號10-164549所披露的方法能解決上述問題。在日本專利10-164549中,數(shù)字信息被分成兩個字段,數(shù)字簽名產(chǎn)生于分割的第一字段,并且所述數(shù)字簽名被嵌入分割的第二字段作為數(shù)字水印,從而產(chǎn)生簽名的數(shù)字信息。另一方面,鑒別裝置將標記信息分割為第一、第二字段,從第一字段產(chǎn)生一第一數(shù)字簽名,并且從第二字段提取出作為數(shù)字簽名而被嵌入的一個第二標記。如果第一、第二數(shù)字簽名相匹配,可以認定數(shù)字信息沒有被篡改和偽造。
如上所述,為了鑒別數(shù)字數(shù)據(jù),重要的一點是不能拋開數(shù)字信息而單獨設定鑒別信息。在日本專利10-164549公開的方法中,由于為了鑒別原始圖像簽名信息是作為數(shù)字水印而被嵌入的,而且數(shù)字水印不能消除,所以不能獲得原始圖像。一些應用和用戶可能將嵌入數(shù)字水印本身作為“篡改”。
發(fā)明內(nèi)容
本發(fā)明是在考慮了前面提到的問題而提出的,本發(fā)明的目的是提供一種信息處理裝置和控制方法、計算機程序和存儲介質(zhì),能夠在不脫離數(shù)字信息而設置鑒別信息的同時確定數(shù)字信息是否被篡改,并且只要數(shù)字信息不被篡改,就可恢復出原始的數(shù)字信息。
為了實現(xiàn)上述目的,例如, 按照本發(fā)明,能夠附加鑒別信息的信息處理裝置包括下列結構。
也就是在數(shù)字信息處理裝置中嵌入鑒別信息的信息處理裝置包括在將要嵌入鑒別信息的數(shù)字信息的基礎上產(chǎn)生鑒別信息的裝置;和將所產(chǎn)生的鑒別信息嵌入到可恢復的數(shù)字信息的數(shù)字標記裝置。
另外,能夠鑒別信息的信息處理裝置包括如下結構。
即,能夠鑒別其中嵌入有作為數(shù)字水印的鑒別信息的數(shù)字信息的信息處理裝置包括從數(shù)字信息中提取出所嵌入的作為數(shù)字水印的鑒別信息作為第一鑒別信息的提取裝置;數(shù)字水印消除裝置用于消除從數(shù)字信息提取的作為數(shù)字水印的鑒別信息并暫時恢復原始數(shù)字信息;依據(jù)由數(shù)字水印裝置消除數(shù)字水印、從而暫時恢復出的原始數(shù)字信息產(chǎn)生第二鑒別信息的發(fā)生裝置;和第一鑒別信息和第二鑒別信息比較單元。
通過參考附圖所作的以下說明將使本發(fā)明的其它特征和有點更加明顯,在所有附圖中相同的參考標記表示相同或相似的部件。
圖1為應用于本發(fā)明實施例中的計算機方框圖;圖2為本發(fā)明實施例的簽名裝置的方框圖;圖3為本發(fā)明實施例中鑒別裝置的方框圖;圖4為圖2所示數(shù)字水印裝置的詳細方框圖;圖5為拼湊方法的原理解釋圖;圖6表示關于提取數(shù)字水印的可靠性間隔d的頻率分布狀態(tài)圖;
圖7為本發(fā)明實施例中數(shù)字水印單元的方框圖;圖8為應用于本發(fā)明另一個實施例中的信息處理裝置的方框圖;圖9為本發(fā)明另一個實施例中的數(shù)字水印形成裝置的方框圖;圖10為本發(fā)明另一個實施例中的圖像恢復裝置的方框圖;圖11示出了本發(fā)明另一實施例中的代碼序列w的例子;圖12為本發(fā)明又一實施例中的數(shù)字水印形成裝置的方框圖;圖13為本發(fā)明又一實施例中的圖像恢復裝置的方框圖;圖14示出了嵌入數(shù)字水印的過程的要點;圖15示出了恢復原始數(shù)據(jù)的過程的要點;圖16示出了嵌入數(shù)字水印時發(fā)生溢出的例子;圖17示出了溢出發(fā)生時原始數(shù)據(jù)不能恢復的例子;圖18為在本發(fā)明的另一個實施例中數(shù)字水印形成順序的流程圖;圖19為本發(fā)明另一個實施例中原始數(shù)據(jù)恢復順序的流程圖;圖20示出了本發(fā)明又一實施例中的代碼序列w的例子;圖21示出了本發(fā)明又一實施例中用于解釋糾錯過程的像素分布狀態(tài)的例子;具體實施例下面將結合相關的附圖來描述本發(fā)明的最佳實施例。
下面將說明用于把鑒別信息嵌入信息的簽名裝置和用于鑒別所述信息的鑒別裝置。
<簽名裝置>
下面將結合圖2說明本實施例的簽名裝置。
參照圖2,代號201代表圖像輸入單元;202代表散列值計算單元;203代表加密單元;204代表數(shù)字水印單元;205代表圖像輸出單元。
圖像信號以光柵掃描順序輸入到圖像輸入單元201。任何圖像掃描儀、存儲圖像的存儲介質(zhì)、借助于通信接收來自于遠程碟片的圖像的通信裝置等都可作為圖像輸入單元201的輸入源。下面介紹表示單色多值圖像的圖像信號。如果圖像信號表示含有許多色彩分量的彩色圖像等的圖像,可將R、G、B色彩分量中的每一個或者亮度和色度分量中的一個當作單色分量來處理。
輸入圖像信號I被輸入到散列值計算單元202和數(shù)字水印形成單元204。
散列值計算單元202計算并輸出一輸入圖像信號I的散列值H。使用散列函數(shù)來計算散列值H。本發(fā)明并未限定為特殊散列函數(shù),并且使用了例如MD-2、MD-4、MD-5、SHA-1、PIPEMD-128、RIPEMD-160等類似的、對公眾也是熟知的不同算法。算出的散列值H被輸入到加密單元203。
加密單元203利用私人密鑰S給輸入的散列值H加密并輸出加密的散列值。并未將本發(fā)明限制為用來加密的任何特殊的加密算法,可以使用RSA密碼術等作為公共密碼術。經(jīng)過加密的散列值Es(H)輸入到數(shù)字水印形成單元204。
數(shù)字水印形成單元204將加密的散列值Es(H)作為可逆的數(shù)字水印嵌入到輸入的圖像信號I,并且輸出該圖像信號(可逆的數(shù)字水印將在后面介紹)。將嵌有數(shù)字水印的圖像信號wI輸出到圖像輸出單元205。輸出的對象沒有特殊限制并且該圖像信號可以輸出到存儲介質(zhì)、通信線等上面。
<鑒別裝置>
下面將通過圖3介紹本實施例的鑒別裝置。
參見圖3,標號301表示圖像輸入單元;302表示數(shù)字水印提取單元;303表示解密單元;304表示散列值運算單元;305表示比較單元。
一圖像輸入信號wI′以光柵掃描的順序被輸入到圖像輸入單元301。該輸入圖像wI′又被輸出到數(shù)字水印提取單元302。注意wI′最好能與圖2所示的特征單元的輸出wI相等,但是由于該輸入圖像信號可能被篡改或偽造,所以它用wI′表示。
數(shù)字水印提取單元302從輸入的圖像信號wI′提取被嵌入的數(shù)字水印E′s(H),并消除可逆的數(shù)字水印。然后輸出被提取的數(shù)字水印E′s(H)和消除了數(shù)字水印的圖像信號I′。
如果wI′等于wI,將提取Es(H)作為數(shù)字水印(即Es(H)=E′s(H))。此外,在這種情況下,可逆的數(shù)字水印將被完全消除,并輸出圖像數(shù)據(jù)I(即I=I′)。另外,如果wI′與wI不同,則不同于Es(H)的數(shù)據(jù)將被作為數(shù)字水印輸出(即Es(H)≠E′s(H))。此外,在這種情況下,并沒有完全消除可逆的數(shù)字水印(即I≠I′)。
而且,如果數(shù)字水印被嵌入到輸入的圖像,數(shù)字水印提取單元302還有檢測的功能。利用這項功能,如果其中沒有作為數(shù)字信號而嵌入的數(shù)字簽名的圖像數(shù)據(jù)輸出為wI′,則數(shù)字水印提取單元輸出“無信息”,并且在稍后不執(zhí)行鑒別處理。在這種情況下,將利用例如顯示器輸出一條信息“圖像數(shù)據(jù)不能被鑒別”。
提取的數(shù)字水印E′s(H)被輸出到解密單元303,消除了數(shù)字水印的圖像數(shù)據(jù)I′被輸出到散列值運算單元304。
解密單元303對輸入的數(shù)據(jù)E′s(H)解密并將其輸出。關于解密,將使用與在簽名裝置中使用的私人密鑰s相對應的公共密鑰p。被解密的數(shù)據(jù)H被輸入到比較單元305。
散列值運算單元304將對輸入的圖像數(shù)據(jù)I′的散列值H′進行計算并將其輸出。作為用來計算散列值的散列函數(shù),該散列函數(shù)與在簽名裝置中使用的散列函數(shù)等同。計算得出的散列值H′將被輸出到比較單元305。
比較單元305對輸入的散列值H和H′進行比較以檢驗wI′是否被篡改或偽造了。如果H和H′彼此相等,則wI=wI′,也就是能夠確定輸入的數(shù)據(jù)沒有被篡改或偽造。如果H和H′彼此不等,則wI≠wI′,也就是說能夠確定輸入的數(shù)據(jù)被篡改或偽造了。在這種情況下,將在顯示設備上顯示表明這一點的信息。
<數(shù)字水印形成單元>
下面將介紹本實施例的數(shù)字水印形成單元204的細節(jié)。簡要的介紹一個過程,數(shù)字水印裝置嵌入信息以便在嵌入數(shù)字水印之前完全恢復圖像數(shù)據(jù)。
圖4示出了數(shù)字水印形成單元204的內(nèi)部結構。下面將參照圖4介紹處理流程。
圖像數(shù)據(jù)I被輸入到數(shù)字水印形成單元204,并且一嵌入位置確定單元401確定將被嵌入到圖像數(shù)據(jù)I的數(shù)字水印的嵌入位置。該圖像數(shù)據(jù)I被輸入到附加信息嵌入單元402,并且依照附加的信息Es(H)在由嵌入位置確定單元401確定的位置嵌入數(shù)字水印。
為了實現(xiàn)上述目的,嵌入位置確定單元401將輸入的圖像數(shù)據(jù)I和指示圖像位置的數(shù)據(jù)(指定了每一個區(qū)域的坐標和大小)輸出到附加信息嵌入單元402,其中所述的圖像位置是將要嵌入附加信息Es(H)的一個位置。
除了圖像信息I之外,附加信息嵌入單元402還接收附加信息Es(H)(若干位的信息)。通過使用數(shù)字水印技術,附加的信息Es(H)將在所確定的圖像數(shù)據(jù)I的嵌入位置被嵌入。隨后將介紹利用數(shù)字水印技術嵌入附加信息Es(H)。附加信息嵌入單元402輸出嵌入了附加信息Es(H)并且經(jīng)數(shù)字水印處理的數(shù)據(jù)wI。
在本實施例中,為了簡化的目的,輸入到數(shù)字水印裝置的數(shù)據(jù)為每像素(256個灰度級)具有8比特灰度精度的灰度圖像數(shù)據(jù)。然而,輸入圖像數(shù)據(jù)可能為彩色圖像數(shù)據(jù)。當輸入彩色圖像時,利用彩色圖像的一個信道的像素值或彩色圖像的亮度值,則可以執(zhí)行一個相似的嵌入處理。
當輸入音頻信號時,圖像的2維位置信息將被作為時間的1維信息,可以使用相同的執(zhí)行方案。當輸入移動圖像數(shù)據(jù)時,由于它可被看作是沿時間軸方向的多個二維圖像,所以能用相同的方案處理每一個二維圖像,基本應用了本發(fā)明。因此,本發(fā)明的范圍也包括數(shù)字水印嵌入到彩色圖像、音頻和活動圖像的情況。
下面將介紹本實施例中數(shù)字水印的嵌入和分離(提取)的基本原理。
<拼湊方法>
本實施例使用稱為拼湊方法的原理來嵌入附加的信息Inf(與上述實施例中的Es(H)一致)。拼湊方法在1997年2月24日出版的NikkeiElctronics,由Walter Bender、Daniel Gruhl、Norishige Morimoto和Anthony Lu等提出的“Data Hiding Technique that SupportsDigital Watermarking(Vol.1)”有所披露。首先將介紹拼湊方法的原理。
在拼湊方法中,通過在統(tǒng)計上偏離圖像,可以嵌入附加信息Es(H)。
下面將通過圖5來介紹拼湊原理。圖5中,A和B是從一原始圖像中選出的兩個子集。假定子集A是由許多子集ai501表示的子集組成的,而子集B是由許多子集bi502表示的子集組成的。
如果這兩個子集不互相重疊,那么通過本實施例的拼湊方法可以嵌入附加信息Inf。
假定子集A和B中的每一個都包含N個元素(A={a1,a2,...,aN},B={b1,b2,...,bN})。子集A和B中的元素ai和bi表示具有像素值的像素或一組這樣的像素。
下一個指數(shù)d定義為d=1/N·∑(ai-bi),此處∑為i=1至N的和。
這就表示出了兩組像素值之間不同的期望值。
當從一般自然的圖像中適當選擇子集A和B并且定義指數(shù)d,如果N的值足夠大,我們將得到d≈0在下文中d將被作為可靠性間隔。
另一方面,作為組成附加信息Es(H)的各個位嵌入操作,例如,當嵌入位信息“1”時,將產(chǎn)生這樣的操作a′i=ai+cb′i=bi-c這樣的操作將在子集A的所有元素的像素值加上“c”,而對子集B的所有元素的像素值都減去“c”。在本實施例的下文中“c”將被作為“嵌入深度”。
象上面的情況,當從一圖像中選擇了嵌入附加信息Es(H)的子集A和B,指數(shù)d為d=1/N·∑(ai-bi)
=1/N·∑{(ai+c)-(bi-c)}=1/N·∑{(ai-bi)+2c)}≈2c(∑為i=1至N的和)也就是說,d呈現(xiàn)為這樣一個值,它與0相差一給定間隔。
為了嵌入其它的位信息(位信息“0”),將執(zhí)行以下操作a′i=ai-cb′i=bi+c那么可靠性間隔d為d=1/N·∑(ai-bi)=1/N·∑{(ai-c)-(bi+c)}=1/N·∑{(ai-bi)-2c)}≈-2c也就是間隔d假定為這樣一個值,它在負方向上與0相差一個給定的距離。
當給定了某一圖像,通過計算圖像的可靠性距離d,就能夠確定圖像中是否嵌入了附加信息。
即如果可靠性距離d≈0,則沒有嵌入附加信息Es(H);如果可靠性距離d為一預先確定的正值或為比0大得多的值,則嵌入位信息“1”;如果可靠性距離d為一預先確定的負值或為比0小得多的值,則嵌入位信息“0”。
本實施例中,通過利用先前提到的拼湊方法原理,可以在單一的圖像中嵌入大量位信息片段。
本實施例中,在單一圖像的不同區(qū)域,不但可以采用子集A和B的組合,而且可以采用許多子集A′和B′、A ″和B ″、...的組合來嵌入包含有許多位的附加信息Es(H)。注意子集A和B、A′和B′、A″和B″...的分布不能重疊。
下面將檢驗從其中嵌入了大量位信息的數(shù)據(jù)中提取位信息的方法。
圖6中標號601表示從沒有嵌入數(shù)字水印的數(shù)據(jù)中計算得出的可靠性距離d的分布狀態(tài)。分布曲線601示出了最有可能出現(xiàn)的可靠性距離d的值,因為對應該可靠性距離d的出現(xiàn)頻率的分布較大。
分布曲線602和603分別為由嵌入了位信息“1”和位信息“0”的數(shù)據(jù)計算得到的可靠性分布距離d。
同樣地,每個分布曲線602和603分別示出了最有可能出現(xiàn)的可靠性距離d的值,因為對應該可靠性距離d的出現(xiàn)頻率的分布較大。注意一個位信息對應一個可靠性距離d。
圖6中的分布曲線601、602、603都為正態(tài)分布狀態(tài)。下面將利用中心極限定理來介紹該正態(tài)分布曲線的組成原因。
<中心極限定理>
該定理揭示了當從具有均值mc和標準誤差δc的全體域(不需要為正態(tài)分布)中隨機抽取大小為nc的樣本時,具有樣本均值sc的分布近似于具有增大的nc的正態(tài)分布N(mc,sc/√nc)2)。
一般地,全體域的標準誤差δc是未知的,然而,如果樣本數(shù)nc足夠大,且全體域中的數(shù)Nc足以比樣本數(shù)nc更大,那么在常規(guī)的做法中,可以使用樣本的標準誤差sc來代替δc。
本實施例中,每個子集A和B都包括N個元素(A={a1,a2,...,aN},B={b1,b2,...,bN}),且這些集合為具有子集A和B元素的像素值,如圖5所示。如果設定N足夠大且像素值ai和bi沒有關聯(lián),則可靠性間隔d(∑(ai-bI)/N)的期望值變?yōu)?。正如從中心極限定理能夠得知該可靠性間距d構成了一正態(tài)的分布。
因此當從可靠性間距d確定嵌入的位信息時,將在0到可靠性間距2c之間引入一個適當?shù)拈T限值,并且當可靠性間距的絕對值比門限值大時,則確定信息已被嵌入,則在統(tǒng)計上完成了信息的可靠提取。
例如,令δ為正態(tài)分布601的標準誤差。那么,如果沒有嵌入附加信息,則在圖6陰影部分所示出的-1.96δ到+1.96δ(95%的可靠性范圍)的范圍內(nèi),可靠性間距有95%出現(xiàn)的可能性。
因此,在門限值范圍以外出現(xiàn)可靠性間距d的概率隨著門限值的增加而降低,則能夠提取高可靠性信息。
另外,如果設定一個大的嵌入深度“c”,則正態(tài)分布602和603將從分布狀態(tài)601分離開,因而能設置一個大的臨界值。
如果子集A和B中的元素數(shù)N是大的,則正態(tài)分布601、602和603的標準誤差δ變小,并且如果嵌入深度c保持不變,則能確定更高的可靠性。
已經(jīng)介紹了拼湊方法的基本思想。
本實施例中,數(shù)字水印形成單元204和數(shù)字水印提取單元30就是使用前述的拼湊方法。
下面將介紹常規(guī)的述字水印嵌入、提取和消除方法。
<嵌入位置確定單元>
由于拼湊方法嵌入包括許多位的附加信息,每個位信息都需要子集A和B。因此,為了嵌入多條位信息,必須確定A和B、A′和B′、A″和B″、...的位置。
圖4的嵌入位置確定單元401確定需要嵌入若干條位信息的嵌入位置。作為一個簡單的嵌入位置確定方法,可能使用利用隨機數(shù)來確定位置的方法。許多比特以良好的穩(wěn)定性嵌入整個圖像,以便相應的子集元素幾乎是均勻分布的,而且子集之間不互相重疊。
例如,簡要介紹使用與圖像具有同樣大小的白噪聲掩碼的方法。
白噪聲掩碼是由二維分布的掩碼像素組成的,每個掩碼都有一個在0至255范圍內(nèi)的系數(shù)。在0至255之間的白噪聲掩碼的每個系數(shù)都被賦予了差不多相同數(shù)目的掩碼像素。
例如,當原始圖像具有2000×2000像素(=4000000個像素)時,由于一個白噪聲掩碼配置了與原始圖像像素數(shù)相同的掩碼像素數(shù),則有15625(=4000000/256)個掩碼像素具有“0”值。這樣的掩碼像素是隨機分布的,以形成白噪聲掩碼。
因此,一旦嵌入1比特附加信息,則當將具有奇數(shù)灰度級的掩碼像素指定給子集A,而將具有偶數(shù)灰度級的掩碼像素指定給子集B時,則子集A和B具有相同的像素數(shù)且互相不重疊,而附加信息能以良好的穩(wěn)定性嵌入整個圖像。
當嵌入許多(M)條位信息時,像素數(shù)被均勻的分配給每個位信息(1至M)(例如,將設定的白噪聲掩碼的范圍除以2M,余數(shù)均勻的分配給子集A或B),則嵌入多條位信息。
如果每個像素都用8比特表示,則由于灰度級數(shù)為256,因而能嵌入的最大的比特數(shù)M為128。該最大值僅滿足一個散列值(64或128比特),但如果加入另外的信息(如版權保護信息),該值將不充分。然而,當一幅圖像被分割為四部分,且為相關的分割塊配置白噪聲掩碼,則能嵌入128×4=512比特。如果分割塊數(shù)大于4,嵌入的比特數(shù)也會增加。然而,如果分割塊數(shù)增加,則由于正態(tài)分布很難形成,所以嵌入信息的提取可能會經(jīng)常失敗。因此,確定分割塊數(shù)應與原始圖像的大小相應。
因此嵌入位置確定裝置僅需產(chǎn)生事先準備的掩碼模式。注意在嵌入中使用的、相同的掩碼是在提取和分離數(shù)字水印的一側(cè)準備并使用的。
<附加信息嵌入單元>
附加信息嵌入單元402接收圖像數(shù)據(jù)I、附加信息ES(H),以及如上所述的由嵌入位置確定單元401確定且與相應的比特一致的嵌入位置。
按照組成輸入的附加信息ES(H)的位信息,計算與每個二進制數(shù)相對應的子集A和B的像素的像素值。
如在拼湊方法部分中介紹的,如果位信息為“1”。則從子集A的像素的像素值加上“C”,而從子集B的像素的像素值減去“C ”。如果位信息為0,則從子集A的像素的像素值減去“C” ,而把子集B的像素的像素值加上“C”。通過前述的處理,附加信息嵌入單元402嵌入附加信息ES(H)。
通過前述方法可以嵌入附加信息。然而,如果執(zhí)行上面的方法,同時滿足c>ai或ai>255-c和c>bi或bi>255-c的嵌入的像素的像素值ai′和bi′變?yōu)閍i′(bi′)<0或ai′(bi′)>255。因此數(shù)字水印消除單元(后面將介紹)在這些像素位置不能恢復原始圖像的像素(即ai和bi)。
本實施例用于實現(xiàn)滿足這樣的條件的像素的嵌入處理c≤ai≤255-c和c≤bi≤255-c,而對落在該范圍之外的像素值不執(zhí)行任何嵌入。所以,在上面的敘述中,當嵌入M比特時,“白噪聲掩碼呈現(xiàn)的范圍被劃分成2M份”,但必須提前排除那些范圍。注意不進行嵌入處理的像素的位置信息必須作為溢出位置信息輸出,并輸入到數(shù)字水印提取單元和數(shù)字水印消除單元(后面將介紹)。
<數(shù)字水印提取裝置>
下面將介紹本實施例中的數(shù)字水印提取裝置302。數(shù)字水印提取裝置302具有如圖7所示的結構。
如圖7所示,數(shù)字水印提取裝置302包括嵌入位置確定單元701、附加信息提取單元702、統(tǒng)計測試單元703、比較單元704和附加信息消除單元705。
數(shù)字水印提取裝置接收數(shù)字水印嵌入數(shù)據(jù)wI′。嵌入位置確定單元701產(chǎn)生在該位置處嵌入數(shù)字水印(與在數(shù)字水印形成裝置204中使用的白噪聲掩碼相同的模式)的位置信息。在輸入的將要從其嵌入數(shù)字水印的位置信息的基礎上,對于數(shù)字水印嵌入數(shù)據(jù),附加信息提取單元702執(zhí)行一預定的過程,則計算與嵌入到圖像數(shù)據(jù)wI′內(nèi)的附加信息E′S(H)相對應的可靠性間距d。統(tǒng)計測試單元703統(tǒng)計測試與由附加信息提取單元702計算的附加信息E′S(H)相對應的數(shù)據(jù)的精度。如果確定附加信息E′S(H)足夠精確,則比較單元704提取附加信息ES(H)。如果附加信息不準確,則輸出“無信息”。如果嵌入了信息,附加信息消除單元705利用輸入的圖像數(shù)據(jù)wI′、來自于嵌入位置確定單元701的嵌入位置信息和溢出位置信息來消除數(shù)字水印。
下面將詳細介紹用于從嵌入有數(shù)字水印的圖像數(shù)據(jù)wI′來提取附加信息E′S(H)的數(shù)字水印提取單元的操作。
<嵌入位置確定單元>
嵌入位置確定單元701確定從其提取出附加信息E′S(H)的圖像數(shù)據(jù)wI′的區(qū)域。嵌入位置確定單元701執(zhí)行與嵌入位置確定單元401相同的操作。由此單元401和801確定相同的嵌入位置。確定的嵌入位置信息被輸出到附加信息提取單元702和附加信息消除單元705。
<附加信息提取單元>
附加信息提取單元702計算與每個比特相對應的可靠性間距d,該比特來自于嵌入位置確定單元701確定的嵌入位置。在這種情況下,由于像素中沒有嵌入附加信息,單元702不使用在計算可靠性距離d中由輸入的溢出位置信息表示的像素。
<統(tǒng)計測試單元>
統(tǒng)計測試單元703統(tǒng)計的分析與從附加信息提取單元702輸出的每個比特相對應的可靠性距離d的精度。如果嵌入了多條位信息,將獲得多個可靠性間距d。如果嵌入附加信息E′S(H),則可靠性間距d出現(xiàn)在與圖6內(nèi)中心O相距2c的一個位置上。
這時,隨著增大的嵌入深度c,可靠性距離d出現(xiàn)在離圖6中心O更遠的位置上。因此,如果門限值限定在位置c,而且獲得比c大的可靠性間距d,則確定嵌入的位信息為“1”;如果獲得可靠性距離d比-c小,則確定嵌入的位信息為“0”。
因此,,隨著嵌入深度“c”的增加,一旦嵌入附加信息,正態(tài)分布601、602和603之間的間隔也隨之增加,并確保提取信息的更高可靠性。同時,隨著子集A和B的元素數(shù)N的增大,正態(tài)分布601、602和603的標準誤差隨之下降。因此,通過增加嵌入深度“c”以及子集A和B的元素的數(shù)目N,即使在門限值為“c”時,也能得到高可靠性的提取信息。
注意當沒有嵌入信息時,可靠性間距d(更可能的)出現(xiàn)在從-c到c的一個窄范圍內(nèi)而且通過利用該因素可以確定這樣的情況。
尤其是,當與若干比特相應的給定數(shù)目的或更多數(shù)目的可靠性距離d出現(xiàn)在范圍-c到c之間時,本實施例的統(tǒng)計測試單元703確定沒有嵌入信息,并顯示一條消息來表示這樣的結果。
<比較單元>
圖7中的比較單元704被提供有與經(jīng)過附加信息提取單元702和統(tǒng)計測試單元703輸出的各條位信息相對應的可靠性間距d的值。
由于與輸入到比較單元704的若干條位信息相對應的可靠性間距d是高度可靠的,那么僅僅依據(jù)與每個位信息相應的可靠性間距d的正負號來確定是“1”或“0”。
尤其是,如果給定的用于組成附加信息E′S(H)的位信息的可靠性間距d比“c”大,則確定出該位信息為“1”,如果可靠性間距d比“-c”小,則確定該位信息為“0”。
<附加信息消除單元>
下面介紹附加信息消除單元705執(zhí)行的操作。附加信息消除單元705接收附加信息E′S(H)的嵌入位置、圖像數(shù)據(jù)wI′和溢出位置信息,并輸出其中消除了附加信息的圖像數(shù)據(jù)I′。
在與數(shù)字水印形成單元中附加信息嵌入單元402嵌入的位置相同的位置上,在嵌入時通過改變嵌入深度“c”的符號將嵌入深度“c”加到與相應的比特相匹配的子集,以此來消除附加信息并恢復原始圖像。
尤其在組成附加信息E′S(H)的預定的位信息的嵌入位置,如果位信息為“1”,則執(zhí)行操作a′i=ai-cb′i=bi+c如果位信息為“0”,則執(zhí)行操作a′i=ai+cb ′i=bi-c則在嵌入前恢復像素值。在這種情況下,利用了輸入的溢出位置信息。因此,由于在溢出位置上的像素中沒有嵌入附加信息,該像素不用進行消除。
通過前面提到的運算,附加信息消除單元705從嵌入了數(shù)字水印的數(shù)據(jù) wI′中消除了數(shù)字水印并輸出其中的消除了數(shù)字水印的圖像數(shù)據(jù)I′。
在前述的實施例中介紹了使用數(shù)字簽名作為鑒別信息的方法。然而,本發(fā)明不局限于該特殊的方法,包括例如,使用MAC(消息鑒別碼)作為鑒別信息的方法。另外,除了數(shù)字簽名和MAC,還可能包括至少一個或更多的日期信息、位置信息、時間信息、裝置的獨特信息和簽名人的專有信息。
此外,在上面的實施例中,使用的附加信息可以轉(zhuǎn)換為糾錯碼。通過這種方式可以進一步改善提取的附加信息Inf的可靠性。
注意在嵌入信息的一端和鑒別嵌入的信息的一端可以通過軟件來實現(xiàn)裝置的大部分組合元件,即圖2和圖3中所示的相關處理裝置能由軟件來實現(xiàn)。
在這種情況下,裝置的結構可以是這樣一種通用的裝置普通個人電腦或類似裝置,例如,能使用圖1所示的結構。
圖1示出了應用于本實施例的圖像處理裝置的總體結構。參照圖1,主機101為例如廣泛使用的個人電腦。
在主機101內(nèi),通過總線107把下面將要介紹的相關部分連接起來以交換不同的數(shù)據(jù)。
參照圖1,標號103表示CPU,它能控制相關內(nèi)部單元的操作或執(zhí)行內(nèi)部存儲的程序。標號104表示一能存儲引導程序和BIOS的ROM。標號105表示一暫時存儲用于CPU執(zhí)行操作時的程序或?qū)⒁幚淼膱D像數(shù)據(jù)的RAM。標號106表示一硬盤(HD),它能預先存儲將要傳送到RAM或類似單元的程序和圖像數(shù)據(jù),并能保存處理過的圖像數(shù)據(jù)。當主機作為簽名裝置使用時,硬盤106存儲與圖2相應的、在操作時被調(diào)入RAM 105的程序。當主機作為鑒別裝置使用時,硬盤106存儲與圖3相應的、在操作時被裝入RAM 105的程序。
標號108表示一CD驅(qū)動裝置它能裝入存儲在作為一種外置的存儲介質(zhì)CD(CD-R)上的數(shù)據(jù),或者將數(shù)據(jù)寫在CD-R上。標號109表示一與CD驅(qū)動裝置108類似的且能從FD裝入數(shù)據(jù)或?qū)?shù)據(jù)寫入FD的FD驅(qū)動裝置。標號110表示一與CD驅(qū)動裝置108相似的且能從DVD裝入數(shù)據(jù)或?qū)?shù)據(jù)寫入DVD的DVD驅(qū)動裝置。注意當圖像編輯程序或打印機驅(qū)動程序存儲在CD、FD、DVD或類似物上時,這樣的程序在需要時被裝入HD 106并傳送到RAM 105。這些存儲介質(zhì)用來存儲原始圖像,并在存儲的圖像中嵌入特征信息,或者鑒別存儲在現(xiàn)有存儲介質(zhì)上的標識圖像。
標號113表示一連接到鍵盤111和鼠標112以接收從其輸入的指令的接口(I/F)。標號114表示一包括有圖像控制器和視頻存儲器(未示出)的顯示控制器,用以產(chǎn)生與顯示有關的控制,并通過把映射到視頻存儲器上的圖像輸出到顯示設備115來顯示圖像。標號115表示用于連接到互聯(lián)網(wǎng)的通訊接口(例如,調(diào)制解調(diào)器、以太網(wǎng)轉(zhuǎn)換器或類似裝置)。通過通信接口115能發(fā)送或接收附加有特征信息的信息。
注意用于輸入圖像數(shù)據(jù)的裝置不局限于前面提到的裝置,也可代之以掃描儀或類似物。
如上所述的,依據(jù)本實施例,數(shù)字信息和簽名信息以不可分割的狀態(tài)設置,而且簽名信息經(jīng)過類似的格式變換而被發(fā)送到鑒別裝置。
在上述實施例中,應用了拼湊方法。下面的敘述中將介紹本申請的其它例子。
如上所述,“數(shù)字水印”是公知的一種版權保護技術。數(shù)字水印是用于以一種看不見的形式在數(shù)字圖像數(shù)據(jù)、音頻數(shù)據(jù)、文本數(shù)據(jù)或類似的數(shù)據(jù)中嵌入版權所有者的名字或買主的ID,并且跟蹤利用非法拷貝進行的不預先通知所使用。由于數(shù)字可能遭受不同的破壞,則它必須具有抵抗破壞的強度。
另外提出了從圖中提取嵌入的作為數(shù)字水印的信息并且從該圖像完全恢復原始圖像的技術。
一種嵌入方法簡單的表示為I′j,i=Ij,i+cj×ai×xi(1)其中j為表示附加信息Inf的區(qū)域和比特位置的正數(shù),i為表示像素位置的正數(shù),I′j,I為嵌入了數(shù)字水印的圖像,如果Infj=“1”,則cj為常數(shù)+1,如果Infj=“0”,則cj為常數(shù)-1,ai為加權系數(shù),而xi為落在-1到+1之間的偽隨機數(shù)序列。xi稱為用來嵌入數(shù)字水印的載波信號。
在恢復操作時,首先提取嵌入的數(shù)字水印。利用提取的數(shù)字水印,通過下述等式恢復原始圖像I″j,i=I′j,i-cj×ai×xi(2)其中I″j,i為被恢復的圖像數(shù)據(jù),I′j,i為輸入到圖像恢復裝置的圖像數(shù)據(jù),如果由數(shù)字水印提取單元提取的附加信息Inf中的位元為“1”,則cj為常數(shù)+1,如果位元為“0”,則cj為常數(shù)-1,而ai和xi與等式(1)中表示的相同。
下面將詳細介紹等式(1)給出的數(shù)字水印的形成和等式(2)給出的原始圖像恢復。
圖14示出了由等式(1)給出的數(shù)字水印的形成的例子。各個矩陣表示圖像的各個部分。圖14示出了位信息為1即cj=+1的情況。
在恢復端,首先提取數(shù)字水印。下面簡要介紹該提取算法。檢測在輸入圖像I′的一個4×4的像素區(qū)域內(nèi)的像素值和一個偽隨機數(shù)序列xi(如上所述的,與在嵌入側(cè)產(chǎn)生的隨機數(shù)序列相同)之間的相關性。如果輸入的圖像I′和偽隨機數(shù)序列xi之間的相關性高,則確定嵌入的位元為“1”。另外,如果輸入的圖像I′和-xj(通過改變相應的偽隨機數(shù)序列的元素的符號而獲得的結果)之間的相關性高,則確定嵌入的位元為“0”。如果兩個相關性都低,則確定沒有嵌入數(shù)字水印信息。在圖14中解釋了4×4像素區(qū)。然而,如果一個位元僅僅嵌入到一個區(qū)域,則不能期望得到高精度,如圖14所示,對許多區(qū)域(例如n像素區(qū))采取這樣的方法來改善整體的精度。如果嵌入了m個位元,則重復m次向n像素區(qū)中嵌入一個位元這樣的過程。
在以這樣的方式提取數(shù)字水印之后,執(zhí)行消除該數(shù)字水印信息的過程。
圖15示出了消除圖14所示的例子中嵌入的數(shù)字水印的過程。在這種情況下,嵌入的位信息為“1”。如圖14和15所示,一般情況下可完全消除嵌入的數(shù)字水印并恢復原始圖像。
另外,圖16也示出了由等式(1)給出的數(shù)字水印形成的例子。在圖16所示的例子中,嵌入有數(shù)字水印的圖像數(shù)據(jù)包括溢出的像素(那些在數(shù)字水印的形成之后具有像素值“262”和“261”的像素)。在這種情況下,采取了圖16所示的舍入處理。數(shù)字水印可能從沒有進行任何舍入處理的圖像中被正確的提取,但是原始圖像不能從進行了舍入處理的部分完美的恢復。
本質(zhì)上,通過前面提到的方法,可從嵌入有數(shù)字水印的數(shù)字數(shù)據(jù)恢復在數(shù)字水印形成之前的數(shù)字數(shù)據(jù),但是如果由于數(shù)字水印的形成而發(fā)生了溢出,則不可能完全的恢復在數(shù)字水印形成之前的數(shù)字數(shù)據(jù),如上所述。注意溢出是這樣一種現(xiàn)象如果Ii,j由0到255之間的整數(shù)(8位)表示,在經(jīng)過等式(1)的處理后,I′i,j具有落在該范圍之外的值。小于0的值通常被舍入為0,大于255的值通常被舍入為255。如果執(zhí)行了這樣的舍入處理,則不可能通過數(shù)字水印消除裝置完全的消除數(shù)字水印。
由于這個原因,則很難在發(fā)生溢出的地方完全恢復原始圖像部分。
因此本實施例能夠?qū)崿F(xiàn)原始數(shù)字數(shù)據(jù)的完美再現(xiàn)。
下面將介紹本實施例中的數(shù)字水印形成裝置。本實施例中的數(shù)字水印形成裝置嵌入附加信息以便能夠完美的再現(xiàn)在數(shù)字水印形成之前的圖像數(shù)據(jù)。
圖9示出了數(shù)字水印形成裝置的內(nèi)部結構。下面將利用圖9來解釋數(shù)字水印形成裝置的處理流程圖。
圖像I被輸入到數(shù)字水印形成裝置。為了簡化,圖像I為具有每像素8比特精度的灰度多值圖像數(shù)據(jù)。然而,本發(fā)明不局限于這樣的特定數(shù)據(jù),而且可能輸入具有預定數(shù)目比特的灰度多值圖像數(shù)據(jù)。另外,當輸入一包括有許多元素的彩色圖像時,可以選擇一個或許多元素作為輸入的圖像或圖像組。該輸入的圖像I被輸入到溢出區(qū)域檢測單元2201和數(shù)字水印形成單元2203。
首先將介紹溢出區(qū)域檢測單元2201。該溢出區(qū)域檢測單元2201接收圖像I,并且如果由下一個數(shù)字水印形成單元2203進行的數(shù)字水印形成處理后發(fā)生了溢出,則檢測用于組成輸入的圖像I的所有像素,提取發(fā)生溢出的所有像素的位置。同時輸出這些像素的坐標信息。
在下面的敘述中,發(fā)生溢出的像素(0,1,或在某些情況下更多)的位置信息將用溢出信息R來指代。溢出信息R將被輸出到編碼單元2202和數(shù)字水印形成單元2203。后面將更詳細的介紹溢出區(qū)域檢測單元的操作。
下面將介紹編碼單元2202。編碼單元2202接收溢出信息R和附加信息Inf,并把該溢出信息R和附加信息Inf組合為一簡單的代碼序列,并輸出該組合的代碼序列w。例如,w具有圖11所示的格式。注意w用來將作為數(shù)字水印的代碼序列由數(shù)字水印提取單元2203嵌入到圖像I。由于這個原因,為了實現(xiàn)有效的數(shù)字水印形成處理,可以對w進行壓縮編碼。另外,如果附加信息Inf為私人信息,可加密w。為了即使在嵌入了作為數(shù)字水印的附加信息Inf和將把該附加信息作為不同破壞的結果而變更為另一種信息之后,也可以正確提取附加信息Inf,可把w轉(zhuǎn)換為糾錯碼。在任何情況下,從嵌入處理開始,都包含有由溢出信息R所指示的像素位置,并且利用了在那些位置的原始圖像的像素值。
下面將介紹數(shù)字水印形成單元2203。數(shù)字水印形成單元2203接收圖像數(shù)據(jù)I、溢出信息R和代碼序列w,把代碼序列w作為數(shù)字水印嵌入到圖像I,并輸出嵌入有數(shù)字水印的圖像I′。注意由溢出信息R所指示的像素不進行數(shù)字水印的形成處理。因此數(shù)字水印形成單元2203不會產(chǎn)生任何由于數(shù)字水印的形成而引起的溢出。后面將更詳細的介紹數(shù)字水印形成單元2203的操作。
如上所述的,將作為數(shù)字水印的附加信息嵌入到圖像I,則產(chǎn)生嵌入有數(shù)字水印的圖像I′。
下面將用圖10來介紹本實施例的圖像恢復裝置。圖像恢復裝置執(zhí)行這樣的過程,用以把嵌入有數(shù)字水印的圖像恢復為在數(shù)字水印形成之前的圖像數(shù)據(jù)。
圖像恢復裝置通過前面提到的方法接收嵌入有數(shù)字水印的圖像I′。該輸入的圖像I′被輸入到數(shù)字水印提取單元2301和數(shù)字水印消除單元2303。
首先解釋數(shù)字水印提取單元2301。數(shù)字水印提取單元2301接收嵌入有數(shù)字水印的圖像I′,提取嵌入的代碼序列w,并輸出該提取的代碼序列w。數(shù)字水印提取單元2301使用輸入的圖像I′的所有真實像素來提取數(shù)字水印。也就是說,對所有像素連同那些由溢出信息R(在由溢出信息R所述的位置沒有嵌入數(shù)字水印)表示的并排除在數(shù)字水印嵌入目標之外的像素進行數(shù)字水印提取。后面將更詳細介紹數(shù)字水印提取單元2301的操作。提取的代碼序列w輸出到譯碼單元2302。
下面將介紹譯碼單元2302。譯碼單元2302接收由單元2301提取的代碼序列w,把它分為組成代碼序列w的溢出信息R和附加信息Inf,并輸出該分割的溢出信息R和附加信息Inf。當編碼單元2202對w進行壓縮編碼,譯碼單元2302執(zhí)行解壓譯碼的處理。同時,當編碼單元2202對w進行加密后,譯碼單元2302執(zhí)行一個解壓譯碼的處理以對加密數(shù)據(jù)解密。另外,當編碼單元2202把w轉(zhuǎn)換為糾錯碼時,譯碼單元2302執(zhí)行糾錯譯碼處理以便糾正錯誤。溢出信息R和附加信息Inf被輸出到數(shù)字水印消除單元2303。
下面將介紹數(shù)字水印消除單元2303。數(shù)字水印消除單元2303接收嵌入有數(shù)字水印、溢出信息R和附加信息Inf的圖像I′,利用附加信息Inf在執(zhí)行數(shù)字水印之前從嵌有數(shù)字水印的圖像I′中恢復出原始圖像,并輸出該恢復的圖像I。在該恢復處理中,排除了由溢出信息R指示的像素。這是因為在通過前述的數(shù)字水印形成單元2203由溢出信息R指示的像素沒有嵌入數(shù)字水印。后面將更詳細的介紹數(shù)字水印消除單元2303的操作。
如上所述的,從嵌入有數(shù)字水印的圖像I′恢復出在形成數(shù)字水印之前的圖像I。
下面將舉例說明形成數(shù)字水印的細節(jié)。
下面將分析n比特信息Inf嵌入圖像I(即嵌入上述實施例的信息w)的情況。在這種情況下,圖像I被分割為n個不重疊的區(qū)域Ij(j=1,2,...,n)。那么數(shù)字水印的形成過程給定為I′j,i=Ij,i+cj×ai×xi(4)其中j為表示附加信息Inf的區(qū)域和位元位置的正數(shù),I為表示像素位置的正數(shù),I′j,i為嵌入有數(shù)字水印的圖像,如果Infj=“1 ”,則cj為常數(shù)+1,如果Infj=“0”,則cj為常數(shù)-1,ai為加權系數(shù),而xi為落在范圍-1到+1之間的一偽隨機數(shù)序列。xi稱為用于實現(xiàn)嵌入數(shù)字水印的載波信號。
令amax為加權系數(shù)呈現(xiàn)的最大值(正值),而xmax為xi所能達到的最大值(正值)。那么僅當滿足條件amax×xmax≤I≤255-amax×xmax(4)時執(zhí)行等式(3)給定的算術操作。
在這種情況下,由于aI和xi的相應元素值是同步出現(xiàn)的,并且在用于嵌入數(shù)字水印的裝置和提取數(shù)字水印的裝置中時已知的,等式(4)可進一步擴展為ai×xi≤I≤255-ai×xi(4′)如果不滿足等式(4)(或等式(4′))的條件,則把像素位置記錄為溢出信息R。在普通的自然圖像中,不滿足等式(4)給定的條件的像素數(shù)(也就是排除嵌入的像素數(shù))比整個圖像的像素總數(shù)小的多。這表明溢出信息R有相對小的信息量。因此,當通過編碼單元2202將溢出信息R作為代碼序列w進行組合而后通過數(shù)字水印形成單元2203將代碼序列w作為數(shù)字水印嵌入時,該信息大小也是忽略不記的。如上所述,由于在滿足等式(4)(或等式(4′))給定的條件下通過等式(1)嵌入數(shù)字水印,則能沒有溢出地執(zhí)行數(shù)字水印形成過程。
下面將舉例說明圖像恢復處理的細節(jié)。
代碼序列w作為數(shù)字水印而嵌入到輸入的圖像I′。為了使用等式(3)來提取數(shù)字水印,從用于嵌入數(shù)字水印的載體信號x和輸入到數(shù)字水印提取單元的圖像I′來計算PFA,而且無論是否嵌入了數(shù)字水印,也無論位元為“0”還是“1”,在計算結果的基礎上確定是否嵌入了數(shù)字水印。
注意PFA表示實際上沒有嵌入數(shù)字水印時,錯誤檢查數(shù)字水印的概率。為了計算該概率,使用了稱為統(tǒng)計測試的方法。統(tǒng)計測試對于本領域技術人員來說是公知技術。關于提取數(shù)字水印時使用統(tǒng)計測試的例子的更詳細的說明,參考1996年9月出版的I.C.I.I.P會刊,215至218頁I.Pitas著的“A method for signature casting on digitalimages”。利用統(tǒng)計測試,為每個位元進行計算以測試值qj。該測試值qj遵循零均值和誤差=1的標準正態(tài)分布,但當數(shù)字數(shù)據(jù)中嵌入有數(shù)字水印時,它遵循非零均值和誤差=1的正態(tài)分布。依據(jù)計算出的分析值qj和0之間的距離,確定出是否嵌入了數(shù)字水印。
另外,使用該計算得到的測試值qj則能計算作為數(shù)字水印而被嵌入的信息。當用等式(3)嵌入數(shù)字水印時,如果qj為正,則確定位元為“1”,或者如果qj為負,則位元為“0”。
如同用于提取數(shù)字水印的原理,參考現(xiàn)有技術的內(nèi)容。
前述的數(shù)字水印提取處理,用于實現(xiàn)所有的像素,也包括那些由于其不滿足等式(4)(或等式(4′))給定的條件通過數(shù)字水印形成單元2203而沒有嵌入數(shù)字水印的像素。由于不滿足等式(4)(或等式(4′))給定的條件的像素數(shù)比整個圖像的像素總數(shù)小,在提取數(shù)字水印時,即使包括上述的那些像素,也能正確的提取數(shù)字水印。
以這種方式提取的數(shù)字水印為由溢出信息R和附加信息Inf組成的代碼序列w,而且代碼序列w被分割為溢出信息R和附加信息Inf。之后,數(shù)字水印消除單元執(zhí)行If icR then I″=I′else I″=I′j,i-cj×ai×xi(5)其中I″i,j為恢復的圖像數(shù)據(jù),I′i,j為輸入到圖像恢復裝置的圖像數(shù)據(jù),如果由數(shù)字水印提取單元提取的附加信息Inf中的位元為1,則Cj為常數(shù)+1,或者如果該位元為“0”,則Cj為常數(shù)-1,而ai和xi與等式(3)中的意義相同。也就是,如果i不包括在溢出信息R中,則執(zhí)行與等式(3)相反的處理;如果i包括在溢出信息R中,則沒有執(zhí)行任何處理。
當通過前述的處理正確提取出代碼序列w時,該恢復的圖像I″與原始圖像I相同。
對于本領域技術人員來說,通過執(zhí)行前述處理的程序,容易實現(xiàn)用于嵌入數(shù)字水印的裝置和用于提取該嵌入的數(shù)字水印并恢復原始圖像的裝置。
圖8示出了該裝置的實用結構,以及與數(shù)字水印的嵌入相關聯(lián)的過程(程序),并且在介紹圖8之后,介紹恢復處理(程序)。
參照圖8,主機2101例如為一廣泛使用的個人電腦。
下面將要介紹的,在主機2101內(nèi)部的相應單元經(jīng)過總線2107連接起來以交換不同的數(shù)據(jù)。
參照圖8,標號2102代表一監(jiān)視器(顯示設備),而2103代表一CPU,它能控制相應的內(nèi)部單元的操作或執(zhí)行內(nèi)部存儲的程序。標號2104表示一存儲引導程序和BIOS的ROM。標號2105代表在由CPU執(zhí)行一處理時,暫時存儲程序或?qū)⒁幚淼膱D像數(shù)據(jù)的RAM。標號2106代表一硬盤,它能預先存儲將要傳遞到RAM或類似單元的程序(OS和圖像處理程序)和圖像數(shù)據(jù),并能保存處理過的圖像數(shù)據(jù)。
標號2108表示一CD驅(qū)動裝置它能裝入存儲在作為一種外置的存儲介質(zhì)CD(CD-R)上的數(shù)據(jù),或者將數(shù)據(jù)寫在CD-R上。標號2109表示一與CD驅(qū)動裝置2108類似的且能從FD裝入數(shù)據(jù)或?qū)?shù)據(jù)寫入FD的FD驅(qū)動裝置。標號2110表示一與CD驅(qū)動裝置2108相似的且能從DVD裝入數(shù)據(jù)或?qū)?shù)據(jù)寫入DVD的DVD驅(qū)動裝置。注意當CD、FD、DVD或類似物存儲圖像編輯程序或打印機驅(qū)動程序時,這樣的程序在需要時被裝入HD 106并傳送到RAM 105。標號2113代表一與鍵盤2111和鼠標2112相連的并能接收從其輸入的指令的接口(I/F)。標號2114代表用于連接至網(wǎng)絡例如互聯(lián)網(wǎng)的通信接口。
嵌入有數(shù)字水印的圖像的輸出終端可能是類似HD、FD的存儲介質(zhì),或者是網(wǎng)絡上的文件服務器。也同樣應用于接收嵌入有數(shù)字水印的信息的介質(zhì)。
當前述的裝置用做數(shù)字水印嵌入裝置時,則按照圖18的流程執(zhí)行。注意下面將要介紹的同該流程關聯(lián)的程序被安裝在HD 2106上。同時,將要嵌入的信息從例如鍵盤輸入?;蛘咭部墒褂妙A先存儲在HD2106、ROM 21047、RAM 2105或類似物上的信息。
在步驟S101中,輸出將要嵌入數(shù)字水印的圖象數(shù)據(jù)。輸入源沒有特別的限定,圖象數(shù)據(jù)可以是從網(wǎng)絡下載的,或是使用圖象掃描儀之類的裝置輸入的。在步驟S102中,檢測來自于輸入的圖象數(shù)據(jù)的所有溢出像素的位置,并且作為溢出信息R保存在RAM 2105中。預先輸入的附加信息Inf和溢出信息R被組合編碼(通過可逆編碼)來產(chǎn)生將要在應用時嵌入的信息w,且該信息暫時保存在RAM 2105中。
輸入的圖象數(shù)據(jù)中的每個像素被選做要研究的像素,并校驗所要研究的像素是否包含在溢出信息R中。如果該像素的位置不包括在溢出信息R中,則從信息w中提取1個比特,并且執(zhí)行與該比特狀態(tài)相一致的數(shù)字水印形成過程。
另外,如果所研究的像素位置包括在溢出信息R中,則沒有執(zhí)行任何數(shù)字水印形成過程。
這個過程重復于所有的位信息和像素(步驟S106和S107)。一旦完成用于所有的位信息和所有的像素的處理,則嵌入有數(shù)字水印的圖象數(shù)據(jù)被輸出到RAM 2105或HD 2106(步驟S108)。
如果信息w的所有比特的嵌入是在所有像素的嵌入完成之前完成的,可能嵌入假程序信息或信息w可能被重復嵌入。
其結果,嵌入之后的圖象信息I′產(chǎn)生在RAM上。該圖象I′作為文件最后被存儲在例如HD或類似介質(zhì)上。之后,該圖象I′可能經(jīng)過網(wǎng)絡傳遞或存儲在例如可拆裝的介質(zhì)上。
下面將用圖19來解釋用于提取數(shù)字水印和恢復原始圖象的過程。
嵌入有數(shù)字水印的圖象數(shù)據(jù)I′輸入到RAM 2105(步驟S1201)。如上所述的,輸入源并未受到特定限制。之后,在步驟S1202中,從嵌入圖像I′中提取出數(shù)字水印信息。數(shù)字水印的提取原理與上面介紹的相同。
在步驟S1203中,該提取的信息被譯碼以將信息w(=溢出信息R+嵌入的信息Inf)存儲在RAM 2105中,這樣就完成了提取處理。注意嵌入的信息Inf可能顯示在顯示屏上。
在步驟S1204中,圖象數(shù)據(jù)中的每個像素都被選做為要研究的像素,并校驗所研究的像素位置是否包含于溢出信息R中。
如果所研究的像素不包含在溢出信息R中,則在步驟S1205中執(zhí)行數(shù)字水印消除處理。
另外,如果所研究的像素包含在溢出信息R中,則跳過用于該像素的數(shù)字水印消除處理,并且利用所輸入的圖象數(shù)據(jù)的像素值。
所執(zhí)行的這種處理用于所有的像素(步驟S1206)。一旦完成用于所有像素的處理,則通過消除數(shù)字水印,重現(xiàn)原始圖象。在需要時,該結果(原始圖象數(shù)據(jù))被輸出到RAM 2105、HD 2106或類似的裝置,并且將之顯示。
在上面的實施例中,溢出像素數(shù)比整個圖象的像素總數(shù)相對小的多。即,溢出信息R的信息容量相對較小,并且隨數(shù)字水印一起相對穩(wěn)定的嵌入信息R。例如,這種情況適用于類似照片之類的自然圖象。
另外,隨圖象數(shù)據(jù)的類型,溢出信息R可以有大信息容量。例如,當數(shù)字水印嵌入亮度值時,當圖象的整個亮度或高或低時,溢出信息R變大。
當溢出信息R的容量變得很大時,包含溢出信息R的代碼序列W的信息容量也變得很大,并且該代碼序列w不能作為數(shù)字水印被嵌入。因此,溢出信息R的信息容量最好減至最小。下面將介紹用于減少溢出信息R的容量的過程的例子。
圖12示出了數(shù)字水印形成裝置的內(nèi)部結構。與圖9所示裝置的不同之處在于增加了校正單元2501和用于處理信息的編碼單元2503。由于其它操作同圖9所示的相同,由此將其省去。
圖象數(shù)據(jù)I被輸入到校正單元2501,該單元執(zhí)行一校正過程以減少溢出信息R的信息容量,并輸出校正后的圖象數(shù)據(jù)I和表示執(zhí)行校正類型的校正信息C。
校正的過程是用于減少溢出信息R的信息容量的過程。例如,當整個圖象的亮度為高時,則執(zhí)行從所有的像素值減去一給定的量(d)的過程。在這種情況下,表示“從整個圖象的像素值中減去給定的量(d)”的信息作為校正信息C被輸出。
另外,除了溢出信息R和附加信息Inf之外,編碼單元2503還對校正信息C編碼。如圖20所示,編碼后的代碼序列w包括校正信息C、溢出信息R和附加信息Inf。
通過前述的過程嵌入數(shù)字水印。下面將介紹圖象恢復裝置。
圖13示出了本實施例中的圖象恢復裝置的內(nèi)部結構。同圖10所示裝置的不同之處在于增加了反向校正單元2604和處理存儲信息的譯碼單元2602。由于其它操作同圖13和10中的相同,則將其省略。
譯碼單元2602接收由數(shù)字水印提取單元2601提取的代碼序列w,并對該輸入的序列w進行譯碼以獲取附加信息Inf、溢出信息R和校正信息C,并將它們輸出。
反向校正單元2604接收通過數(shù)字水印消除單元從中將數(shù)字水印消除的圖象數(shù)據(jù)I和由譯碼單元2602對其進行譯碼的校正信息C,并且該單元執(zhí)行同校正單元2503執(zhí)行的過程相反的過程,并輸出校正后的圖象數(shù)據(jù)I。例如,如果表示“從整個圖象的像素值減去給定的量(d)”的信息作為校正信息被輸入,則校正單元2604執(zhí)行這樣的處理將一給定量(d)加到整個圖象的像素值。
通過上面的過程,能從輸入到圖象恢復裝置的圖象數(shù)據(jù)I′完美的再現(xiàn)數(shù)字水印形成之前的圖象數(shù)據(jù)I。
下面將舉例介紹校正信息C的確定方法。
檢測將嵌入數(shù)字水印的圖象的亮度分布。例如,如果亮度值的出現(xiàn)率比在低亮度區(qū)的大,則產(chǎn)生校正以變換發(fā)光率至低亮度區(qū)。相反地,如果低度值的出現(xiàn)率比在高亮度區(qū)的大,則產(chǎn)生校正以變換發(fā)光率至高亮度區(qū)。
在一些情況下,可能進行下述處理。為了容易理解,下面將分析使用圖象掃描儀(每像素8比特)來讀取印有文本的紙張且該讀取的圖象作為圖象I而被使用的情況。
一般的,如圖21所示,當讀取印有文本的文件(二元圖象)且用亮度值來表示相應的像素時,像素的分布集中在最高和最低亮度值部分,且在它們之間幾乎沒有像素。
在這種情況下,如果所有的像素值加上或減去一給定的值,則在高或低亮度側(cè)發(fā)生溢出。因此,執(zhí)行以下處理。
由于低亮度范圍分布在亮度值0至a之間,則找出與0出現(xiàn)率相一致且滿足等式(4)(或等式(4′))的中間亮度值,且用找出的亮度值來代替低亮度值。例如,如果找出50到50+a之間的亮度值,則0至a的亮度值轉(zhuǎn)換為50至50+a之間的值(0轉(zhuǎn)換為50,1轉(zhuǎn)換為51,...)。對于高亮度范圍也進行了相似的處理。即高亮度范圍變換為較低的亮度范圍。
作為上述過程的結果,尤其在類似于文本的二元圖象的情況下,如果校正信息C表明亮度值0至a和亮度區(qū)b至255之間的轉(zhuǎn)換值,則能完美的恢復原始圖象。在上面的敘述中,圖象用亮度分量表示,然而,本發(fā)明不局限于此,圖象也可用其它類似色度的分量表示。
如上所述的,按照上面的實施例,當溢出像素(數(shù)字數(shù)據(jù)的組成元素)沒進行嵌入處理且作為數(shù)字水印的信息嵌入到任何沒有溢出的像素時,能完美的恢復原始圖象數(shù)據(jù)。
注意如上所述的,本發(fā)明能通過運行在計算機上的程序來實現(xiàn)。因此,本發(fā)明包括一計算機程序。由于本發(fā)明能通過給計算機提供程序來實現(xiàn),則用于將程序代碼輸給計算機的裝置即用于存儲程序代碼的存儲介質(zhì)也在本發(fā)明范圍內(nèi)。
類似這樣的存儲程序代碼的存儲介質(zhì),例如,可以使用軟盤、硬盤、光盤、磁光盤、CD-ROM、磁帶、永久性存儲器卡、ROM或類似物。
可以獨自控制與提供的程序代碼相匹配的不同設備的計算機,不但可以通過這樣的計算機來實現(xiàn)上述實施例的功能時,而且在協(xié)同運行在計算機上的程序代碼和OS(操作系統(tǒng))或其它軟件來實現(xiàn)該實施例的功能時,這樣的程序代碼都包括在本發(fā)明的范圍內(nèi)。
另外本發(fā)明的范圍還包括這樣一種情況提供的程序代碼存儲于安裝在計算機主板上的存儲器或與計算機相連的功能擴充裝置,安裝于該功能擴充板或裝置上的CPU在程序代碼指令的基礎上執(zhí)行一些或所有的有效過程,并通過這些過程實現(xiàn)本實施例。
如上所述的,依據(jù)本發(fā)明,當鑒別信息與數(shù)字信息不可分開的設置時,總能檢測到信息是否被篡改,而且只要原始數(shù)據(jù)不被篡改總能將其恢復。
可以嵌入數(shù)字水印,而且嵌入有數(shù)字水印的原始數(shù)字數(shù)據(jù)能被再現(xiàn)。
因為可以在不脫離本發(fā)明精神和范圍的情況下,產(chǎn)生許多不同的實施例,所以可以理解本發(fā)明不局限于所限定的具體實施例而是由所附的權利要求來限定。
權利要求
1.一種用于將附加信息嵌入到組成數(shù)字數(shù)據(jù)的元素的信息嵌入裝置,該數(shù)字數(shù)據(jù)是通過從所述元素加上/減去一個值而得到的,該裝置包括檢測裝置,用于檢測這樣的元素在加運算/減運算之后,其值超越了能夠認定的元素范圍;通過結合附加信息和由所述檢測裝置檢測的信息而產(chǎn)生有效的嵌入信息的產(chǎn)生裝置;和嵌入裝置,用于排除這樣的元素在嵌入到數(shù)字數(shù)據(jù)時,經(jīng)過嵌入處理的加運算/減運算之后,其值超越了認定的元素范圍,并將由所述產(chǎn)生裝置產(chǎn)生的有效的嵌入信息作為數(shù)字水印嵌入到落在認定的元素范圍之內(nèi)的元素。
2.根據(jù)權利要求1的裝置,其中的數(shù)字數(shù)據(jù)為圖像數(shù)據(jù),并且所述檢測裝置用于檢測這樣的像素位置該像素在加運算/減運算之后其值超越了設定的像素值范圍。
全文摘要
依據(jù)本發(fā)明,當鑒別信息從數(shù)字信息以不可分割的方式設置時,總能檢測到信息是否被干擾,而且只要數(shù)字數(shù)據(jù)沒受干擾,就能將其恢復。為了實現(xiàn)這個目的,當將鑒別信息嵌入到由圖像輸入單元(201)輸入的數(shù)字信息時,散列值計算單元(202)產(chǎn)生基于該數(shù)字信息的鑒別信息,加密單元(203)使用加秘密鑰對鑒別信息加密,以及數(shù)字水印形成單元(204)將加密的信息作為數(shù)字水印嵌入到數(shù)字信息。
文檔編號H04N1/00GK1893530SQ20061008448
公開日2007年1月10日 申請日期2002年2月9日 優(yōu)先權日2001年2月9日
發(fā)明者林淳一 申請人:佳能株式會社