專利名稱:科學(xué)數(shù)據(jù)集中的數(shù)字水印技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字水印領(lǐng)域,具體的說,本發(fā)明提出一種數(shù)字水印技術(shù)來保護科學(xué)數(shù)據(jù)的版權(quán)。數(shù)字水印技術(shù)可以在數(shù)字產(chǎn)品中嵌入版權(quán)信息來作為產(chǎn)品所有權(quán)的證據(jù)??茖W(xué)數(shù)據(jù)是經(jīng)過科學(xué)實驗,統(tǒng)計后得到的離散數(shù)據(jù),例如某地區(qū)一年的氣溫紀錄、某天體的觀測記錄、某客戶群的市場行為統(tǒng)計、地理數(shù)據(jù)等等。
背景技術(shù):
作為信息隱藏技術(shù)的一個分支,數(shù)字水印技術(shù)在近年來得到越來越廣泛的應(yīng)用。然而目前數(shù)字水印的應(yīng)用領(lǐng)域大多局限在數(shù)字多媒體中,如數(shù)字圖像、數(shù)字音頻、數(shù)字視頻。數(shù)字多媒體的特點是1.數(shù)據(jù)在時間或空間上有固定的順序。即,多媒體數(shù)據(jù)通常包括兩個平面,一個是數(shù)據(jù)平面,另外一個是順序平面。
2.數(shù)據(jù)的接收者是人類的感官。
傳統(tǒng)的水印技術(shù)大多利用了上述兩個特點,即1.水印嵌入于數(shù)據(jù)平面,利用順序平面來保持水印提取的同步。
2.水印嵌入和攻擊的強度均以不可被人類的感官察覺為界限。
而科學(xué)數(shù)據(jù)從抽象的層次來對待一切數(shù)據(jù),不再局限于多媒體,所以不再具有多媒體數(shù)據(jù)特有的優(yōu)勢1.數(shù)據(jù)是抽象的,統(tǒng)一的,無序的。如地理坐標(biāo)數(shù)據(jù)雖然地理坐標(biāo)提供了空間上的位置信息,但該信息本身被視為數(shù)據(jù),并將被嵌入水印。不存在額外的順序平面。
2.數(shù)據(jù)的接收者是抽象的數(shù)學(xué)模型。數(shù)據(jù)在這里被提取、分析。水印嵌入和攻擊的強度均以不破壞數(shù)據(jù)的科學(xué)價值為界限。
所以傳統(tǒng)的水印技術(shù)一般不能應(yīng)用于科學(xué)數(shù)據(jù)的版權(quán)保護中。
發(fā)明內(nèi)容
1.數(shù)據(jù)格式我們的水印技術(shù)可以通用于如下形式的數(shù)據(jù)。離散數(shù)據(jù)集S由大量的數(shù)據(jù)組構(gòu)成。每一組數(shù)據(jù)都是一個n維向量(X0,X1,...,Xn-1)(比如橫坐標(biāo)、縱坐標(biāo)、運動方向、速率構(gòu)成一個4維向量)。所有組對應(yīng)位置的Xi(0≤i≤n-1)都有著相同的物理意義和測量精度。
下面的敘述中我們用(X0,X1,...,Xn-1)、Xi代表變量,用(x0,x1,...,xn-1)、xi代表具體的實例,|S|代表集合S包含元素的總數(shù)。
2.失真度量水印的嵌入和攻擊都必須在適當(dāng)?shù)氖д娣秶畠?nèi),否則會影響數(shù)據(jù)的科學(xué)價值。科學(xué)數(shù)據(jù)對失真的要求有其自身的特點
1)數(shù)據(jù)有精度要求,比如精確到小數(shù)點后第幾位。
2)相對數(shù)量而言,更加重視質(zhì)量——對數(shù)據(jù)的正確性要求嚴格,但是對數(shù)據(jù)量增加或刪除的限制相對放松。比如一組植物生長測量數(shù)據(jù),如果測量數(shù)據(jù)有較大失誤,那么數(shù)據(jù)的科學(xué)價值就降低了。
相對而言,增加或減少幾個測試對象并不會影響數(shù)據(jù)的整體價值。
在一個n維向量(X0,X1,...,Xn-1)中,可能各個Xi的物理意義、精度要求不盡相同,所以我們需要逐個考慮失真度。我們采用下面的均方誤差來度量|S|個X1被修改為 后的失真度MSEi=1|S|Σ|S|(X~i-Xi)2---(1)]]>水印的嵌入和攻擊都必須滿足MSEi≤τi(2)其中τi是常量,與Xi對精度的要求有關(guān)。我們設(shè)定τi=10-2ki2,]]>ki為X1精確到小數(shù)點后的位數(shù)。除了對數(shù)據(jù)修改引進的失真度量外,對于數(shù)據(jù)的增刪,我們規(guī)定增刪的數(shù)據(jù)量|S′|和原數(shù)據(jù)量|S|應(yīng)該滿足|S′|≤|S|2---(3)]]>3.算法描述算法的中心思想是對數(shù)據(jù)分類然后修改數(shù)據(jù)的統(tǒng)計特征。
定義一。給定數(shù)據(jù)Data,定義核Ker(Data)為Data舍棄了最高精度位剩下的部分。
定義二。給定數(shù)據(jù)Data,定義非核Ker(Data)為Data非數(shù)據(jù)核的部分。
定義三。數(shù)據(jù)集S的核Ker(S)={Ker(X)|X∈S)。
例如,數(shù)據(jù)Data為二維向量(1.141,2.015)且精確到1/1000,那么Ker(Data)=(1.14,2.01),Ker(Data)=(0.001,0.005)。數(shù)據(jù)核是數(shù)據(jù)可信度的保證,也是數(shù)據(jù)科學(xué)價值的依附點。我們的算法將基于數(shù)據(jù)核分類。數(shù)據(jù)的非核是可以微調(diào)的部分,我們的算法添加水印于數(shù)據(jù)非核中。
3.1.分類方法給定數(shù)據(jù)Data、對稱加密算法E、密鑰K和映射fEK(Ker(Data))→ZN,數(shù)據(jù)Data被分成N類。具體的計算方法為
f(EK(Ker(Data))) (4)數(shù)據(jù)核保證了分類結(jié)果不會受到數(shù)據(jù)微小變動的影響,對稱加密算法保護了分類結(jié)果不被公開并能防止對數(shù)據(jù)直接進行統(tǒng)計分析。例如,數(shù)據(jù)Data為二維向量(1.141,2.015),如果精確到1/1000,那么Ker(Data)=(1.14,2.01)。假設(shè)加密后結(jié)果為123456,N=10。定義f為模10運算有123456 mod 10=6,數(shù)據(jù)最終被分到第6類。
均勻假設(shè)。數(shù)據(jù)集S的核Ker(S)滿足|Ker(S)|足夠大,那么按照(4)的方法得到的分類是比較均勻的(即,從0到N-1類,每一類的數(shù)據(jù)量大致相當(dāng),且不存在數(shù)據(jù)量過小的類)。
我們在這里對數(shù)據(jù)量最小的類做如下估算假設(shè)劃分S為N類后,某個類對應(yīng)的子集為s,那么在隨機映射foEK的假設(shè)下Pr[|s|=k]=|Ker(S)|k(1N)k(1-1N)|Ker(S)|-k---(5)]]>這是一個二項式分布,其期望為 方差為 根據(jù)Chebyshev公式有Pr[|s|≤|Ker(S)|2N]≤Pr[||s|-|Ker(S)|N|≥|Ker(S)|2N]≤(N-1)×|Ker(S)|N2|Ker(S)|24N2=N-14|Ker(S)|<N4|Ker(S)|---(6)]]>根據(jù)Chernoff公式有Pr[|s|<|Ker(S)|2N]<(e-12(12)12)|Ker(S)|N=exp((ln2-1)|Ker(S)|2N)---(7)]]>結(jié)合(6),(7)有Pr[|s|<|Ker(S)|2N]<min(N4|Ker(S)|,exp((ln2-1)|Ker(S)|2N))---(8)]]>根據(jù)(8)計算的結(jié)果列表如下
假設(shè)事件Ei(0≤i≤N)代表第i個子集的數(shù)據(jù)量小于
的概率,Ei之間并不獨立,但是我們可以估算一下N個子集中至少有一個子集數(shù)據(jù)量小于
的概率Pr[E0∪E1∪···∪EN-1]≤Pr[E0]+Pr[E1]+···+Pr[EN-1]=Nmin(N4|Ker(S)|,exp((ln2-1)|Ker(S)|2N))---(9)]]>假設(shè)S是2維向量(X1,X2)的集合,N=128。如果|Ker(S)|=10000,那么由(9)可知,劃分S后至少存在一個子集數(shù)據(jù)量小于|Ker(S)|/2N=39的概率不超過0.08%。所以我們的分類方法對于至少99.9%的S都可以保證劃分后每一個子集的數(shù)據(jù)量都大于39。上面的推導(dǎo)表明均勻假設(shè)是合理的。
說明。為了保證均勻假設(shè)的正確性,欲添加水印的科學(xué)數(shù)據(jù)集必須滿足|Ker(S)|足夠大。
3.2.水印嵌入算法數(shù)據(jù)為大量n維向量(X0,X1,...,Xn-1)組成的無序集合,按照(4)均勻分成N類。我們的算法在每一類中嵌入n比特。假設(shè)某個向量(x0,x1,...,xn-1)被劃分到的類中需要嵌入比特串b0b1...bn-1,那么修改xi(0≤i≤n-1)的非核,使其具有和bi相同的奇偶性。對于所有向量、所有xi均經(jīng)過上述的調(diào)整后,我們成功嵌入了N×n比特的水印數(shù)據(jù)。我們給出偽代碼描述如下輸入。
數(shù)據(jù)集S={(X0,X1,...,Xn-1))水印比特矩陣WN×n=b0,0b0,1···b0,n-2b0,n-1b1,0b1,1···b1,n-2b1,n-1...............bN-2,0bN-2,1···bN-2,n-2bN-2,n-1bN-1,0bN-1,1···bN-1,n-2bN-1,n-1,]]>其中bi,j為0或1水印嵌入。
對數(shù)據(jù)集中的每一個向量(x0,x1,...,xn-1){分類f(EK(Ker(x0,x1,...,xn-1)))→i,(0≤i≤N-1)對該向量中每一個元素xj(0≤j≤n-1)
{如果Ker(xj)奇偶性與bi,j相同,不修改數(shù)據(jù),轉(zhuǎn)而考察下一個xj否則,調(diào)整Ker(xj),使其奇偶性與bi,j相同}}輸出。
添加了水印后的數(shù)據(jù)集S~={(X~0,X~1,···,X~n-1)}]]>例如,(x0,x1)=(1.141,2.015),n=2,如果精確到1/1000,那么Ker(x0,x1)=(1.14,2.01)。假設(shè)加密后結(jié)果為123456,N=10。定義f為模10運算有123456 mod 10=6,數(shù)據(jù)最終被分到第6類??偣部梢郧度隢×n=10×2=20比特。此時對x0有i=6,j=0,調(diào)整1.141的非核即小數(shù)點后第三位的奇偶性和b6,0相同;對x1有i=6,j=1,調(diào)整2.015的非核即小數(shù)點后第三位的奇偶性和b6,1相同。假設(shè)b6,0=1,b6,1=0,那么調(diào)整后的(x~0,x~1)=(1.141,2.016).]]>3.3.水印提取算法數(shù)據(jù)為大量n維向量(X0,X1,...,Xn-1)組成的無序集合,按照(4)均勻分成N類。統(tǒng)計每一類所有向量(X0,X1,...,Xn-1)中非核Ker(Xi)的奇偶性可以恢復(fù)出該類嵌入的n比特水印b0b1...bn-1中的bi。對所有類的向量經(jīng)過上面的統(tǒng)計后,可以成功提取出N×n比特的水印數(shù)據(jù)。我們給出偽代碼描述如下輸入。
嵌入水印后的數(shù)據(jù)集S={(X0,X1,...,Xn-1)}統(tǒng)計矩陣CN×n=C0,0C0,1···C0,n-2C0,n-1C1,0C1,1···C1,n-2C1,n-1...............CN-2,0CN-2,1···CN-2,n-2CN-2,n-1CN-1,0CN-1,1···CN-1,n-2CN-1,n-1,Ci,j∈Z]]>水印提取。
初始化統(tǒng)計矩陣CN×n,使得Ci,j=0對數(shù)據(jù)集中的每一個向量(x0,x1,...,xn-1)
{分類f(EK(Ker(x0,x1,...,xn-1)))→i,(0≤i≤N-1)對該向量中每一個元素xj(0≤j≤n-1){如果Ker(xj)為奇數(shù),Ci,j=Ci,j+1否則,Ci,j=Ci,j-1}}輸出。
水印比特矩陣WN×n=b0,0b0,1···b0,n-2b0,n-1b1,0b1,1···b1,n-2b1,n-1...............bN-2,0bN-2,1···bN-2,n-2bN-2,n-1bN-1,0bN-1,1···bN-1,n-2bN-1,n-1,]]>其中具體實施方式
1)子模塊的選擇。公式(4)提供分類方法的形式,具體實現(xiàn)時可以選擇適當(dāng)?shù)膄和E。實現(xiàn)f的最簡便的方法是f(x)=x mod N。注意到E并不需要可逆,所以只需要帶密鑰的哈希函數(shù)就可以實現(xiàn)E的功能。如EK(x)=MD5(K‖x),其中MD5是哈希函數(shù),‖代表字符串直接連接。當(dāng)然3DES、AES、IDEA等對稱密鑰算法也是可行的。
2)特殊數(shù)據(jù)處理。根據(jù)均勻假設(shè),數(shù)據(jù)整體分類后每一類的數(shù)量應(yīng)該比較均勻。但是不排除極端情況下有可能出現(xiàn)某些類的數(shù)據(jù)量不夠的情況。這樣的類被定義為不合格類,相應(yīng)的稱其他類為合格類。處理這種類的方法是,在不合格類的邊界處的兩個合格類采用特殊的修改統(tǒng)計特征方法來定義邊界。比如修改上邊界的合格類的所有數(shù)據(jù)的X0的非核為9,修改下邊界的合格類的所有數(shù)據(jù)的X0的非核為0。在恢復(fù)水印的時候,需要首先考察每一類數(shù)據(jù)是否是一個邊界,然后再統(tǒng)計奇偶比例。
3)水印提取的準(zhǔn)確度。我們可以在檢測水印的時候設(shè)定一個比例常量λ≥1。假設(shè)提取水印時某一類的數(shù)據(jù)的非核中奇偶比例為α,如果α>λ則提取出水印比特1,如果α<1/λ則提取出水印比特0。但是如果1/λ≤α≤λ,則無法判斷。這樣提取出的水印的準(zhǔn)確度可以用λ來衡量。注意實現(xiàn)的時候?qū)吔珙惖臏?zhǔn)確度要有較高的要求,我們?nèi)ˇ耍?。相對而言,普通類則相對較松,我們?nèi)ˇ耍?。
4)N的可調(diào)整性。注意在提取和嵌入水印的時候N的取值必須相同。所以比較好的方法是N從幾個級別的取值中選擇,這樣提取水印的時候即使不知道N也可以在預(yù)定的取值集合中進行逐個試探。由于N直接與水印容量掛鉤,建議取值從(64,128,256,512)這四個級別的取值中選擇。
我們對算法從如下幾個方面進行了評估1)運行速度。不管是嵌入水印還是提取水印,時間主要由E決定。算法消耗時間大約為|S|×T,其中T是一次加密E所消耗的時間。MD5的速度大約是每秒3000~5000次,所以40萬的數(shù)據(jù)大約需要1~2分鐘。
2)存儲空間。嵌入水印和提取水印算法消耗的存儲空間基本和嵌入的水印長度成正比,基本上不占用內(nèi)存。
3)數(shù)據(jù)失真。根據(jù)(1),我們可以估算一下MSEi≈10-2ki2---(10)]]>其中ki為Xi精確到小數(shù)點后的位數(shù),可見(10)剛好滿足(2)的要求。
4)水印容量。算法的水印容量為N×n比特。其中N由f決定,n由數(shù)據(jù)集S決定。f可以調(diào)整,所以水印容量也是可以調(diào)整的。但是水印容量不可能無限大。當(dāng)N過大時,某些類中不能保證足夠的數(shù)據(jù)量(甚至可能沒有數(shù)據(jù)),從而影響該類嵌入水印的強度。假設(shè)S是2維向量的集合n=2,N=128,所以水印容量為256比特(32字節(jié))。如果|Ker(S)|=10000,那么由(9)可知,劃分S后至少存在一個子集數(shù)據(jù)量小于|Ker(S)|/2N=39的概率不超過0.08%。所以我們的分類方法對于99.92%的滿足|Ker(S)|=10000的S都可以保證劃分后每一個子集的元素個數(shù)都大于39。
5)水印魯棒性。在失真度量一節(jié),我們定義了水印的兩種攻擊方式數(shù)據(jù)的修改和數(shù)據(jù)的增加/刪除,并分別由(2)和(3)給出了最大的攻擊強度。我們對大量的數(shù)據(jù)進行了測試,實驗表明該水印方案完全可行且具有較高的魯棒性。下面從理論上分別考察兩種攻擊方式下的水印抗攻擊能力。
●數(shù)據(jù)修改由于攻擊者不知道密鑰,無法恢復(fù)出分類,所以攻擊者只能隨機選擇數(shù)據(jù)集S’進行修改。注意修改后失真度必須滿足(2)的限制。我們只考慮最有效的攻擊方式,即,直接翻轉(zhuǎn)數(shù)據(jù)的非核部分的奇偶性。
MSEi≈42|S′|+12(|S|-|S′|)|S|10-2ki=(12+5|S′|4|S|)10-2ki---(11)]]>要滿足(2)需要|S′||S|≈0---(12)]]>由此可見,對添加了水印的數(shù)據(jù)再進行任何的修改都會造成數(shù)據(jù)失真度不符合(2)的要求。特別是重復(fù)添加水印這樣的攻擊方法,都有|S′|≈|S|2,]]>不滿足(12)。
我們估算一下如果不考慮數(shù)據(jù)失真的限制,水印算法可以抵抗多大強度的數(shù)據(jù)修改。由(6)有,將S劃分為N類,每一類的數(shù)據(jù)量幾乎都滿足|s|≥|S|2N---(13)]]>將S’劃分為N類。類似(6),可以得到每一類的數(shù)據(jù)量幾乎都滿足|s′|≤3|S′|2N---(14)]]>結(jié)合(13),(14),要正確恢復(fù)水印,需要|s′|≤3|S′|2N≤|S|4N≤|s|2---(15)]]>即|S′||S|≤16---(16)]]>所以不考慮數(shù)據(jù)失真限制的情況下,算法至少可以抵抗16.7%以內(nèi)的奇偶翻轉(zhuǎn)數(shù)據(jù)修改,可以抵抗33.3%以內(nèi)的隨機數(shù)據(jù)修改。數(shù)據(jù)修改超過這個范圍就有可能產(chǎn)生誤碼。注意算法是沒有錯誤擴散的,所以如果結(jié)合糾錯編碼,可以達到更高的魯棒性。
●數(shù)據(jù)的刪除不會改變每一類數(shù)據(jù)非核部分的奇偶比例。根據(jù)均勻分類的假設(shè)易知要在(3)的限制下完全刪除某一類的所有數(shù)據(jù)是幾乎不可能的。所以,算法可以抵抗50%以內(nèi)的數(shù)據(jù)刪除。
●考察數(shù)據(jù)添加的極端情形新增加的數(shù)據(jù)的非核部分與原數(shù)據(jù)對應(yīng)類中的非核部分奇偶性恰好相反的情況。同(14),(15),(16)的推導(dǎo)方式,可以得出|S′||S|≤13---(17)]]>所以算法可以抵抗33%以內(nèi)的奇偶翻轉(zhuǎn)數(shù)據(jù)增加,可以抵抗66%以內(nèi)隨機數(shù)據(jù)添加。
由于理論分析的是最壞的情況下的抗攻擊能力。而實驗數(shù)據(jù)表明,實際水印的抗攻擊能力高于這個值(大量的實驗表明,我們的水印方案可以抵抗50%以上的水印刪除、添加、修改或是三者結(jié)合的攻擊)。
權(quán)利要求
1.專門用于無序抽象數(shù)據(jù)集的數(shù)字水印技術(shù)。其中心思想為對數(shù)據(jù)進行分類然后逐類修改統(tǒng)計特征來嵌入水印。其具體步驟為1)將數(shù)據(jù)劃分為重要的、不可調(diào)整的部分和可以微調(diào)的部分。2)對數(shù)據(jù)重要的部分進行一個帶密鑰的變換,通過變換結(jié)果對數(shù)據(jù)分類。3)根據(jù)要嵌入的水印消息,修改每一類數(shù)據(jù)的可微調(diào)部分的奇偶分布。4)提取水印時,按照相同的方法對數(shù)據(jù)進行分類,統(tǒng)計每一類中可微調(diào)部分的奇偶分布。
2.按權(quán)利要求1的方法,進一步包括對于特殊數(shù)據(jù)分類時如果遇到某些類數(shù)據(jù)量不足,則采用邊界處特殊標(biāo)記的方法。
全文摘要
科學(xué)數(shù)據(jù)集是一切大規(guī)模抽象無序數(shù)據(jù)集合的總稱。本發(fā)明在科學(xué)數(shù)據(jù)集中嵌入數(shù)字水印來保護數(shù)據(jù)的版權(quán)。由于該類數(shù)據(jù)的特點,應(yīng)用于數(shù)字多媒體數(shù)據(jù)的傳統(tǒng)水印方案不適用于科學(xué)數(shù)據(jù)集的版權(quán)保護。我們提出的方案利用了統(tǒng)計水印技術(shù),其中心思想是先對數(shù)據(jù)進行分類,然而逐類修改統(tǒng)計特征從而達到嵌入水印的目的。該水印方案不影響數(shù)據(jù)的科學(xué)價值,可以嵌入適量的水印信息并具有一定的抗攻擊能力,能夠保護數(shù)據(jù)的版權(quán)。
文檔編號G06F7/06GK1538286SQ200310101608
公開日2004年10月20日 申請日期2003年10月22日 優(yōu)先權(quán)日2003年10月22日
發(fā)明者楊義先, 汪濤, 鈕心忻 申請人:北京郵電大學(xué)