一种用于数据库分发保护的零水印方法与流程

专利2022-06-30  115


本发明属于信息安全技术领域,具体涉及一种用于数据库分发保护的零水印方法。主要针对数据库在分发时可能出现的泄密,以及很难在泄密后溯源的问题,设计了一种能有效追踪首次分发者的零水印方案。



背景技术:

现阶段,数据库中的数据大都是动态存储的,这些数据常常需要通过数据分析和数据挖掘来发挥它们的潜在价值。所以,这就意味着这些数据库中的数据可能只存放在一处,它们常常需要被分发到各个机构,这样才能充分发挥数据的潜在价值。然而,在数据库数据进行分发的时,也面临种种威胁:(1)分发过程中,内部人员为了各自利益而贩卖数据。(2)分发用户恶意向外部泄露数据(3)外部黑客对数据库进行攻击导致消息的泄露等等。这些行为都会使得数据库数据造成丢失、篡改、不法盈利等恶劣的现象。这样不仅对行业经济造成巨大损失,还非常不利于我国知识产权的保护。

于是研究数据库分发的泄密溯源问题,也逐渐成为一个研究热点。利用数据库数值属性的冗余位进行用户信息指纹嵌入,是数据库泄密溯源的一种有效应对方法。然而,还一些数据库,它们的数据冗余较少,嵌入信息容易影响数据库的可用性。所以针对不可失真的数据库,我们采用零水印结合数据库重组的思想来对首次分发用户进行有效的盗版溯源。

国内外关于无失真的数据库水印方法大致分为以下几类:元组哈希值、基于属性标记、基于二进制字符串、基于r树、基于零水印以及伪行伪列等水印方案。一开始,研究者们提出将数据库转化为二进制字符串作为水印,后来发展出了基于r树的水印技术。随着水印技术的不断发展,后来出现了零水印技术,零水印技术始于图像水印领域,能在不改变原始图像的前提下,从图像中提取出特征值来生成水印信息,从而达到版权判定,保护多媒体产品的目标。渐渐地,一些研究者将零水印技术用到了数据库版权保护领域,取得了较好的效果。现阶段的研究中使用最为广泛的就是零水印算法,本发明就是采用一种基于属性分类的零水印算法结合数据库重组的思想,对数据库首次分发的用户进行追踪,对零水印无法盗版追踪的缺点进行了改进。



技术实现要素:

技术问题:本发明的目的是提供一种用于数据库分发保护的零水印方法。主要针对数据库泄密溯源,通过采用数据库重组分发来初步追踪首次分发者,然后再从重组后的数据库通过基于属性分类思想的零水印算法生成水印密钥,对于首次分发者进行进一步的判定追踪,解决了数据库首次分发溯源的要求,更精确有效的追踪溯源。

技术方案如下:

用于数据库分发保护的零水印方法,包括在首次分发前对数据库进行重组生成t-f表、对重要属性选择后进行零水印的生成、对泄露的数据库先比对t-f表再进行零水印的提取检测三个部分,其中:

对于首次分发前对数据库进行重组生成t-f表,将原始数据库根据不同的首次分发用户进行重组,并对重组后的各表添加或者替换原来的主外键,从而在参照关系不变的情况下得到不同表结构的数据库,然后对于每种重组后的数据库表进行属性记录并存放在t-f表中,方便数据库泄露之后的初步溯源;

对于重要属性选择后进行零水印的生成,通过随机森林对特征重要性的评估来选取重要属性参与特征提取,并使用属性分类的思想对选取的属性进行分类编号,通过提取属性的分类编号与水印信息相加模10的方法生成水印密钥,并注册到第三方权威机构ca中;

对泄露的数据库先比对t-f表再进行零水印的提取检测,首先,对于泄露的数据库比对t-f表,初步确定首次分发的用户单位,然后通过对泄露的数据库进行零水印密钥的提取,并与注册在ca中的水印密钥进行比对检测,最终判定泄露的源头;

具体步骤如下:

步骤1)获取一组包含n个元组的原始数据库表h,根据对不同用户按照它的需求功能划分到不同的数据库表[h]中,对应的表重组为不同的表结构和个数k,能快速定位首次分发者的范围;

步骤2)根据重组后的表,按照各表属性拥有情况,将其对应存储到t-f表中,方便泄密表的属性对照;

步骤2.1):t-f表的表头列为重组后的每张表的名称{h1,h2,...},表头行为原始的表中所有的属性名称{a1,a2,...}。当某表中含有某属性ai时,就在对应的位置赋t,否则赋f。

步骤3)对重要属性进行选取和元组标记;

步骤3.1):使用随机森林算法对特征重要性的评估来选取m个重要属性{a1,a2,...am}

