CN102800041A - 一种数字矢量地图完整性保护方法 - Google Patents

一种数字矢量地图完整性保护方法 Download PDF

Info

Publication number
CN102800041A
CN102800041A CN2012101894695A CN201210189469A CN102800041A CN 102800041 A CN102800041 A CN 102800041A CN 2012101894695 A CN2012101894695 A CN 2012101894695A CN 201210189469 A CN201210189469 A CN 201210189469A CN 102800041 A CN102800041 A CN 102800041A
Authority
CN
China
Prior art keywords
watermark
map
coordinate
recovery
prime
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012101894695A
Other languages
English (en)
Other versions
CN102800041B (zh
Inventor
门朝光
衣秀
田泽宇
王娜娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201210189469.5A priority Critical patent/CN102800041B/zh
Publication of CN102800041A publication Critical patent/CN102800041A/zh
Application granted granted Critical
Publication of CN102800041B publication Critical patent/CN102800041B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

本发明涉及密码学、信息安全、地理信息系统和数字图像处理领域,具体涉及一种可抵挡多种攻击,提高写数据速度的对数字矢量地图进行完整保护和认证的方法。本发明包括生成水印、隐藏水印和完整性认证三部分:生成水印包括:生成认证水印;生成定位水印;生成恢复水印;隐藏水印包括:水印信息传递到驱动层;隐藏水印信息;完整性认证包括:提取认证水印;提取定位水印;提取对恢复水印;完成篡改恢复。本发明加快了存储速度,减少了存储的数据量,既保证了安全性,又提高了写数据的速度。

Description

一种数字矢量地图完整性保护方法
技术领域
本发明涉及密码学、信息安全、地理信息系统和数字图像处理领域,具体涉及一种可抵挡多种攻击,提高写数据速度的对数字矢量地图进行完整保护和认证的方法。
背景技术
随着信息处理技术与测绘技术的快速发展,数字矢量地图在地理信息系统、数字化城市和智能交通运输系统得到了广泛应用。数字矢量地图具有易编辑易传播的优点,极大方便了人们的日常生活。但是,矢量地图的非法篡改和传播会严重损害地图所有者的合法利益。因此,研究矢量地图完整性认证机制对遏制矢量地图的非法篡改和传播非常重要,已经成为当今信息安全领域研究的热点。
认证主要有两种方法,一种是通过传统密码学认证,一种是利用数字水印技术。传统的密码学认证方法对要保护的数据以数据流的形式进行哈希计算,然后用加密算法加密哈希值产生数字签名,最后把数字签名附加在待保护数据的末尾,和原始数据一起传输,传输中任何比特的改变都可能导致认证失败。这种方法安全性比较高,但是不能进行篡改定位和恢复,并且,数据签名是拼接在原始数据尾部,与原始数据是独立的,很容易被删除。针对这些缺陷,数字水印作为一种潜在的解决方案,越来越多的得到人们的关注。数字水印将具有确定性和保密性的信息即水印嵌入到数字产品(图像、语音、视频等)中,并作为原始数据的一部分存储在数字作品中,从而实现版权保护、发布跟踪、身份识别、完整性认证等。
数字矢量地图具有地理信息丰富、精度高、无损缩放、易于存储和发布等特点,在地理信息领域正在得到迅速普及。目前,对于数字图像的完整性认证研究较多,但针对数字矢量地图的完整性认证所做的工作相对较少。1993年,Tirkel等人首次在论文Digital watermar提出数字水印的概念[1]。文章指出水印可以携带认证、授权码或图像标识等,将其嵌入灰度图像中,用于图像版权保护、假冒以及访问控制等。随着对水印技术的研究,人们发现使用水印技术对数字产品的内容进行完整性认证要优于传统的加密和数字签名的认证方法。1997年,Yeung和Mintzer提出一种基于随机序列的图像认证方法。该方法使用伪随机序列和差值扩展的方法,将二进制水印信息嵌入到图像中,可以检测到任何像素值的改变。这种方法可以定位篡改位置,但容易遭受拼接攻击[2]。2002年,Jun Tian提出一种基于小波变换的可逆水印认证方法。该方法使用一个二进制位代表一个小波系数,并嵌入一位信息在小波系数中,将扩大后的小波系数组成一幅位置图,使用JBIG2方法对系数值无损压缩。对整幅图像进行SHA-256哈希散列,将哈希值和二进制流、压缩后的位置图一起嵌入到原始图像中用于完整性认证[3]。2005年,邵承永、王孝通提出一种基于可逆脆弱数字水印的数字矢量地图认证方法,将原始地图的数据摘要作为水印数据的一部分嵌入到原始地图中,水印嵌入以数据段为单位重复进行,提高了篡改定位能力,并且在数据未经改动的情况下,能够准确无误的恢复出原始地图数据。但是对数字矢量地图进行增加或删除顶点会破坏算法的篡改定位能力,产生错误的检测结果[4]。2010年,郑良斌、贾玉禄、王群提出一种基于分块的脆弱水印方法。这种方法对数字矢量地图进行分块,对每一块计算摘要,对块中坐标点的低6位压缩与摘要拼接,代替原始的低6位坐标值。认证时,对矢量地图分块,提取嵌入的水印与当前地图块生成的水印比较进行篡改定位,将篡改位置精确定位到数据块,但是这种方法不能抵抗删除和添加线图元的攻击[5]
近年来出现的用于认证的水印方案,能够实现篡改定位,但该类策略抗攻击能力比较弱,且不能实现篡改恢复。所以,对篡改矢量地图进行恢复是具有巨大需求和需要迫切解决的领域。
[1]Al Baloshi,M.,Al-Mualla,M.E.A DCT-based watermarking technique for image authentication(2007)IEEE/ACS International Conference on Computer Systems and Applications,AICCSA rt.no.4231045,2007:754-760P
[2]Tian Jun.Wavelet-based reversible watermarking for authentication Proceedings of SPIE.TheInternational Society for Optical Engineering,2002:679-690P
[3]Celik M,Sharma G,Saber E,et al.A hierarchical image authentication watermark with improvedlocalization and security[C].Proceedings of the IEEE International Conference on ImagePro-cessing.Feb 2001,502-505P
[4]Li C T,Yang F M,Lee C S.Oblivious Fragile Watermarking Scheme for ImageAuthentication[C].Process of IEEE International Conference on Acoustics,Speech and SignalProcessing.Orlando,USA,2002:3445-3448P
[5]和红杰,张家树,陈帆.一种高定位精度的可恢复水印算法[J].中国科学(信息科学),2008,38(04):533-552.
发明内容
本发明的目的在于提供一种结合数字水印技术,实现篡改检测,精确定位篡改数据块,并实现篡改块数据恢复,使篡改地图可以正确安全使用的数字矢量地图完整性保护方法。
本发明的目的是这样实现的:
本发明包括生成水印、隐藏水印和完整性认证三部分:
(1)生成水印包括如下步骤:
1)生成认证水印:
将矢量地图以二进制数据流形式读入缓存,进行MD5哈希处理,获得128b摘要信息并使用Blowfish加密生成认证水印;
2)生成定位水印:
对矢量地图的坐标文件,顺序读取每一条子线段,以50条子线段为处理单位块,对块内所有坐标集合进行MD5哈希处理,得到每块的摘要信息,使用Blowfish加密后生成该单位块的定位水印;
3)生成恢复水印:
对矢量地图的坐标文件,以子线段为处理单位,提取线段上所有坐标点的横纵坐标,第一顶点值不变,计算其余坐标值与前一个顶点坐标值的差,差值化整,遍历整形差值,记录横纵坐标对应的正负值的个数和总和,计算对应正负块的平均值,并使用BZIP2压缩生成该子线段的恢复水印;
(2)隐藏水印包括如下步骤:
1)水印信息传递到驱动层:
对上述的每一种水印分别创建一个唯一的系统I/O控制码,将对应的水印传递到驱动层;
2)隐藏水印信息:
将认证水印存储头文件中,定位水印存储在矢量地图坐标值中,恢复水印存储在地图文件头部;
(3)完整性认证包括如下步骤:
1)提取认证水印,对待检测地图进行MD5哈希处理计算哈希值:如果与提取出的认证水印相同,则证明数字矢量地图未经篡改,认证结束;如果与提取出的认证水印不同,则代表矢量地图已经被篡改,执行步骤2);
2)提取定位水印,对待检测地图以50条子线段为处理单位进行MD5哈希处理,将得到的信息摘要依次与对应块定位水印进行比较,如果与提取出的定位水印相同,则相应的块未经篡改;如果与定位水印不同,则该块被篡改,执行步骤3);
3)根据定位的篡改块,提取对应子线段块的恢复水印,将恢复水印解压缩,得到原始坐标值,依次比较每条子线段的坐标值,如果与对应的坐标相同,则该条子线段未经篡改;如果与对应的坐标不同,则该条子线段被篡改,执行步骤4);
4)对被篡改的子线段使用恢复水印解压缩后得到的原始坐标值替换被篡改的坐标,完成篡改恢复。
认证水印储存在指针偏移到头文件60-75字节处。
定位水印储存在坐标文件中,指针偏移到坐标文件处,顺序每读取8个字节隐藏1b的水印信息,直至将128b的定位水印信息完全隐藏在坐标文件中。
恢复水印存储在矢量地图文件头部,在写真实矢量地图数据前,首先写入恢复水印长度,然后写入恢复水印。
恢复水印的提取过程如下:
提取存储的水印长度,读出对应长度的恢复水印Rm';
a.对恢复水印进行BZIP2解压缩得到解压后恢复水印Rm″;
b.提取出对应的正负差值块的平均数;
c.提取差值的正负标识;
d.根据标识,还原整型差值;
e.将差值转化为浮点型,还原原始坐标;
f.最后得到原始坐标序列。
本发明的有益效果在于:
1.本发明结合文件过滤驱动,在windows底层隐藏水印信息,不仅加快了存储速度,不影响用户的正常操作,还可以抵抗剪切、编辑等攻击。
2.本发明选取的处理单位为50条子线段,与传统方法相比,可以抵抗特征点压缩攻击,同时可以精确定位到子线段块,抵抗编辑、删除等攻击。
3.本发明提出的矢量数据压缩方法,比常规压缩方法的压缩率高,减少了存储的数据量。对恢复水印的存储,采用在底层写在文件头部,既保证了安全性,又提高了写数据的速度。
4.本发明能够检测矢量地图是否遭受篡改,对篡改地图精确定位到子线段块,并能实现篡改块的精确恢复。
附图说明
图1为数字矢量地图完整性认证水印生成流程图;
图2为完整性认证水印生成与认证界面示意图;
图3为篡改前的原始矢量地图与篡改后的矢量地图,其中a为原始矢量地图;b为篡改过的矢量地图;c为待篡改区域的扩大图;d为篡改区域扩大图;
图4为篡改定位的矢量地图;
图5为篡改恢复的矢量地图;
具体实施方式
下面结合附图和实例对本发明技术方案做进一步的描述:
本发明可以分为三部分,1.三种水印的生成过程;2.水印在驱动层的隐藏;3.完整性认证过程。
1.水印的生成过程,步骤如下。
如图1所示水印的生成过程分为三条路径,分别对应认证水印、定位水印和恢复水印。
(1)生成认证水印
对矢量地图以二进制流的方式读取,由于我们使用头文件中没有意义的字节存储水印,所以将指针偏移100字节,然后将其余地图文件的二进制数据流作为MD5的输入进行哈希处理,生成能够唯一标识该矢量地图且长度固定为16字节的摘要信息,对结果进行Blowfish加密,得到的结果为认证水印,记为Am:
Am=a1a2…a16
(2)生成定位水印
根据矢量地图的坐标文件结构,依次读取头文件和实体信息。以线状矢量地图为例,定位水印以50条子线段为处理单位块,对块内所有坐标进行MD5哈希处理,并进行Blowfish加密,得到该块的认证信息,作为该块的唯一标识记为li。对最后不足50条的子线段块单独进行哈希计算,并进行Blowfish加密,得到认证信息记为ln,拼接得到地图文件的定位信息Lm1
Lm1=l1l2…ln
将定位信息转化成二进制码:
li=b1b2…b128
最后得到定位水印为Lm
Lm=b11b12…bij…bn128
(3)生成恢复水印
根据矢量数据压缩的原理,对坐标值进行压缩。以一条子线段为处理单位,提取线段上所有坐标点的横纵坐标,第一顶点值不变,计算其余坐标值与前一顶点坐标值差,差值化整,遍历整形差值,记录横纵坐标对应的正负值的个数和总和,计算对应正负块的平均值。计算过程如下:
a.当前子线段的顶点序列可表示为:
C = ( X , Y ) X = X 1 X 2 . . . X n Y = Y 1 Y 2 . . . Y n
Xi为当前子线段横坐标序列,Yi为纵坐标序列。
b.保持第一坐标点不变:
X 1 ′ = X 1 Y 1 ′ = Y 1
求其余坐标点与前一个坐标点的坐标差值:
X i ′ = X i - X i - 1 Y i ′ = Y i - Y i - 1
c.将差值转化为整型,计算对应差值正负的加和与数量:
sumXB + = X i &prime; numXB + = 1 X i &prime; > = 0 sumXS + = X i &prime; numXS + = 1 X i &prime; < 0
sumYB + = Y i &prime; numYB + = 1 Y i &prime; > = 0 sumYS + = Y i &prime; numYS + = 1 Y i &prime; < 0
其中,sumXB表示横坐标正数差值的和,numXB为对应差值的个数;sumXS表示横坐标负数差值的和,numXS为对应差值的个数;sumYB表示纵坐标正数差值的和,numYB为对应差值的个数;sumYS表示纵坐标负数差值的和,numYS为对应差值个数。
d.计算正负块对应的平均数:
aveXB = sumXB / numXB numXB &NotEqual; 0 0 numXB = 0 aveXS = sumXS / numXS numXS &NotEqual; 0 0 numXS = 0
aveYB = sumYB / numYB numYB &NotEqual; 0 0 numYB = 0 aveYS = sumYS / numYS numYS &NotEqual; 0 0 numXS = 0
其中,aveXB表示横坐标正数差值的平均数,aveXS表示横坐标负数差值的平均数,aveYB表示纵坐标正数差值的平均数,aveYS表示纵坐标负数差值的平均数。
e.将正差值减去正数块平均数,将负差值减去负数块平均数:
<math> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msup> <msub> <mi>X</mi> <mi>i</mi> </msub> <mrow> <mo>&amp;prime;</mo> <mo>&amp;prime;</mo> </mrow> </msup> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msup> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&amp;prime;</mo> </msup> <mo>-</mo> <mi>aveXB</mi> </mtd> <mtd> <msup> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&amp;prime;</mo> </msup> <mo>></mo> <mo>=</mo> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msup> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&amp;prime;</mo> </msup> <mo>-</mo> <mi>aveXS</mi> </mtd> <mtd> <msup> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&amp;prime;</mo> </msup> <mo>&lt;</mo> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> </mtd> </mtr> <mtr> <mtd> <msup> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mrow> <mo>&amp;prime;</mo> <mo>&amp;prime;</mo> </mrow> </msup> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msup> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>&amp;prime;</mo> </msup> <mo>-</mo> <mi>aveYB</mi> </mtd> <mtd> <msup> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>&amp;prime;</mo> </msup> <mo>></mo> <mo>=</mo> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msup> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>&amp;prime;</mo> </msup> <mi>aveYS</mi> </mtd> <mtd> <msup> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>&amp;prime;</mo> </msup> <mo>&lt;0</mo> </mtd> </mtr> </mtable> </mfenced> </mtd> </mtr> </mtable> </mfenced> </math>
其中,Xi″表示横坐标减去平均数后得到的值,Yi″表示纵坐标减去平均数后的值。
f.正数差值向左偏移1位,在最末位写1,负数差值向左偏移1位,在最末位写0。处理完毕,在最末端添加横纵坐标正负差值的平均数。
X i &prime; &prime; &prime; = X i &prime; &prime; < < 1 + 1 X i &prime; > = 0 X i &prime; &prime; < < 1 + 0 X i &prime; < 0 Y i &prime; &prime; &prime; = Y i &prime; &prime; < < 1 + 1 Y i &prime; > = 0 Y i &prime; &prime; < < 1 + 0 Y i &prime; < 0
g.对处理完成的数据进行BZIP2压缩,得到恢复水印,记为Rm
Rm = ( X , Y ) X = X 1 &prime; &prime; &prime; X 2 &prime; &prime; &prime; . . . X n Y = Y 1 &prime; &prime; &prime; Y 2 &prime; &prime; &prime; . . . Y n
如果矢量地图的数据量比较大,在精度允许的范围内可以提取子线段的特征点。综合提取特征点后的数据量与准确度,本发明中使用道格拉斯-普克法提取特征点,将得到的特征点序列进行上述压缩处理,得到恢复水印Rm
2.隐藏水印信息
三种不同的水印信息存储在矢量地图数据的不同位置,下面分别介绍。
基于文件过滤和透明加密的思想,水印的嵌入过程在驱动层实现。对每一种水印分别创建一个唯一的系统I/O控制码,使用DeviceIoControl将对应的水印传递到驱动层。水印的生成过程是在操作系统的应用层中实现的,在操作系统的驱动层实现水印的嵌入过程,操作系统通过DeviceIoControl让应用层和驱动层进行通信,传递应用层的水印信息到驱动层。
(1)隐藏认证水印
认证水印存储在矢量地图头文件中,将指针偏移到头文件60字节处,在60-75字节处存储定位水印。
(2)隐藏定位水印
a.定位水印存储在坐标文件中,指针偏移到坐标文件处,顺序读取8个字节,假设读取的横坐标,记为pointX,将其转化为double型,然后将坐标值分为两部分表示:
Figure BDA00001748603700081
其中,Integer存储整数部分,Fractional存储浮点数部分。
b.将Integer向左偏移1位,嵌入1位定位水印信息即
Integer=Integer<<1+(Lmi-'0)
其中Lm表示恢复水印字符串。
c.将嵌入水印的坐标替换原始坐标
pointX=Integer*1.0+Fractional
(3)隐藏恢复水印
恢复水印数据量比较大,将其存储在矢量地图文件头部。对于写请求IRP,在写真实矢量地图数据前,首先写入恢复水印长度,然后写入恢复水印。采用这种方式可以存储任意长度的恢复水印,根据文件头部的水印长度,可以准确提取嵌入的恢复水印。
3.完整性认证过程
矢量地图的完整认证分为三部分,首先提取认证水印,检测矢量地图是否遭受篡改,如果没有篡改,则认证结束,否则,则地图被篡改;提取定位水印,以50条子线段为处理单位,依次与对应块定位水印比较,如果水印不同,则该块被篡改;根据定位的篡改块,提取对应子线段块的恢复水印。将恢复水印解压缩,得到原始坐标值,依次比较每条子线段的坐标值,如果对应的坐标不相同,则该子线段被篡改,则是用恢复的坐标值替换被篡改的坐标,完成该子线段的篡改恢复。
(1)提取认证水印
在驱动层矢量地图头文件指针偏移60-75字节处提取认证水印信息,通过通信传递到应用层,使用Blowfish解密得到原始地图摘要Am';对当前待检测矢量地图进行MD5哈希处理得到检测地图的摘要Am″,比较二者:
auth = 1 Am &prime; = Am &prime; &prime; 0 Am &prime; &NotEqual; Am &prime; &prime;
其中,auth表示认证结果,返回值为1表示认证成功,否则表示认证失败。提取的Am'=“zJ鈑銤??伔炫跦曫舱”,计算得到的Am″=“绿77陲?!杫X?[H曫舱”,二者不相同,提取定位水印,进行篡改定位。
(2)提取定位水印
a.定位水印存储在坐标文件中,以横坐标为例,将其记为pointX,转化为double型,然后将坐标值分为两部分表示:
Figure BDA00001748603700091
b.提取Integer最后1位即定位水印:
Lmi=Integer'mod2
c.将Integer向右移动一位:
Integer″=Integer'>>2
d.恢复原始坐标:
pointX″=Integer″*1.0+Fractional'
对篡改区域进行定位后,提取恢复水印。
(3)提取恢复水印
恢复水印存储在地图文件头部,首先提取存储的水印长度,然后读出对应长度的恢复水印Rm'。
a.对Rm'进行BZIP2解压缩得到解压后恢复水印Rm″,假设一条子线段表示为Rc:
Rc = ( Xc , Yc ) Xc = Xc 1 Xc 2 . . . Xc n Yc = Y c 1 Y c 2 . . . Y cn
b.提取出对应的正负差值块的平均数,其中,aveXB'表示横坐标正数差值的平均数,aveXS'表示横坐标负数差值的平均数,aveYB'表示纵坐标正数差值的平均数,aveYS'表示纵坐标负数差值的平均数。
c.提取差值的正负标识:
t xi = X ci mod 2 t yi = Y ci mod 2
其中txi表示横坐标差值标识,tyi表示纵坐标差值标识。
d.根据标识,还原整型差值:
X ci &prime; = X ci + aveXB t xi = 1 X ci + aveXS t xi = 0 Y ci &prime; = Y ci + aveYB t yi = 1 Y ci + aveYS t yi = 0
e.将差值转化为浮点型,还原原始坐标:
X ci &prime; &prime; = X ci &prime; + X ci - 1 &prime; &prime; Y ci &prime; &prime; = Y ci &prime; + Y ci - 1 &prime; &prime;
X c 1 &prime; &prime; = Y c 1 &prime; Y c 1 &prime; &prime; = Y c 1 &prime;
f.最后得到原始坐标序列为:
Rc = ( X c &prime; , Yc &prime; ) Xc &prime; = Xc 1 &prime; &prime; X c 2 &prime; &prime; . . . Xc n &prime; &prime; Yc &prime; = Y c 1 &prime; &prime; Y c 2 &prime; &prime; . . . Y cn &prime; &prime;
根据定位的篡改区域,提取对应子线段块的恢复水印,还原为原始坐标序列,依次对比每条子线段的坐标点值,对于不相同的坐标值,使用恢复的坐标值进行替换,完成对篡改块的恢复。
利用本发明提出的完整性认证方法对图3中的原始矢量地图a生成认证水印存于矢量地图头文件中,生成定位水印存于矢量地图的坐标中,生成恢复水印信息存于矢量地图文件之前。对图3中的原始矢量地图a进行篡改,修改坐标点的位置使线图元移位,得到篡改后的矢量地图b。
当打开矢量地图b时,首先提取存于矢量地图头文件中的认证水印,并利用MD5哈希对矢量地图b进行处理,将得到的消息摘要与认证水印进行对比,发现不一致,说明矢量地图经过篡改;然后提取定位水印,以50条子线段为处理单位进行MD5哈希处理,依次将每块的消息摘要与对应的定位水印比较,定位矢量地图的篡改位置,图4中方框内显示的部分为篡改区域;最后根据定位的篡改区域,提取篡改区域的恢复水印并解压缩,得到原始坐标值,依次比较每条子线段的坐标值,如果对应的坐标不相同,则该子线段被篡改,利用原始坐标值进行恢复,图5中方框内显示的部分为恢复后的篡改区域。

Claims (5)

1.一种数字矢量地图完整性保护方法,包括生成水印、隐藏水印和完整性认证三部分,其特征在于:
(1)生成水印包括如下步骤:
1)生成认证水印:
将矢量地图以二进制数据流形式读入缓存,进行MD5哈希处理,获得128b摘要信息并使用Blowfish加密生成认证水印;
2)生成定位水印:
对矢量地图的坐标文件,顺序读取每一条子线段,以50条子线段为处理单位块,对块内所有坐标集合进行MD5哈希处理,得到每块的摘要信息,使用Blowfish加密后生成该单位块的定位水印;
3)生成恢复水印:
对矢量地图的坐标文件,以子线段为处理单位,提取线段上所有坐标点的横纵坐标,第一顶点值不变,计算其余坐标值与前一个顶点坐标值的差,差值化整,遍历整形差值,记录横纵坐标对应的正负值的个数和总和,计算对应正负块的平均值,并使用BZIP2压缩生成该子线段的恢复水印;
(2)隐藏水印包括如下步骤:
1)水印信息传递到驱动层:
对上述的每一种水印分别创建一个唯一的系统I/O控制码,将对应的水印传递到驱动层;
2)隐藏水印信息:
将认证水印存储头文件中,定位水印存储在矢量地图坐标值中,恢复水印存储在地图文件头部;
(3)完整性认证包括如下步骤:
1)提取认证水印,对待检测地图进行MD5哈希处理计算哈希值:如果与提取出的认证水印相同,则证明数字矢量地图未经篡改,认证结束;如果与提取出的认证水印不同,则代表矢量地图已经被篡改,执行步骤2);
2)提取定位水印,对待检测地图以50条子线段为处理单位进行MD5哈希处理,将得到的信息摘要依次与对应块定位水印进行比较,如果与提取出的定位水印相同,则相应的块未经篡改;如果与定位水印不同,则该块被篡改,执行步骤3);
3)根据定位的篡改块,提取对应子线段块的恢复水印,将恢复水印解压缩,得到原始坐标值,依次比较每条子线段的坐标值,如果与对应的坐标相同,则该条子线段未经篡改;如果与对应的坐标不同,则该条子线段被篡改,执行步骤4);
4)对被篡改的子线段使用恢复水印解压缩后得到的原始坐标值替换被篡改的坐标,完成篡改恢复。
2.根据权利要求1所述的一种数字矢量地图完整性保护方法,其特征在于:所述认证水印储存在指针偏移到头文件60-75字节处。
3.根据权利要求1或2所述的一种数字矢量地图完整性保护方法,其特征在于:所述定位水印储存在坐标文件中,指针偏移到坐标文件处,顺序每读取8个字节隐藏1b的水印信息,直至将128b的定位水印信息完全隐藏在坐标文件中。
4.根据权利要求3所述的一种数字矢量地图完整性保护方法,其特征在于:所述恢复水印存储在矢量地图文件头部,在写真实矢量地图数据前,首先写入恢复水印长度,然后写入恢复水印。
5.根据权利要求4所述的一种数字矢量地图完整性保护方法,其特征在于,所述恢复水印的提取过程如下:
提取存储的水印长度,读出对应长度的恢复水印Rm';
a.对恢复水印进行BZIP2解压缩得到解压后恢复水印Rm″;
b.提取出对应的正负差值块的平均数;
c.提取差值的正负标识;
d.根据标识,还原整型差值;
e.将差值转化为浮点型,还原原始坐标;
f.最后得到原始坐标序列。
CN201210189469.5A 2012-06-11 2012-06-11 一种数字矢量地图完整性保护方法 Expired - Fee Related CN102800041B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210189469.5A CN102800041B (zh) 2012-06-11 2012-06-11 一种数字矢量地图完整性保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210189469.5A CN102800041B (zh) 2012-06-11 2012-06-11 一种数字矢量地图完整性保护方法

