一种无损的数据库鲁棒数字水印方法及系统与流程

文档序号:33474779发布日期:2023-03-15 09:49阅读:118来源:国知局
一种无损的数据库鲁棒数字水印方法及系统与流程

1.本发明属于数字水印技术领域,尤其涉及一种无损的数据库鲁棒数字水印方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.在大数据时代,数据库技术在数据存储、共享和事务处理中发挥着不可替代的作用,而关系数据在分发、共享和使用的过程中面临着被盗版和滥用的风险。
4.数字水印技术是保护关系数据版权的可靠方法,但数据库水印对水印嵌入有一些独特的要求:要求在加入水印时,对原始数据的改动很小,特别是一些关键的信息则不允许改动;作为水印的信息应该在需要时能被完整准确地提取出来,即嵌入水印必须具有一定鲁棒性。
5.传统的鲁棒水印方案大多基于载体修改,难以在保持数据质量的同时,实现水印的鲁棒性。


技术实现要素:

6.为了解决上述背景技术中存在的技术问题,本发明提供一种无损的数据库鲁棒数字水印方法及系统,不会修改原始数据,避免了数据失真问题,而且水印的鲁棒性也会随水印容量的提升而得到极大提升。
7.为了实现上述目的,本发明采用如下技术方案:本发明的第一个方面提供一种无损的数据库鲁棒数字水印方法,其包括:获取原始数据、版权信息和密钥;使用信息增益进行原始数据的属性的筛选;将版权信息转化为数字水印串;对原始数据的所有元组进行分组,得到每个元组的组号;对于每个元组,在数字水印串中取出组号对应的bit,并基于密钥和元组的主键值,在筛选出的属性中选择一个属性后,基于选择的属性定位到需要被编码的bit;基于需要被编码的bit对元组进行编码,并将组号对应的bit与需要被编码的bit进行异或操作后存储进辅助数组。
8.进一步地,每个属性的信息增益为:gain(fi) = ent(d)
ꢀ−ꢀ
ent(d|fi)其中,fi表示第i个属性,ent( )是计算信息熵的函数,d是原始数据。
9.进一步地,将版权信息转化为数字水印串的方法为:w = info xor rand其中,w表示数字水印串,info是版权信息,rand是随机数,xor表示异或操作。
10.进一步地,元组的组号为:nu = h(ks|h(ks|r.key))mod ng其中,h()是哈希函数,ks是密钥,|代表连接操作,r.key是元组r的主键,ng是由水印的长度决定的值。
11.进一步地,所述选择的属性的位置:a_index j = h(r.key, ks) mod ξ其中,ξ是被选择的属性的数量,h()是哈希函数,ks是密钥,r.key是元组r的主键。
12.进一步地,需要被编码的bit的位置为:bit_index k = h(r.key, ks, aj.msb) mod υ其中,υ是选择的属性aj的高有效位的位数,h()是哈希函数,ks是密钥,r.key是元组r的主键,aj.msb为属性aj的高有效位,高有效位是指属性aj转换为二进制后最左边的若干位。
13.进一步地,所述辅助数组在解码过程中,根据密钥定位出被编码的bit后,进行解码,得到数字水印串。
14.本发明的第二个方面提供一种无损的数据库鲁棒数字水印系统,其包括:数据获取模块,其被配置为:获取原始数据、版权信息和密钥;属性筛选模块,其被配置为:使用信息增益进行原始数据的属性的筛选;转换模块,其被配置为:将版权信息转化为数字水印串;分组模块,其被配置为:对原始数据的所有元组进行分组,得到每个元组的组号;定位模块,其被配置为:对于每个元组,在数字水印串中取出组号对应的bit,并基于密钥和元组的主键值,在筛选出的属性中选择一个属性后,基于选择的属性定位到需要被编码的bit;编码模块,其被配置为:基于需要被编码的bit对元组进行编码,并将组号对应的bit与需要被编码的bit进行异或操作后存储进辅助数组。
15.本发明的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的一种无损的数据库鲁棒数字水印方法中的步骤。
16.本发明的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的一种无损的数据库鲁棒数字水印方法中的步骤。
17.与现有技术相比,本发明的有益效果是:本发明提供的一种无损的数据库鲁棒数字水印方法,其不会修改原始数据,避免了数据失真问题;由于不考虑数据质量的损失,水印容量可以几乎不受限制的增长;鲁棒性与水印容量成正比关系,因此水印的鲁棒性也会随水印容量的提升而得到极大提升。
18.本发明提供了一种无损的数据库鲁棒数字水印方法,其解决了鲁棒水印对原始数据造成的失真问题;水印的鲁棒性和水印容量可以更高,抵抗攻击的能力更强,可以嵌入的版权信息量更高,具备更高的使用价值,可以满足大多数应用场景。
附图说明
19.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示
意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
20.图1是本发明实施例一的一种无损的数据库鲁棒数字水印方法的流程图。
具体实施方式
21.下面结合附图与实施例对本发明作进一步说明。
22.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
23.实施例一本实施例提供了一种无损的数据库鲁棒数字水印方法,基于msb(最重要的比特位),将数字水印信息进行编码解码。如图1所示,具体包括如下步骤:步骤1、获取数据库中的原始数据(需要被保护的数据),使用信息增益进行原始数据的属性的筛选,筛选出合适的属性(这些属性通常是整型或者浮点型),并将筛选出的属性按照信息增益大小进行重新排序,以避免属性选择攻击。
24.其中,筛选属性的具体步骤如下:(1)使用信息增益的定义,计算出每个属性的信息增益值:gain(fi) = ent(d)
ꢀ−ꢀ
ent(d|fi)其中,fi指的是原始数据的第i个属性,ent( )是一个计算信息熵的函数,d是原始数据。
25.(2)筛选出信息增益大的若干个属性。破环这些筛选出的属性会严重影响数据的可用性,因此筛选出这些属性进行水印编码。
26.步骤2、获取版权信息,将版权信息转化成可以编码的数字水印串。
27.具体的,使用如下公式将版权信息转化成二进制数字水印串:w = info xor rand其中,w表示二进制后的数字水印串,info是数据所有者的版权信息,rand是随机数,xor表示异或操作,通过对info进行异或(xor)操作(相异为1,相同为0),可以有效防止数据所有者的身份信息被泄露。
28.步骤3、对原始数据的所有元组(元组是数据库中一张数据表中的一行数据,一个元组有若干个属性,其中一个属性被称为主键)进行分组,得到每个元组的组号,每个分组的所有元组嵌入相同的bit信息以提高水印的抗攻击性。
29.使用如下公式将数据的所有元组分组:nu = h(ks|h(ks|r.key))mod ng其中,nu是组编号,即元组r所属分组的号;h()是哈希函数;ks是分组的密钥;|代表连接操作;r.key是元组r的主键;ng是组数,由水印的长度决定的,例如,如果水印的长度被设定为72比特、128比特和256比特,那么ng的对应值应为72、128和256。
30.步骤4、数据拥有者设置一个密钥ks,水印编码算法根据密钥计算出需要编码的原始bit的位置,并将步骤2中的水印串与原始bit一起编码,得到的结果存储到辅助数组mp(又称,辅助数据)中。
31.具体的,获取密钥ks;对于每个元组r,在数字水印串中取出元组r的组号i对应的
bit,即w[i],并基于密钥ks和元组r的主键值r.key,在筛选出的属性中选择一个属性后,基于选择的属性定位到需要被编码的bit;基于需要被编码的bit对元组进行编码,并将组号对应的bit与需要被编码的bit进行异或操作后存储进辅助数组。具体步骤如下:步骤401、准备原始数据库d、密钥ks和二进制数字水印串w,接下来对数据库d中的每个元组r进行操作;步骤402、根据步骤3中的分组,查询元组r的组号i(i=nu),并取出水印串w的第i的bit——w[i];步骤403、使用密钥ks和元组的主键值r.key作为hash函数的输入,从步骤1中筛选出的属性中随机选择一个属性,选择的属性的位置为:a_index j = h(r.key, ks) mod ξ其中,ξ是被选择的属性的数量。随机选择属性,可以增加被编码的原始bit的随机分布程度,增强水印的抗属性攻击的鲁棒性。
[0032]
步骤404、使用如下公式定位到需要被编码的bit的位置:bit_index k = h(r.key, ks, aj.msb) modυ其中,υ是属性aj(即位置a_index j对应的属性)的高有效位的位数,aj.msb是属性aj的高有效位,通过该公式选择属性aj的高有效位的第k个bit—bit[k];高有效位是指属性aj转换为二进制后最左边的若干位,例如,aj=0ba45h,把ba45h换算成二进制是1011 1010 0100 0101,x的4位高有效位就是1011。
[0033]
步骤405、将bit[k](即位置bit_index k对应的属性aj中的bit)与w[i]进行异或操作,将得到的结果bits存储到hash表mp中:bits = bit[k] xor w[i]store(mp, h(r.key, ks) : bits)步骤406、当所有元组中的bit都被编码后,数组mp被数据拥有者存储下来。
[0034]
步骤5、根据密钥定位出被编码的原始bit,对步骤4中的辅助数组进行解码,得到水印串。
[0035]
对辅助数组进行水印解码的具体步骤如下:步骤501、准备待检测水印的数据库dw、密钥ks和辅助数组mp,同时初始化多数投票计数器count;接下来对数据库dw中的每个元组r进行操作;步骤502、根据步骤3中的分组,查询元组r的组号i(i=nu);步骤503、定位该元组中被编码的属性,属性的位置为:a_index j = h(r.key, ks) mod ξ步骤504、使用如下公式定位到被编码的bit的位置:bit_index k = h(r.key, ks, aj .msb) modυ选择属性aj高有效位的第k个bit—bitw[k]。
[0036]
步骤505、对于元组r,首先判断辅助数组是否存储了该元组对应的bits,如果存储了,就对得到的bits值执行解码操作,否则就结束对该元组的操作。
[0037]
步骤506、使用异或操作计算得到待验证的结果—wd[i]:wd[i] = bitw[k]xor bits并将wd[i]加入到多数投票计数器中。
[0038]
步骤507、如果wd[i]的值为1,计数器count[i]的值就加1,否则就减去1。
[0039]
步骤508、所有元组的bit都被解码后,统计多数投票计数器。
[0040]
统计多数投票计数器的具体步骤为:对n,n=0,1,2,