步骤3.2):将选取出来的每个属性与主键属性组成新的关系表d(p,ai),使用sha-1哈希函数按照主键值和属性值对元组进行标记,表示为rid=hash(key1,r.p,r.ai),key1为数据库拥有者拥有的密钥,其中r为数据库元组,p为数据库主键,r.p为主键为p的元组,r.ai为属性为ai的元组;

步骤4)对选取的属性进行分类并标记生成cid;

步骤4.1):对每个选取的属性ai,按照其属性特点进行分类标记,若ai可以分为n类,记为f1,f2,...fn;

步骤4.2):通过分类算法f(rid,r.ai)来标记生成每一个属性值,对应的cid用1,2,...n来进行标记;

步骤5)生成水印密钥key2

步骤5.1):对于满足ridmodm=0的元组进行选取并存取为密钥串1,然后记录选取rid的cid值;

步骤5.2):根据生成的十进制水印信息的长度lw,将总长度为lf的分类特征数字串cid转化成行,lw列的二维数组。

步骤5.3):将要嵌入的水印信息转化为十进制数字串与按rid提取出来的cid数字串进行相加,然后模10得到密钥串2,最后将密钥串1和密钥串2一起存储为水印密钥key2;

步骤6)将key1和水印密钥key2在第三方认证机构ca中完成注册,能够有效地挫败试图在ca中注册“有效”水印以及混淆身份验证的盗版攻击;

步骤7)对于泄露的数据库表进行检测并追踪首次分发用户;

步骤7.1):对泄露的表分析属性拥有情况,比对t-f表并初步定位首次分发的用户;

步骤7.2):然后对泄露的数据库表按照步骤3,步骤4和步骤5的方法进行零水印的提取,得到rid对应的序列cid,将该分发用户在ca中注册的key2取出,然后将key2中的密钥2减去提取出的cid加10后再模10,得到个水印信息;

步骤7.3):接着,对这个水印信息使用多数选举的方法,选取出出现次数最高的一组数字,将其转化为二进制字符串w″,然后和原来的数据库水印码字w′采用以下公式进行相关度检测:将计算出来的相似度与事先给定的阈值相比较来确定数据库版权的归属,目前一般阈值定为5,当相关度检测结果超过这个阈值时,给出含有指定水印的结论,从而完成首次分发用户的追踪。

有益效果:作为一种用于数据库分发保护的零水印方法,本方法弥补了传统数据库分发溯源需要将水印或者指纹信息嵌入数据库冗余位,从而一定程度上影响数据库可用性的缺点,使用基于属性分类思想的零水印技术来保证不破坏原有的数据库。本方法就零水印技术无法实现盗版追踪的现象,结合数据库重组的思想,在不改变原有表结构的基础上,重组数据库表,到达一定的溯源效果,同时使用零水印对版权信息进行准确判定,对数据库首次分发用户进行精准溯源。

本发明与已有技术对比具有以下的一些特点和创新之处:

(1)本发明将数据库重组的思想结合零水印的方法,当数据库发生泄漏时,对数据库首次分发的用户进行精准判定;

(2)本发明通过随机森林的方法选取重要的属性来进行特征提取,有效地增加攻击者攻击数据库的难度,如果重要属性遭破坏,数据库的价值将大大下降,所以攻击者不敢随意攻击重要属性来改变水印信息。

附图说明

图1是数据库分发保护零水印方法的整体流程框图。

图2是步骤3,4,5水印密钥生成的具体流程图。

图3是步骤6,7根据泄露表溯源首次分发用户的具体流程图。

具体实施方式

以下结合附图具体说明本发明技术方案。

本发明的目的是提供一种用于数据库分发保护的零水印方法。主要针对数据库泄密溯源,通过采用数据库重组分发来初步追踪首次分发者,然后再从重组后的数据库通过基于属性分类思想的零水印算法生成水印密钥,对于首次分发者进行进一步的判定追踪,解决了数据库首次分发溯源的要求,更精确有效的追踪溯源。总体流程如附图1所示,具体步骤如下:

步骤1)获取一组包含n个元组的原始数据库表h,根据对不同用户按照它的需求功能划分到不同的数据库表[h]中,对应的表重组为不同的表结构和个数k,能快速定位首次分发者的范围;

步骤2)根据重组后的表,按照各表属性拥有情况,将其对应存储到t-f表中,方便泄密表的属性对照;

步骤2.1):t-f表的表头列为重组后的每张表的名称{h1,h2,...},表头行为原始的表中所有的属性名称{a1,a2,...}。当某表中含有某属性ai时,就在对应的位置赋t,否则赋f。

步骤3)对重要属性进行选取和元组标记;

步骤3.1):使用随机森林算法对特征重要性的评估来选取m个重要属性{a1,a2,...am}

