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

技术编号:11951048 阅读:157 留言:0更新日期:2015-08-26 19:42
本发明专利技术涉及一种针对数值型关系数据库的数字水印版权保护方法,属于计算机安全领域,具体提供一种数值型关系数据库水印的嵌入及提取验证方法。所述的方法包括对数值型关系数据库的模式和数据分析,数字水印生成及嵌入,以及数字水印的检测方法。本发明专利技术针对数值型关系数据库的特点,能够高效动态的对数据均匀的注入数字水印信息,并且在不需要源数据的情况下,提取出数字水印信息。所述的方法采用了密钥加密和抗重排序等技术,能够有效的抵抗各类去水印攻击,能够保证在低于50%的行修改情况下不会丢失水印。

【技术实现步骤摘要】

本专利技术涉及数据库安全
,特别是一种基于数值型关系数据库的水印嵌入方法。
技术介绍
数字水印技术是网络环境下实现多媒体信息版权保护的一种有效手段。随着关系型数据库的广泛使用,人们越来越关注数据库的版权保护,特别是提供信息服务的公司,如气象服务、人才市场信息、股票交易信息等,其主要资产是存储于数据库里的大量数据。通过在关系数据库中嵌入代表所有权的水印信息,可以有效防止有价值的数据被非法盗用,实现数据库的版权保护。因此,关系型数据库水印技术的研究和发展具有较大的理论价值和实际意义。关系数据库数据不同于多媒体载体数据,有其自身特点,而直接将多媒体水印技术应用到关系数据库中是不适合的,因此就必须研究一种适应关系数据库自身特点的水印。2002年,R.Agraw al和Kiernan等首次提出关系数据库水印,并提出一种适应关系数据库特性的水印标记策略。2003年,R.Sion等任在关系数据库中用对数值型属性进行标记的方法实现水印来保护关系数据库的版权。2003年,牛夏牧等人对关系数据库数字水印作进一步研究加入小量有实际意义的水印的技术。国内其他水印工作者们为推进数据库水印研究发展作了许多努力。但他们有一个共同的缺点,即安全性较差、容易受到破解、盗版者可以轻易的破坏或除去水印内容,这样便失去了水印技术的意义。
技术实现思路
本专利技术所要解决的技术问题是,提供一种用数字水印技术保护数据库版权的方法,该方法能够有效的保护数据库,并且具有较强的抗攻击性,使得水印不容易受到破坏,可为数据所有者证明数据版权的有效性。本专利技术提供了如下技术方案:一种数值型关系数据库水印的嵌入及提取验证方法,其流程如图1和图2所示,具体包括以下步骤:步骤1.数据库初始化;数据库包含有多个元组,每个元组的数据模式相同均为R=(Pk,A1,A2…An,Fk),其中,Pk为主键,Fk为外键,A1、A2…An为属性;将主键、外键及具有唯一约束的属性归属为核心属性列集C;定义列集S为可选属性集,所述可选属性集由非敏感数值型属性组成,非敏感数值型属性为对数值的微小变化不敏感的属性,如坐标,重量,长度等属性;步骤2.对上述数据库进行水印嵌入操作;步骤2-1.采用单向散列算法结合水印密钥Key对每一个元组中属于核心属性列集C的数据块进行散列计算得相应的散列值H,使得水印信息均匀的分布在数据库中,单向散列算法在保持核心列集其自身特性的同时避免了其公开性的特点;所述散列算法采用的Hash函数可以是MD5(Message Digest Algorithm 5)、SHA(Secure Hash Algorithm)或MAC(Message Authentication Code);所述单向散列算法的水印密钥Key为数据库所有者设置并持有,水印密钥值的作用是防止盗版者对系统的破解,若无该Key值,盗版者可以轻松的通过对核心列集进行散列计算并找出水印规律并消除水印;散列函数具有单向计算的特性,对于给定的输入m,能够计算出唯一的散列值H,但是无法根据散列值H计算出其输入m的值;步骤2-2.数据库所有者设置水印嵌入密度N,水印密度值N的含义为:每N个元组中有一个元组包含水印信息;N的值越小,嵌入水印的密度越大,N值越大,嵌入水印的密度越小;采用该机制使得本专利技术方法能够应对数据库的持续增长,数据库的增长不会影响嵌入水印的密度,也不用对之前所嵌入的水印进行重新计算和操作;步骤2-3.针对所有元组,若一个元组的散列值H能够被水印嵌入密度N整除,则标记该元组需要进行水印嵌入,若不能整除则不对该元组做任何操作;针对该数据库,其完整的水印内容为一个二进制序列数组Wb,所述序列数组Wb由数据库所有者设置;针对需要进行水印嵌入的元组,每个元组对应一个索引值Index,索引值由以下方法获得:选取与步骤2-1相同的Hash函数并采用单向散列算法结合索引密钥iKey,对每一个元组中属于核心属性列集C的数据块进行散列计算得相应的散列值He,记索引值Index为散列值He除以数组Wb的位数所得的余数;所述索引密钥iKey为数据库所有者设置并持有且不同于所述水印密钥Key,由此加强水印机制的安全性;步骤2-4.针对需要进行水印嵌入的每个元组,从所述二进制序列数组Wb中选择第Index位对应的数值Wb[index],将数值Wb[index]嵌入到对应的元组中:将对应元组的属于可选属性集S的数据块的最低有效位数值替换成Wb[index];由此完成该数据库水印的嵌入;步骤3.针对按上述方法实现水印嵌入的数据库,按以下方法可实现所述数据库的水印提取与验证;步骤3-1.采用单向散列算法结合水印密钥Key对每一个元组的属于核心属性列集C的数据块进行散列计算得相应的散列值H',所述散列算法采用的Hash函数与步骤2-1采用的Hash函数相同;步骤3-2.针对所有元组,若一个元组的散列值H'能够被水印嵌入密度N整除,则标记该元组需要进行水印提取,若不能整除则不对该元组做任何操作;步骤3-3.针对需要进行水印提取的元组,提取出每个元组中属于可选属性集S的数据块的最低有效位数值LSB[selectAttr],选取与步骤2-1相同的Hash函数并采用单向散列算法结合索引密钥iKey,对每一个元组中属于核心属性列集C的数据块进行散列计算得相应的散列值He',记索引值Index'为散列值He'除以数组Wb的位数所得的余数;所述索引密钥iKey与步骤2-3所述的索引密钥iKey相同;此时,每一个需要进行水印提取的元组,其最低有效位数值LSB[selectAttr]存在一个与其相对应的索引值Index';步骤3-4.构建二进制序列数组Result,所述数组Result的位数与步骤2-3所述数组Wb的位数相同均为T,则Index'∈[0,T-1],具体构建方法如下:针对进行水印提取的所有元组,将其中索引值Index'相同的元组对应的最低有效位数值LSB[selectAttr]汇聚于一个集合中,由此构建T个集合B1、…、Bi、…、BT,i=1,…,T,其中集合Bi为索引值Index'均为i-1的元组对应的最低有效位数值LSB[selectAttr]的集合;将所述T个集合B1、…、Bi、…、BT分别赋值C1、…、Ci、…、CT,赋值方法如下:针对第i个集合Bi,统计集合中最低有效位数值LSB[selectAttr]分别为0和1的个数,若集合中数值LSB[selectAttr]为0的个数不小于数值LSB[selectAttr]为1的个数,则本文档来自技高网...
一种数值型关系数据库水印的嵌入及提取验证方法

