2. 信息工程大学 地理空间信息学院,河南 郑州 450052;
2. 3. 国防科技大学 指挥军官基础教育学院,湖南 长沙 410072
2. Institute of Surveying and Mapping, Information Engineering University, Zhengzhou 450052, China;
3. College of Basic Education for Commanding Officers, National University of Defense Technology, Changsha 410072, China
1 引 言
矢量地理数据是国家基础地理数据的重要组成部分,是国家基础设施建设和地球科学研究的支撑性成果,在国家经济、国防建设中占有十分重要的地位,保护矢量地理数据的安全具有重要意义。数字水印作为保护数字产品版权的前沿技术,在矢量地理数据版权保护方面得到了广泛的重视和研究[1, 2, 3, 4, 5, 6, 7, 8]。矢量地理数据数字水印根据嵌入位置可分为变换域水印算法[1, 2, 3]和空域水印算法[4, 5, 6, 7, 8]。变换域水印可以利用数学变换的性质得到相应的稳健性,文献[1]利用了DualTree复数小波变换的几何不变性。文献[2, 3]利用了离散傅里叶变换的几何不变性来实现抗几何变换的水印算法。空域水印直接在数据上进行水印嵌入,因此灵活性强,较容易实现抗删点、裁剪等类型的攻击,文献[4]是在MQUAD算法的基础上,通过增加水印点来嵌入水印,通过设置水印点的可见性来隐藏水印,能够抵抗一定程度的噪声和删点,但所针对的矢量地理数据文件具有一定的局限性。文献[5]和[7]都是利用了坐标映射的思想进行数据分类实现水印嵌入,这种分类方法使嵌入的水印信息更加离散、均匀分布于整个数据中,能够有效地抵抗数据压缩、增点、删点、编辑、裁剪等攻击。文献[6]将矢量地理数据的曲线按照要求分割,从而将水印信息嵌入其中,算法能够抵抗一定程度的裁剪、D-P压缩、几何变换攻击,是一种非盲水印算法。文献[8]利用矢量地理数据线段比值在几何变换中的不变性实现了一种抗几何攻击的空域水印算法,并且能够抵抗一定程度的复合攻击,但可嵌入的水印信息量较少。
文献中的水印算法都属于稳健水印算法,主要用于矢量地理数据的版权保护,这些水印算法在水印检测过程中,不论是基于相关检测理论还是基于统计决策理论,都希望检测对象中含有水印的数据尽量多,不含水印的数据尽量少。但是在矢量地理数据的一些应用中,例如数据拼接与更新,很难保证这样的结果,可能含水印的数据只占整个数据的一小部分,而且可能随机地分布于数据集中,这种情况下目前的稳健水印算法难以有效地检测出水印信息。
鉴于此,本文利用脆弱水印篡改定位特征,设计了一种基于数据点定位的矢量地理数据数字水印算法,在水印检测时能够将原始数据点(即含有水印信息的数据点)定位出来,并结合稳健水印有效检测出数据的原始版权。
2 脆弱水印基本特征分析数字水印按照特性划分,可以分为稳健水印和脆弱水印。稳健水印主要用于数字产品的版权保护;脆弱水印主要用于数据的真伪辨别和完整性鉴定,又称为认证[9]。
脆弱水印是在原始真实信号中嵌入某种标记信息,通过鉴别这些标记信息的改动,达到对原始数据完整性检验的目的。由于脆弱水印的基本功能是可靠地检测篡改,而且理想的情况是能够提供篡改的多少及位置。可以从另一个角度利用脆弱水印的篡改定位功能,脆弱水印篡改定位本意是定位原始数据被篡改的地方,其实定位篡改位置的同时没有被篡改的位置也就确定了,利用这一点可以确定数据拼接和数据更新后原始数据的位置,从而配合稳健水印算法实现水印的检测。
脆弱水印一般用来对图像内容进行认证,因此对于图像的脆弱水印算法研究较多[10, 11, 12, 13, 14, 15, 16, 17],对于矢量数据,特别是矢量地理数据的脆弱水印研究还很少。文献[18]对矢量图形数据的脆弱水印进行研究,文献[19, 20, 21]对矢量地图数据脆弱水印进行了研究,它们的共同点都是首先对矢量数据进行分块,或者等同于分块的操作,然后对数据块进行水印嵌入,这也就决定了对数据认证时,只能定位到数据块,不能定位到具体坐标点上。
从脆弱水印检测方面来说,数据拼接中相当于对原始数据有较大范围的剪切操作,结果中原始数据剩下的部分可能包含一些完整的数据块,也会有一些不完整的数据块;而数据更新中不仅会有大范围的剪切操作,还可能有大范围的增删点操作,造成原始数据剩下的部分不会包含完整的数据块。面对这种情况,目前针对块的脆弱水印算法无法定位出原始数据,需要进一步研究定位更加精确的脆弱水印算法。
3 针对数据点的矢量地理数据脆弱水印算法基于脆弱水印的基本特征,设计一种精确定位到数据点的矢量地理数据脆弱水印算法。根据矢量地理数据每个数据点的特征映射生成脆弱水印信息,然后将水印信息嵌入相应数据点上;水印检测时可以根据每个数据点的水印信息判断数据点是否被篡改,同时也就可以证明数据点是否为原始数据点,为稳健水印检测奠定基础。水印算法主要分成水印信息生成、嵌入和检测3个方面。
3.1 水印生成首先提取出矢量地理数据中的所有数据点,记录为O={xi,yi|i=1,2,…,n},n为原始数据中数据点的个数。矢量地理数据的一个重要特征就是精度,所以在水印嵌入过程中,需要保证对数据的改变在精度允许的范围之内,所以水印选择在数据精度范围所在的数据位(简称精度位)上进行嵌入,关于精度位的确定需要综合考虑比例尺和数据单位等情况进行确定。对任意数据点(xi,yi),设精度位上的坐标数据为(xbi,ybi),提取数据精度位之前的横坐标、纵坐标(都不包括精度位)组成坐标对,记为(xi*,yi*)。
利用坐标映射的思想[5, 7]生成水印,这种水印与原始数据相关性强,并且能够反映每一个数据点的数据特征。文献[5, 7]中利用了坐标映射思想用来对数据进行划分进而嵌入水印,本文选取映射函数的目的不同,考虑到对数据改变量的限制,需要将映射函数的值域限制在较小的范围内。
令映射函数为f(xi*,yi*),水印信息为W={0,1,2,…,M-1},其中,M为精度位上的最大改变量,按照式(1)生成脆弱水印
其中,wxi∈W,wyi∈W,映射函数f(·)的选取原则为:(xi*,yi*)的微小变化,f(xi*,yi*)的结果都会有较大变化。本文选取的映射函数如下
f(x)=T(R(x))
其中,R(x)=xn+gn-1xn-1+…+g1x+g0,为n阶模2本原多项式[22],gi∈GF(2)={0,1},i=0,1,2,…,n-1,根据R(x)生成{0,1}随机序列;T(a)=(2nan+2n-1an-1+…+2a1+a0)%M,为随机序列到水印值域的转换函数,其中a=anan-1…a1a0,为R(x)生成的{0,1}随机序列,将随机序列转化为十进制整数后关于M取模,即生成待嵌入的水印信息。
3.2 水印嵌入算法采用量化思想进行水印嵌入,设置量化步长为N,由于矢量地理数据在精度位上允许的改变量一般在5以内(M≤5),因此取N=5(M>5时仍然取N=5),即将精度位分为两个量化区间,从而根据xbi,ybi所在的量化区间进行水印嵌入,水印嵌入规则如下
用修改后的(xbi,ybi)替换原先数据位,并与(xi*,yi*)结合得到嵌入水印后的数据。
根据水印嵌入规则和矢量地理数据特点,水印嵌入后数据的误差范围为[0,M-1],也就是说最大误差为M-1,保证了数据精度不受水印影响,从而不影响数据的使用。
3.3 水印检测与水印生成与嵌入方法相对应,脆弱水印检测的主要流程如下:
(1)提取出待检测矢量地理数据中所有数据点,记录为O′={x′i,y′i|i=1,2,…,m},m为数据中数据点的个数。对任意数据点(x′i,y′i),取精度位上的坐标数据为(x′bi,y′bi),提取数据精度位之前的横坐标、纵坐标(都不包括精度位)组成坐标对,记为(x′i* ,y′i* )。
(2)根据式(1)对(x′i* ,y′i* )进行映射,得到映射结果{w′xi,w′yi}。
(3)根据量化步长N,通过下式计算提取出的水印,仍然记为{w′xi,w′yi}
(4)将w′xi与x′′bi,w′yi与y′′bi进行比较,若w′xi=x′′bi且w′yi=y′′bi,则对应数据点标记为原始数据点;若w′i≠x′′bi或w′yi≠y′′bi,则对应数据点不是原始数据点,不作标记。
(5)重复步骤(1)~(4),直到所有数据点都检测完毕。此时,没有标记的数据点就是被篡改的数据点,脆弱水印完成针对数据点的认证与篡改定位。
4 基于数据点定位的矢量地理数据水印算法根据针对数据点的矢量地理数据脆弱水印算法,结合文献[7]中的稳健水印算法,提出一种基于数据点定位的矢量地理数据水印算法。将稳健水印嵌入矢量地理数据的x坐标上,将脆弱水印嵌入数据的y坐标上。
此时水印生成、嵌入、检测算法稍作修改,式(1)变为
映射函数仍然使用f(x),不过增加数据预处理部分,将二维坐标预处理为一维数据,然后利用映射函数生成水印wi。
式(2)变为
式(3)变为
式中,bi和b′i为嵌入和检测时对应的精度位上的数据;wi和w′为嵌入和检测时映射的水印。
虽然脆弱水印嵌入在y坐标上,但是仍然使用(xi*,yi*)映射生成水印信息,这是因为:① 可以提高映射自变量的复杂度和差异度,从而提高映射结果的差异度,降低检测误差;② 实现精确认证脆弱水印,对数据点横坐标、纵坐标的任意变化都敏感,防止仅仅横坐标变化时的误检。对于精度位之后数据的更改不认为是对原始数据的篡改,即认为依然是原始数据未作改变,因为精度位相当于有效位,所以之后数据并无实际意义。
5 试验与分析以1幅1∶25万等高线层矢量地理数据作为试验数据(如图 1所示,160 182个坐标点),进行模拟矢量地理数据的数据拼接和数据更新操作,针对此幅数据,精度位上的最大改变量M为5。针对数据拼接和数据更新操作,文献[7]中水印算法是当前算法中检测结果最好的,因此分别使用文献[7]中水印算法(算法1)和本文提出的基于数据点定位的水印算法(算法2)对处理后的数据进行水印嵌入和检测,比较检测结果,检验所提出算法的有效性。
5.1 数据拼接处理的水印算法试验(1)拼接后数据含有一个水印信息的情况。对试验数据进行拼接模拟,为了简化问题,按照以下方法模拟数据拼接操作:在试验数据中使用拉框选择一个矩形范围,使用两种算法分别对矩形范围内的数据进行水印嵌入,得到模拟拼接操作后的数据。如图 2所示,对试验数据分别选取两个矩形范围进行试验,分别嵌入稳健水印信息AAAA和BBBB。
使用算法2进行全图水印检测时,首先进行脆弱水印检测,考虑到进行篡改定位的数据点是在曲线中,因此,图形显示时将与被篡改的数据点相连接的线段表示为虚线,与未篡改数据点相连接的线段表示为实线(下同)。将脆弱水印显示未篡改的数据点标识为原始数据;脆弱水印显示为篡改部分的数据,即表示不是原始数据。由于脆弱水印嵌入在矩形框之内,全图除矩形框之外并未嵌入脆弱水印信息,因此矩形框之内的数据全部为实线,矩形框之外的数据基本都是虚线。图 3显示两种水印嵌入情况下,放大显示的矩形框边界附近的脆弱水印检测结果,可以明显看出矩形框中的数据和矩形框外的数据不同。
分别使用算法1和算法2进行全图水印检测的结果见表 1,检测结果后面的括号中表示相关检测系数值。
从两个算法的检测结果对比可以看出,与算法1相比,在矢量地理数据进行数据拼接处理之后,算法2能提高检测结果的相关系数,有效检测出嵌入的水印信息,增强检测结果的可信度。同时,在原始数据保留较少的情况下,也就是拼接后数据量远大于原始数据量时,算法1已很难检测到数据中含有的水印信息,而算法2依然能有效检测出数据中的水印信息,具有较好的抗数据拼接能力。检测结果对比也验证了稳健水印在不含水印点过多的情况下的水印检测困难,通过脆弱水印的篡改定位功能将不含水印点排除,降低干扰点对稳健水印检测的影响,能够提高稳健水印检测的有效性。
(2) 数据拼接后数据含有多个水印信息的情况。参照单个水印的数据拼接模拟,对试验数据进行含多个水印信息图幅拼接模拟,以包含3个水印信息的图幅拼接为例,按照以下方法模拟数据拼接操作:在试验数据中使用拉框选择3个矩形范围,使用两种算法分别对矩形范围内的数据进行水印嵌入,得到模拟拼接操作后的数据。如图 4所示,对3个矩形框中的数据同时分别嵌入稳健水印信息CCCC、DDDD和EEEE。
分别使用算法1和算法2进行全图水印检测,得到的检测结果如表 2所示,检测结果后面的括号中表示相关检测系数值。
水印信息 | 算法1检测结果 | 算法2检测结果 |
CCCC | 无(0.030 00) | CCCC(0.902 91) |
DDDD | 无(0.015 00) | DDDD(1.000 00) |
EEEE | 无(0.191 92) | EEEE(1.000 00) |
从表 2中的检测结果比较可以看出,对于拼接后含有3个水印信息的数据载体,由于嵌入水印的数据块相对于全图来说数据含量较少,算法1已经检测不到水印信息,而算法2能有效检测到全部水印信息,且检测到的相关系数较大,检测结果具有较好的可靠性。对含有多个版权信息的地图数据拼接时,直接使用稳健水印进行水印嵌入和检测不仅不能正确提取出水印信息,而且甚至一个水印信息也提取不出来。利用脆弱水印可以较好地区分拼接地图数据的各个原始部分,从而能够进一步实现对每个区域水印信息的分别检测,达到对数据拼接后每一块原始地图数据的版权保护。
5.2 数据更新处理的水印算法试验对试验数据进行数据更新模拟,由于数据更新基本都是针对单个图幅进行的,因此以嵌入单个水印为代表进行分析,按照以下方法模拟数据更新操作:在试验数据中随机选择一些线数据,对这些线数据使用两种算法分别进行水印嵌入,得到模拟更新操作后的数据。对选择的线数据嵌入稳健水印FFFF,图 5显示算法2脆弱水印检测结果的数据全图和局部放大图,深色实线表示脆弱水印定位的原始数据(嵌入稳健水印的),浅色虚线表示更新后的数据(未嵌入稳健水印的)。
分别使用算法1和算法2进行全图水印检测,得到的检测结果如表 3所示,检测结果后面的括号中表示相关检测系数值。
从表 3的检测结果比较可以看出,对于数据更新后的数据载体,同样嵌入水印的数据相对于全图来说数据含量很少,算法1检测不到水印信息,而算法2能有效检测到水印信息,虽然检测到的相关系数不是很大,但是仍然能够保证检测结果具有较好的可靠性。数据更新比数据拼接更加复杂,直接使用稳健水印嵌入和检测已经不可能检测出水印信息,使用其他方法将不含水印数据点进行排除也非常困难,使用脆弱水印仍然可以有效地定位出数据更新后的原始数据,从而可以将这些原始数据提取出来进行水印检测,实现对数据的版权保护。
6 结 论本文根据矢量地理数据的特点,基于脆弱水印基本特征,提出一种基于数据点定位的矢量地理数据数字水印算法。与一般基于分块嵌入的脆弱水印算法不同,针对数据点的脆弱水印算法能够将数据篡改定位到数据点上,从而也实现了未篡改数据,即原始数据的准确定位。本文算法能够在矢量地理数据拼接和更新后定位原始水印数据,减少了稳健水印算法检测时过多不含水印数据点的影响,提高了水印检测结果的准确性。通过试验分析可知,本文算法在数据含有一个或者多个原始水印情况下的拼接操作后,仍能有效检测出水印信息;同时在数据更新处理后,地图中仅含有少量原始水印数据且离散分布的情况下同样能有效检测出水印信息。
由于脆弱水印使用映射生成方法,同时控制水印嵌入的精度,也就造成了使用式(1)生成水印时映射的水印值域较小,从而会对数据更新后脆弱水印的检测造成影响。通过图 3也可以看出,没有嵌入脆弱水印的地方也检测出一些未篡改数据(图中矩形框外的实线段),这也是造成试验未得到较大相关系数的原因,但是相对于全图来说,已经为稳健水印的检测去除了大量的干扰点,因此仍能有效检测出稳健水印信息,满足版权保护的要求,但如何降低甚至消除脆弱水印的检测误差仍然需要作进一步研究。
[1] | ZHANG Qin, XIANG Hui, MENG Xiangxu. Watermarking Vector Graphics Based on Complex Wavelet Transform[J]. Journal of Image and Graphics, 2005, 10(4): 494-498. (张琴,向辉,孟祥旭.基于复数小波域的图形水印方法[J].中国图象图形学报,2005,10(4):494-498.) |
[2] | XU Dehe, ZHU Changqing, WANG Qisheng. Blind Watermarking Model of Vector Spatial Data Based on DFT of QIM[J]. Geomatics and Information Science of Wuhan University, 2010, 35(9): 1100-1103. (许德合,朱长青,王奇胜. 利用QIM的DFT矢量空间数据盲水印模型[J]. 武汉大学学报:信息科学版,2010,35(9):1100-1103.) |
[3] | WANG Qisheng, ZHU Changqing, XU Dehe. Watermarking Algorithm for Vector Geo-spatial Data Based on DFT Phase[J]. Geomatics and Information Science of Wuhan University, 2011, 36(5): 523-526.(王奇胜,朱长青,许德合. 利用DFT相位的矢量地理空间数据水印方法[J]. 武汉大学学报:信息科学版,2011,36(5):523-526.) |
[4] | MA Taolin, GU Chong, ZHANG Liangpei. Watermarking Algorithm on 2D Vector Digital Maps[J]. Geomatics and Information Science of Wuhan University, 2006, 31(9): 792-794.(马桃林,顾翀,张良培.基于二维矢量数字地图的水印算法研究[J].武汉大学学报:信息科学版,2006,31(9):792-794.) |
[5] | MIN Lianquan. A Robust Digital Watermarking in Cartographic Data in Vector Format[J]. Acta Geodaetica et Cartographica Sinica, 2008, 37(2): 262-267.(闵连权.一种稳健的矢量地图数据的数字水印[J].测绘学报,2008,37(2):262-267.) |
[6] | ZHANG Hongsheng, LI Yan, CAO Yang. A Watermarking Algorithm for Vector Graphics Using Curve Partition[J]. Journal of Image and Graphics, 2009, 14(8): 1516-1522.(张鸿生,李岩,曹阳.一种采用曲线分割的矢量图水印算法[J].中国图象图形学报,2009,14(8):1516-1522.) |
[7] | YANG Chengsong, ZHU Changqing, TAO Daxin. A Blind Watermarking Algorithm for Vector Geo-spatial Data Based on Coordinate Mapping[J]. Journal of Image and Graphics, 2010, 15(4): 684-688.(杨成松,朱长青,陶大欣. 基于坐标映射的矢量地理数据全盲水印算法[J]. 中国图象图形学报,2010,15(4):684-688.) |
[8] | YANG Chengsong, ZHU Changqing. Robust Watermarking Algorithm for Geometrical Transform for Vector Geo-spatial Data Based on Invariant Function[J]. Acta Geodaetica et Cartographica Sinica, 2011, 40(2): 257-261. (杨成松,朱长青. 基于常函数的抗几何变换的矢量地理数据水印算法.[J]测绘学报,2011,40(2):257-261.) |
[9] | YANG Yixian, NIU Xinxin. Theory and Applications of Digital Watermarking[M]. Beijing: Higher Education Press, 2006, 20.(杨义先,钮心忻.数字水印理论与技术[M].北京:高等教育出版社,2006,20.) |
[10] | YEUNG M, MINTZER F. An Invisible Watermarking Technique for Image Verification[C]//Proceedings of the IEEE International Conference on Image Processing. Santa Barbara: IEEE, 1997: 680-683. |
[11] | FRIDRICH J, GOLJAN M, BALDOZA A. A New Fragile Authentication Watermark for Images[C]// Proceedings of IEEE International Conference on Image Processing.Vancouver: IEEE, 2000: 446-449. |
[12] | LI C T, YANG M, LEE C S. Oblivious Fragile Watermarking Scheme for Image Authentication[C] // IEEE International Conference on Acoustics, Speech, and Signal Processing.Orlando: IEEE, 2002: 3445-3448. |
[13] | LU H T, SHEN R M, CHUNG F L. Fragile Watermarking Scheme for Image Authentication[J]. Electronics Letters, 2003, 39(12): 898-900. |
[14] | SEO J S, HAITSMA J, KALKER T, et al. A Robust Image Fingerprinting System Using the Randon Transform[J]. Signal Processing -Image Communication, 2004, 19(4): 325-339. |
[15] | FAN Yongliang, ZHANG Huimin, ZHANG Yunlong. Self-adaptive Semi-fragile Digital Watermarking Algorithm[J]. Application Research of Computers, 2011, 28(5): 1937-1939. (樊永良, 张会敏, 张云龙. 具有自适应性的半脆弱数字水印算法[J]. 计算机应用研究, 2011, 28(5): 1937-1939.) |
[16] | TAN Chunjiao, ZHU Ningbo. Fragile Watermarking Algorithm for Color Image Authentication[J]. Computer Engineering and Applications, 2011, 47(7): 202-204,210. (谭春娇, 朱宁波. 一种用于彩色图像认证的脆弱性数字水印方法[J]. 计算机工程与应用, 2011, 47(7): 202-204,210.) |
[17] | FU Haojun, ZHU Changqing, MIAO Jian, et al. Multipurpose Watermarking Algorithm for Digital Raster Map Based on Wavelet Transformation[J]. Acta Geodaetica et Cartographica Sinica, 2011, 40(3): 397-400. (符浩军, 朱长青, 繆剑, 等. 基于小波变换的数字栅格地图复合式水印算法[J]. 测绘学报, 2011,40(3):397-400.) |
[18] | ZHANG H L, GAO M M. A Semi-fragile Digital Watermarking Algorithm for 2D Vector Graphics Tamper Localization[C]// International Conference on Multimedia Information Networking and Security.Wuhan: IEEE, 2009: 549-552. |
[19] | Zheng L B, You F. A Fragile Digital Watermark Used to Verify the Integrity of Vector Map[C] // E-Business and Information System Security.Wuhan: IEEE, 2009: 1-4. |
[20] | ZHENG Liangbin, JIA Yulu, WANG Qun. Fragile Digital Watermark used to Verify Integrity of Vector Map[J]. Computer Engineering and Applications, 2010, 46(26): 99-101. (郑良斌, 贾玉禄, 王群. 用于矢量地图完整性验证的脆弱数字水印算法[J]. 计算机工程与应用, 2010, 46(26): 99-101.) |
[21] | ZHENG L B, LI Y L, FENG L P, et al. Research and Implementation of Fragile Watermark for Vector Graphics[C]// Computer Engineering and Technology.Chengdu: IEEE, 2010: 522-525. |
[22] | HE Guangyu. Visual C++ Common Numerical Algorithms[M]. Beijing: Science Press, 2002:361.(何光渝. Visual C++ 常用数值算法集[M].北京:科学出版社,2002:361.) |