一种数值型关系数据库水印的嵌入及提取验证方法

文档序号:8543932阅读:614来源:国知局
一种数值型关系数据库水印的嵌入及提取验证方法
【技术领域】
[0001] 本发明设及数据库安全技术领域,特别是一种基于数值型关系数据库的水印嵌入 方法。
【背景技术】
[0002] 数字水印技术是网络环境下实现多媒体信息版权保护的一种有效手段。随着关系 型数据库的广泛使用,人们越来越关注数据库的版权保护,特别是提供信息服务的公司,如 气象服务、人才市场信息、股票交易信息等,其主要资产是存储于数据库里的大量数据。通 过在关系数据库中嵌入代表所有权的水印信息,可W有效防止有价值的数据被非法盗用, 实现数据库的版权保护。因此,关系型数据库水印技术的研究和发展具有较大的理论价值 和实际意义。
[0003] 关系数据库数据不同于多媒体载体数据,有其自身特点,而直接将多媒体水印技 术应用到关系数据库中是不适合的,因此就必须研究一种适应关系数据库自身特点的水 印。2002年,R.Agrawal和Kiernan等首次提出关系数据库水印,并提出一种适应关系数 据库特性的水印标记策略。2003年,R.Sion等任在关系数据库中用对数值型属性进行标记 的方法实现水印来保护关系数据库的版权。2003年,牛夏牧等人对关系数据库数字水印作 进一步研究加入小量有实际意义的水印的技术。国内其他水印工作者们为推进数据库水印 研究发展作了许多努力。但他们有一个共同的缺点,即安全性较差、容易受到破解、盗版者 可W轻易的破坏或除去水印内容,该样便失去了水印技术的意义。

【发明内容】