步骤3.2):将选取出来的每个属性与主键属性组成新的关系表d(p,ai),使用sha-1哈希函数按照主键值和属性值对元组进行标记,表示为rid=hash(key1,r.p,r.ai),key1为数据库拥有者拥有的密钥,其中r为数据库元组,p为数据库主键,r.p为主键为p的元组,r.ai为属性为ai的元组;

步骤4)对选取的属性进行分类并标记生成cid;

步骤4.1):对每个选取的属性ai,按照其属性特点进行分类标记,若ai可以分为n类,记为f1,f2,...fn;

步骤4.2):通过分类算法f(rid,r.ai)来标记生成每一个属性值,对应的cid用1,2,...n来进行标记;

步骤5)生成水印密钥key2

步骤5.1):对于满足ridmodm=0的元组进行选取并存取为密钥串1,然后记录选取rid的cid值;

步骤5.2):根据生成的十进制水印信息的长度lw,将总长度为lf的分类特征数字串cid转化成行,lw列的二维数组。

步骤5.3):将要嵌入的水印信息转化为十进制数字串与按rid提取出来的cid数字串进行相加,然后模10得到密钥串2,最后将密钥串1和密钥串2一起存储为水印密钥key2;

步骤6)将key1和水印密钥key2在第三方认证机构ca中完成注册,能够有效地挫败试图在ca中注册“有效”水印以及混淆身份验证的盗版攻击;

步骤7)对于泄露的数据库表进行检测并追踪首次分发用户;

步骤7.1):对泄露的表分析属性拥有情况,比对t-f表并初步定位首次分发的用户;

步骤7.2):然后对泄露的数据库表按照步骤3,步骤4和步骤5的方法进行零水印的提取,得到rid对应的序列cid,将该分发用户在ca中注册的key2取出,然后将key2中的密钥2减去提取出的cid加10后再模10,得到个水印信息;

步骤7.3):接着,对这个水印信息使用多数选举的方法,选取出出现次数最高的一组数字,将其转化为二进制字符串w″,然后和原来的数据库水印码字w′采用以下公式进行相关度检测:将计算出来的相似度与事先给定的阈值相比较来确定数据库版权的归属,目前一般阈值定为5,当相关度检测结果超过这个阈值时,给出含有指定水印的结论,从而完成首次分发用户的追踪。

本发明提供了一种用于数据库分发保护的零水印方法,针对数据库在分发时可能出现的泄密,以及很难在泄密后溯源的问题,本发明设计了一种能有效追踪首次分发者的零水印方案。首先,在数据库分发前,针对不同的分发用户,将原数据库的表重组为不同的表结构和个数l,对于重组后的表,使用属性真假表(t-f表)存储,这样能在保留表间参照关系的前提下,能初步追踪首次分发者。其次,利用属性分类的思想对重组后的数据库进行零水印的嵌入,使用随机森林对变量重要性的评分来选取重要的属性进行特征提取,使得重要属性被保护,攻击者不易攻击数据库。然后,生成的水印密钥注册到证书颁发机构(ca)中,能有效抵抗混淆身份验证的攻击。最后,当有泄密的数据库被发现时,根据t-f表来初步判定首次分发的用户,再对其进行零水印的提取检测,通过比对提取出来的水印密钥与证书颁发机构(ca)中注册的水印来完成最终的版权判定,实现对首次分发的溯源。本发明相比于传统的零水印方案增加了泄密溯源的能力。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。


技术特征:

1.用于数据库分发保护的零水印方法,其特征在于,包括在首次分发前对数据库进行重组生成t-f表、对重要属性选择后进行零水印的生成、对泄露的数据库先比对t-f表再进行零水印的提取检测三个部分,其中:

对于首次分发前对数据库进行重组生成t-f表,将原始数据库按照不同的首次分发用户进行重组,并对重组后的各表添加或者替换原来的主外键,从而在参照关系不变的情况下得到不同表结构的数据库,然后对于每种重组后的数据库表进行属性记录并存放在t-f表中,方便数据库泄露之后的初步溯源;

对于重要属性选择后进行零水印的生成,通过随机森林对特征重要性的评估来选取重要属性参与特征提取,并使用属性分类的思想对选取的属性进行分类编号,通过提取属性的分类编号与水印信息相加模10的方法生成水印密钥,并将水印密钥注册到第三方权威机构ca中;

对泄露的数据库先比对t-f表再进行零水印的提取检测,首先,对于泄露的数据库比对t-f表,初步确定首次分发的用户单位,然后通过对泄露的数据库进行零水印密钥的提取,并与注册在ca中的水印密钥进行比对检测,最终追踪泄露的源头。

2.根据权利要求1所示的用于数据库分发保护的零水印方法,其特征在于,具体步骤如下:

