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