数据库水印标记方法与流程

文档序号:12551202阅读:1294来源:国知局
本发明涉及隐私安全
技术领域
:,具体涉及一种数据库水印标记方法。
背景技术
::随着国家信息化建设的大力开展和电子应用的普及,越来越多的数据库通过网络来存储、发布。企业内部积累了大量包含巨大价值的数据资源,如果不采取有效的安全防护机制和版权保护措施,一旦出现数据库被恶意篡改的情况,就无法证明其真伪。数字水印技术是将一些标识信息直接嵌入数字载体(包括多媒体、文档、软件等)当中,通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。近年来,数字水印成为保护信息安全、实现防伪溯源、版权保护的有效方法,是信息隐藏技术研究领域的重要分支和研究方向。然而现有技术中的水印标记方案中在鲁棒性、不可感知性和扩展性方面还有所欠缺。基于此,本申请有必要提出一种数据库水印标记方法,保障数据信息的安全。技术实现要素:本发明所要解决的技术问题是:提出一种数据库水印标记方法,解决传统技术中水印标记方案在鲁棒性、不可感知性和扩展性方面有所欠缺的问题,保障数据信息的安全。本发明解决上述技术问题所采用的技术方案是:数据库水印标记方法,包括以下步骤:a.获取关系数据库原始数据记录,对数据记录进行解析,设置水印对应的配置信息,所述配置信息包括:核心列集CoreAtt、可选列集SelectAttr、候选集大小N;b.在标记水印时,通过对核心列集的计算,找出满足条件的记录行并确定嵌入的水印bit索引,然后进行水印信息的嵌入;c.在识别水印时,通过对核心列集的计算,找出嵌入标记的记录行并识别嵌入的水印bit索引,然后提取完整的水印信息。作为进一步优化,所述方法还包括步骤:d.对记录性水印标记进行抗攻击能力分析。作为进一步优化,所述步骤a中,CoreAttr是记录中不可更改的属性,一旦更改该记录就不可用了;SelectAttr是记录中可轻微更改但不可删除的属性,水印信息将会在这个属性中记录;N是平均嵌入1次水印需要的记录数量。作为进一步优化,所述步骤b中,所述水印信息的嵌入包括离线水印的嵌入和在线水印的嵌入,步骤b具体包括:b1.扫描每一行记录,计算该行是否需要被标记,计算公式为:selectRow=f(key,coreAttr)%N,其中,Key是密钥,coreAtrr是该行核心属性对应的值,f是密钥和核心属性值做加密运算的hash函数,如果selectRow为0,则判定该行需要被标记,则计入步骤b2,否则继续进行下一行扫描;b2.计算在选择列嵌入的水印bit索引,计算公式为:bitIndext=f(key,coreAttr)%sizeof(water_bits),其中,Key是密钥,coreAtrr是该行核心属性对应的值,f是密钥和核心属性值做加密运算的hash函数,water_bits是嵌入的标记信息,sizeof是计算嵌入信息的大小;b3.修改选择列的某位为水印bit,修改公式为:selectColumn[i]=water_bits[bitIndex],其中,selectColumn是需要插入标记信息的可选属性值,bitIndext表示需要嵌入到可选属性中的水印记录位置。作为进一步优化,所述步骤c中,所述提取完整的水印信息包括离线水印的提取和在线水印的提取,步骤c具体包括:c1.扫描每一行记录,计算该行是否做了标记,计算公式为:selectRow=(F(encryKey,coreAttr)%N)其中,encryKey是密钥,coreAttr为核心属性值,F表示密钥和核心属性值做解密运算的hash函数,如果selectRow为0,表示该行记录包含水印信息,则进入步骤c2,否则继续进行下一行扫描;c2.计算包含水印信息列嵌入的水印bit索引,计算公式为:bitIndext=F(encryKey,coreAttr)%sizeof(water_bits)其中,encryKey是密钥,coreAttr为核心属性值,F表示密钥和核心属性值做解密运算的hash函数,sizeof(water_bits)表示嵌入的水印标记的大小;c3.提取选择列的某位对应水印bit,提取操作为:water_bits[bitIndex]=selectColumn[i]其中,water_bits是嵌入信息,selectColumn为需要插入标记信息的可选属性值,bitIndext表示需要嵌入到可选属性中的水印记录位置。本发明的有益效果是:(1)本发明提供的方法所产生的嵌入水印的属性列是具有业务意义的,不会做整体的删除和修改操作,能够使得水印信息得以保留,增加了鲁棒性;(2)本发明支持多种在线和离线记录的水印标记,具有良好的可扩展性;(3)本发明根据核心列和密钥选取部分行的可选属性进行标记,增加了不可感知性;(4)本发明通过对核心列以及密钥的操作选择嵌入信息位置,使得标记属性行,不会随着记录列顺序的调整和某些行的删除而影响水印结果,增大了数字水印的内嵌强度;且水印标记与内嵌信息尺寸、强度、信息量与密钥有关,最终达到鲁棒性和不可感知性之间的折中。附图说明图1为本发明实施例中的数据库水印标记方法流程图。具体实施方式本发明旨在提出一种数据库水印标记方法,解决传统技术中水印标记方案在鲁棒性、不可感知性和扩展性方面有所欠缺的问题,保障数据信息的安全。下面结合附图及实施例对本发明的方案作进一步的描述:如图1所示,本实施例中的数据库水印标记方法包括以下实现步骤:步骤1.获取关系数据库原始数据记录,对数据记录进行解析,设置水印对应的配置信息:在本实施例中定义记录水印的配置参数:核心列集CoreAttr、可选列SelectAttr、候选集大小N。CoreAttr是记录中不可更改的属性,一旦更改该记录就不可用了;SelectAttr是记录中可轻微更改但不可删除的属性,水印信息将会在这个属性中记录;N是平均嵌入1次水印需要的记录数量。1)如果记录表是孤立的表:coreAttr选择不可变更的属性列,selectAttr选择可轻微改动的属性列,候选集大小根据数据库记录数量而定;2)如果记录表是非孤立的表:coreAttr可选择不可变更的属性列、主键、外键,selectAttr选择可轻微改动的属性列,候选集大小根据数据库记录数量而定;步骤2.进行水印标记:即对水印信息嵌入,其包括离线水印嵌入和在线水印嵌入两个方面,实现步骤包括:步骤2.1、寻找需要标记的行:扫描每一行记录,根据密钥和核心属性值的hash运算结果对候选集大小进行同余除法的结果是否为0来判定该行是否需要被标记,计算公式为selectRow=f(key,coreAttr)%N,其中,Key是密钥,coreAtrr是该行核心属性对应的值,f是密钥和核心属性值做加密运算的hash函数,如果selectRow为0,进入步骤2.2,否则继续扫描下一行;步骤2.2、计算在选择列嵌入的水印bit索引,计算公式为bitIndext=f(key,coreAttr)%sizeof(water_bits),其中,Key是密钥,coreAtrr是该行核心属性对应的值,f是密钥和核心属性值做加密运算的hash函数,water_bits是嵌入的标记信息,sizeof是计算嵌入信息的大小,进入步骤2.3;步骤2.3、修改选择列的某位为水印bit,修改公式为selectColumn[i]=water_bits[bitIndex],其中,selectColumn是需要插入标记信息的可选属性值,bitIndext表示需要嵌入到可选属性中的水印记录位置。步骤3.进行水印提取:即提取水印信息,包括离线水印提取和在线水印提取两个方面,实现步骤包括:步骤3.1、寻找嵌入标记的行:扫描每一行记录,根据密钥和核心属性值的hash运算结果对候选集大小进行同余除法的结果是否为0来判定该行是否加入标记信息,计算公式为selectRow=F(encryKey,coreAttr)%N,其中,encryKey是密钥,coreAtrr是该行核心属性对应的值,F是联合密钥和核心属性值做解密运算的hash函数,如果selectRow为0,进入步骤3.2,否则继续扫描下一行;步骤3.2、确定嵌入的水印信息bit索引,计算公式为bitIndext=F(encryKey,coreAttr)%sizeof(water_bits),其中encryKey是密钥,coreAtrr是该行核心属性对应的值,F是密钥和核心属性值做解密运算的hash函数,water_bits是嵌入的标记信息,sizeof是计算嵌入信息的大小,进入步骤3.3;步骤3.3、提取嵌入的水印bit:water_bits[bitIndex]=selectColumn[i],其中,selectColumn是插入标记信息的可选属性值,bitIndext表示需要嵌入到可选属性中的水印记录位置,进入步骤3.4;步骤3.4、构建完整的水印信息water_bits。步骤4.对记录性水印标记进行抗攻击能力分析:1)记录的selectAttr属性是有业务意义的,盗版者不会对列做整体删除、修改操作,因此selectAttr的水印信息得以保留。2)调整记录的列顺序,显然不影响水印信息,因为列调整不会删除或修改selectAttr,水印信息得以保留。3)如果删除某些记录行,由于encryKey、coreAttr、N是不公开的,要确定那些记录是带有水印的是困难的。4)调整记录行,由于水印记录行的选择不是顺序的,而是以encryKey、coreAttr、N的hash结果进行选择,因此重新排序不影响hash结果,自然不影响水印行的选择。5)修改某些行,如果修改影响了coreAttr,则无论selectAttr是否被影响,该行都会被当做无水印记录;如果修改未影响coreAttr,且未影响selectAttr,水印得以保留;如果修改未影响coreAttr,且已影响selectAttr,那么该行的水印信息发生了错误。由于N远小于记录的条目,因此water_bits的每一个bitIndex都有多条记录行,最终该bitIndex的值是投票产生的,仅改变其中的小部分,不会影响最后的投票结果。6)hash函数的输出均匀特性,会使得水印记录行的选择以及water_bits的每一bitIndex值都是均匀的,要有效删除水印只有删除大部分记录。7)由于是选择性水印,因此无法抵御多份记录水印做串谋攻击。以对3亿微博用户关系配置水印信息为例:先构建记录表:table1idtotoal_numertable2idtargetId选择id为coreAttr,total_number为selectAttr,设定候选集大小为N,水印信息存储在table1.total_number;定义table1.total_number的水印bit信息,如果水印bit为1,则total_numbe的最低位设置为1;如果水印bit为0,则total_numbe的最低位设置为0;某id被选择存储水印时,如果total_number被增1,则在table2中插入一条无关的id-targetID即可。如果被减一,则在table2中删除一条id-target即可。这样,新生成的微博关系图将会带上均匀水印,无论将来是以数据库,还是文本存在都可以被检测出来。需要说明的是,本发明要求保护的技术方案包含但不仅限于上述实施例,本领域技术人员在本发明的上述实施例的描述下所作出的等同修改/替换均未脱离本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1