科学数据集中的数字水印技术的制作方法

文档序号:6341762阅读:165来源:国知局
专利名称:科学数据集中的数字水印技术的制作方法
技术领域
本发明涉及数字水印领域,具体的说,本发明提出一种数字水印技术来保护科学数据的版权。数字水印技术可以在数字产品中嵌入版权信息来作为产品所有权的证据。科学数据是经过科学实验,统计后得到的离散数据,例如某地区一年的气温纪录、某天体的观测记录、某客户群的市场行为统计、地理数据等等。
背景技术
作为信息隐藏技术的一个分支,数字水印技术在近年来得到越来越广泛的应用。然而目前数字水印的应用领域大多局限在数字多媒体中,如数字图像、数字音频、数字视频。数字多媒体的特点是1.数据在时间或空间上有固定的顺序。即,多媒体数据通常包括两个平面,一个是数据平面,另外一个是顺序平面。
2.数据的接收者是人类的感官。
传统的水印技术大多利用了上述两个特点,即1.水印嵌入于数据平面,利用顺序平面来保持水印提取的同步。
2.水印嵌入和攻击的强度均以不可被人类的感官察觉为界限。
而科学数据从抽象的层次来对待一切数据,不再局限于多媒体,所以不再具有多媒体数据特有的优势1.数据是抽象的,统一的,无序的。如地理坐标数据虽然地理坐标提供了空间上的位置信息,但该信息本身被视为数据,并将被嵌入水印。不存在额外的顺序平面。
2.数据的接收者是抽象的数学模型。数据在这里被提取、分析。水印嵌入和攻击的强度均以不破坏数据的科学价值为界限。
所以传统的水印技术一般不能应用于科学数据的版权保护中。

发明内容
1.数据格式我们的水印技术可以通用于如下形式的数据。离散数据集S由大量的数据组构成。每一组数据都是一个n维向量(X0,X1,...,Xn-1)(比如横坐标、纵坐标、运动方向、速率构成一个4维向量)。所有组对应位置的Xi(0≤i≤n-1)都有着相同的物理意义和测量精度。
下面的叙述中我们用(X0,X1,...,Xn-1)、Xi代表变量,用(x0,x1,...,xn-1)、xi代表具体的实例,|S|代表集合S包含元素的总数。
2.失真度量水印的嵌入和攻击都必须在适当的失真范围之内,否则会影响数据的科学价值。科学数据对失真的要求有其自身的特点
1)数据有精度要求,比如精确到小数点后第几位。
2)相对数量而言,更加重视质量——对数据的正确性要求严格,但是对数据量增加或删除的限制相对放松。比如一组植物生长测量数据,如果测量数据有较大失误,那么数据的科学价值就降低了。
相对而言,增加或减少几个测试对象并不会影响数据的整体价值。
在一个n维向量(X0,X1,...,Xn-1)中,可能各个Xi的物理意义、精度要求不尽相同,所以我们需要逐个考虑失真度。我们采用下面的均方误差来度量|S|个X1被修改为 后的失真度MSEi=1|S|Σ|S|(X~i-Xi)2---(1)]]>水印的嵌入和攻击都必须满足MSEi≤τi(2)其中τi是常量,与Xi对精度的要求有关。我们设定τi=10-2ki2,]]>ki为X1精确到小数点后的位数。除了对数据修改引进的失真度量外,对于数据的增删,我们规定增删的数据量|S′|和原数据量|S|应该满足|S′|≤|S|2---(3)]]>3.算法描述算法的中心思想是对数据分类然后修改数据的统计特征。
定义一。给定数据Data,定义核Ker(Data)为Data舍弃了最高精度位剩下的部分。
定义二。给定数据Data,定义非核Ker(Data)为Data非数据核的部分。
定义三。数据集S的核Ker(S)={Ker(X)|X∈S)。
例如,数据Data为二维向量(1.141,2.015)且精确到1/1000,那么Ker(Data)=(1.14,2.01),Ker(Data)=(0.001,0.005)。数据核是数据可信度的保证,也是数据科学价值的依附点。我们的算法将基于数据核分类。数据的非核是可以微调的部分,我们的算法添加水印于数据非核中。
3.1.分类方法给定数据Data、对称加密算法E、密钥K和映射fEK(Ker(Data))→ZN,数据Data被分成N类。具体的计算方法为
f(EK(Ker(Data))) (4)数据核保证了分类结果不会受到数据微小变动的影响,对称加密算法保护了分类结果不被公开并能防止对数据直接进行统计分析。例如,数据Data为二维向量(1.141,2.015),如果精确到1/1000,那么Ker(Data)=(1.14,2.01)。假设加密后结果为123456,N=10。定义f为模10运算有123456 mod 10=6,数据最终被分到第6类。
均匀假设。数据集S的核Ker(S)满足|Ker(S)|足够大,那么按照(4)的方法得到的分类是比较均匀的(即,从0到N-1类,每一类的数据量大致相当,且不存在数据量过小的类)。
我们在这里对数据量最小的类做如下估算假设划分S为N类后,某个类对应的子集为s,那么在随机映射foEK的假设下Pr[|s|=k]=|Ker(S)|k(1N)k(1-1N)|Ker(S)|-k---(5)]]>这是一个二项式分布,其期望为 方差为 根据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)]]>根据Chernoff公式有Pr[|s|<|Ker(S)|2N]<(e-12(12)12)|Ker(S)|N=exp((ln2-1)|Ker(S)|2N)---(7)]]>结合(6),(7)有Pr[|s|<|Ker(S)|2N]<min(N4|Ker(S)|,exp((ln2-1)|Ker(S)|2N))---(8)]]>根据(8)计算的结果列表如下

