一种安全可逆的关系数据库版权保护技术的制作方法

文档序号:23004230发布日期:2020-11-20 11:53阅读:86来源:国知局
一种安全可逆的关系数据库版权保护技术的制作方法
本发明涉及计算机
技术领域
,特别是涉及一种安全可逆的关系数据库版权保护技术。
背景技术
:随着数据外包服务以及数据挖掘的兴起,在数据拷贝、复制以及传播过程中,容易产生数据的版权纠纷问题,严重损害了所有者的利益。申请号为cn201310624375.0,名称为一种面向版权保护的数据库水印方法,其公开了基于unicode的数据库文本数据进行数字水印的嵌入和检测算法,其选取种子数生成无意义的二值水印序列,同时存储版权信息和水印序列;建立不可见字符集与二值水印序列的映射关系;将水印序列映射为不可见字符组合,嵌入数据库中并更新数据,其利用混沌加密只嵌入无意义字符串,对水印信息转换成的二进制字符串缺乏纠错能力。技术实现要素:本发明为了解决关系数据库安全面临的上述版权问题,提出了一种针对关系数据库数值型属性的数字水印方案。本发明提供一种安全可逆的关系数据库版权保护技术,具体包括以下步骤:a.将水印明文转换为二进制序列;b.利用混沌加密对水印二进制序列进行置乱,并对置乱序列添加bch码进行差错控制;c.以每一个存在冗余的数值型属性列为单位分别执行水印嵌入程序;根据数据库所有者个人私有密钥以及嵌入比例确定被嵌入水印元组,根据水印长度确定该次嵌入过程选用的水印信息二进制序列中的水印比特值,以及随机选择要被修改的数值位;d.将嵌入水印后的数据库表发布,提供给需要的各方使用;e.发生版权纠纷时,需要对有版权争议的数据库表进行水印提取工作,并以此作为版权归属的有效证明,根据步骤c中涉及到的数据库所有者个人私有密钥、嵌入比例以及嵌入过程操作记录完成水印二进制序列提取;f.对提取的二进制序列利用bch码进行纠错,对纠错后的序列采用混沌解密得到最终的水印二进制序列。优选地,步骤a中嵌入在数据库中的水印以二进制序列的形式存在;数据库所有者定义的二进制序列可以从任何有意义的中文字符、图像、音频和其他信息或任何没有意义的随机序列转换。优选地,步骤b中的混沌加密其具体方法为:按照固定的规则多次执行相同的操作,得到伪随机序列称为混沌序列,混沌序列对水印初始二值序列进行置乱加密。优选地,混沌序列由混沌映射生成,混沌映射为一维混沌映射logistic,其定义如下:xk+1=μxk(1-xk)在0≤μ≤4和xk∈(0,1);当3.5699456≤μ≤4时,logistic映射呈现混沌状态,在混沌状态下,使用不同的初始键x0,映射函数生成的序列是非周期的、非收敛的伪随机序列。优选地,步骤b中的bch码为bch(31,16,7)差错控制码。优选地,步骤c对于选定的属性列中的单个属性列的嵌入算法如下:a.需要对每一个元组根据求得元组属性标识码c;b.确定被嵌入水印元组,根据水印长度确定该次嵌入过程选用的水印信息二进制序列中的水印比特值,以及随机选择要被修改的数值位;c.当选中的水印比特位是1的时候,将选中的数值位x修改为同时将值对保存到嵌入过程操作记录中;当选中的水印比特位是0时,执行零操作,将值对<h(t.p||ki),h(x||ki)>插入到嵌入过程操作记录中;d.遍历数据表做以上操作,直到所有的元组扫描结束后水印嵌入完毕。优选地,步骤a中获得元组属性标识码c,c(t.p,k,ki)=h(k||h(t.p||ki)),其中||表示连接操作,t.p为元组主键,k表示唯有数据库拥有者可知的私有密钥,ki为对应于不同属性列的密钥。优选地,步骤e从有版权争议的数据库表中提取水印信息,包括以下步骤:a).与步骤c以同样的方式求得元组属性标识码c;b).根据水印嵌入间距确定被嵌入水印的元组,根据水印长度确定被嵌入的水印比特值,以及确定可能发生置换的词组,即最优置换词x;c).查询记录以确定嵌入的比特位,对应规则如表所示:d).遍历数据库表做以上操作,直到所有的元组扫描结束;e).采用多数选举机制得到水印二进制比特序列每一位的最终取值。本发明的有益效果是:本发明应用于关系数据库的数值型属性,采用混沌加密以及添加bch(31,16,7)差错控制码的方式生成水印二进制序列,本发明采用混沌加密,一方面,对于混沌序列的生成,给定不同的初始值x0和参数μ,可以得到不同的混沌序列,此时可以使用x0和μ作为两个关键信息来提高水印的安全性;另一方面,用混沌序列置乱后的二值水印序列具有与混沌序列相同的伪随机性,从而提高了其鲁棒性。本发明以图像作为水印信息嵌入到关系数据库的数值型属性中,对数据库版权的证明具有更加直观的效果。另外对水印信息转换成的二进制字符串采用混沌加密,增强了方案的安全性。对于置乱后的二进制序列分组添加bch(31,16,7)差错控制码,提高了水印提取阶段的检出率。在语义层面上执行替换操作,进行水印嵌入,有效避免了lbs病态现象。在数据分布均匀的条件下,可以有效保证数据库整体均值在水印嵌入前后保持不变。算法具有可逆性,同时具有鲁棒性强的特点,能有效抵抗数据库应用过程中的多种常见攻击。附图说明图1是本发明实施的整体功能结构示意图;图2是本发明实施例要嵌入水印信息图像示意图。具体实施方式下面结合附图和实施例对本发明做进一步说明,以使本发明所属
技术领域
的技术人员能够容易实施本发明。实施例1:如图1所示,是本发明实施的整体功能结构示意图,本发明提供了一种针对关系数据库数值型属性的数字水印算法。具体包括以下步骤:a.将水印明文转换为二进制序列;b.利用混沌加密对水印二进制序列进行置乱,并对置乱序列添加bch(31,16,7)差错控制码;c.以每一个存在冗余的数值型属性列为单位分别执行水印嵌入程序;根据数据库所有者个人私有密钥以及嵌入比例确定被嵌入水印元组,根据水印长度确定该次嵌入过程选用的水印信息二进制序列中的水印比特值,以及随机选择要被修改的数值位;d.将嵌入水印后的数据库表发布,提供给需要的各方使用;e.发生版权纠纷时,需要对有版权争议的数据库表进行水印提取工作,并以此作为版权归属的有效证明。根据步骤c中涉及到的数据库所有者个人私有密钥、嵌入比例以及嵌入过程操作记录完成水印二进制序列提取;f.对提取的二进制序列利用bch(31,16,7)码进行纠错,对纠错后的序列采用混沌解密得到最终的水印二进制序列。优选地,步骤a中嵌入在数据库中的水印以二进制序列的形式存在。数据库所有者定义的二进制序列可以从任何有意义的中文字符、图像、音频和其他信息或任何没有意义的随机序列转换。优选地,步骤b中的混沌加密。混沌理论认为,如果按照固定的规则多次执行相同的操作,其结果将是不可预测的。基于这一理论,可以用一个简单的模型得到具体的非周期结果。重复这个固定规则得到的伪随机序列称为混沌序列,它不具有周期性,也不收敛于某个值。利用混沌序列的确定性、伪随机性和初值敏感性,对水印初始二值序列进行置乱加密。混沌序列由混沌映射生成。logistic是一种非常简单但应用广泛的一维混沌映射,其定义如下:xk+1=μxk(1-xk)在0≤μ≤4和xk∈(0,1)。当3.5699456≤μ≤4时,logistic映射呈现混沌状态。在混沌状态下,使用不同的初始键x0,映射函数生成的序列是非周期的、非收敛的伪随机序列。混沌序列适用于水印二进制序列的加密。一方面,对于混沌序列的生成,给定不同的初始值x0和参数正则,可以得到不同的混沌序列。此时可以使用x0和凭据作为两个关键信息来提高水印的安全性。另一方面,用混沌序列置乱后的二值水印序列具有与混沌序列相同的伪随机性,从而提高了其鲁棒性。优选地,步骤b中的添加bch(31,16,7)差错控制码。差错控制是利用编码方法控制数字通信中的差错,以提高数字信息传输精度的技术。bch码是一种重要的循环码,可以纠正多个随机错误。编码简单,纠错能力强。在现代数字通信领域,它得到了广泛的应用。对于信息位长相同的bch码,其纠错能力越强,增加的冗余位就越长。bch位长越长,编码和解码就越困难。结合码长、纠错能力和编码难度,本发明选择bch(31,16,7)作为差错控制码。优选地,步骤c对于选定的属性列中的单个属性列的嵌入算法如下:a.需要对每一个元组根据求得元组属性标识码c。b.确定被嵌入水印元组,根据水印长度确定该次嵌入过程选用的水印信息二进制序列中的水印比特值,以及随机选择要被修改的数值位。c.当选中的水印比特位是1的时候,将选中的数值位x修改为同时将值对保存到嵌入过程操作记录中;当选中的水印比特位是0时,执行零操作,将值对<h(t.p||ki),h(x||ki)>插入到嵌入过程操作记录中。d.遍历数据表做以上操作,直到所有的元组扫描结束后水印嵌入完毕。优选地,步骤a中获得元组属性标识码c,c(t.p,k,ki)=h(k||h(t.p||ki)),其中||表示连接操作,t.p为元组主键,k表示唯有数据库拥有者可知的私有密钥,ki为对应于不同属性列的密钥。优选地,步骤e从有版权争议的数据库表中提取水印信息,包括以下步骤:a.与步骤c以同样的方式求得元组属性标识码c。b.根据水印嵌入间距确定被嵌入水印的元组,根据水印长度确定被嵌入的水印比特值,以及确定可能发生置换的词组,即最优置换词x。c.查询记录以确定嵌入的比特位。对应规则如表1所示。表1查询结果对应规则表d.遍历数据库表做以上操作,直到所有的元组扫描结束。e.采用多数选举机制得到水印二进制比特序列每一位的最终取值。实施例2:本实施例以地理位置数据库为例进行本实例。数据库部分数据示例如表2所示。表2数据库部分数据示例用户id经度2011024425454226447122.1022292226391011334799248123.3445263243242432444454345121.23133433232432444445544334123.3232233242224344552231324122.233323步骤1:要嵌入的水印信息为二值图像,如图2所示,转换为二进制“000000000000000000000000……0011110000001100000000000000000000001110110011111111110000001100011111111110……0000111001110000……0000000000000000000000”共2304位;步骤2:按照每16位为一组进行分组。令μ=3.8,x0=0.5,则有xk+1=3.8xk(1-xk)按照上述函数对每一组进行置乱操作。如某一组序列为“1110101010101110”,置乱后结果为“1101110011010110”。将置乱后的数据添加bch冗余码后结果为“1110101010101110111010101001111”。对每一组分别进行上述操作后得到最终要嵌入到数据库中的水印序列。步骤3:确定被嵌入水印元组,确定该次嵌入过程选用的水印信息二进制序列中的水印比特值,以及随机选择要被修改的数值位;例如选定被嵌入水印元组主键为2226391011334799248,选用的水印比特值为1,要被修改的数值位为最后一位“6”。步骤4:将“6”替换为属性列“经度”对应的密钥为“经度”,将值对<h(2226391011334799248||“经度”),<h(2226391011334799248||“经度”),h(5||“经度”||1)>保存到操作记录表中;步骤5:其余元组按以上步骤同样操作,直到数据表遍历结束;步骤6:发生版权纠纷时,按步骤3同样方法确定被嵌入水印的元组,被嵌入的水印比特值所在位,以及确定可能发生修改的数值位。步骤7:查询操作记录表,得到值对<h(2226391011334799248||“经度”),<h(2226391011334799248||“经度”),h(5||“经度”||1)>存在,则断定被嵌入的水印比特值为“1”,且原始数据位为“6”;步骤8:以步骤6、7同样操作遍历数据表,得到水印二进制序列每一位可能的值。采用多数选举机制得到水印二进制比特序列每一位的最终取值。步骤9:对步骤8中的二进制序列按照每31位一组进行分组,对每一组利用bch(31,16,7)码进行纠错,对纠错后的序列采用与步骤2相同的参数进行混沌解密。对每一组分别进行上述操作后得到原始水印序列。从而进一步可得到嵌入的水印明文“水印”二字。以上所述仅对本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡是在本发明的权利要求限定范围内,所做的任何修改、等同替换、改进等,均应在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1