步骤1)获取一组包含n个元组的原始数据库表h,根据对不同用户按照它的需求功能划分到不同的数据库表[h]中,对应的表重组为不同的表结构和个数k,快速定位首次分发者的范围;

步骤2)根据重组后的表,按照各表属性拥有情况,将其对应存储到t-f表中,方便泄密表的属性对照;

t-f表的表头列为重组后的每张表的名称{h1,h2,...},表头行为原始的表中所有的属性名称{a1,a2,...};当某表中含有某属性ai时,就在对应的位置赋t,否则赋f;

步骤3)对重要属性进行选取和元组标记;

步骤4)对选取的属性进行分类并标记生成cid;

步骤5)生成水印密钥key2;

步骤6)将数据库拥有者拥有的密钥key1和水印密钥key2在第三方认证机构ca中完成注册;

步骤7)对于泄露的数据库表进行检测并追踪首次分发用户。

3.根据权利要求2所示的用于数据库分发保护的零水印方法,其特征在于,步骤3)对重要属性进行选取和元组标记的具体方法为:

步骤3.1):使用随机森林算法对特征重要性的评估来选取m个重要属性(a1,a2,...am}

步骤3.2):将选取出来的每个属性与主键属性组成新的关系表d(p,ai),使用sha-1哈希函数按照主键值和属性值对元组进行标记,表示为rid=hash(key1,r.p,r.ai),key1为数据库拥有者拥有的密钥,其中r为数据库元组,p为数据库主键,r.p为主键为p的元组,r.ai为属性为ai的元组。

4.根据权利要求2所示的用于数据库分发保护的零水印方法,其特征在于,步骤4)对选取的属性进行分类并标记生成cid的具体方法为:

步骤4.1):对每个选取的属性ai,按照其属性特点进行分类标记,若ai分为n类,记为f1,f2,...fn;

步骤4.2):通过分类算法f(rid,r.ai)来标记生成每一个属性值,对应的cid用1,2,...n来进行标记。

5.根据权利要求2所示的用于数据库分发保护的零水印方法,其特征在于,步骤5)生成水印密钥key2的具体方法为:

步骤5.1):对于满足ridmodm=0的元组进行选取并存取为密钥串1,然后记录选取rid的cid值;

步骤5.2):根据生成的十进制水印信息的长度lw,将总长度为lf的分类特征数字串cid转化成行、lw列的二维数组;

步骤5.3):将要嵌入的水印信息转化为十进制数字串与按rid提取出来的cid数字串进行相加,然后模10得到密钥串2,最后将密钥串1和密钥串2一起存储为水印密钥key2。

6.根据权利要求2所示的用于数据库分发保护的零水印方法,其特征在于,步骤7)对于泄露的数据库表进行检测并追踪首次分发用户的具体方法为:

步骤7.1):对泄露的表分析属性拥有情况,比对t-f表并初步定位首次分发的用户;

步骤7.2):然后对泄露的数据库表按照步骤3,步骤4和步骤5的方法进行零水印的提取,得到rid对应的序列cid,将该分发用户在ca中注册的key2取出,然后将key2中的密钥2减去提取出的cid加10后再模10,得到个水印信息;

步骤7.3):接着,对这个水印信息使用多数选举的方法,选取出出现次数最高的一组数字,将其转化为二进制字符串w”,然后和原来的数据库水印码字w′采用以下公式进行相关度检测:将计算出来的相似度与事先给定的阈值相比较来确定数据库版权的归属,当相关度检测结果超过这个阈值时,给出含有指定水印的结论,从而完成首次分发用户的追踪。

7.根据权利要求6所示的用于数据库分发保护的零水印方法,其特征在于,所述阈值为5。

技术总结
本发明提供了一种用于数据库分发保护的零水印方法,首先,在数据库分发前,针对不同的分发用户,将原数据库的表重组为不同的表结构和个数L,对于重组后的表,使用T‑F表存储。其次,利用属性分类的思想对重组后的数据库进行零水印的嵌入,使用随机森林对变量重要性的评分来选取重要的属性进行特征提取。然后,生成的水印密钥注册到证书颁发机构中,抵抗混淆身份验证的攻击。最后,当有泄密的数据库被发现时,根据T‑F表来初步判定首次分发的用户,再对其进行零水印的提取检测,通过比对提取出来的水印密钥与证书颁发机构中注册的水印来完成最终的版权判定,实现对首次分发的溯源。本发明相比于传统的零水印方案增加了泄密溯源的能力。

技术研发人员:张迎周;沈茂林;邸云龙;孙玉欣;高戈;沈锡
受保护的技术使用者:南京邮电大学
技术研发日:2020.01.03
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55978.html

最新回复(0)