假设事件Ei(0≤i≤N)代表第i个子集的数据量小于

的概率,Ei之间并不独立,但是我们可以估算一下N个子集中至少有一个子集数据量小于

的概率Pr[E0∪E1∪···∪EN-1]≤Pr[E0]+Pr[E1]+···+Pr[EN-1]=Nmin(N4|Ker(S)|,exp((ln2-1)|Ker(S)|2N))---(9)]]>假设S是2维向量(X1,X2)的集合,N=128。如果|Ker(S)|=10000,那么由(9)可知,划分S后至少存在一个子集数据量小于|Ker(S)|/2N=39的概率不超过0.08%。所以我们的分类方法对于至少99.9%的S都可以保证划分后每一个子集的数据量都大于39。上面的推导表明均匀假设是合理的。
说明。为了保证均匀假设的正确性,欲添加水印的科学数据集必须满足|Ker(S)|足够大。
3.2.水印嵌入算法数据为大量n维向量(X0,X1,...,Xn-1)组成的无序集合,按照(4)均匀分成N类。我们的算法在每一类中嵌入n比特。假设某个向量(x0,x1,...,xn-1)被划分到的类中需要嵌入比特串b0b1...bn-1,那么修改xi(0≤i≤n-1)的非核,使其具有和bi相同的奇偶性。对于所有向量、所有xi均经过上述的调整后,我们成功嵌入了N×n比特的水印数据。我们给出伪代码描述如下输入。
数据集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水印嵌入。
对数据集中的每一个向量(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相同,不修改数据,转而考察下一个xj否则,调整Ker(xj),使其奇偶性与bi,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)。假设加密后结果为123456,N=10。定义f为模10运算有123456 mod 10=6,数据最终被分到第6类。总共可以嵌入N×n=10×2=20比特。此时对x0有i=6,j=0,调整1.141的非核即小数点后第三位的奇偶性和b6,0相同;对x1有i=6,j=1,调整2.015的非核即小数点后第三位的奇偶性和b6,1相同。假设b6,0=1,b6,1=0,那么调整后的(x~0,x~1)=(1.141,2.016).]]>3.3.水印提取算法数据为大量n维向量(X0,X1,...,Xn-1)组成的无序集合,按照(4)均匀分成N类。统计每一类所有向量(X0,X1,...,Xn-1)中非核Ker(Xi)的奇偶性可以恢复出该类嵌入的n比特水印b0b1...bn-1中的bi。对所有类的向量经过上面的统计后,可以成功提取出N×n比特的水印数据。我们给出伪代码描述如下输入。
嵌入水印后的数据集S={(X0,X1,...,Xn-1)}统计矩阵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]]>水印提取。
初始化统计矩阵CN×n,使得Ci,j=0对数据集中的每一个向量(x0,x1,...,xn-1)
{分类f(EK(Ker(x0,x1,...,xn-1)))→i,(0≤i≤N-1)对该向量中每一个元素xj(0≤j≤n-1){如果Ker(xj)为奇数,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)提供分类方法的形式,具体实现时可以选择适当的f和E。实现f的最简便的方法是f(x)=x mod N。注意到E并不需要可逆,所以只需要带密钥的哈希函数就可以实现E的功能。如EK(x)=MD5(K‖x),其中MD5是哈希函数,‖代表字符串直接连接。当然3DES、AES、IDEA等对称密钥算法也是可行的。
2)特殊数据处理。根据均匀假设,数据整体分类后每一类的数量应该比较均匀。但是不排除极端情况下有可能出现某些类的数据量不够的情况。这样的类被定义为不合格类,相应的称其他类为合格类。处理这种类的方法是,在不合格类的边界处的两个合格类采用特殊的修改统计特征方法来定义边界。比如修改上边界的合格类的所有数据的X0的非核为9,修改下边界的合格类的所有数据的X0的非核为0。在恢复水印的时候,需要首先考察每一类数据是否是一个边界,然后再统计奇偶比例。
3)水印提取的准确度。我们可以在检测水印的时候设定一个比例常量λ≥1。假设提取水印时某一类的数据的非核中奇偶比例为α,如果α>λ则提取出水印比特1,如果α<1/λ则提取出水印比特0。但是如果1/λ≤α≤λ,则无法判断。这样提取出的水印的准确度可以用λ来衡量。注意实现的时候对边界类的准确度要有较高的要求,我们取λ=2。相对而言,普通类则相对较松,我们取λ=1。
4)N的可调整性。注意在提取和嵌入水印的时候N的取值必须相同。所以比较好的方法是N从几个级别的取值中选择,这样提取水印的时候即使不知道N也可以在预定的取值集合中进行逐个试探。由于N直接与水印容量挂钩,建议取值从(64,128,256,512)这四个级别的取值中选择。
我们对算法从如下几个方面进行了评估1)运行速度。不管是嵌入水印还是提取水印,时间主要由E决定。算法消耗时间大约为|S|×T,其中T是一次加密E所消耗的时间。MD5的速度大约是每秒3000~5000次,所以40万的数据大约需要1~2分钟。
2)存储空间。嵌入水印和提取水印算法消耗的存储空间基本和嵌入的水印长度成正比,基本上不占用内存。
3)数据失真。根据(1),我们可以估算一下MSEi≈10-2ki2---(10)]]>其中ki为Xi精确到小数点后的位数,可见(10)刚好满足(2)的要求。
4)水印容量。算法的水印容量为N×n比特。其中N由f决定,n由数据集S决定。f可以调整,所以水印容量也是可以调整的。但是水印容量不可能无限大。当N过大时,某些类中不能保证足够的数据量(甚至可能没有数据),从而影响该类嵌入水印的强度。假设S是2维向量的集合n=2,N=128,所以水印容量为256比特(32字节)。如果|Ker(S)|=10000,那么由(9)可知,划分S后至少存在一个子集数据量小于|Ker(S)|/2N=39的概率不超过0.08%。所以我们的分类方法对于99.92%的满足|Ker(S)|=10000的S都可以保证划分后每一个子集的元素个数都大于39。
5)水印鲁棒性。在失真度量一节,我们定义了水印的两种攻击方式数据的修改和数据的增加/删除,并分别由(2)和(3)给出了最大的攻击强度。我们对大量的数据进行了测试,实验表明该水印方案完全可行且具有较高的鲁棒性。下面从理论上分别考察两种攻击方式下的水印抗攻击能力。
●数据修改由于攻击者不知道密钥,无法恢复出分类,所以攻击者只能随机选择数据集S’进行修改。注意修改后失真度必须满足(2)的限制。我们只考虑最有效的攻击方式,即,直接翻转数据的非核部分的奇偶性。
MSEi≈42|S′|+12(|S|-|S′|)|S|10-2ki=(12+5|S′|4|S|)10-2ki---(11)]]>要满足(2)需要|S′||S|≈0---(12)]]>由此可见,对添加了水印的数据再进行任何的修改都会造成数据失真度不符合(2)的要求。特别是重复添加水印这样的攻击方法,都有|S′|≈|S|2,]]>不满足(12)。
我们估算一下如果不考虑数据失真的限制,水印算法可以抵抗多大强度的数据修改。由(6)有,将S划分为N类,每一类的数据量几乎都满足|s|≥|S|2N---(13)]]>将S’划分为N类。类似(6),可以得到每一类的数据量几乎都满足|s′|≤3|S′|2N---(14)]]>结合(13),(14),要正确恢复水印,需要|s′|≤3|S′|2N≤|S|4N≤|s|2---(15)]]>即|S′||S|≤16---(16)]]>所以不考虑数据失真限制的情况下,算法至少可以抵抗16.7%以内的奇偶翻转数据修改,可以抵抗33.3%以内的随机数据修改。数据修改超过这个范围就有可能产生误码。注意算法是没有错误扩散的,所以如果结合纠错编码,可以达到更高的鲁棒性。
●数据的删除不会改变每一类数据非核部分的奇偶比例。根据均匀分类的假设易知要在(3)的限制下完全删除某一类的所有数据是几乎不可能的。所以,算法可以抵抗50%以内的数据删除。
●考察数据添加的极端情形新增加的数据的非核部分与原数据对应类中的非核部分奇偶性恰好相反的情况。同(14),(15),(16)的推导方式,可以得出|S′||S|≤13---(17)]]>所以算法可以抵抗33%以内的奇偶翻转数据增加,可以抵抗66%以内随机数据添加。
由于理论分析的是最坏的情况下的抗攻击能力。而实验数据表明,实际水印的抗攻击能力高于这个值(大量的实验表明,我们的水印方案可以抵抗50%以上的水印删除、添加、修改或是三者结合的攻击)。
权利要求
1.专门用于无序抽象数据集的数字水印技术。其中心思想为对数据进行分类然后逐类修改统计特征来嵌入水印。其具体步骤为1)将数据划分为重要的、不可调整的部分和可以微调的部分。2)对数据重要的部分进行一个带密钥的变换,通过变换结果对数据分类。3)根据要嵌入的水印消息,修改每一类数据的可微调部分的奇偶分布。4)提取水印时,按照相同的方法对数据进行分类,统计每一类中可微调部分的奇偶分布。
2.按权利要求1的方法,进一步包括对于特殊数据分类时如果遇到某些类数据量不足,则采用边界处特殊标记的方法。
全文摘要
科学数据集是一切大规模抽象无序数据集合的总称。本发明在科学数据集中嵌入数字水印来保护数据的版权。由于该类数据的特点,应用于数字多媒体数据的传统水印方案不适用于科学数据集的版权保护。我们提出的方案利用了统计水印技术,其中心思想是先对数据进行分类,然而逐类修改统计特征从而达到嵌入水印的目的。该水印方案不影响数据的科学价值,可以嵌入适量的水印信息并具有一定的抗攻击能力,能够保护数据的版权。
文档编号G06F7/06GK1538286SQ200310101608
公开日2004年10月20日 申请日期2003年10月22日 优先权日2003年10月22日
发明者杨义先, 汪涛, 钮心忻 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1