,ng

1,如果count[n]》0,则wd[n]=1,否则,wd[n]= 0。
[0041]
步骤509、最终得到检测结果wd。其中,wd[i]是wd的第i个bit信息。
[0042]
步骤6、将得到的水印串转化成版权信息,进行版权证明。
[0043]
(1)对水印结果的解码具体步骤如下:info_d = wd xor rand(2)将得到结果info_d(检测出的二进制格式的版权信息)与数据拥有者的版权信息info进行对比,若结果正确,则可达到版权证明的目的。
[0044]
大数据传输过程中,加密带来的延迟和性能损失是不能接受的,因此数据一般通过公开信道(主要是网络信道)分发。而在这个过程中,数据可能遭到篡改或者窃取,被成为攻击者通道。遭受攻击的数据指的是:攻击者窃取含水印的合法数据,然后使用多种攻击方式对数据进行处理,这些攻击包括但不限于元组删除、元组增加、元组篡改、属性选择。通过这种方式,攻击者试图去除数据中含有的水印信息。
[0045]
本发明提供的一种无损的数据库鲁棒数字水印方法,与其它方法相比,解决了鲁棒水印对原始数据造成的失真问题;水印的鲁棒性和水印容量可以更高,抵抗攻击的能力更强,可以嵌入的版权信息量更高,具备更高的使用价值,可以满足大多数应用场景。
[0046]
本发明提供的一种无损的数据库鲁棒数字水印方法,不会修改原始数据,避免了数据失真问题;由于不考虑数据质量的损失,水印容量可以几乎不受限制的增长,水印的鲁棒性也会随水印容量的提升而得到极大提升。
[0047]
实施例二本实施例提供了一种无损的数据库鲁棒数字水印系统,其具体包括:数据获取模块,其被配置为:获取原始数据、版权信息和密钥;属性筛选模块,其被配置为:使用信息增益进行原始数据的属性的筛选;转换模块,其被配置为:将版权信息转化为数字水印串;分组模块,其被配置为:对原始数据的所有元组进行分组,得到每个元组的组号;定位模块,其被配置为:对于每个元组,在数字水印串中取出组号对应的bit,并基于密钥和元组的主键值,在筛选出的属性中选择一个属性后,基于选择的属性定位到需要被编码的bit;编码模块,其被配置为:基于需要被编码的bit对元组进行编码,并将组号对应的bit与需要被编码的bit进行异或操作后存储进辅助数组。
[0048]
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
[0049]
实施例三本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的一种无损的数据库鲁棒数字水印方法中的步骤。
[0050]
实施例四本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在
处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的一种无损的数据库鲁棒数字水印方法中的步骤。
[0051]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1