Publications (2)

Publication Number Publication Date
CN102800041A true CN102800041A (zh) 2012-11-28
CN102800041B CN102800041B (zh) 2014-09-17

Family

ID=47199140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210189469.5A Expired - Fee Related CN102800041B (zh) 2012-06-11 2012-06-11 一种数字矢量地图完整性保护方法

Country Status (1)

Country Link
CN (1) CN102800041B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103903217A (zh) * 2014-03-28 2014-07-02 哈尔滨工程大学 一种基于顶点插入的矢量地图完整性认证方法
CN104036197A (zh) * 2014-06-05 2014-09-10 哈尔滨工程大学 一种基于文件过滤驱动的矢量地图数据保护及访问控制方法
CN104867099A (zh) * 2015-06-03 2015-08-26 南京吉印信息科技有限公司 一种基于防重复嵌入双水印的dem完整性认证方法
CN108984315A (zh) * 2018-06-14 2018-12-11 深圳市轱辘汽车维修技术有限公司 应用数据处理方法、装置、终端及可读介质
CN109300391A (zh) * 2018-10-16 2019-02-01 中国人民解放军海军工程大学 一种地图设计方法和装置
CN110413711A (zh) * 2018-08-14 2019-11-05 腾讯大地通途(北京)科技有限公司 一种差异数据获取方法及其存储介质
CN116611114A (zh) * 2023-07-17 2023-08-18 数字太空(北京)科技股份公司 基于图像文件的头文件实现地图栅格数据加密及偏移方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060126892A1 (en) * 2004-12-09 2006-06-15 Tapson Daniel W Data processing apparatus and method
CN101149835A (zh) * 2007-10-29 2008-03-26 中国人民解放军信息工程大学 一种基于地图数据栅格化的鲁棒性盲水印嵌入与提取方法
CN101458810A (zh) * 2008-12-08 2009-06-17 哈尔滨工程大学 一种基于对象属性特征的矢量地图水印方法
CN101556578A (zh) * 2009-05-12 2009-10-14 南京师范大学 一种gis矢量数据文件访问控制方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060126892A1 (en) * 2004-12-09 2006-06-15 Tapson Daniel W Data processing apparatus and method
CN101149835A (zh) * 2007-10-29 2008-03-26 中国人民解放军信息工程大学 一种基于地图数据栅格化的鲁棒性盲水印嵌入与提取方法
CN101458810A (zh) * 2008-12-08 2009-06-17 哈尔滨工程大学 一种基于对象属性特征的矢量地图水印方法
CN101556578A (zh) * 2009-05-12 2009-10-14 南京师范大学 一种gis矢量数据文件访问控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孙建国 等: "矢量地图数字水印研究综述", 《计算机科学》 *
尚华益 等: "基于blowfish和MD5的混合加密方案", 《计算机应用研究》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103903217A (zh) * 2014-03-28 2014-07-02 哈尔滨工程大学 一种基于顶点插入的矢量地图完整性认证方法
CN104036197A (zh) * 2014-06-05 2014-09-10 哈尔滨工程大学 一种基于文件过滤驱动的矢量地图数据保护及访问控制方法
CN104036197B (zh) * 2014-06-05 2017-02-15 哈尔滨工程大学 一种基于文件过滤驱动的矢量地图数据保护及访问控制方法
CN104867099A (zh) * 2015-06-03 2015-08-26 南京吉印信息科技有限公司 一种基于防重复嵌入双水印的dem完整性认证方法
CN104867099B (zh) * 2015-06-03 2017-12-15 南京吉印信息科技有限公司 一种基于防重复嵌入双水印的dem完整性认证方法
CN108984315A (zh) * 2018-06-14 2018-12-11 深圳市轱辘汽车维修技术有限公司 应用数据处理方法、装置、终端及可读介质
CN110413711A (zh) * 2018-08-14 2019-11-05 腾讯大地通途(北京)科技有限公司 一种差异数据获取方法及其存储介质
CN110413711B (zh) * 2018-08-14 2023-06-06 腾讯大地通途(北京)科技有限公司 一种差异数据获取方法及其存储介质
CN109300391A (zh) * 2018-10-16 2019-02-01 中国人民解放军海军工程大学 一种地图设计方法和装置
CN109300391B (zh) * 2018-10-16 2020-11-03 中国人民解放军海军工程大学 一种地图设计方法和装置
CN116611114A (zh) * 2023-07-17 2023-08-18 数字太空(北京)科技股份公司 基于图像文件的头文件实现地图栅格数据加密及偏移方法
CN116611114B (zh) * 2023-07-17 2023-10-31 数字太空(北京)科技股份公司 基于图像文件的头文件实现地图栅格数据加密及偏移方法