【技术保护点】
一种数值型关系数据库水印的嵌入方法,具体包括以下步骤:步骤1.数据库初始化;数据库包含有多个元组,每个元组的数据模式相同均为R=(Pk,A1,A2…An,Fk),其中,Pk为主键,Fk为外键,A1、A2…An为属性;将主键、外键及具有唯一约束的属性归属为核心属性列集C;定义列集S为可选属性集,所述可选属性集由非敏感数值型属性组成;步骤2.对上述数据库进行水印嵌入操作;步骤2‑1.采用单向散列算法结合水印密钥Key对每一个元组的属于核心属性列集C的数据块进行散列计算得相应的散列值H,所述散列算法的水印密钥Key为数据库所有者设置并持有;步骤2‑2.数据库所有者设置水印嵌入密度N;步骤2‑3.针对所有元组,若一个元组的散列值H能够被水印嵌入密度N整除,则标记该元组需要进行水印嵌入,若不能整除则不对该元组做任何操作;针对该数据库,其完整的水印内容为一个二进制序列数组Wb,所述序列数组Wb由数据库所有者设置;针对需要进行水印嵌入的元组,每个元组对应一个索引值Index,索引值由以下方法获得:选取与步骤2‑1相同的Hash函数并采用单向散列算法结合索引密钥iKey,对每一个元组的属于核心属性列集C的数据块进行散列计算得相应的散列值He,记索引值Index为散列值He除以数组Wb的位数所得的余数;所述索引密钥iKey为数据库所有者设置并持有且不同于所述水印密钥Key;步骤2‑4.针对需要进行水印嵌入的每个元组,从所述二进制序列数组Wb中选择第Index位对应的数值Wb[index],将数值Wb[index]嵌入到对应的元组中:将对应元组的属于可选属性集S的数据块的最低有效位数值替换成Wb[index];由此完成该数据库水印的嵌入。...

