Page 258 - 《软件学报》2020年第11期
P. 258
侯瑞涛 等:分级可逆的关系数据水印方案 3573
低有效位之间嵌入一种特殊的匹配规则 [9,10] .但方案只能验证数据中是否嵌有这种匹配规则,而无法检测出真
正的水印信息.张志浩等人则将一幅图像编码成水印,将其嵌入到关系数据中 [11] .其原理是:将数据分成与图像
同等大小的数据块,在数据块的每个属性值中嵌入图像的一个像素点.向玥等人则针对主键攻击问题提出了基
于虚拟主键的关系数据水印嵌入方法 [12] ,该方法通过(7,4)汉明码和大数表决的结合,增强了水印的抗攻击能力.
周刚等人提出一种基于改进型 C4.5 算法的关系数据零水印模型 [13] ,零水印模型是指从数据中提取相关属性值,
不对原始数据进行修改,可保证较高的数据质量.Melkundi 等人设计出一种新型水印嵌入算法 [14] ,该算法具有两
种水印嵌入机制,可将水印嵌入到数值型和文本型的关系数据中.Rani 等人将 MapReduce 思想引入针对大型关
系数据的水印嵌入,可有效提高其嵌入效率 [15] .
关系数据可逆水印方案由关系数据数字水印方案发展而来,目前常见的关系数据可逆水印方法主要包括
直方图扩展、差值扩展、预测差值扩展等.其中,直方图扩展需首先计算数据中某些属性值的差值,并利用这些
差值的首位非零数字构建直方图,然后按照一定的规则改变该非零数字的分布特性,实现水印的嵌入 [16] .数据恢
复时,还原该数字的数据分布特性即可.该方法可追踪数据失真的程度,但难以抵御高强度的攻击.差值扩展是
指从特定的元组中挑选属性值对,然后通过对该属性值对进行特定的数值变换,实现水印的嵌入和数据恢复 [17] .
但是该方法存在以下问题:(1) 属性值对的选择使其难以应对元组修改攻击;(2) 属性值对的修改导致数据的失
真程度普遍较高.针对问题(1),研究者们提出了将最优化算法和差值扩展结合使用的方法.例如,Jawad 等人在差
值扩展的基础上,使用遗传算法提出了一种关系数据可逆水印方案 [18] .该方案在尽可能降低数据失真的同时,保
证了关系数据中水印的鲁棒性.Imamoglu 等人则将萤火虫算法和差值扩展结合使用,设计出一种可逆水印方
案.其中,萤火虫算法从原始数据中选择最优属性值对进行水印嵌入,以降低数据失真的程度 [19] .针对问题(2),研
究者们提出了预测差值扩展技术.该技术通过使用预测算法获取预测值,然后从原始数据中挑选某个属性值,对
其进行与差值扩展类似的数值变换,实现水印的可逆.与差值扩展相比,该技术只需修改元组中的某个属性值,
对数据可用性影响较小.例如,Farfoura 等人将可识别的图像转化为比特流嵌入到数值属性的最低有效位,并通
过预测误差扩展实现水印的可逆 [20] .Chang 等人运用支持向量回归预测(SVR)设计出关系数据可逆水印方
案 [21] .除上述可逆水印方法外,张勇和牛夏牧运用异或的性质实现了水印的可逆 [22] .此方法在水印嵌入时,只需
修改某些元组某个属性值的某个最低有效位,既降低了数据的失真程度,又使水印具有良好的鲁棒性.但是该方
案只是将水印作为密钥用于数据恢复,不能进行水印检测,无法实现版权证明.本文所提出的分级可逆水印方案
在其基础上,通过构造辅助数据,解决了水印的检测问题,并实现了水印的可逆.另外,还有一些其他类型的可逆
水印方法.Franco-Contreras 等人基于圆形直方图变换提出了一种鲁棒性可逆水印方案.该方案首先构建圆形直
方图,然后通过改变某些属性值的相对角位置实现水印嵌入 [23] .Iftikhar 等人结合遗传算法和信息论中的数据分
析方法,提出了一种应用于关系数据的可逆水印方案 [24] .此方案首先通过遗传算法来制备最优水印串,然后通过
一种可逆运算变换实现水印嵌入和数据恢复.此方案中,遗传算法的使用降低了数据的失真程度,但是计算最优
水印串需要较大开销 [9,24] .姜传贤等人基于某种分块策略将原始数据分为若干数据块,然后将水印嵌入到数据
块的小波域中,利用整数小波变换实现水印可逆 [25] .以上方案均可实现数据恢复,但对数据恢复的程度缺乏控
制,只能将数据中的水印全部去除,导致所有者不能继续证明对数据的版权.为解决此问题,本文提出了一种分
级可逆的关系数据水印方案.
2 分级可逆水印方案
本文方案定义了数据质量等级来反映数据可用性,利用异或的性质来实现水印的可逆,即 A xor B xor B=A,
设计了用于实现分级可逆水印的分区嵌入、等级检测、水印检测以及等级提升等算法.
由图 1 可知,该方案主要包括预处理、分区嵌入、等级检测、水印检测以及等级提升这 5 部分.相关符号
及含义见表 1.