基于数值型字段的关系数据库数字水印的算法
摘 要:针对关系型数据库的数值型字段介绍了一种数据库数字水印算法,该算法是先把数字水印转换为二进制流并采用纠错编码技术处理,然后利用HASH函数和控制因子来确定数字水印嵌入的位置,增强了水印的鲁棒性,最后把水印二进制比特流嵌入到数据库的数值型字段的最低有效位。
关键词:关系数据库;数字水印;hash函数
1.引言
数据库水印就是在数据库数据中嵌入水印达到保护数据库所有权的一种技术,是近年来数据库安全领域快速发展的一个重要分支。它可以借鉴多媒体数字水印技术的原理和思想,但与多媒体数据相比较,关系数据库数字水印技术要困难很多,因为关系数据库中的数据还有许多特点:
1) 关系数据库中的数据由若干独立元组组成,每个元组的各个字段的值是确定的,冗余很小;
2) 关系数据库中的数据行和列的顺序是无序的;
3) 关系数据库中的数据经常要进行增加、删除、修改。
由于关系数据库数据有其自己的特殊性,这些都使数字水印的嵌入和提取成为难题。因此,数据库水印的算法考虑如下:
( 1) 鲁棒性,数据库水印能够经受住数据更新和攻击;
( 2) 透明性,数字水印不能被用户察觉,不会因为加了水印而影响关系数据的使用。
2.数据库数字水印模型
一般数据库数字水印模型主要包括3个算法:数字水印生成算法、数字水印嵌入算法和数字水印提取算法。
2.1数字水印生成模型
数字水印可以是文本、图像等,想把水印嵌入到数据库中,必须要对水印进行预处理,把它转换成二进制流。水印生成模型如图1所示:
图1 数字水印生成模型
2.2数字水印嵌入模型
数字水印的嵌入通常是把处理好的二进制水印通过数字水印嵌入算法隐藏到数据库的某些数据中,而不影响数据库的使用。水印嵌入模型如图2所示:
图2 数字水印嵌入模型
2.3数字水印提取模型
数字水印的提取通常是利用密钥,通过水印提取算法从数据库中提取出水印信号,解预处理后,再恢复为原有的数字水印信号。
图3 数字水印提取模型
3.关系数据库数字水印算法
关系数据库的行被称为“元组”,列被称为“字段”。元组是字段的集合,字段有不同的类型和取值,考虑到关系数据库的特点和不破坏数据库的使用价值,针对数值型字段值进行数字水印。在一个数据库里,数值型字段有1个或多个,他们的有效位数是不同的,有的有效位数多,有的有效位数少,本文采取了对数值型字段的最低有效位进行数字水印的嵌入算法。
3.1算法描述
(1)水印预处理:将文本水印转换为二进制并进行纠错编码处理;
(2)水印的嵌入:通过单向哈希函数HASH确定数字水印的嵌入位置,然后把二进制水印按顺序嵌入到选定元组的数值型数据的最低有效位上;
(3)水印的提取:对水印数据库库中的数值型字段计算函数HASH值,然后顺序提取各嵌入位0、1序列,最后再恢复成水印信息。
3.2数字水印预处理
本文采用的是文本水印W,可以由各种字符组成,按照ASCII码表将每个字符用一个字节表示,然后顺序排列,得到了二进制比特流,然后分成4组,不足的添0补齐。最后用海明码对水印信息进行纠错编码。
有效的纠错编码方法有很多种,最简单也是最早的方法之一是海明码,它保证了任意两个编码信息至少有3个比特不同,并可以对单个比特错误进行修正。复杂一点的编码有BCH和网格码,可以纠正更多错误。这些编码经常根据符号纠错的方法来描述,不同编码适合不同的错误类型。例如,海明编码处理随机错误效果较好,而BCH编码处理突发错误(连续符号群发错误)效果较好。
3.3数字水印嵌入位置
数据库的容量是巨大的,而水印信号是有限的,要嵌入水印信号的元组数量远远小于数据库包含的元组,因此要选择一定数量的元组进行水印的嵌入,以减少工作量和避免对数据库的大量修改。数据库中的数据经常变动,所以要在不同情况下找到嵌入水印的元组就要对数据库中元组进行标记.同时在提取水印时,使用一样的标记可以找到这个元组.
3.4数字水印嵌入算法
1 )将文本水印信息转换为二进制形式;
2 )利用海明码对二进制水印进行纠错编码;
3 )计算HASH值ID和控制因子C,确定数字水印的嵌入位置T;
4 )根据T的值,按照水印二进制流的顺序,将0、1代码依次嵌入各数值型字段的最低比特位。
3.5数字水印提取算法
1 )针对数据库中的数值型字段,计算HASH函数的值,再通过控制因子C找到嵌入水印的位置;
2 )根据水印嵌入的位置, 顺序提取各嵌入位的0、1序列;
3 )根据0、1序列恢复成水印信息。
4.总结
数据库水印技术是数据库安全领域的新生事物,虽然数据库水印技术困难很大,研究进展缓慢,但数据库数字水印技术的研究具有很重要的理论意义和广阔的应用前景。本文阐述了数据库数字水印的基本原理和通用模型,并具体介绍了一种基于数值型字段的数字水印算法,该算法经实验证明具有较强的鲁棒性和健壮性。
参考文献:
[1 ] 彭沛夫,林亚平,张桂芳,等.基于有效位数的数据库数字水印[ J ] .计算机工程与应用, 2 0 0 6.4 , 4 2 ( 1 1 ) : 1 6 6 -1 6 8 .
[2] 王树梅, 赵卫东, 王志成. 数字水印嵌入强度最优化分析 [ J ] .计算机安全,2007.
[3] 傅瑜.关系数据库的数字水印模型 [ D ] .华中师范大学硕士学位论文,2007.
[4] 王忠,叶雄 飞.遗传算法在数字水印技术中的应用[ J ] .武汉工程大学学报,2 0 0 8 ,1 : 9 5 —9 7 .
[作者简介] 高玉喜(1978-),男,讲师,吉林大学软件工程硕士。
[基金项目] 吉林省教育厅“十二五”科学技术研究(吉教科[2012]381) ;吉林省教育厅“十二五”科学技术研究(吉教科[2011]397)。
上一篇:论广播电视机房中易疏忽的几个环节