【技术特征摘要】
1.一种数值型关系数据库水印的嵌入方法,具体包括以下步骤:
步骤1.数据库初始化;
数据库包含有多个元组,每个元组的数据模式相同均为R=(Pk,A1,A2…An,Fk),其中,
Pk为主键,Fk为外键,A1、A2…An为属性;将主键、外键及具有唯一约束的属性归属为核
心属性列集C;定义列集S为可选属性集,所述可选属性集由非敏感数值型属性组成;
步骤2.对上述数据库进行水印嵌入操作;
步骤2-1.采用单向散列算法结合水印密钥Key对每一个元组的属于核心属性列集C的数
据块进行散列计算得相应的散列值H,所述散列算法的水印密钥Key为数据库所有者设置并
持有;
步骤2-2.数据库所有者设置水印嵌入密度N;
步骤2-3.针对所有元组,若一个元组的散列值H能够被水印嵌入密度N整除,则标记
该元组需要进行水印嵌入,若不能整除则不对该元组做任何操作;
针对该数据库,其完整的水印内容为一个二进制序列数组Wb,所述序列数组Wb由数据
库所有者设置;针对需要进行水印嵌入的元组,每个元组对应一个索引值Index,索引值由以
下方法获得:
选取与步骤2-1相同的Hash函数并采用单向散列算法结合索引密钥iKey,对每一个元组
的属于核心属性列集C的数据块进行散列计算得相应的散列值He,记索引值Index为散列值
He除以数组Wb的位数所得的余数;所述索引密钥iKey为数据库所有者设置并持有且不同于
所述水印密钥Key;
步骤2-4.针对需要进行水印嵌入的每个元组,从所述二进制序列数组Wb中选择第Index
位对应的数值Wb[index],将数值Wb[index]嵌入到对应的元组中:将对应元组的属于可选属
性集S的数据块的最低有效位数值替换成Wb[index];由此完成该数据库水印的嵌入。
2.根据权利要求1所述的数值型关系数据库水印的嵌入方法,其特征在于,所述散列算
法采用的Hash函数是MD5(Message Digest Algorithm 5)、SHA(Secure Hash Algorithm)和
MAC(Message Authentication Code)中的一种。
3.根据权利要求1所述的数值型关系数据库水印的嵌入方法,其特征在于,还包括以下
步骤:
步骤3.针对按步骤1至步骤2所述方法实现水印嵌入的数据库,按以下方法可实现所述
数...

【专利技术属性】
技术研发人员:刘小垒张小松江堂碧牛伟纳俞工淳唐海洋徐浩然孙恩博
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1