[0004] 本发明所要解决的技术问题是,提供一种用数字水印技术保护数据库版权的方 法,该方法能够有效的保护数据库,并且具有较强的抗攻击性,使得水印不容易受到破坏, 可为数据所有者证明数据版权的有效性。
[0005] 本发明提供了如下技术方案:
[0006] 一种数值型关系数据库水印的嵌入及提取验证方法,其流程如图1和图2所示,具 体包括W下步骤:
[0007] 步骤1.数据库初始化;
[0008] 数据库包含有多个元组,每个元组的数据模式相同均为R= (Pk,A1,A2…An,Fk), 其中,Pk为主键,化为外键,Al、A2…An为属性;将主键、外键及具有唯一约束的属性归属 为核屯、属性列集C;定义列集S为可选属性集,所述可选属性集由非敏感数值型属性组成, 非敏感数值型属性为对数值的微小变化不敏感的属性,如坐标,重量,长度等属性;
[0009] 步骤2.对上述数据库进行水印嵌入操作;
[0010] 步骤2-1.采用单向散列算法结合水印密钥Key对每一个元组中属于核屯、属性列 集C的数据块进行散列计算得相应的散列值H,使得水印信息均匀的分布在数据库中,单向 散列算法在保持核屯、列集其自身特性的同时避免了其公开性的特点;所述散列算法采用的 化sh函数可W是MD5(MessageDigestAlgorithm5)、SHA(Se州re化shAlgorithm)或MAC(MessageAuthenticationCode);
[0011] 所述单向散列算法的水印密钥Key为数据库所有者设置并持有,水印密钥值的作 用是防止盗版者对系统的破解,若无该Key值,盗版者可W轻松的通过对核屯、列集进行散 列计算并找出水印规律并消除水印;散列函数具有单向计算的特性,对于给定的输入m,能 够计算出唯一的散列值H,但是无法根据散列值H计算出其输入m的值;
[0012] 步骤2-2.数据库所有者设置水印嵌入密度N,水印密度值N的含义为:每N个元 组中有一个元组包含水印信息;N的值越小,嵌入水印的密度越大,N值越大,嵌入水印的密 度越小;采用该机制使得本发明方法能够应对数据库的持续增长,数据库的增长不会影响 嵌入水印的密度,也不用对之前所嵌入的水印进行重新计算和操作;
[0013] 步骤2-3.针对所有元组,若一个元组的散列值H能够被水印嵌入密度N整除,贝U 标记该元组需要进行水印嵌入,若不能整除则不对该元组做任何操作;
[0014] 针对该数据库,其完整的水印内容为一个二进制序列数组师,所述序列数组师由 数据库所有者设置;针对需要进行水印嵌入的元组,每个元组对应一个索引值Index,索引 值由W下方法获得:
[0015] 选取与步骤2-1相同的化sh函数并采用单向散列算法结合索引密钥化ey,对每一 个元组中属于核屯、属性列集C的数据块进行散列计算得相应的散列值H。,记索引值Index 为散列值H。除W数组Wb的位数所得的余数;所述索引密钥化ey为数据库所有者设置并持 有且不同于所述水印密钥Key,由此加强水印机制的安全性;
[0016] 步骤2-4.针对需要进行水印嵌入的每个元组,从所述二进制序列数组师中选择 第Index位对应的数值师[index],将数值师[index]嵌入到对应的元组中;将对应元组的 属于可选属性集S的数据块的最低有效位数值替换成师[index];由此完成该数据库水印 的嵌入;
[0017] 步骤3.针对按上述方法实现水印嵌入的数据库,按W下方法可实现所述数据库 的水印提取与验证;
[0018] 步骤3-1.采用单向散列算法结合水印密钥Key对每一个元组的属于核屯、属性列 集C的数据块进行散列计算得相应的散列值H',所述散列算法采用的化sh函数与步骤2-1 采用的化sh函数相同;
[0019] 步骤3-2.针对所有元组,若一个元组的散列值H'能够被水印嵌入密度N整除,贝U 标记该元组需要进行水印提取,若不能整除则不对该元组做任何操作;
[0020] 步骤3-3.针对需要进行水印提取的元组,提取出每个元组中属于可选属性集S的 数据块的最低有效位数值LSBkelectAttr],选取与步骤2-1相同的化sh函数并采用单向 散列算法结合索引密钥化ey,对每一个元组中属于核屯、属性列集C的数据块进行散列计算 得相应的散列值H。',记索引值Index'为散列值H。'除W数组师的位数所得的余数;所述 索引密钥化ey与步骤2-3所述的索引密钥化ey相同;此时,每一个需要进行水印提取的元 组,其最低有效位数值LSB[selectAttr]存在一个与其相对应的索引值Index' ;
[0021] 步骤3-4.构建二进制序列数组Result,所述数组Result的位数与步骤2-3所述 数组师的位数相同均为T,则Index'G[0,T-1],具体构建方法如下;
[0022]针对进行水印提取的所有元组,将其中索引值Index'相同的元组对应的最低 有效位数值LSB[selectAttr]汇聚于一个集合中,由此构建T个集合Bi、…、Bi、…、Bt,i= 1,…,T,其中集合町为索引值Index'均为i-1的元组对应的最低有效位数值 LSB[selectAttr]的集合;
[0023] 将所述T个集合Bi、…、Bi、…、Bt分别赋值Cl、…、。、…、Ct,赋值方法如下:针 对第i个集合町,统计集合中最低有效位数值LSBkelectAttr]分别为0和1的个数,若 集合中数值LSB[selectAttr]为0的个数不小于数值LSB[selectAttr]为1的个数,则将 该集合赋值。=0,否则,将该集合赋值C1= 1 ;由此提取出所述数据库的水印信息即数组 Result=町、???、。、…、〔了];
[0024] 由于数据库的水印信息可能会受到破坏,所W在生成数组Result的过程中,需要 采用投票机制确定水印信息位的取值,该样可W保证在对水印信息50%的修改率W下的情 况下,水印信息不会被破坏,在实际状况中,由于盗版者不知道该元组
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1