Also Published As

Publication number Publication date
CN102800041B (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
CN102800041B (zh) 一种数字矢量地图完整性保护方法
CN103605950B (zh) 一种可信二维码中签名的隐藏方法及系统
CN103761702B (zh) 一种基于秘密共享的图像隐藏和认证方法
Chang et al. A secure fragile watermarking scheme based on chaos-and-hamming code
CN103310407B (zh) 基于qr码的矢量地理空间数据全盲水印方法
CN107742272A (zh) 一种基于图像篡改定位及恢复的半脆弱性水印方法
Wang et al. Reversible fragile watermarking for locating tampered blocks in 2D vector maps
CN106709853B (zh) 一种图像检索方法及系统
CN102932650B (zh) 视频数据完整性保护和验证方法、设备和系统
Peng et al. Separable robust reversible watermarking in encrypted 2D vector graphics
CN105303075B (zh) 基于pdf格式的自适应文本水印方法
CN104063731A (zh) 一种采用数字水印技术的二维码防伪印刷及验证方法
Ren et al. Selective authentication algorithm based on semi-fragile watermarking for vector geographical data
CN112134687B (zh) 基于二维码的信息加密解密方法
CN102142129B (zh) 一种基于视觉秘密共享的图像内容篡改检测方法
CN103903217A (zh) 一种基于顶点插入的矢量地图完整性认证方法
Hsu et al. DIGITAL WATERMARKING SCHEME FOR COPYRIGHT PROTECTION AND TAMPERING DETECTION.
Neyman et al. Reversible fragile watermarking based on difference expansion using manhattan distances for 2d vector map
US11983789B1 (en) Generation method, detection method, generation device, and detection device of zero watermarking for trajectory data, and storage medium
CN108564520B (zh) 基于莫兰指数的gis矢量数据版权认证方法
CN111242825B (zh) 一种基于水深特征的enc电子航海图零水印方法
Li et al. Protecting biometric templates using authentication watermarking
Dadkhah et al. An efficient image self-recovery and tamper detection using fragile watermarking
CN103617589A (zh) 一种基于局部直方图的信息隐藏方法
CN104866737B (zh) 一种顾及地形特征的dem脆弱水印完整性认证方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140917

Termination date: 20200611