數據隱藏和抽取方法
2023-12-08 16:58:56 3
專利名稱:數據隱藏和抽取方法
技術領域:
本發明涉及在媒體數據中隱藏消息數據的數據隱藏方法,以及抽取隱藏數據的數據抽取方法。
由於面向多媒體社會的發展,因此,在Internet或諸如CD-ROM、DVD-ROM(或DVD-RAM)、DVC等記錄介質上分布有大量數位化的圖象和聲音信息。由於任何人都可以輕易地全面複製以上數位化信息(該信息不易降質),所以其不正當使用是個問題。為了防止他人不正當地複製媒體數據(如圖象或聲音數據),隱藏技術正在受到關注,該技術在原始媒體數據中隱藏諸如作者標誌一類的信息。如果數位化的圖象數據被非法複製,通過檢查副本中隱藏的標誌就可以確定其來源,從而確定其是否被非法複製。該種技術被稱為「數據隱藏」。
圖1是一個半色調圖象,該圖象包括顯示器上顯示的數位化數據。如圖1(b)所示,將諸如「看護人」、「河」、「幼兒園學生」以及「鳥」這一類的照片說明(消息)隱藏在媒體數據(即圖1(a)中的數位化圖象)中。通過將照片中的圖象劃分為小點,並確定各點的亮度值和顏色值,就可以得到媒體數據。此時,故意改變圖象的原始數值。數值的細小變化不會顯著地扭曲圖象,用戶也不會注意到。可以利用以上特性在原始圖象中隱藏完全不同的信息(消息數據)。隱藏在圖象中的消息數據可以包括任意信息,例如,可以為網格模式、尺狀圖形或圖象的製作人標誌。利用特定程序進行處理,就可以抽取媒體數據中隱藏的消息數據。因此,根據抽取的消息數據,就可以確定是否修改了原始媒體數據。
將圖1(b)所示的消息隱藏在該圖象上一個有意義的區域附近。例如,將消息「鳥」隱藏在該鳥在該圖象中出現的區域附近,並作為標題。為了在圖象中隱藏諸如所有者信息一類的消息,最好將該消息散布在該圖象上。這是由於當局部隱藏的消息較大時,可能降低該區域的質量。此外,如果剪去部分圖象,如果消息是散布在整個圖象上的,仍然可以抽取該消息。因此,如何確定在何處隱藏消息是很重要的。根據狀態序列S確定其位置。即,狀態序列中的各元素與各消息有關,並且將該消息隱藏在根據該元素確定的相應位置。
根據常規數據隱藏方法,利用隨機數序列確定狀態序列S。圖2利用示意圖說明根據常規方法散布在圖象上的消息數據的布局。將圖1(a)所示的圖象劃分為I個圖象區域,分別用0到9進行編號。隨後,將消息數據表示為消息數組(m),一個數組元素被描述為一個數組值m[n](0≤n≤9)。各數組值與分劃消息數據有關。將各消息隱藏在圖象中的某個位置,其中該位置是根據狀態序列S中的元素確定的。以下等式確定位置p0,在位置p0隱藏第零個消息m
。狀態值S0=初始值(常量)位置p0=S0mod I以上等式表示,在給定常量作為狀態值S0的初值之後,狀態值S0對I(圖象的區域數目)的餘數就是p0。位置p0的值為0到(I-1)之間的任意整數。把整數值和圖象區域的順序聯繫起來,將消息m
隱藏到第i個圖象區域。根據以下等式確定第一消息和後繼消息m[n]的位置pn。Sn=Rnd(Sn-1)pn=Snmod I以上等式表示利用前一狀態值Sn-1作為隨機數啟動源產生偽隨機數數組,利用該值作為下一狀態值Sn。狀態值Sn對I的餘數就是位置pn。將消息m[n]隱藏到與該值相對應的圖象區域。
只有知道狀態值S0(初值)的用戶,才能讀取隱藏消息。若抽取了該消息,就根據初值計算狀態S0之後的所有狀態值(S1,…,S9)。從而可以確定與狀態值相對應的位置,並抽取隱藏在這些位置的消息。
正如在圖2所示,由於狀態值Sn(該值用於確定第n個消息m[n]在圖象上的位置)僅依賴於狀態值Sn-1,因此,當確定了狀態值Sn-1之後,就可以確定狀態值Sn。同樣,狀態值Sn-1僅依賴於狀態值Sn-2。通過遞歸重複以上過程,就能確定狀態序列S中的所有元素(S0,S1,S2,…,S9)。因此,狀態序列S中的所有元素僅依賴於最初給定的作為初值的常量。所以,一旦確定了初值,就能確定狀態序列S,以便確定散布在圖象上的消息位置,抽取其隱藏內容。
儘管努力保密其初值,如果公開了初值,或者他人知道了該初值,他人就可以利用該值輕易確定消息位置,刪除該消息數據或者在第一數據上寫入不同的消息數據。常規方法很難有效阻止他人為了使原始材料不被發現而刪除原始標誌,或者為了將他或她作為作者而在原始標誌上寫入不同標誌。
因此,本發明的目的在於提出一種新方法,該方法用於在媒體數據中散布並隱藏消息數據。本發明的另一目的在於提供一種數據隱藏方法,該方法能夠阻止他人修改消息數據。
第一發明涉及一種數據隱藏方法以實現以上目的,該方法根據狀態值S(該值確定媒體數組內的特定數組元素),將消息數組的數組元素分散隱藏到媒體數組中,其中假設用媒體數組表示媒體數據,而用消息數組表示消息數據。具體而言,第一發明包括以下步驟(a)確定第j(j≥0)個狀態值Sj;(b)根據第j個狀態值Sj、由第j個狀態值指示的媒體數組的數組元素以及消息數組的數組元素,確定第(j+1)個狀態值Sj+1,和(c)相對於由第(j+1)個狀態值Sj+1指示的媒體數組的數組元素,隱藏數據。
如果消息數組具有J個數組元素,則遞歸重複上述步驟(a)到步驟(c),直至隱藏了J個數組元素。如果j=0,則根據消息數組的數組元素內的數據,確定初始狀態值S0。具體而言,提供一個初始函數確定初始狀態值S0,並將一個基於消息數組的所有元素內的數據的值(例如,所有數據的異或),輸入到以上初始函數。
在步驟(b),根據第j個狀態值Sj、該狀態值指示的媒體數組的數組元素內的數據以及消息數組的數組元素內的數據的異或,確定第(j+1)個狀態值Sj+1。具體而言,提供一個隱藏位置轉換函數,並將以上異或輸入該函數,從而得到第(j+1)個狀態值Sj+1作為輸出。例如,隱藏位置轉換函數可以為公共密鑰密碼學中用作參數或用作密鑰的函數。隱藏數據可以為第j個狀態值Sj指示的媒體數組的數組元素與消息數組的數組元素的異或。
此外,第二發明涉及一種數據抽取方法,該方法根據狀態值(該狀態值確定媒體數組內的特定數組元素)從媒體數組中抽取消息數組,其中假設採用消息數組表示消息數據,採用隱藏數組表示包含消息數據的隱藏數據,而採用媒體數組表示分散隱藏有隱藏數據的媒體數據。第二發明包括以下步驟(a)確定第j(j≥1)個狀態值Sj;(b)從第j個狀態值Sj指示的媒體數組的數組元素中,抽取隱藏數組的數組元素;(c)根據第j個狀態值Sj和已抽取的隱藏數組的數組元素,確定第(j-1)個狀態值Sj-1;和(d)根據第(j-1)個狀態值Sj-1指示的媒體數組的數組元素和已抽取的隱藏數組的數組元素,抽取消息數組的數組元素。
遞歸重複步驟(a)到(c),直至滿足抽取結束條件。在步驟(a)中,事先向抽取程序提供狀態值Sj,作為抽取步驟所需信息,狀態值Sj用於啟動抽取步驟。例如,狀態值Sj可以是隱藏消息數組時產生的最後狀態。在步驟(c)中,根據第j個狀態值Sj與隱藏數組的數組元素內數據的異或,確定第(j-1)個狀態值Sj-1。從第j個狀態值Sj指示的媒體數組的數組元素中,抽取隱藏數組的數組元素。此外,事先提供抽取位置轉換函數,同時,在步驟(c)中,將第j個狀態值Sj與隱藏數組的數組元素內數據的異或輸入該函數,得到第(j-1)個狀態值Sj-1作為輸出。例如,抽取位置轉換函數可以為加密密鑰方法中用作參數或用作密鑰的解密函數。在步驟(b)中,隱藏數組的數組元素為第(j-1)個狀態值Sj-1指示的媒體數組的數組元素、媒體數組的數組元素以及消息數組的數組元素的異或。
此外,第三發明提供一種在媒體數據中隱藏消息數據的數據隱藏方法,該方法包括以下步驟(a)標識將要在其中隱藏消息數據的媒體數據內的一塊(即圖象數據內的一象素塊),(b)確定標識塊的特徵值(例如,象素、亮度或方差值),和(c)處理該塊的特徵值,以便引用轉換規則隱藏消息數據,該轉換規則把將要隱藏的數據內容同特徵值的參考值與該塊的特徵值之間的差值聯繫起來。
以上參考值可以為媒體數據內存在的其他塊的特徵值。如果標識了媒體數據內的第一塊和第二塊,就把這兩塊進行配對,並確定各對的特徵值。對以上得到的特徵值進行比較,並根據轉換規則進行處理(例如,交換特徵值),以便隱藏消息數據。如果消息數據包括許多位,就重複步驟(a)到步驟(c)。
第四發明提供一種數據抽取方法,該方法從隱藏有消息數據的媒體數據中抽取消息數據,該方法包括以下步驟(a)標識媒體數據(其中隱藏有消息數據)內的一塊,(b)確定標識塊的特徵值,和(c)根據該塊的特徵值,引用轉換規則抽取隱藏的消息數據,該轉換規則把將要抽取的數據內容同特徵值的參考值與該塊的特徵值之間的差值聯繫起來。
以上參考值可以為媒體數據內存在的其他塊的特徵值。如果標識了媒體數據內的第一塊和第二塊,就把這兩塊進行配對,並確定各對的特徵值。然後,根據各塊的特徵值,引用轉換規則抽取隱藏的消息數據,該轉換規則把將要抽取的數據內容同所有塊的特徵值之間的差值聯繫起來。如果第一塊的特徵值大於第二塊的特徵值,以上轉換規則就抽取其中的一位,否則,抽取另一位。
第五發明涉及一種實現以上數據抽取方法的系統。即,第五發明提供一種數據抽取系統,該系統用於從隱藏有消息數據的媒體數據中抽取消息數據,該系統包括轉換裝置,該裝置將隱藏有消息的媒體數據轉換為數位訊號,其中以模擬信號方式傳送媒體數據;標識裝置,該裝置用於標識媒體數據(隱藏有消息數據)內的一塊,其中以轉換裝置的輸出的方式傳送媒體數據;特徵值計算裝置,該裝置用於確定由標識裝置標識的數據塊的特徵值;存儲裝置,該裝置用於存儲轉換規則,其中該轉換規則把將要抽取的數據內容同特徵值的參考值與該塊的特徵值之間的差值聯繫起來;和抽取裝置,該裝置根據該塊的特徵值,抽取隱藏的消息數據。
另外,第六發明涉及在單片集成電路上設置以上數據抽取系統功能的半導體集成電路。即,第六發明提供一種半導體集成電路,該電路用於從隱藏有消息數據的媒體數據中抽取消息數據,該電路包括用於確定某數據塊(認為該數據塊隱藏有消息數據)的特徵值的裝置;和抽取裝置,該裝置根據以上數據塊的特徵值,利用轉換規則抽取隱藏的消息數據,其中轉換規則把將要抽取的數據內容同特徵值的參考值與該數據塊的特徵值之間的差值聯繫起來。
圖1是一半色調圖象,該圖象包括顯示器上顯示的數位化的數據;圖2利用示意圖說明根據常規方法散布在圖象上的消息數據的布局;圖3說明一媒體數組和一消息數組;圖4利用示意圖說明隱藏處理中採用的媒體數組值之間的關係;圖5是一示意圖,說明將要隱藏的對象;圖6是一流程圖,說明在媒體數據中隱藏消息數據的過程;圖7說明隱藏中狀態值Sj-1和Sj之間的關係;圖8是一流程圖,說明從隱藏數據中抽取消息數據的過程;圖9說明抽取中狀態值Sj和狀態值Sj-1之間的關係;圖10說明確定生成的消息數組值是否是消息的開始;圖11是一概念圖,說明由於修改而生成的錯誤狀態序列S的狀態;圖12說明採用PBC的數據隱藏和抽取方法;圖13說明採用單一象素作為象素塊,採用PBC的隱藏方法;圖14說明在原始圖象中隱藏消息和位置信息的方法;圖15說明採用同心圓弧作為位置信息的情況;圖16說明在採用同心圓弧作為位置信息的情況下,參考位置B的標識;圖17說明採用同心圓弧作為位置信息的隱藏和抽取方法;圖18是一廣播系統框圖;圖19是一框圖,說明Internet中的一發送器和一接收機;圖20是一框圖,說明一伺服器和一客戶;圖21是指紋和水印系統的框圖;圖22是一數據抽取系統的框圖;和圖23是在單片電路上設置數據抽取系統的半導體集成電路的框圖。
A.數據定義首先,定義以下數組和序列。(1)媒體數組M(2)消息數組m(3)狀態序列S(4)位置序列p(1)媒體數組M媒體數據包括圖象和聲音數據。利用媒體數組M定義媒體數據(其中嵌有消息數據),並且一個媒體數組元素M[i]為以下表示的媒體數組的一個數組元素。M{M0,M1,…,Mi,…,MI-1}或M[i]0≤i≤I-1 I媒體數據的長度例如,如果媒體數據為圖1(a)所示的圖象,則如圖3(a)所示,將該圖象劃分為I個圖象區域,第一個區域具有第零個媒體數組值M
。第i個圖象區域具有媒體數組值M[i],最後一個圖象區域具有媒體數組值M[I-1]。各媒體數組值中的數據為其相應圖象區域的圖象信息。對於單色屏幕而言,圖象信息為密度,而對於彩色屏幕而言,該信息為亮度。如果圖象區域的數目等於象素數目,則媒體數組值M[i]為第i個象素的象素值。如果圖象區域包括多個象素(例如,3×3個象素),則圖象信息為相應象素值。如果媒體數據為聲音,則可以將媒體數組值M[i]定義為在時刻(i)的振幅值。假設可以將各數組值M[i]中的數據表示為一個BM字節的整數。
(2)消息數組(m)例如,嵌入到媒體數據中的消息數據包括有關圖象製作人的信息,有關產品號、日期和地點的管理信息以及有關的複製許可信息。利用消息數組(m)定義消息數據,並且一個消息數組值m[j]為如下表示的消息數組的一個數組元素[等式4]m{m0,m1,…,mi,…,mJ-1}或m[j]0≤i≤J-1 J媒體數據的長度例如,如果消息數據為圖3(b)所示的包含10個字母數字字符「DATAHIDING」的消息數據,則第j個字符與消息數組值m[j-1]有關,因此,消息數組值m[j-1]中具有標識相應字符的數據。假設用Bm字節(1位元組用於字母數字字符)的整數來表示各數組值m[j]中的數據。此時,消息數據的長度J為10。
(3)狀態序列S定義狀態序列S,以便確定經過隱藏處理的位置(媒體數組值),一個狀態值Sj為如下表示的序列的一個元素。S{S0,S1,…,SJ}或Sj0≤j≤J J媒體數據的長度用於產生狀態序列S的算法是本實施方式的重要因素之一。應該注意到狀態序列S的元素數目J為(J+1),該值比消息數組(m)的元素數目J大1。
(4)位置序列(p)藉助以下等式,利用位置序列(p)確定經過隱藏處理的位置。一個位置pj為如下表示的位置序列(p)的一個元素。p{p0,p1,,pJ}或pj0≤j≤J J媒體數據的長度pj=Sjmod I與狀態序列S一樣,位置序列(p)具有(J+1)元素。位置序列的元素的位置pj是如下定義的具有相同下標值(j)的狀態值(即Sj)對I的餘數。因此,位置pj的值為0到(I-1)之間的整數,與該值對應的圖象區域經受隱藏處理。由於(I)為一常數,即圖象區域數,所以一旦建立了狀態值Sj,就可以唯一確定位置pj的值。因此,經受隱藏處理的位置事實上是由狀態序列S確定的。
B.隱藏算法根據本發明的數據隱藏算法是與抽取隱藏數據的算法緊密聯繫的。即,如果企圖抽取隱藏數據的第三方具有特定信息,則他或她就可以檢查以上消息。此時,重要的是能夠有效阻止他人在抽取消息期間修改消息。鑑於以上考慮,本發明根據以下三特徵隱藏數據。(1)根據消息特徵確定狀態值S0(2)根據消息和圖象數據確定狀態序列S(3)需要隱藏的數據(1)根據消息特徵確定狀態值S0
狀態序列的第一元素的狀態值S0為初始函數fINI對消息數組所有元素(m
,m[1], ,m[9])的異或的輸出。根據該值利用以下等式確定狀態值S0和位置p0。S0=fINI(m
XOR m[1]XOR m[2]XOR…XOR M[n-1])p0=S0mod I常規方法將初始狀態值S0作為一個特定常量,而並不考慮嵌入的消息內容。然而,根據以上實施方式,該元素是根據消息內容(即,所有的消息數組值)確定的。圖4利用示意圖說明了消息數據在圖象上的分布。如該圖所示,根據初始狀態值S0確定初始位置確定p0。
根據消息數組(m)的特徵確定初始狀態值S0是本算法的特徵之一。這不僅使得初始狀態值的確定更加複雜,而且能夠有效阻他人在消息上非法寫入數據。同時,將初始函數fINI用作抽取操作期間確定消息結束的函數。這樣阻止了他人寫入除原始消息之外的不同消息。
(2)根據消息和圖象數據確定狀態序列S根據狀態值S0確定下一狀態值S1。狀態值S1由以下等式表示。S1=SK(S0XOR m
XOR M[p0])即,下一狀態值S1為函數SK對以下輸入的輸出當前狀態值S0、由狀態值S0指示的媒體數組值M[p0]以及消息數組值m
的異或。媒體數組值M[p0]是根據狀態值S0計算的位置p0處的圖象區域。以上結論,對狀態值S2和後繼狀態值同樣正確,可以利用以下等式概括表示以上關係。Sj+1=SK(SjXOR m[j]XOR M[pj])函數SK為一個用於確定下一狀態值的位置轉換函數,接收以下輸入當前狀態值、消息數組值和媒體數組值的異或。因此,通過遞歸執行以上等式,順序確定狀態值。由於必須確定(J+1)個狀態值,所以最後一個狀態值為SJ。如果消息數組具有圖3(b)所示的10個元素,則產生11個狀態值。通過利用以上方法確定狀態序列S,就可以標識經過隱藏處理的所有圖象區域。圖4說明經過隱藏處理的媒體數組值之間的關係。
根據常規技術的位置序列僅僅依賴於初值,然而根據本算法的位置序列是通過一併考慮消息數組值和媒體數組值確定的。如果他人企圖在原始消息上寫入不同消息,則由於會產生不同的狀態序列,所以重寫是非常困難的。同樣,如果他人企圖修改圖象數據,也是非常困難的。
(3)需要隱藏的數據圖5是一示意圖,說明將要隱藏的對象。假設已經標識了需要隱藏的位置序列(p)。首先,數據被隱藏在位置p1及其後繼位置,而在位置p0並不隱藏任何數據。具體而言,必須隱藏媒體數組值和消息數組值的異或結果。
首先,直接從位置p0取出媒體數組值M
。然後,確定消息數組值m
與得到的媒體數組值M
的異或,並將其結果隱藏在位置p1。該隱藏操作改變了媒體數組值M[p1]的內容。此外,隨著在位置p2進行的處理,確定由先前處理改變的內容,即消息數組值m[1]與媒體數組值M[1]的異或,並將其結果隱藏在位置p2。
重複以上隱藏處理直至位置p10,就完成了數據隱藏。將先前處理改變的內容,即消息數組值m[9]與媒體數組值M[9]的異或,隱藏在位置p10。由於並未在位置p0隱藏數據,所以狀態序列S和位置序列(p)中的元素數目都大於消息數組中的元素數目。
根據本算法,如果要抽取隱藏消息,就要以相反次序(從最後一個消息數組值m[9]開始),遞歸執行抽取操作。根據本算法,消息數組和媒體數組的異或結果的隱藏是與消息抽取過程密切相關的。在「消息數據抽取」部分說明其細節。此外,實際上可以採用不同的算法隱藏數據。在第二實施方式中,說明了採用PBC(象素塊編碼)作為隱藏數據算法的示例。
C.第一實施方式結合圖6所示的過程,具體說明第一實施方式。圖6是一流程圖,說明在媒體數據中隱藏消息數據的過程。在以下說明中,請參看圖4或圖5中的相應部分。
計算初始狀態值(步驟100)為了隱藏數據,必須確定位置序列(p)。為了確定位置序列,必須首先確定初始位置p
。利用初始函數fINI(該函數使用初始狀態值S0作為輸入)的輸出確定初始位置p
,並且利用以下等式確定變量S0。S0=fINI(m
,m[1],m[2],…,M[J-1])=H1(m
//m[1]//m[2]//…//M[J-1])在以上等式中,H1為散列函數。此外,算符「//」表示將消息數組的所有元素連接起來。例如,具體運算可以為數組元素內數據的異或。然而,如果採用異或,則計算結果不能反映所有消息數組值的次序。即,圖3(b)所示的消息「DATAHIDING」與消息「TADAHIDING」具有相同值。因此,採用稱為CRC(循環冗餘校驗法)的方法,以便反映次序關係。以上算法是計算校驗和的算法之一,其產生的結果依賴於數據數組的內容和次序。
對於字節長度為Bm字節(數組值m[i])的輸入,散列函數H1產生具有不同字節長度K(散列值)的輸出。由於該函數為單向函數,因此,當H(x)=y時,實際上不可能從(y)推算出(x)。
利用K字節散列值作為數據隱藏的初始狀態值S0。由於該散列值被直接用作數據隱藏的初值,所以必須保證不同的輸出是由不同的輸入產生的。因此,散列值沒有其他特殊意義。重要的是,其運算結果為標識該數組特徵的輸出值,即,根據所有的數組元素內容唯一確定散列值,該值依賴於所有數組的內容。
如果消息數據為圖3(b)所示的「DATAHIDING」,則根據標識所有字母數字字符數據(數組值m[i]中的數據)的異或,散列函數H1的輸出就是狀態值S0。狀態值S0對I(圖象區域數目)的餘數就是位置p0。這樣,就能得到狀態值S0和位置p0作為初始狀態值。
象素值抽取(步驟200)確定在步驟100得到的位置值p0所對應的圖象區域內的圖象信息。例如,如果p0=i,則該信息為媒體數組值M[i]。採用BM字節的整數表示該數據。
下一狀態計算(步驟300)除在步驟100確定的狀態值S0之外,根據媒體數組值M[p0]和狀態值S0標識的消息數組值m
,確定下一狀態值S1。可以利用以下等式確定狀態值S1。S1=SK(S0XOR m
XOR M[p0])(XOR為異或運算)即,確定狀態值S0、消息數組值m
以及媒體數組值M[p0]的異或,並將其結果輸入到函數SK。然後,函數SK的輸出就是狀態值S1。該函數SK被稱為位置轉換函數,並且將在媒體數據中隱藏消息數據的位置轉換函數SK特別稱為隱藏位置轉換函數。由於位置轉換函數SK與抽取隱藏數據的抽取位置轉換函數PK緊密聯繫,所以在以下抽取位置轉換函數的說明中也詳細說明位置轉換函數SK。
通過執行相似過程,確定狀態值S2及其後繼狀態值。概括地說,可以採用以下等式表示第j個狀態值Sj和位置pj。Sj=SK(Sj-1XOR m[j-1]XOR M[pj-1])pj=Sjmod I(SK隱藏位置轉換函數)應該再次注意到位置pj依賴於消息數據和媒體數據的內容,也依賴於先前狀態值Sj-1。
作為隱藏位置轉換函數SK的輸入的狀態值Sj-1、消息數組值m[j-1]以及媒體數組值M[pj-1]分別具有不同的字節長度K、Bm和BM。當然可以計算具有不同字節長度的所有輸入的異或,但是,最好在將所有輸入轉換為相同字節長度之後,再計算其異或。以下兩個散列函數H2和H3用於轉換所有的輸入,以便使所有輸入的字節長度均為狀態值的K字節長度。
H2根據Bm字節的整數,產生K字節散列值的散列函數H3根據BM字節的整數,產生Bm字節散列值的散列函數即,對消息數組值m[j-1]而言,利用散列函數H2,根據數組值內的Bm字節的整數,產生一個K字節的散列值。此外,對於媒體數組值M[pj-1]而言,利用散列函數H3將位長為BM字節的整數,轉換為Bm字節的整數。散列函數H2還用於產生一個K字節的散列值。上述等式7包括以該方式利用散列函數轉換輸入的情況。
消息嵌入(步驟400)確定消息數組值m[j-1]和媒體數組值M[pj-1]的異或,得到的數據就是隱藏數組值Mm[j-1]。將隱藏數組值Mm[j-1]中的數據隱藏在步驟300確定的位置pj中。隱藏數組值Mm[j-1]為隱藏數組Mm的一個數組元素。Mm{Mm
,Mm[1],…,Mm[j],…,Mm[J-1]}Mm[j]=m[j] XOR M[pj]應該理解的是以上隱藏數據不是消息數組值m[j],而是由消息數組值m[j]與媒體數組值M[pj]的異或產生的隱藏數組值Mm[j]。利用函數X,將隱藏數組值Mm[j]隱藏到位置pj。這就改變了媒體數組值M[pj]中的數據。將其內容改變的媒體數組值M[pj]稱為M′[pj]。即,對於函數X的特定內容,該算法在其特定位置隱藏以上隱藏數組,在第二實施方式中,以示例方式說明PBC。
確定(步驟500)確定(j)的值是否等於J(該值比消息數組中元素的數目大1)。如果j=J,則隱藏了所有的消息數組值。如果(j)小於J,則將(j)加1,並且返回到步驟200。隨後,遞歸執行步驟200到步驟400,直至(j)等於J。該過程使得產生分別包含(J+1)個元素的狀態序列S和位置序列。狀態序列S{S0,S1,S2,…,SJ}位置序列P{p0,p1,p2,…,pJ}由於數據隱藏,所以根據以下等式改變媒體數組M的所有元素。(隱藏前的媒體數組)M{M
,…,M[p0],…,M[p1],…,M[pI-1]}(隱藏後的媒體數組)M′{M′
,…,M′[p0],…,M′[p1],…,M′[pI-1]={M
,…,M[p0],…,M′[p1],…,M′[pI-1]M′表示隱藏後的媒體數組,M′[i]表示該媒體數組值的內容在隱藏之前已經改變。即,媒體數組值M′表示僅僅改變了原始消息數組M(由狀態序列S標識)的J個數組元素。由於與狀態值S0相應的數組元素M[p0]無需改變數據,所以M′[p0]等於M[p0]。
圖7說明隱藏中狀態值Sj-1和狀態值Sj之間的關係。通過計算狀態值Sj-1和隱藏數組Mm[j-1](M′[pj-1]XOR m[j-1])的異或,並將該結果輸入到位置轉換函數SK,就可以確定狀態值Sj。在前一狀態的隱藏期間,就已經改變了媒體數組值M′[pj-1]的內容。此外,利用函數X,將隱藏數組Mm[pj-1]隱藏在位置pj。這就改變了位置M[pj]的數據。
狀態值抽取(步驟600)通過抽取以下兩條消息,就完成了消息隱藏。
(1)隱藏後的媒體數組M′(2)最終狀態值SJ在步驟400,通過在媒體數據內隱藏數據最終得到媒體數組M′。最終狀態值SJ是最後計算的第J個狀態值。如下所述,當抽取消息數據時,需要以上信息。當抽取隱藏消息時,抽取人無需知道第(J-1)個狀態值之前的狀態值S0到SJ-1,他或她只要知道第J個狀態值即可。這是由於通過反向轉換最終狀態值,就可以確定以上狀態值。當然,抽取人必須具備下述所需信息。
(消息數據抽取)為他人提供以下三條信息,以便抽取消息數據。
(1)隱藏後的媒體數組M′(2)最終狀態值SJ(3)抽取位置轉換函數PK信息(1)和信息(2)是嵌入消息數據期間最終產生的。以下結合隱藏位置轉換函數,說明信息(3)中的抽取位置轉換函數PK。
a.隱藏位置轉換函數SK,抽取位置轉換函數PK如同在隱藏消息中定義產生下一狀態值的隱藏位置轉換函數SK一樣,在抽取消息中定義產生前一狀態值的抽取位置轉換函數PK。如以下等式所示,隱藏位置轉換函數SK和抽取位置轉換函數PK互為逆函數。
PK(SK(x))=xSK(PK(x))=x因此,通過利用隱藏位置轉換函數SK轉換消息數組(m),隨後利用其逆函數PK進一步轉換該結果,就可以抽取原始消息數組(m)。
滿足以上等式的各種函數都是可能的。事實上,為了防止他人利用已配備的抽取位置轉換函數PK來複製隱藏位置轉換函數SK,最好採用公開加密法中的加密函數和解密函數。根據公開密鑰法,存在多種算法,可以選擇任一種算法。例如,以下說明的典型RSA方法。RSA方法的算法如下所述。
1.選擇兩個大素數p和q,計算n=p×q。
2.計算r=1cm(p-1,q-1)並選擇(d),使得gcd(d,r)=1。
3.確定(e),其中(e)滿足e×d=1(mod r)和0<e<r。
4.公開(e)作為公開密鑰,同時公開(n)。保密(d)作為秘密密鑰。
5.為了加密消息(m),計算(c),使得me=c(mod n)。該(c)成為加密消息。
6.為了解密加密消息,計算(m),使得cd=m(mod n)。該(m)成為解密消息。
通過將以上算法應用到本實施方式,就得到以下隱藏函數SK和抽取函數PK。SK(m)=xd(mod n)PK(m)=xe(mod n)即,製作圖象的製作人具有密鑰(d),並利用該密鑰得到隱藏函數SK。為了嵌入消息數據,利用函數SK產生位置狀態序列S,函數SK將數據嵌入到媒體數據中。具有以上分布數據的第三人,利用公開密鑰(e)得到抽取函數PK。為了讀取該消息,第三人利用函數PK產生位置狀態序列S。在公開密鑰方法中,向他人公開公開密鑰,但是只有製作圖象的作者才具有秘密密鑰,從而他人不能知道圖象的內容。因此,他們不能知道隱藏位置轉換函數的內容。由於從公開密鑰中計算出秘密密鑰需要大量計算,因此他人幾乎不可能知道隱藏位置轉換函數SK。以上方法能夠有效阻止他人修改原始數據。
以下簡要說明異或的重要性質,該性質用於解釋消息抽取過程。異或運算具有以下性質。如果確定了A與B的異或,隨後又確定了該結果與B的異或,就能再現A。(A XOR B)XOR B=A(抽取算法)圖8是一個流程圖,說明抽取嵌入消息數據的過程。
初始狀態值計算(步驟110)首先,根據以下等式,從最終狀態值SJ(已提供給了抽取人)中確定位置pJ,其中在位置pJ隱藏有消息數組值m[J-1]。pJ=SJmod I隱藏值抽取(步驟120)媒體數組M′[pJ]具有隱藏數組值Mm[J-1],該值被隱藏在位置pJ的原始圖象信息中。數組Mm[J-1]為媒體數組值M′[pJ-1]和消息數組值m[J-1]的異或。隨後定義函數X′,以便從媒體數組值M′[pJ]中抽取隱藏數組值Mm[J-1]。在第二實施方式中,說明以下等式中函數X′特定內容的示例。Mm[J-1]=函數X′(M′[pJ])前一狀態計算(步驟130)接著,通過計算狀態值SJ和隱藏數組值Mm[J-1](由函數X′確定)的異或,確定前一狀態值SJ-1。應該注意到此時利用了以上異或運算的數學性質。PK(SJ)XOR X′(M′[pJ])=(SJ-1XOR Mm[J-1])XOR Mm[J-1]=SJ-1即,由於抽取位置轉換函數PK是隱藏位置轉換函數SK的逆函數,所以可以使用該函數從狀態值SJ、狀態值SJ-1與隱藏數組值Mm[J-1]的異或結果中進行再現。確定了以上結果與隱藏數組值Mm[J-1](在步驟120確定該值)的異或,就能確定前一狀態值SJ-1。
消息計算(步驟140)一旦確定了狀態SJ-1,就可以標識相應的媒體數組值M′[pJ-1]。隨後,可以利用以下等式抽取消息數組值m[J-1]。如果隱藏了圖3(b)所示的消息,該步驟就可以抽取尾部字母「G」。M′[pJ-1]XOR Mm[J-1]=M′[pJ-1] XOR(M′[pJ-1]XOR m[J-1])=m[J-1]利用下標值(j)(1≤j≤J),可以將狀態值的抽取或消息數組值的抽取概括為以下等式。Sj-1PK(Sj) XOR X′(M′[pj])=(Sj-1XOR Mm[j-1]) XOR Mm[j-1]=Sj-1m[j-1]M′[pj-1] XOR Mm[j-1]=M′[pj-1]XOR (M′[pj-1]XOR m[j-1])=m[j-1]圖9表示以上等式標識的數據關係。該圖表示了抽取中狀態值Sj和狀態值Sj-1之間的關係。將該圖與圖7相比,顯示出抽取過程是隱藏過程的逆過程。
確定(步驟150)每當產生消息數組值m[j]時,就確定該值是否為消息數組的開始。如果是這樣的話,就抽取了消息數組(m)的所有元素。由於以相反次序(即從最後元素開始)抽取了該消息數組(m),所以對於圖3(b)的示例而言,以次序「GNIDIHATAD」抽取該消息。在步驟160,顛倒以上消息次序,以便產生完整消息。如果消息數組值m[j]並不是消息數組的開始,就遞歸執行步驟120到步驟140,直至步驟140的確定結果變為肯定。
確定消息數組(m)的某個元素是否為該消息數組的開始等價於,確定產生的狀態值Sj是否滿足散列函數H1的輸出。將已經產生的消息數組(m)的所有元素的異或輸入到散列函數H1。如果以相反次序產生的狀態值Sj與散列函數H1的輸出滿足以下等式所示的關係,則j的值為0(參見等式10)。Sj=f(m[J-1]XOR m[J-2]XOR…XOR m[j]=S0僅當j=0時,以上等式才成立,而對於其他情況(j≠0),以上等式並不成立。每當以相反次序產生最終狀態值Sj時,就把該值與基於所有抽取消息數組值的散列函數的輸出進行比較。圖10說明了確定生成的消息數組值是否為該消息的開始。首先,確定最終狀態值SJ的前一狀態值SJ-1,以及消息數組值mJ-1。輸入消息數組值mJ-1時,得到的初始函數(f)的輸出F與狀態值SJ-1不匹配。如果確定了狀態值S0,則該值與初始函數的輸出匹配,並能夠確定該消息數組值就是消息的開始。因此,由於以下性質,本算法在防止他人修改消息方面是非常有用的。
(1)防止重寫不同信息根據常規技術,所產生的位置序列S僅僅依賴於初始提供的常量值,而並不考慮該消息的內容。僅僅知道該常量,他人就可以刪除該消息或者在原始消息上重寫不同消息。然而,根據本算法,狀態序列的產生還依賴於消息的內容,不同的消息產生不同的位置序列。由於隱藏位置是基於該位置序列的,所以不可能將具有不同內容的不同消息隱藏在存在原始消息的位置。這對媒體數據也是同樣正確的。
(2)防止隱藏不同信息本算法檢查等式24所示的條件,以便確定結束抽取。僅當某個抽取消息的內容與原始消息的內容相同,並且該抽取消息的長度與消息數據(J)的長度相同時,才滿足該條件。不滿足該要求,就沒有完成抽取。因此,如果企圖根據最終狀態值SJ,以相反次序隱藏除原始消息之外的數據,則永遠不會滿足等式24的要求,並且計算將會永久進行下去。因此,由於沒有完成該計算,所以企圖在原始消息出現位置之外的位置隱藏消息是不可能的。
如圖10和圖11所示,如果他人修改了消息數組值,則根據修改消息將產生不同的狀態數組S′。這樣就能防止他人刪除或重寫位於狀態狀態序列S′標識的位置以外位置的原始消息。圖11所示的通過修改產生的狀態序列S′永遠不能確定已經完成了抽取。事實上,由於可以防止寫入不同消息,所以能夠有效防止他人修改消息。
D.第二實施方式本節說明象素塊編碼(以下稱為「PBC」),象素塊編碼是在媒體數據中嵌入需要隱藏的數據和抽取隱藏數據的一種方法。藉助PBC,根據以下說明的轉換規則,就可以進行數據隱藏和數據抽取。
(基本算法)通常,兩個相鄰象素的象素值的主要特徵為較高的相關性。因此,即使在相鄰象素之間交換象素值,該圖象也不會明顯降質。考慮到這一性質,本算法將至少具有一個象素的圖象區域定義為一個象素塊,並根據特定的轉換規則,通過有意交換相鄰象素塊的特徵值來隱藏一比特數據。即,通過交換相鄰象素塊的特徵值來表示數據。此外,根據以上轉換規則確定的抽取規則,抽取數據。
根據以下轉換規則,通過交換兩個相鄰象素塊的特徵值(例如,亮度)來表示位信息。
位接通1象素塊(PB1)特徵值大於另一象素塊(PB2)的特徵值位斷開0象素塊(PB1)特徵值小於另一象素塊(PB2)的特徵值此外,根據以下抽取規則,通過比較兩個相鄰象素塊的特徵值(例如,亮度)來抽取位信息。
象素塊(PB1)特徵值大於另一象素塊(PB2)的特徵值位接通1
象素塊(PB1)特徵值小於另一象素塊(PB2)的特徵值位斷開0
圖12說明了利用PBC進行數據隱藏和數據抽取。可以將象素塊PB1和象素塊PB2定義為多個象素(例如,3×3象素)的集合,或者將一個象素定義為一個象素塊。由於相鄰的象素塊具有較高的相關性,所以交換其位置不會使該圖象明顯降質(圖12a)。
假設原始圖象中的象素塊的位置為圖12(b)所示的位置。同時假設兩個象素塊的特徵值的比較結果為PB1的特徵值大於PB2的特徵值。如果在原始圖象中隱藏有數據「1」,則象素塊的特徵值就滿足轉換規則中數據「1」的條件,因此,無需交換象素塊的特徵值。當抽取數據時,抽取數據「1」(這是由於抽取規則確定如果PB1的特徵值較大就抽取數據「1」)。
另一方面,如果在原始圖象中隱藏有數據「0」,就交換原始圖象中象素塊的特徵值(這是由於這些特徵值之間的關係並不滿足數據「0」的條件)。然而,並不能明顯辨別以上交換。在抽取期間,根據這些象素塊的特徵值之間的關係,抽取數據「0」。
這樣,PBC從圖象中選擇足夠的象素塊,以便隱藏需要隱藏的信息。隨後,將某個所選象素塊和相鄰象素塊配對,以便產生一個配對數組。從該數組的開始著手,順序隱藏以上配對。
可以把該數組和第一實施方式中的狀態序列S聯繫起來。例如,把一個象素塊和第一實施方式中媒體數組M的數組元素(m)聯繫起來。將隱藏期間順序產生的每個數組元素(狀態值Sj)和相鄰媒體數組值進行配對。隨後,對得到的配對進行以上處理。同樣可以根據特定隨機數啟動源產生的偽隨機數序列進行確定。
在抽取期間,掃描與隱藏塊數組相同的塊數組。根據抽取規則(通過確定各對是表示「位接通」還是表示「位斷開」),通過1比特接1比特收集,就能抽取全部圖象。如果配對象素塊的特徵值相同,就跳過該配對(如同隱藏操作一樣)。通過保密以上塊數組或數組產生方法,就可以對他人隱藏以上隱藏信息。
在PBC中,最好根據圖象質量和抽取精度確定嵌入位置。即,如果配對象素塊之間的特徵值差別較大,則交換操作將會降低圖象質量。為了遏止圖象質量的下降,最好提供第一閾值(一上限值),這樣,如果特徵值之差大於等於該閾值,就不在該配對中嵌入任何比特(位)。
此外,如果特徵值之差足夠小,則交換操作基本上不會降低圖象的質量。然而,此時,噪聲可能顛倒特徵值的幅度,因此,不能抽取嵌入位。因此,為了遏止抽取精度下降,最好提供第二閾值(一下限值),這樣,如果特徵值之差小於等於該閾值,就不在該配對中嵌入任何比特。
跳過與以上情況對應的配對,而不進行任何處理。隨後將需要隱藏的位信息傳送到下一配對。
(塊特徵值)象素塊的主要特徵值和次要特徵值被用作特徵值。主要特徵值是直接象素值參數,如象素塊的亮度和色度。次要特徵值為表示統計特性的值,如以上參數的平均值和方差,並且通過分析主要特徵值得到。另外,該特徵值可以為某一數組(該主組包含多個象素值)與一特定數組(掩碼)或一特定元素值(通過頻率轉換得到)的運算結果。兩個相鄰象素塊之間的主要特徵值具有較高的相關性。然而,兩個互不相鄰的獨立的象素塊之間的次要特徵值具有較高的相關性。因此,應該注意到無需限制進行PBC處理的象素塊為相鄰象素塊。以下把亮度值(即主要特徵值)和方差值(即次要特徵值)稱作象素塊特徵值的示例。
首先,說明採用亮度值作為象素塊的特徵值。如果一個單象素與一象素塊有關,就可以直接使用該象素的亮度值作為該塊的特徵值。在自然圖象中,相鄰象素通常具有較高的相關性,因此,即使交換象素,圖象質量也不會明顯下降。圖13說明當象素塊僅包含單象素時,執行PBC後的隱藏處理。
接著,說明採用方差值作為象素塊的特徵值。當象素塊包含n×m個象素時,如果在象素塊之間交換象素的亮度值,就會明顯降低圖象的質量,例如,圖象中會出現條紋圖。因此,最好不要直接把象素值作為象素塊的特徵值。從而,想到利用象素亮度的方差值作為特徵值。
眾所周知,當把象素塊的亮度值特性劃分為平均值(h)和方差值(d)時,如果交換相鄰象素塊的方差值(d)而保留其平均值(h),並不會明顯降低圖象的質量。因此,根據以上性質,採用方差值(d)作為象素塊的特徵值,並且根據轉換規則交換相鄰象素塊的特徵值,就可以隱藏數據。
如圖12(c)所示,假設象素塊PB1的平均值為h1,方差值為d1,而象素塊PB2的平均值為h2,方差值為d2。如果位「1」被隱藏,由於d1<d2,所以並不滿足該位的條件。因此,僅僅交換兩個象素塊的方差值(d)。這等價於在兩個象素塊之間交換分布的峰值,而保持其平均值(h)。
(可以隱藏的信息量)在PBC中,利用圖象的尺寸和象素塊的尺寸,可以隱藏的信息量的上限定義如下。
(圖象尺寸)/(象素塊尺寸)/2[比特]例如,如果把1×1的象素塊應用於384×256的圖象,則可以隱藏的信息量的上限為6KB。然而,由於並非所有象素塊都可用於隱藏(例如,在相鄰象素塊具有相同特徵值的情況下),所以實際上限要小一些。此外,儘管存在隱藏的可能性,由於為了防止降低圖象的質量往往要取消交換處理,所以該值還會進一步減少。
(圖象保存和降質)眾所周知,圖象上的兩個相鄰象素(其中該圖象的邊緣部分在該象素之間延伸)具有大不相同的亮度值。因此,交換這樣兩個象素將斷開以上邊緣,導致圖象質量的明顯下降。因此,為了防止圖象質量下降,為需要交換的亮度值設置某一閾值。事實上,如果超過了該閾值,就跳過該配對而並不交換其特徵值。可以根據從該圖象數據計算出的方差值或該象素塊周圍的局部方差值,確定以上閾值。
如果把某個象素塊的方差值(該方差值接近0)與另一個象素塊的方差值(該方差值遠大於0)進行互換,就會明顯改變小象素塊,導致圖象質量的明顯下降。因此,將較小的方差值與以上閾值進行比較,如果該方差值小於閾值,就取消交換操作。
(PBC的強度)由於比較了相鄰象素塊的特徵值,並且隱藏了與特徵值交換有關的數據,所以只要保留象素塊之間的相對關係,就能夠正確檢索隱藏信息。因此,根據特徵值之差,即使進行色度調整或色度校正,也應該能夠保留隱藏信息。此外,在上述方差值交換方法中,如果象素塊的尺寸為8×8,即使經過JPEG壓縮處理,也能夠正確抽取隱藏信息。實驗證明即使執行「有損壓縮」以便將文件尺寸降至5%,也能夠保留90%的信息。即使經過D/A和A/D轉換(如列印/掃描操作),以上方差值交換方法也能有效保留隱藏信息。
(PBC的擴充)應該注意到以上PBC方法僅僅是示意性的,還可以想到許多其他方法。正如在上述實施方式中明顯看到的那樣,在數據嵌入和數據抽取中,根據有關特徵值之差的規則處理象素塊的特徵值是非常重要的。從這個意義上講,除了按上述方式交換特徵值之外,可以對某一特徵值增加一特定值或者從另一特徵值中減去該特定值(或者同時執行兩種處理)。此時,該特定值可以為一常量,也可以根據需要處理的象素塊的條件進行改變。此外,作為PBC的擴充,可以定義一條用於聯繫特徵值符號和二進位信息的規則,以便根據該規則嵌入或抽取數據。
本發明的實質在於根據一條有意義的規則,利用某個參考值(例如,圖象數據中的一個相鄰象素塊)來處理另一象素塊。即,通過引用轉換規則處理相鄰象素塊之一的特徵值實現數據隱藏,其中該轉換規則把隱藏數據的內容和特徵值的參考值與該象素塊的特徵值之間的差值聯繫起來。從這種意義上講,根據本發明,只要該參考值明確並且能夠處理特徵值即可,而並不要求該參考值為圖象數據中的一個特定區域(一個象素塊)。因此,可以從除圖象數據之外的數據中獲得該參考值。例如,將具有特定值(參考值)的固定掩碼模式用作特徵值處理的參考值,其中固定掩碼模式的尺寸與象素塊的尺寸相同。此時,在隱藏操作期間,以掩碼模式中的參考值為基準,處理特定象素塊的特徵值,而在抽取操作期間,根據與參考值的差值,抽取數據。
E.第三實施方式本節說明在參考位置隱藏信息的方法。以上數據隱藏技術選擇原始圖象中的象素塊進行處理,並從經過處理的象素塊中抽取消息。因此,對於抽取消息而言,有關象素塊的位置信息是必不可少的。利用圖象中的某個區域(在第一實施方式中,原始圖象的左上角)作為基準,相對確定象素塊的位置。然而,如果他人修改該圖象(例如,剪切部分圖象),就不能夠確定該圖象的參考位置,從而不能抽取消息。再次參照圖3(a),如果剪切了部分原始圖象(該圖中虛線所圍區域),就不能根據剩餘的屏幕圖象確定原始參考位置(消息數組中第0個數組元素的位置M
)。
數據隱藏的重要要求為他人不能夠輕易刪除隱藏信息、即使該數據被他人蓄意修改或者該數據經過有損圖象壓縮處理(如JPEG)也能夠正確抽取隱藏信息。因此,如圖14所示,除消息之外,最好也將用於確定參考位置的信息隱藏在原始圖象中。隱藏這種位置信息使得從修改圖象或壓縮圖象中正確抽取消息成為可能。因此,也將用於確定媒體數據參考位置的信息隱藏在消息數據中。以上有關參考位置的信息被隱藏在整個消息數據中。如果剪切掉部分消息數據,則以上信息使得從被剪切的部分消息數據中,檢測該消息數據的參考位置或者檢測相對於該參考位置的任一位置成為可能。例如,如下所述,可以將圍繞參考位置的同心圓弧隱藏在整個圖象中。
(採用同心圓弧作為位置信息)將圖15所示的同心圓弧用作位置信息。該同心圓弧是以原始圖象的左上角(參考位置)為基礎,以特定間隔繪製的。為了從已剪切的部分圖象中正確抽取參考位置,假設被剪切的部分圖象至少包含有一條圓弧。因此,假設以上條件,設置同心圓弧之間的間隔。
利用圓的性質(即,如果採用另一個圓周上的一點作為圓心,以該圓周的半徑作為半徑繪製一個圓,則所繪製的圓周將通過第二個圓的圓心),就能夠確定以上參考位置。圖16說明在使用同心圓弧作為位置信息的情況下,參考位置B的確定。首先,確定被剪切的部分圖象內的任意三點(a1,a2,a3),其中(a1,a2,a3)分別出現在三條同心圓弧(c1,c2,c3)上。然後,從各點繪製具有不同半徑(r1,r2,r3,r4,…)的圓。此時,圓弧相交數最大的圓弧交點就是參考位置B。在數字圖象中,由於象素是以網格形式分散排列的,因此,通過按上述方法繪製圓弧,就能夠非常精確地確定參考位置。
對於遠離左上角(參考位置)的圓弧(該圓弧具有較大直徑)而言,以該部分圖象包含兩個或兩個以上圓弧的方式,降低圓弧之間的間隔。隨著圓弧的直徑越來越大,該圓弧將包含越來越多線性元素,引起參考位置計算值中的較大差別。降低間隔就能夠降低該差別,這是由於該部分圖象包含許多圓弧。此外,通過在左上角和右上角設置參考位置(即,同心圓弧的圓心),就可以根據兩個圓心來確定原始圖象的尺寸。
(利用同心圓弧進行隱藏)圖17說明了採用同心圓弧作為參考位置的隱藏和抽取方法。在圖17(a)中,採用第二實施方式中說明的方法在原始圖象中隱藏消息,隨後在該點隱藏同心圓弧作為位置信息。例如,將位於同心圓弧上的象素的LBP設置為「1」。採用LBP是由於改變該值幾乎不會在該圖象中引起明顯視覺變化。此外,在圖17(b)中,在原始圖象中隱藏位置信息,隨後在該點隱藏消息。
(利用同心圓弧進行抽取)創建一個二維表決數組T。通過綜合可能剪切的部分圖象的最大尺寸確定該數組的大小。例如,如果該數組的寬度為(2m-1),則該數組能夠處理的部分圖象最大為原始圖象的1/m。表決數組T中的各個元素表示參考位置B內的一個候選項,該元素的值表示該候選項的表決數。兩個坐標按以下方式關聯部分圖象位於表決數組的中心。
掃描以上部分圖象,一旦遇到LBP為「1」的點,就以該點為基準,繪製表決數組中所有已知半徑的圓弧。隨後,將表決數組T的各元素的表決數加1。此時,如果該點為隱藏各元素相對應點的圓周上的點,則至少一條繪製圓弧通過原始圓心。
對部分圖象交替進行垂直掃描和水平掃描,並且一旦遇到LBP為「1」的點,就執行以上過程。這樣,對應最大表決數元素的位置就是參考位置B。最大表決數集中在對應參考位置的表決數組的數組元素上。因此,儘管存在噪聲影響,本算法也能夠正確確定參考位置。
由於圖17(a)所示的方法利用隱藏的消息改變圖象數據,於是根據所確定的參考位置從部分圖象中適當地抽取消息。因此,如果不採用能夠抵抗隨機噪聲的數據隱藏方法,信息抽取就不會成功。然而,圖17(b)所示的方法在抽取隱藏消息之前,並不改變該隱藏消息,所以該方法比圖17(a)所示的方法更能抵抗噪聲。因此,本算法允許採用多種數據隱藏方法。然而,應該注意到根據本發明,可能破壞有關參考位置的部分信息。
F.特定應用具體而言,可以在以下系統中應用採用上述算法的數據隱藏和數據抽取方法。
(電視圖象CM事件計數)對於已預定了廣播的人員而言,是否將其商業廣告節目廣播所請求的次數是重要的。可以採用本算法來構造圖18所示的系統,以便自動計算廣播次數。該廣播站具有一個存儲裝置、一個編碼器和一個廣播裝置。存儲裝置存儲商業廣告節目圖象,編碼器在商業廣告節目圖象中隱藏用於計算廣播次數的信息。廣播裝置廣播其中隱藏有以上信息的商業廣告節目圖象。該系統利用上述數據隱藏方法編碼商業廣告節目圖象。根據計數信息中的數據(該數據被分散隱藏到商業廣告節目圖象中)進行編碼。此外,接收站具有一個接收器、一個解碼器和一個計數器。接收器接收其中隱藏有計數信息的商業廣告節目圖象。解碼器從商業廣告節目圖象中抽取計數信息。根據抽取的計數信息,計數器計算廣播次數。該接收系統根據上述數據抽取方法抽取計數信息。根據計數信息中的數據,通過確定計數信息在該商業廣告節目圖象上的排列位置,並從該位置抽取數據進行解碼。
廣播站廣播具有隱藏計數信息的商業廣告節目圖象,計數信息使得接收站可以根據隱藏算法來計算廣播次數。因此,通過抽取計數信息,接收站就能夠計算廣播次數。
(防火牆審查)拓撲(如防火牆)內外的所有HTTP傳輸都要經過位於該拓撲上的代理伺服器。可以利用以上性質來審查該代理伺服器上的圖象數據和聲音數據。如果檢測到其中隱藏有水印的媒體數據,就將其留在日誌中。這樣,就能夠檢測非法分布數據。圖19是該系統的框圖。伺服器具有一個存儲裝置和一個編碼器,存儲裝置存儲媒體數據,而編碼器用於在該媒體數據中隱藏消息數據。伺服器控制編碼器,以便在該媒體數據(該數據是從存儲裝置中讀取的)中隱藏消息數據,同時,該伺服器把輸出數據傳送到Internet。因此,可以根據消息數據的內容,利用上述隱藏方法在媒體數據中分散隱藏消息數據。接收站具有一個代理伺服器和一個解碼器,其中代理伺服器從Internet接收媒體數據(已經在傳輸站對該媒體數據進行了隱藏處理),而解碼器從接收數據中抽取消息數據。根據消息數據的內容,通過利用上述數據抽取方法確定分布消息數據的位置,進行抽取操作。
(應用於旅行社伺服器)WWW伺服器(由旅行社控制)上顯示的旅遊場所照片中隱藏有附加信息(如旅遊場所的說明或地圖、URL點信息)。通過採用WWW瀏覽器對該照片進行網絡複製,隨後就可以從該照片中抽取地圖,以便檢查說明、交通和路線。如圖20所示,即使該客戶已經與WWW伺服器斷開連接,也能夠抽取附加信息。與從照片數據文件中分離附加信息文件的方法相比,利用隱藏方法就能夠保存照片數據和附加信息之間的密切關係,因此,可以輕而易舉地保存數據。
(指紋和水印)指紋是指發布給他人的媒體數據中的隱藏標記,該標記使得媒體數據的發行者能夠確定他人的身份。如果有人從事了非法活動(如非法拷貝),則利用該指紋就能確定活動源。因此,如果該人正在非法發布拷貝,則他或她將對該非法拷貝負責。
另一方面,水印是指發布給他人的媒體數據中的隱藏標記,該標記使得媒體數據的發行者能夠確定他或她的身份。這樣,就能夠確保在發布期間該數據不會被修改,即,該數據是由合法發行者發行的,並在發布期間未作修改。
為了隱藏以上標記,可以構造圖21所示的系統。當向他人發布數據時,該數據內隱藏有一個水印。可以從他人那裡得到的數據中抽取該標記,以便檢查。
除以上系統之外,可以將本發明應用於採用電纜、衛星通信或DVD-ROM(DVD-RAM)存儲介質的系統。具體而言,如果採用DVD-ROM(DVD-RAM)發布數據,則該數據中包含有關複製許可的隱藏信息,即,是允許複製還是禁止複製。終端用戶用來複製數據的DVD播放器具有限制複製功能。因此,如果複製播放器發現從其介質中抽取的複製許可狀態為禁止複製的話,就啟動禁止複製。
G.數據抽取系統和實現該系統的半導體集成電路具體而言,可以在具有以下結構的系統中實現上述數據抽取方法。此外,可以在一塊晶片(如半導體集成電路)上提供以上系統的大部分功能。為了避免重複,省略了該系統和半導體集成電路特性的詳細說明,但是,在數據抽取方法中說明的術語、其擴充以及其變更同樣適用於這些系統。根據以上方法的詳細說明,對於本領域熟練的技術人員而言,以下術語的細節是顯而易見的。
具體而言,如圖22所示,用於從媒體數據中抽取消息數據的系統具有一個轉換裝置、一個確定裝置、一個特徵值計算裝置、一個存儲裝置和一個抽取裝置。轉換裝置為一個A/D轉換器,該轉換器將由模擬信號構成的媒體數據(其中隱藏有消息數據)轉換為數位訊號,隨後轉換器輸出該數位訊號。確定裝置確定由轉換裝置輸出的媒體數據中隱藏有消息數據的一個數據塊。特徵值計算裝置決定由確定裝置確定的數據塊的特徵值。存儲裝置存儲轉換規則,該規則把需要抽取的數據內容同特徵值的參考值與該數據塊的特徵值之間的差值聯繫起來。抽取裝置依據該數據塊的特徵值,參照轉換規則,抽取隱藏的消息數據。
參考值為媒體數據中出現的不同於第一數據塊的第二數據塊的特徵值。存儲在存儲裝置內的轉換規則規定如果第一塊的特徵值大於第二塊的特徵值,則抽取該位中的一位;反之,如果第一塊的特徵值小於第二塊的特徵值,就選擇另一位。
此外,如圖23所示,由安裝有上述系統的晶片構成的半導體集成電路至少具有一個計算裝置和一個抽取裝置。計算裝置決定媒體數據(由輸入信號構成)中已經被確定為隱藏有消息數據的數據塊的特徵值。抽取裝置根據該數據塊的特徵值,參照轉換規則,抽取隱藏消息,其中轉換規則把需要抽取的數據內容同特徵值的參考值與該數據塊的特徵值之間的差值聯繫起來。
如上所述,如果在媒體數據(如圖象或聲音)中分散隱藏消息數據,則本發明根據媒體數據和消息數據的內容確定該消息的隱藏位置。因此,本發明使得數據隱藏處理能夠防止他人輕易修改消息。
權利要求
1.一種數據隱藏方法,其中用媒體數組表示媒體數據,而用消息數組表示消息數據,該方法根據確定所述媒體數組的特定數組元素的狀態值,將所述消息數組的元素分散隱藏到所述媒體數組中,該方法包括以下步驟(a)確定第j個狀態值,其中j≥0;(b)根據所述第j個狀態值、第j個狀態值指示的所述媒體數組的數組元素以及所述消息數組的數組元素,確定第j+1個狀態值;和(c)相對於所述第j+1個狀態值指示的所述媒體數組的數組元素,隱藏數據。
2.一種數據隱藏方法,其中用媒體數組表示媒體數據,而用消息數組表示消息數據,該方法根據確定所述媒體數組的特定數組元素的狀態值,將所述消息數組的J個元素分散隱藏到所述媒體數組中,該方法包括以下步驟(a)確定第j個狀態值,其中j≥0;(b)根據所述第j個狀態值、第j個狀態值指示的所述媒體數組的數組元素以及所述消息數組的數組元素,確定第j+1個狀態值;(c)相對於所述第j+1個狀態值指示的所述媒體數組的數組元素,隱藏數據;和(d)重複執行步驟(a)到步驟(c),隱藏所述消息數組的J個元素。
3.根據權利要求1或權利要求2的一種數據隱藏方法,其中如果在所述步驟(a)中j=0,則根據所述消息數組的數組元素內的數據,確定初始狀態值。
4.根據權利要求1或權利要求2的一種數據隱藏方法,其中如果在所述步驟(a)中j=0,就把所述消息數組的所有數組元素內的數據的異或作為輸入,輸入到所述初始函數,所述初始函數的輸出作為所述初始狀態值。
5.根據權利要求1或權利要求2的一種數據隱藏方法,其中在所述步驟(b)中,根據第j個狀態值、第j個狀態值指示的媒體數組的數組元素內的數據以及所述消息數組的數組元素內的數據的異或,確定第j+1個狀態值。
6.根據權利要求1或權利要求2的一種數據隱藏方法,其中在所述步驟(b)中,把所述第j個狀態值、第j個狀態值指示的所述媒體數組的數組元素內的數據、以及所述消息數組的數組元素內的數據的異或作為輸入,輸入到所述位置轉換函數,所述位置轉換函數的輸出作為所述第j+1個狀態值。
7.根據權利要求6的一種數據隱藏方法,其中所述隱藏位置轉換函數是一加密函數,該函數使用公開密鑰方法中使用的密鑰作為參數。
8.根據權利要求1或權利要求2的一種數據隱藏方法,其中在所述步驟(c)中,所述隱藏數據為第j個狀態值指示的所述媒體數組的數組元素與所述消息數組的數組元素的異或。
9.根據權利要求1或權利要求2的一種數據隱藏方法,其中在所述步驟(c)中,把對應於所述第j+1個狀態值指示的所述媒體數組的數組元素的一個象素塊和第二象素塊進行配對,並根據轉換規則處理象素塊的特徵值,以便隱藏該隱藏數據。
10.根據權利要求9的一種數據隱藏方法,其中所述第二象素塊與所述第一象素塊相鄰,第一象素塊與第二象素塊構成一對。
11.根據權利要求9的一種數據隱藏方法,其中所述轉換規則定義一條用於根據有關配對象素塊之間的特徵值的差值處理所述特徵值的規則。
12.根據權利要求11的一種數據隱藏方法,其中所述特徵值為所述象素塊的亮度值。
13.根據權利要求11的一種數據隱藏方法,其中所述特徵值為所述象素塊的方差。
14.根據權利要求2的一種數據隱藏方法,該方法還包括在步驟(d)中抽取隱藏有所述隱藏數據的所述媒體數組以及最終狀態值。
15.一種數據抽取方法,其中用消息數組表示消息數據,用隱藏數組表示包含有所述消息數據的隱藏數據,而用媒體數組表示分散隱藏有所述隱藏數據的媒體數據,該方法根據指示所述媒體數組的特定數組元素的狀態值從所述媒體數組中抽取所述消息數組,該方法包括以下步驟(a)確定第j個狀態值,其中j≥0;(b)從所述第j個狀態值指示的所述媒體數組的數組元素中抽取所述隱藏數組的一個數組元素;(c)根據第j個狀態值和該隱藏數組的所述抽取數組元素,確定第j-1個狀態值;和(d)根據所述第j-1個狀態值指示的所述媒體數組的數組元素和所述隱藏數組的抽取數組元素,抽取所述消息數組的一個數組元素。
16.一種數據抽取方法,其中用消息數組表示消息數據,用隱藏數組表示包含有所述消息數據的隱藏數據,而用媒體數組表示分散隱藏有所述隱藏數據的媒體數組,該方法根據指示所述媒體數組的特定數組元素的狀態值從所述媒體數組中抽取所述消息數組,該方法包括以下步驟(a)確定第j個狀態值,其中j≥0;(b)從所述第j個狀態值指示的所述媒體數組的數組元素中抽取所述隱藏數組的一個數組元素;(c)根據第j個狀態值和該隱藏數組的所述抽取數組元素,確定第j-1個狀態值;(d)根據所述第j-1個狀態值指示的所述媒體數組的數組元素和所述隱藏數組的抽取數組元素,抽取所述消息數組的一個數組元素;和(e)遞歸執行步驟(a)到步驟(c),直至滿足抽取結束條件。
17.根據權利要求15或權利要求16的一種數據抽取方法,其中在所述步驟(a)中,把用於啟動抽取操作的第一狀態值作為抽取操作的所需信息,提供給抽取程序。
18.根據權利要求17的一種數據抽取方法,其中用於啟動抽取操作的第一狀態值為隱藏所述消息數組期間產生的最終狀態值。
19.根據權利要求15或權利要求16的一種數據抽取方法,其中在所述步驟(c)中,根據所述第j個狀態值和所述隱藏數組的數組元素內的從第j個狀態值指示的所述媒體數組的數組元素中抽取的數據的異或,確定第j-1個狀態值。
20.根據權利要求15或權利要求16的一種數據抽取方法,其中提供一個抽取位置轉換函數,並且在所述步驟(c)中,所述第j個狀態值、和從所述第j個狀態值指示的所述媒體元素的數組元素中抽取的所述隱藏數組的數組元素內的數據、以及所述位置轉換函數的輸出的異或,作為第j-1個狀態值。
21.根據權利要求20的一種數據抽取方法,其中所述抽取位置轉換函數為一解密函數,該函數使用公開密鑰方法中使用的公開密鑰作為參數。
22.根據權利要求15或權利要求16的一種數據抽取方法,其中在所述步驟(b)中,所述隱藏數組的數組元素為第j-1個狀態值指示的所述媒體數組的數組元素和所述消息數組的數組元素的異或。
23.根據權利要求15或權利要求16的一種數據抽取方法,其中在所述步驟(b)中,把對應於所述第j個狀態值指示的所述媒體數組的數組元素的象素塊和第二象素塊進行配對,並根據轉換規則,按照所述配對象素塊特徵值之間的關係,抽取隱藏數據。
24.根據權利要求23的一種數據抽取方法,其中所述第二象素塊與所述第一象素塊相鄰,第一象素塊與第二象素塊構成一對。
25.根據權利要求23的一種數據抽取方法,其中所述抽取規則是基於所述配對象素塊之間的特徵值的差值的,並且與定義隱藏操作期間所述特徵值處理的轉換規則相對應。
26.根據權利要求25的一種數據抽取方法,其中所述特徵值為所述象素塊的亮度值。
27.根據權利要求25的一種數據抽取方法,其中所述特徵值為所述象素塊的方差。
28.根據權利要求16的一種數據抽取方法,其中利用初始函數隱藏數據,以便根據所述消息數組的數組元素內的數據,確定初始狀態值,該方法還包括以下步驟(f)在所述步驟(d)中,一旦抽取了所述消息數組的一個元素,就利用所述消息數組的所有數組元素內的數據作為輸入,以便確定所述抽取結束條件,抽取結束條件為所述初始函數的輸出等於所述第j-1個狀態值。
29.根據權利要求28的一種數據抽取方法,其中所述消息數組的所有抽取數組元素內的數據的異或作為所述初始函數的輸入。
30.根據權利要求27的一種數據抽取方法,其中在步驟(f)中,當所述初始函數的輸出等於所述第j-1個狀態值時,就認為抽取操作結束。
31.一個廣播系統,該系統包括一個存儲裝置,該裝置存儲商業廣告節目圖象;一個編碼器,該編碼器在所述商業廣告節目圖象中,隱藏用於計算所述商業廣告節目圖象的廣播次數的信息;和一個廣播裝置,該裝置廣播其中隱藏有所述信息的所述商業廣告節目圖象,其中所述信息是根據所述計數信息內的數據,分散隱藏在所述商業廣告節目圖象中的。
32.根據權利要求31的一個廣播系統,其中在所述商業廣告節目圖象中隱藏所述信息的方法為權利要求1到權利要求14之任一權利要求中說明的數據隱藏方法。
33.一個接收系統,該系統包括一個接收器,該接收器接收包含隱藏信息的商業廣告節目圖象,其中隱藏信息用於計算所述商業廣告節目圖象的廣播次數;一個解碼器,該解碼器用於從所述商業廣告節目圖象中抽取所述信息;和一個計數器,該計數器根據所述抽取信息,計算所述商業廣告節目圖象的廣播次數,其中根據所述計數信息,確定所述商業廣告節目圖象內所述分散隱藏的信息的位置,隨後抽取該信息。
34.根據權利要求33的一個接收系統,其中從所述商業廣告節目圖象中抽取所述信息的方法為權利要求15到權利要求30之任一權利要求中說明的數據抽取方法。
35.一個向網絡傳送數據的系統,該系統包括一個存儲裝置,該裝置存儲媒體數據;一個編碼器,該編碼器用於在所述媒體數據中隱藏消息數據;和一個伺服器,該伺服器控制編碼器,以便在所述媒體數據中隱藏所述消息數據,其中媒體數據是從所述存儲裝置中讀取的,同時,該伺服器把所述編碼器的輸出數據傳送到網絡,其中根據所述消息數據的內容,把所述消息數據分散隱藏到所述媒體數據中。
36.根據權利要求35的用於向網絡傳送數據的系統,其中所述隱藏方法為權利要求1到權利要求14之任一權利要求中說明的數據隱藏方法。
37.一個從網絡接收數據的系統,該系統包括一個接收裝置,該裝置從網絡上接收其中隱藏有消息數據的媒體數據;和一個解碼器,該解碼器用於從所述媒體數據中抽取所述消息數據;其中根據所述消息數據的內容,確定所述媒體數據內所述分散的消息數據的位置,隨後抽取該消息數據。
38.根據權利要求37的用於從網絡上接收數據的系統,其中所述抽取方法為權利要求15到權利要求30之任一權利要求中說明的數據抽取方法。
39.一種數據隱藏方法,其中用第一數組表示第一數據,而用第二數組表示第二數據,該方法根據確定所述第一數組的特定數組元素的狀態值,將所述第二數組的元素分散隱藏到所述第一數組中,該方法包括以下步驟(a)確定第j個狀態值,其中j≥0;(b)根據所述第j個狀態值、第j個狀態值指示的所述第一數組的數組元素以及所述第二數組的數組元素,確定第j+1個狀態值;和(c)相對於所述第j+1個狀態值指示的所述第一數組的數組元素,隱藏數據。
40.一種數據抽取方法,其中用第二數組表示第二數據,用第三數組表示包含有所述第二數據的第三數據,而用第一數組表示分散隱藏有所述第三數據的第一數據,該方法根據指示所述第一數組的特定數組元素的狀態值從所述第一數組中抽取所述第二數組,該方法包括以下步驟(a)確定第j個狀態值,其中j≥1;(b)從所述第j個狀態值指示的所述第一數組的數組元素中,抽取所述第三數組的一個數組元素;(c)根據第j個狀態值和所述第三數組的抽取數組元素,確定第j-1個狀態值;和(d)根據所述第j-1個狀態值指示的所述第一數組的數組元素和所述第三數組的抽取數組元素,抽取所述第二數組的一個數組元素。
41.用於在媒體數據中隱藏數據的數據隱藏方法,其中在所述消息數據中,隱藏有關所述消息數據和所述媒體數據的參考位置的信息,並且其中在所述消息數據中,隱藏有關所述參考位置的信息,並且即使剪切了部分所述消息數據作為部分消息數據,也可以檢測原始圖象數據的參考位置或基於所述參考位置的相對位置。
42.根據權利要求41的用於在媒體數據中隱藏數據的數據隱藏方法,其中有關所述參考位置的信息為圍繞所述參考位置繪製的同心圓弧。
43.用於在媒體數據中隱藏數據的數據隱藏方法,該方法包括以下步驟(a)標識其中隱藏有消息數據的媒體數據內的一個數據塊;(b)確定所述標識數據塊的特徵值;和(c)處理所述數據塊的特徵值,以便依據轉換規則,隱藏該消息數據,其中轉換規則把需要隱藏的數據的內容同特徵值的參考值與所述數據塊的特徵值之間的差值聯繫起來。
44.根據權利要求43的用於在媒體數據中隱藏數據的數據隱藏方法,其中根據媒體中出現的不同數據塊的特徵值,提供所述參考值。
45.用於在媒體數據中隱藏數據的數據隱藏方法,該方法包括以下步驟(a)確定媒體數據內的一對數據塊,該媒體數據包括第一數據塊和第二數據塊;(b)比較所述確定的特徵值,處理構成所述對的所述數據塊的特徵值,以便隱藏該消息數據;(c)比較所述確定的特徵值之間的差值,並且依據轉換規則,處理構成所述對的所述各數據塊的特徵值,以便在消息數據中隱藏部分數據;(d)重複步驟(a)到步驟(c),直至隱藏了所有消息數據。
46.用於在媒體數據中隱藏數據的數據隱藏方法,該方法包括以下步驟(a)確定媒體數據內的一對數據塊,該媒體數據包括第一數據塊和第二數據塊;和(b)確定構成所述配對的所述各塊的特徵值;(c)根據轉換規則,交換構成所述配對的所述塊的特徵值,以便隱藏消息數據,其中轉換規則確定數據塊之間的特徵值的差值。
47.根據權利要求44、45或46的一種數據隱藏方法,其中所述第二數據塊與所述第一數據塊相鄰,第一數據塊和第二數據塊構成一對。
48.根據權利要求44、45或46的一種數據隱藏方法,其中轉換規則規定如果所述第一數據塊的特徵值大於第二數據塊的特徵值,就隱藏該位中的一位,反之,如果所述第一數據塊的特徵值小於第二數據塊的特徵值,就隱藏另一位。
49.根據權利要求44、45或46的一種數據隱藏方法,其中該方法還包括以下步驟如果所述第一數據塊和所述第二數據塊之間的特徵值的差大於第一閾值,就禁止執行所述步驟(c),從而防止了媒體數據降質。
50.根據權利要求44、45或46的一種數據隱藏方法,其中該方法還包括以下步驟如果所述第一數據塊和所述第二數據塊之間的特徵值的差小於第二閾值,就禁止執行所述步驟(c),從而防止了在抽取消息數據中精度的下降。
51.根據權利要求44、45或46的一種數據隱藏方法,其中所述數據塊為一象素塊,並且所述特徵值為所述象素塊的亮度值。
52.根據權利要求43、45或46的一種數據隱藏方法,其中所述數據塊為一象素塊,並且所述特徵值為所述象素塊的方差值。
53.用於從隱藏有消息數據的媒體數據中抽取消息數據的數據抽取方法,該方法包括以下步驟(a)標識其中隱藏有消息數據的媒體數據內的數據塊中的一個;(b)確定所述標識數據塊的特徵值;和(c)根據所述數據塊的特徵值,依據轉換規則,抽取該消息數據,其中轉換規則把需要抽取的數據的內容同特徵值的參考值與所述數據塊的特徵值之間的差值聯繫起來。
54.根據權利要求53的一種數據抽取方法,其中所述參考值存在於媒體數據中,並且該值為不同於所述數據塊的數據塊的特徵值。
55.用於從隱藏有消息數據的媒體數據中抽取消息數據的數據抽取方法,該方法包括以下步驟(a)標識其中隱藏有消息數據的媒體數據內的一對數據塊;(b)確定構成所述配對的所述數據塊的特徵值;和(c)根據所述相關數據塊的特徵值,依據轉換規則,抽取隱藏數據,其中轉換規則把需要抽取的數據的內容同構成所述配對的所述數據塊之間的特徵值的差值聯繫起來。
56.根據權利要求54或55的一種數據抽取方法,其中所述第二數據塊與第一數據塊相鄰,第一數據塊和第二數據塊構成一對。
57.根據權利要求54或55的一種數據抽取方法,其中所述轉換規則規定如果所述第一數據塊的特徵值大於第二數據塊的特徵值,就抽取該位中的一位,反之,如果所述第一數據塊的特徵值小於第二數據塊的特徵值,就抽取另一位。
58.根據權利要求54或55的一種數據抽取方法,其中,如果構成配對的第一數據塊和第二數據塊之間的特徵值的差值小於特定閾值,則所述轉換規則就確定該配對數據塊中未隱藏媒體數據。
59.根據權利要求53或55的一種數據抽取方法,其中所述數據塊為象素塊,並且其中所述特徵值為所述象素塊的亮度值。
60.根據權利要求53或55的一種數據抽取方法,其中所述數據塊為象素塊,並且其中所述特徵值為所述象素塊的方差值。
61.用於從隱藏有消息數據的媒體數據中抽取消息數據的數據抽取系統,該系統包括一個轉換裝置,該轉換器將由模擬信號構成的包含隱藏消息數據的消息數據轉換為數位訊號,隨後輸出該數位訊號;一個確定裝置,該裝置確定隱藏有消息數據的媒體數據中的數據塊中的一個;一個特徵值計算裝置,該裝置決定由所述確定裝置確定的所述數據塊的特徵值;一個存儲裝置,該裝置存儲轉換規則,轉換規則把需要抽取的數據內容同特徵值的參考值與所述數據塊的特徵值之間的差值聯繫起來;和一個抽取裝置,該裝置依據所述數據塊的特徵值,參照轉換規則,抽取消息數據。
62.根據權利要求61的一種數據抽取系統,其中所述參考值存在於該媒體數據中,並且為不同於所述數據塊的數據塊的特徵值。
63.根據權利要求61的一種數據抽取系統,其中所述轉換規則規定如果所述第一數據塊的特徵值大於第二數據塊的特徵值,就抽取該位中的一位,反之,如果所述第一數據塊的特徵值小於第二數據塊的特徵值,就抽取另一位。
64.用於從隱藏有消息數據的媒體數據中抽取消息數據的半導體集成電路,該電路包括用於確定由輸入信號構成的媒體數據中某個數據塊的特徵值的設備,其中已經確定該數據塊中隱藏有消息數據;和一個抽取裝置,該裝置根據所述數據塊的特徵值,參照轉換規則,抽取隱藏的消息數據,其中轉換規則把需要抽取的數據內容同特徵值的參考值與所述數據塊的特徵值之間的差值聯繫起來。
65.根據權利要求64的半導體集成電路,其中所述參考值存在於該媒體數據中,並且為不同於所述數據塊的數據塊的特徵值。
66.根據權利要求65的半導體集成電路,其中所述轉換規則規定如果所述第一數據塊的特徵值大於第二數據塊的特徵值,就抽取該位中的一位,反之,如果所述第一數據塊的特徵值小於第二數據塊的特徵值,就抽取另一位。
全文摘要
在消息數據中隱藏媒體數據的方法,和抽取隱藏數據的數據抽取方法,用媒體數組表示媒體數據,而用消息數組表示消息數據,從而可以根據狀態值指示媒體數組的特定數組元素的狀態值,將消息數組的數組元素分散隱藏到消息數組中。隱藏方法包括以下步驟:(a)確定第j(j≥0)個狀態值S
文檔編號H04N1/44GK1198284SQ9719093
公開日1998年11月4日 申請日期1997年2月13日 優先權日1996年6月20日
發明者沼尾雅之, 清水周一, 森本典繁, 小林明 申請人:國際商業機器公司