CN103903217A - 一种基于顶点***的矢量地图完整性认证方法 - Google Patents

一种基于顶点***的矢量地图完整性认证方法 Download PDF

Info

Publication number
CN103903217A
CN103903217A CN201410120970.5A CN201410120970A CN103903217A CN 103903217 A CN103903217 A CN 103903217A CN 201410120970 A CN201410120970 A CN 201410120970A CN 103903217 A CN103903217 A CN 103903217A
Authority
CN
China
Prior art keywords
piece
watermark
summit
coordinate
map vector
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.)
Pending
Application number
CN201410120970.5A
Other languages
English (en)
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 CN201410120970.5A priority Critical patent/CN103903217A/zh
Publication of CN103903217A publication Critical patent/CN103903217A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

本发明属于地理信息科学、信息隐藏领域,具体涉及一种基于顶点***的矢量地图完整性认证方法。本发明包括:划分矢量地图区域;矢量地图块分类;记录矢量地图块类型;生成认证水印;嵌入认证水印;嵌入认证水印;水印认证及原始数据恢复。本发明将矢量地图划分为若干区域,利用顶点***的方法在每个区域中嵌入相应的认证信息,在认证阶段,不仅能够实现完整性认证,而且能够精确定位篡改区域,有效减少因无法准确检测篡改数据而导致的数据重传次数;本发明的误警率为零,漏警率为(1/2)L,能够有效检测篡改。

Description

一种基于顶点***的矢量地图完整性认证方法
技术领域
本发明属于地理信息科学、信息隐藏领域,具体涉及一种基于顶点***的矢量地图完整性认证方法。
背景技术
随着信息技术和测绘技术的快速发展,二维矢量地图数据已成为地理信息***、智能交通运输***、数字化城市和数字化国防建设等方面必需的保障资源。二维矢量地图数据描述的地理信息详实准确,具有巨大的经济价值和战略意义。而借助网络和地理信息处理工具,这些具有巨大经济价值的数据很容易被非法复制、篡改和传播。发生篡改的矢量地图数据,不仅会给矢量地图的精度造成损失,更会使地理信息生产者、发布者和使用者蒙受重大损失。在提供地理信息服务的同时,如何保障矢量地图数据的真实性和完整性是当前迫切需要解决的问题。
密码学中的数字签名技术能够实现矢量地图的完整性认证和真伪鉴别。但这种技术不能定位篡改位置,一旦发现数据发生改变,不管发生篡改的数据是所需数据还是非所需数据,都会认为数据遭到篡改不能使用,需要重新获取数据,增加了数据获取的时间与费用,给一些需要及时获取数据的应用场合造成不必要的延误。而且有的数字签名附在数字作品的尾部或头部同数字作品一起传输,当数字作品经过格式转换及其他操作后,其自身携带的数字签名就会丢失,致使认证失效。为弥补数字签名技术的缺陷,脆弱水印技术作为一种完整性认证的有效手段应运而生,成为近年来地理信息数字产品完整性认证领域研究的一个热点。
脆弱水印技术中,数据发送方将数字作品分割为若干部分后,为每部分数据生成相应的认证信息并将其嵌入到相应的数据中。数据接收方通过判定在每部分数据中提取到的认证信息与生成的认证信息的一致性,检测并定位篡改数据。利用脆弱水印技术定位篡改的特性,人们可以判定篡改数据是当前要需要的数据还是非所需数据,从而避免因数据重传导致的资源和时间的浪费。同时由于认证信息隐藏在数字作品中,同作品密不可分,一同传输,脆弱水印技术使得认证信息传输更为隐蔽、安全。
近年来,脆弱水印技术已在图像、视频,音频以及文本数据领域取得了相当多的研究成果。对矢量地图水印技术的研究逐步趋于成熟,但在矢量地图脆弱水印技术方面,人们取得的成果还比较少。借鉴J.Fridrich等人提出的用于图像完整性认证的可逆认证方法,邵承永等人于2005年首先提出了一种用于二维矢量地图完整性认证的可逆脆弱水印算法。该算法将矢量地图顶点划分为不同的组后,为每组生成相应的认证信息并利用Fridrich等人的可逆认证方法实现水印的嵌入。该方法能够检测到矢量地图的多种篡改操作,但不能抵抗矢量量化攻击,而且当矢量地图遭到增加顶点/图元、删除顶点/图元操作时,该方法的篡改定位能力不够强。同样利用Fridrich等人的可逆认证方法,2009年,Zheng等人结合分块的思想提出了能够定位篡改块的矢量地图可逆脆弱水印算法。这种方法能够检测篡改区域,但当矢量地图遭到顶点增加、删除攻击后,篡改定位能力依然比较差,而且如果嵌入参数选择不当,该方法不能保证对所有矢量地图都能够正确提取水印信息。随后,Zheng等人结合图元分组的思想提出定位篡改图元组的矢量地图可逆脆弱水印算法。该方法同样面临着矢量地图遭到顶点/图元增加、删除攻击后篡改定位能力不足的问题。为获取较好的篡改数据定位精度,Wang和Men提出了基于图元标记的矢量地图可逆脆弱水印方法。该方法能够精确定位篡改图元组,但还不能应用于点图元。
此外,Zhang和Gao基于DCT变换提出了一种二维矢量图形半脆弱水印算法。该方法对旋转、缩放、平移操作鲁棒,但水印的嵌入可能会影响认证阶段的顶点排序情况,进而影响其分组情况,导致水印信息无法正确提取,从而无法完成完整性认证。彭飞等人基于对数极坐标变换提出了一种二维CAD工程图的半脆弱水印方法。该方法将顶点进行分组,将用于嵌入水印的顶点映射到对数极坐标系中,并利用位替换的方法将水印信息嵌入对数极坐标中。为提高其篡改定位能力,算法在每个分组的第一条线的属性信息中做标记以确保认证阶段能够正确分组。此方案对旋转、缩放、平移操作鲁棒,但当某一组数据被删除时,篡改定位能力仍然不高。
综上所述,虽然人们目前提出了一些用于矢量地图脆弱水印方法,试图解决在认证数据完整性的同时,定位篡改的问题,但这些方法在精确定位篡改方面还存在不足。
发明内容
本发明的目的在于提供一种能够精确定位篡改区域,有效减少因无法准确检测篡改数据而导致的数据重传次数的基于顶点***的矢量地图完整性认证方法。
本发明的目的是这样实现的:
(1)划分矢量地图区域;
将矢量地图图元划分为互不重叠的块,将矢量地图划分的块的行数和列数记为NR和NW,块的总数记为NB,NB=NR×NW,第i,i=1,2,…,NB个矢量地图块记为Bi,包含块Bi的区域范围的矩形的左上顶点和右下顶点分别记为
Figure BDA0000483579700000021
Figure BDA0000483579700000022
Figure BDA0000483579700000023
分别表示
Figure BDA0000483579700000024
的x坐标和y坐标,
Figure BDA0000483579700000026
分别表示
Figure BDA0000483579700000027
的x坐标和y坐标;
(2)矢量地图块分类;
将所有的块划分为两类,normal块和empty块,将块Bi的顶点数目记为
Figure BDA0000483579700000028
如果
Figure BDA0000483579700000029
则块Bi为normal块;否则,块Bi为empty块;
(3)记录矢量地图块类型;
生成包含NB个元素的序列F,记录步骤(2)中每个块的类型,
F={fi|fi∈{0,1},i=1,...,NB}
其中,fi=0表示第i块为一个normal块,fi=1表示第i块为一个empty块;
(4)生成认证水印;
生成步骤(2)中每个normal块的认证水印,将块Bi的水印信息记为Hi
Hi={hi,j∈{0,1},j∈[0,L-1]}
其中,L表示Hi中比特的数目,hi,j(0≤j≤L–1)表示Hi中第j个比特;
(5)嵌入认证水印;
将步骤(4)中生成的认证水印嵌入到normal块中,在normal块中嵌入水印
(5.1)依据矢量地图块Bi的边界,计算Bi的中心
Figure BDA0000483579700000032
分别表示中心Bc,i的x坐标和y坐标;
(5.2)生成一个以Bc,i为中心,r为半径的圆CBi(Bc,i,r),将在圆CBi(Bc,i,r)的圆周上***含水印顶点以隐藏认证水印,半径r的取值为:
( B i , max x - B i , min x , B i , max y - B i , min y )
(5.3)将认证水印Hi转换成要嵌入的水印序列Wi={Wi,j|j∈[0,NA–1]},Wi,j表示序列Wi中第j个元素,NA表示序列Wi中元素数目;
(5.4)根据密钥Kd,生成双精度浮点数序列Ai={Ai,j|j∈[0,NA–1],(0≤Ai,j<180)},Ai,j表示序列Ai的第j个元素,序列Ai即用来嵌入水印序列Wi的角度序列;
(5.5)对于序列Wi的每个元素Wi,j(j∈[0,NA–1]),嵌入到序列Ai中的第j个角度Ai,j的尾数部分,将得到的含水印角度记为Ai,j';
(5.6)依据含水印角度Ai,j',计算在圆CBi的圆周上的含水印顶点
Figure BDA0000483579700000034
的位置,
r j a = A i , j &prime; &times; ( &pi; / 180 ) v i , j x = B c , j x + r &times; cos ( r j a ) v i , j y = B c , i y + r &times; sin ( r j a )
其中,
Figure BDA0000483579700000036
Figure BDA0000483579700000037
分别表示vi,j的x坐标和y坐标,将计算得到的含水印顶点集合记为Vi={vi,j|j∈[0,NA–1]};
(5.7)将Vi中的含水印顶点***到矢量地图中,得到含水印矢量地图;
(6)水印认证及原始数据恢复;
将含水印矢量地图的图元划分为互不重叠的块;根据步骤(3)中序列F识别每个块的类型;
对于empty块,块中含有顶点,则视其遭到了篡改;否则,认为该块通过认证,对于normal块:
(6.1)根据步骤(5)中计算块Bi'的中心
Figure BDA0000483579700000041
并生成以Bc,i'为中心,r'为半径的圆
Figure BDA0000483579700000042
Figure BDA0000483579700000043
分别表示中心Bc,i'的x坐标和y坐标;
(6.2)搜索CBi'圆周上所有的顶点,将CBi'圆周上所有顶点的集合记为 V i c = { v i , j c ( v i , j c , x , v i , j c , y ) | j &Element; [ 0 , N c - 1 ] ) } , v i , j c 表CBi'圆周上第j个顶点, v i , j c , x v i , j c , y 分别表示顶点 v i , j c 的x坐标和y坐标,Nc表示
Figure BDA0000483579700000049
包含的顶点数目;
(6.3)获得所有可能的含水印顶点集合,将含水印顶点集合的序列记为 V i p = { V i , j p | j &Element; [ 0 , N p - 1 ] } , V i , j p = { v i , j , k p ( v i , j , k p , x , v i , j , k p , y ) | k &Element; [ 0 , N A - 1 ] } 表示一个可能的含水印顶点集合,通过从
Figure BDA00004835797000000412
中选取NA个不同的顶点获得,
Figure BDA00004835797000000413
表示可能含水印顶点集合中第k个顶点,
Figure BDA00004835797000000415
Figure BDA00004835797000000416
分别表示顶点
Figure BDA00004835797000000417
的x坐标和y坐标,
Figure BDA00004835797000000418
表示可能含水印顶点集合的数目;
(6.4)对于
Figure BDA00004835797000000419
中每个可能含水印顶点集合
(6.4.1)利用步骤(4)中描述的水印生成方法生成Bi''的水印信息Hi'={hi,j'|hi,j'∈{0,1},j∈[0,L–1]},Bi''表示不包含中顶点的块Bi';
(6.4.2)生成一个含水印顶点集合 V i , j &prime; = { v i , j , k &prime; ( v i , j , k x &prime; , v i , j , k y &prime; ) | k &Element; [ 0 , N A - 1 ] } , v i , j , k &prime; 表示Vi,j'的第k个顶点,
Figure BDA00004835797000000423
Figure BDA00004835797000000424
分别表示顶点vi,j,k'的x坐标和y坐标;
(6.4.3)如果
Figure BDA00004835797000000425
块Bi'包含其相应的含水印顶点,块Bi'通过完整性认证,删除
Figure BDA00004835797000000426
中的顶点以恢复原始数据,块Bi'的认证过程到此结束;否则,重复步骤(6.4)直至
Figure BDA00004835797000000427
所有的集合都测试完毕;
(6.5)如果中没有一个可能含水印顶点集合是块Bi'的含水印顶点集合,则认为块Bi'遭到了篡改。
本发明的有益效果在于:
本发明将矢量地图划分为若干区域,利用顶点***的方法在每个区域中嵌入相应的认证信息,在认证阶段,不仅能够实现完整性认证,而且能够精确定位篡改区域,有效减少因无法准确检测篡改数据而导致的数据重传次数;本发明在进行完整性认证后,删除水印嵌入阶段***的含水印顶点,精确还原矢量地图原始数据,能够满足用户对矢量地图数据精确使用的需求;本发明的误警率(即将没有发生篡改的数据检测为发生篡改的概率)为零,漏警率(即将发生篡改的数据检测为未发生篡改的概率)为(1/2)L,能够有效检测篡改。
附图说明
图1为基于顶点***的矢量地图完整性认证方法流程图;
图2为一个块和被分入该块中的线图元的例子;
图3为IEEE-754双精度浮点格式;
图4为嵌入水印前的矢量地图;
图5为嵌入水印后的矢量地图;
图6为发生篡改的含水印矢量地图;
图7为定位篡改的矢量地图。
具体实施方式
下面结合附图1-7对本发明做进一步描述。
本发明提出一种基于顶点***的矢量地图完整性认证方法,一方面该方法将矢量地图图元划分至不同的区域中,结合散列算法生成每个区域相应的认证信息,将认证信息嵌入在角度序列中,并依据含水印角度序列计算含水印顶点的位置,利用顶点***的方法实现认证信息在矢量地图数据中的隐藏,能有效解决精确定位篡改区域的问题;另一方面该算法在提取认证信息后,删除***的含水印顶点无损还原矢量地图原始数据,能够有效确保矢量地图数据的精确使用。实验结果表明该方案精确定位篡改位置,是一种用于矢量地图完整性认证、定位篡改的实用算法。
矢量地图图元(点图元、线图元和面图元)是由大量密集的顶点按照特定的顺序排列而成的,地图数据就是这些顶点的2维坐标序列。矢量地图脆弱水印技术是一种解决矢量地图完整性认证、定位篡改问题的重要手段。人们当前提出的矢量地图脆弱水印策略能够达到认证数据完整性和真实性的目标,但这些策略在精确定位篡改方面还存在不足。针对上述问题,本发明提出基于顶点***的矢量地图完整性认证方法,包括如下步骤:
(1)划分矢量地图区域;
该步骤中,将矢量地图图元划分为互不重叠的块。一个矢量地图块的区域范围可以视为一块由矩形的左上顶点和右下顶点定义的区域。将矢量地图划分的块的行数和列数记为NR和NW,块的总数记为NB(NB=NR×NW),第i(i=1,2,…,NB)个矢量地图块记为Bi,包含块Bi的区域范围的矩形的左上顶点和右下顶点分别记为
Figure BDA0000483579700000061
Figure BDA0000483579700000062
Figure BDA0000483579700000064
分别表示
Figure BDA0000483579700000065
的x坐标和y坐标,
Figure BDA0000483579700000066
Figure BDA0000483579700000067
分别表示
Figure BDA0000483579700000068
的x坐标和y坐标。
(2)矢量地图块分类;
该步骤中,依据每个区域块中顶点的数目,将所有的块划分为两类:normal块和empty块。将块Bi的顶点数目记为
Figure BDA00004835797000000613
如果
Figure BDA00004835797000000612
则块Bi为一个normal块;否则,块Bi为一个empty块。本发明只在normal块中嵌入水印。
(3)记录矢量地图块类型;
该步骤中,生成一个包含NB个元素的序列F,该序列用于记录步骤(2)中每个块的类型,
F={fi|fi∈{0,1},i=1,...,NB}
其中,fi=0表示第i块为一个normal块,fi=1表示第i块为一个empty块。
(4)生成认证水印;
该步骤中,利用散列算法,生成步骤(2)中每个normal块的认证水印。将块Bi的水印信息记为Hi
Hi={hi,j∈{0,1},j∈[0,L-1]}
其中,L表示Hi中比特的数目,hi,j(0≤j≤L–1)表示Hi中第j个比特。
(5)嵌入认证水印;
该步骤中,利用顶点***的方法,将步骤(4)中生成的认证水印嵌入到相应的normal块中。在一个normal块中嵌入水印的具体步骤如下(假设块Bi为一个normal块,要嵌入的水印为Hi):
a.依据矢量地图块Bi的边界,计算Bi的中心
Figure BDA0000483579700000069
Figure BDA00004835797000000610
分别表示中心Bc,i的x坐标和y坐标;
b.生成一个以Bc,i为中心,r为半径的圆CBi(Bc,i,r)。本发明将在圆CBi(Bc,i,r)的圆周上***含水印顶点以隐藏认证水印。为确保含水印顶点不会超出块Bi的边界,半径r的取值应满足以下条件,
( B i , max x - B i , min x , B i , max y - B i , min y )
c.将认证水印Hi转换成要嵌入的水印序列Wi={Wi,j|j∈[0,NA–1]},Wi,j表示序列Wi中第j个元素,NA表示序列Wi中元素数目;
d.在密钥Kd的参与下,生成一个双精度浮点数序列Ai={Ai,j|j∈[0,NA–1],(0≤Ai,j<180)}。Ai,j表示序列Ai的第j个元素,序列Ai即用来嵌入水印序列Wi的角度序列;
e.对于序列Wi的每个元素Wi,j(j∈[0,NA–1]),利用位替换的方法将其嵌入到序列Ai中的第j个角度Ai,j的尾数部分。将得到的含水印角度记为Ai,j';
f.依据含水印角度Ai,j',计算在圆CBi的圆周上的含水印顶点
Figure BDA00004835797000000723
的位置,
r j a = A i , j &prime; &times; ( &pi; / 180 ) v i , j x = B c , j x + r &times; cos ( r j a ) v i , j y = B c , i y + r &times; sin ( r j a )
其中,
Figure BDA0000483579700000072
Figure BDA0000483579700000073
分别表示vi,j的x坐标和y坐标。将依据步骤e-f计算得到的含水印顶点集合记为Vi={vi,j|j∈[0,NA–1]};
g.将Vi中的含水印顶点***到矢量地图中,得到含水印矢量地图。
(6)水印认证及原始数据恢复;
该步骤中,将含水印矢量地图的图元划分为互不重叠的块;利用步骤(3)中序列F识别每个块的类型;利用不同的方法认证不同的块的完整性。
对于一个empty块,若该块中含有顶点,则视其遭到了篡改;否则,认为该块通过认证。
对于一个normal块,其认证过程的具体步骤如下(假设含水印块Bi'为一个normal块):
a.根据步骤(5)中的a-b计算块Bi'的中心并生成一个以Bc,i'为中心,r'为半径的圆CBi'(Bc,i',r')。其中,
Figure BDA0000483579700000075
分别表示中心Bc,i'的x坐标和y坐标;
b.搜索CBi'圆周上所有的顶点。将CBi'圆周上所有顶点的集合记为
Figure BDA0000483579700000077
Figure BDA0000483579700000078
表CBi'圆周上第j个顶点,
Figure BDA0000483579700000079
Figure BDA00004835797000000710
分别表示顶点
Figure BDA00004835797000000711
的x坐标和y坐标,Nc表示
Figure BDA00004835797000000712
包含的顶点数目;
c.获得所有可能的含水印顶点集合。将所有可能的含水印顶点集合的序列记为 V i p = { V i , j p | j &Element; [ 0 , N p - 1 ] } , 其中, V i , j p = { v i , j , k p ( v i , j , k p , x , v i , j , k p , y ) | k &Element; [ 0 , N A - 1 ] } 表示一个可能的含水印顶点集合,该集合通过从
Figure BDA00004835797000000716
中选取NA个不同的顶点获得,
Figure BDA00004835797000000717
表示可能含水印顶点集合
Figure BDA00004835797000000718
中第k个顶点,
Figure BDA00004835797000000719
分别表示顶点
Figure BDA00004835797000000721
的x坐标和y坐标,
Figure BDA00004835797000000722
表示可能含水印顶点集合的数目;
d.对于
Figure BDA0000483579700000081
中每个可能含水印顶点集合进行以下3个步骤:
p1.利用步骤(4)中描述的水印生成方法生成Bi''的水印信息
Figure BDA0000483579700000083
L–1]}。其中,Bi''表示不包含
Figure BDA0000483579700000084
中顶点的块Bi'。
p2.利用步骤(5)的c-f和Hi',生成一个含水印顶点集合
Figure BDA0000483579700000085
Figure BDA0000483579700000086
表示Vi,j'的第k个顶点,
Figure BDA0000483579700000087
Figure BDA0000483579700000088
分别表示顶点vi,j,k'的x坐标和y坐标。
p3.如果
Figure BDA0000483579700000089
块Bi'包含其相应的含水印顶点,块Bi'通过完整性认证,删除
Figure BDA00004835797000000810
中的顶点以恢复原始数据,块Bi'的认证过程到此结束;否则,重复步骤d直至
Figure BDA00004835797000000811
所有的集合都测试完毕。
e.如果
Figure BDA00004835797000000812
中没有一个可能含水印顶点集合是块Bi'的含水印顶点集合,则认为块Bi'遭到了篡改。
验证完每个矢量地图块的完整性后,显示所有被篡改的矢量地图块。
本发明提出了一种基于***顶点的矢量地图完整性认证方法,一方面该方法将矢量地图图元划分至不同的区域中,结合散列算法生成每个区域相应的认证信息,将认证信息嵌入在角度序列中,依据含水印角度序列计算含水印顶点的位置,利用顶点***的方法实现认证信息在矢量地图数据中的隐藏,能有效解决精确定位篡改区域的问题;另一方面该算法在提取认证信息后,删除***的含水印顶点无损还原矢量地图原始数据,能够有效确保矢量地图数据的精确使用。与其他矢量地图完整性认证方法相比,本发明具有以下优点:
1、本发明将矢量地图划分为若干区域,利用顶点***的方法在每个区域中嵌入相应的认证信息,在认证阶段,不仅能够实现完整性认证,而且能够精确定位篡改区域,有效减少因无法准确检测篡改数据而导致的数据重传次数;
2、本发明在进行完整性认证后,删除水印嵌入阶段***的含水印顶点,精确还原矢量地图原始数据,能够满足用户对矢量地图数据精确使用的需求;
3、本发明的误警率(即将没有发生篡改的数据检测为发生篡改的概率)为零,漏警率(即将发生篡改的数据检测为未发生篡改的概率)为(1/2)L,能够有效检测篡改。
本发明提出了一种基于***顶点的矢量地图完整性认证方法,一方面该方法将矢量地图图元划分至不同的区域中,结合散列算法生成每个区域相应的认证信息,将认证信息嵌入在角度序列中,依据含水印角度序列计算含水印顶点的位置,利用顶点***的方法实现认证信息在矢量地图数据中的隐藏,能有效解决精确定位篡改区域的问题;另一方面该算法在提取认证信息后,删除***的含水印顶点无损还原矢量地图原始数据,能够有效确保矢量地图数据的精确使用。与其他矢量地图完整性认证方法相比,本发明具有以下优点:
1、本发明将矢量地图划分为若干区域,利用顶点***的方法在每个区域中嵌入相应的认证信息,在认证阶段,不仅能够实现完整性认证,而且能够精确定位篡改区域,有效减少因无法准确检测篡改数据而导致的数据重传次数;
2、本发明在进行完整性认证后,删除水印嵌入阶段***的含水印顶点,精确还原矢量地图原始数据,能够满足用户对矢量地图数据精确使用的需求;
3、本发明的误警率(即将没有发生篡改的数据检测为发生篡改的概率)为零,漏警率(即将发生篡改的数据检测为未发生篡改的概率)为(1/2)L,能够有效检测篡改。
如图1所示,本发明基于顶点***的矢量地图完整性认证方法流程图,该方法总体分为两个方面:A、矢量地图水印嵌入算法;B、矢量地图水印认证算法。
A、矢量地图水印嵌入算法,步骤如下:
(1)划分矢量地图区域;
将矢量地图图元划分为互不重叠的块。一个矢量地图块的区域范围可以视为一块由矩形的左上顶点和右下顶点定义的区域。将矢量地图划分的块的行数和列数记为NR和NW,块的总数记为NB(NB=NR×NW),第i(i=1,2,…,NB)个矢量地图块记为Bi,包含块Bi的区域范围的矩形的左上顶点和右下顶点分别记为
Figure BDA0000483579700000091
Figure BDA0000483579700000092
Figure BDA0000483579700000093
分别表示
Figure BDA0000483579700000094
的x坐标和y坐标,
Figure BDA0000483579700000096
分别表示
Figure BDA0000483579700000097
的x坐标和y坐标。
这里,一个图元只被划分到一个区域块中。一旦一个图元被划分到一个区域块中后,该图元的所有顶点也都被划分到该区域块中,即使该图元的一些顶点可能超出了该块的区域范围。图2中显示了矢量地图块Bi的边界和一个划分到其中的线图元
Figure BDA0000483579700000098
的例子,
Figure BDA0000483579700000099
分别表示线图元PL中顶点vj的x坐标和y坐标。为了说明顶点
Figure BDA00004835797000000911
和Bi的边界不真实存在于矢量地图文件中,顶点
Figure BDA00004835797000000913
Figure BDA00004835797000000914
以深灰色显示,Bi的边界用虚线显示。在线图元PL的所有顶点中,v0,v1和v4超出了矢量地图块Bi的区域范围,v2和v3在Bi的区域范围内,但图元PL所有的顶点都属于矢量地图块Bi
(2)矢量地图块分类;
依据每个区域块中顶点的数目,将所有的块划分为两类:normal块和empty块。将块Bi的顶点数目记为NBi,如果NBi≥0,则块Bi为一个normal块;否则,块Bi为一个empty块。本发明只在normal块中嵌入水印。
(3)记录矢量地图块类型;
生成一个包含NB个元素的序列F,该序列用于记录步骤(2)中每个块的类型,
F={fi|fi∈{0,1},i=1,...,NB}
其中,fi=0表示第i块为一个normal块,fi=1表示第i块为一个empty块。
(4)生成认证水印;
利用散列算法,生成步骤(2)中每个normal块的认证水印。将块Bi的水印信息记为Hi
Hi={hi,j∈{0,1},j∈[0,L-1]}
其中,L表示Hi中比特的数目,hi,j(0≤j≤L–1)表示Hi中第j个比特。
生成块Bi的认证水印Hi的方法如下:
Hi=blockhash(hash(I(Bi),k,i,Mindex),L,K).
其中,I(·)表示获取的空间数据和属性数据的方法,k表示一个用于生成hash(·)的一个输入参数的私钥,Mindex表示该矢量地图的索引值,hash(·)表示一个已有的加密哈希算法,blockhash(Hi a,L,K)表示在私钥K的控制下从比特序列Hi a中选择L比特的方法。blockhash(Hi a,L,K)方法中,Hi a={ht a|ht a∈{0,1},t∈[0,HA–1]}表示hash(·)生成的二进制串,HA表示Hi a的长度,该方法具体如下:
tp = ( u j &times; i ) % HA h i , j = h tp a
其中,uj表示由密钥K生成的伪随机数列U={uj|j=0,1,…,L–1}的第j个元素。
(5)嵌入认证水印;
该步骤中,利用顶点***的方法,将步骤(4)中生成的认证水印嵌入到相应的normal块中。在一个normal中嵌入水印的具体步骤如下(假设块Bi为一个normal块,要嵌入的水印为Hi):
a.依据矢量地图块Bi的边界,计算Bi的中心
Figure BDA0000483579700000102
B c , i x = ( B i , max x + B i , min x ) / 2 B c , i y = ( B i , max y + B i , min y ) / 2
其中,
Figure BDA0000483579700000104
Figure BDA0000483579700000105
分别表示中心Bc,i的x坐标和y坐标。
b.生成一个以Bc,i为中心,r为半径的圆CBi(Bc,i,r)。本发明将在圆CBi(Bc,i,r)的圆周上***含水印顶点以隐藏认证水印。为确保含水印顶点不会超出块Bi的边界,半径r的取值应满足以下条件,
( B i , max x - B i , min x , B i , max y - B i , min y )
c.将认证水印Hi转换成待嵌入的水印序列Wi={Wi,j|j∈[0,NA–1]},
W i , j = { h i , k | k &Element; [ j &times; 52 , ( j + 1 ) &times; 52 - 1 ] } , 0 &le; j < N A - 1 W i , j = { h i , k | k &Element; [ j &times; 52 , L - 1 ] } , j = N A - 1
其中,Wi,j表示序列Wi中第j个元素,NA表示序列Wi中元素数目。本发明在双精度浮点数表示的角度的尾数部分中嵌入水印。如图3所示,IEEE-754中规定的双精度浮点数包括3部分:符号部分(第63比特),指数部分(52-62比特)和尾数部分(0-51比特)。由于一个双精度浮点数的尾数部分能够嵌入52比特的数据,因此,待嵌入的水印序列Wi的每个元素可包含52比特水印信息,即Wi的元素数目NA为=
Figure BDA0000483579700000115
所需的角度数目也为
Figure BDA0000483579700000116
d.在密钥Kd的参与下,生成一个双精度浮点数序列Ai={Ai,j|j∈[0,NA–1],(0≤Ai,j<180)},
P i , j b = rand ( K d ) % 180 P i , j a = 1.0 / ( rand ( K d ) + 1 ) A i , j = P i , j a + P i , j b
其中,Ai,j表示序列Ai的第j个元素,rand(Kd)表示在密钥Kd的参与下返回一个随机整数P(P=0,1,2,…)的函数。序列Ai即用来嵌入水印序列Wi的角度序列。
e.对于序列Wi的每个元素Wi,j(j∈[0,NA–1]),利用位替换的方法将其嵌入到序列Ai中的第j个角度Ai,j的尾数部分,将得到的含水印角度记为Ai,j';
f.依据含水印角度Ai,j',计算在圆CBi的圆周上的含水印顶点
Figure BDA0000483579700000113
的位置,
r j a = A i , j &prime; &times; ( &pi; / 180 ) v i , j x = B c , i x + r &times; cos ( r j a ) v i , j y = B c , i y + r &times; sin ( r j a )
将依据步骤e-f计算得到的含水印顶点集合记为Vi={vi,j|j∈[0,NA–1]};
g.将Vi中的含水印顶点***到矢量地图中,得到含水印矢量地图。如果该矢量地图由点图元构成,将含水印顶点视为点图元***在矢量地图中;如果该矢量地图由线图元或面图元构成,利用所有含水印顶点构建一个新的线图元或面图元并将其***在矢量地图中。
如图5所示,图4所示的中国铁路地图嵌入水印后增加了若干条线图元。
B、矢量地图水印认证算法
(6)水印认证及原始数据恢复;
将含水印矢量地图的图元划分为互不重叠的块;利用步骤(3)中序列F识别每个块的类型;利用不同的方法认证不同的块的完整性。
对于一个empty块,若该块中含有顶点,则视其遭到了篡改;否则,认为该块通过认证。
对于一个normal块,其认证过程的具体步骤如下(假设含水印块Bi'为一个normal块):
a.根据步骤(5)中的a-b计算块Bi'的中心
Figure BDA0000483579700000121
并生成一个以Bc,i'为中心,r'为半径的圆CBi'(Bc,i',r')。其中,
Figure BDA0000483579700000122
Figure BDA0000483579700000123
分别表示中心Bc,i'的x坐标和y坐标;
b.搜索CBi'圆周上所有的顶点。将CBi'圆周上所有顶点的集合记为
Figure BDA0000483579700000125
表CBi'圆周上第j个顶点,
Figure BDA0000483579700000126
Figure BDA0000483579700000127
分别表示顶点
Figure BDA0000483579700000128
的x坐标和y坐标,Nc表示
Figure BDA0000483579700000129
包含的顶点数目;
c.获得所有可能的含水印顶点集合。将所有可能的含水印顶点集合的序列记为 V i p = { V i , j p | j &Element; [ 0 , N p - 1 ] } , 其中, V i , j p = { v i , j , k p ( v i , j , k p , x , v i , j , k p , y ) | k &Element; [ 0 , N A - 1 ] } 表示一个可能的含水印顶点集合,该集合通过从
Figure BDA00004835797000001213
中选取NA个不同的顶点获得,
Figure BDA00004835797000001214
表示可能含水印顶点集合中第k个顶点,
Figure BDA00004835797000001216
Figure BDA00004835797000001217
分别表示顶点
Figure BDA00004835797000001218
的x坐标和y坐标,
Figure BDA00004835797000001219
表示可能含水印顶点集合的数目;
d.对于中每个可能含水印顶点集合进行以下3个步骤:
p1.利用步骤(4)中描述的水印生成方法生成Bi''的水印信息Hi'={hi,j'|hi,j'∈{0,1},j∈[0,L–1]}。其中,Bi''表示不包含中顶点的块Bi'。
p2.利用步骤(5)的c-f和Hi',生成一个含水印顶点集合
Figure BDA00004835797000001223
Figure BDA00004835797000001230
表示Vi,j'的第k个顶点,
Figure BDA00004835797000001224
Figure BDA00004835797000001225
分别表示顶点vi,j,k'的x坐标和y坐标。
p3.如果
Figure BDA00004835797000001226
块Bi'包含其相应的含水印顶点,块Bi'通过完整性认证,删除
Figure BDA00004835797000001227
中的顶点以恢复原始数据,块Bi'的认证过程到此结束;否则,重复步骤d直至
Figure BDA00004835797000001228
所有的集合都测试完毕。
e.如果
Figure BDA00004835797000001229
中没有一个含水印顶点集合是块Bi'的含水印顶点集合,则认为块Bi'遭到了篡改。
验证完每个矢量地图块的完整性后,显示所有被篡改的矢量地图块。图6所示为图5的含水印中国铁路地图发生篡改后的矢量地图,在区域A、B、C中发生了篡改。图7中,检测完每个矢量地图块的完整性后,发生篡改的矢量地图块的图元显示为粗线条且为深灰色。可以看出,本发明能够准确定位篡改。
本发明在双精度的浮点数表示的角度的尾数部分中利用位替换的方法嵌入水印,能够确保在认证阶段水印信息的正确提取,若矢量地图块没有发生篡改,能够准确计算其含水印顶点,进而正确判定该矢量地图块的完整性,误警率为零,漏警率为(1/2)L

Claims (1)

1.一种基于顶点***的矢量地图完整性认证方法,其特征在于:
(1)划分矢量地图区域;
将矢量地图图元划分为互不重叠的块,将矢量地图划分的块的行数和列数记为NR和NW,块的总数记为NB,NB=NR×NW,第i,i=1,2,…,NB个矢量地图块记为Bi,包含块Bi的区域范围的矩形的左上顶点和右下顶点分别记为
Figure FDA0000483579690000011
Figure FDA0000483579690000012
分别表示
Figure FDA0000483579690000013
的x坐标和y坐标,分别表示
Figure FDA0000483579690000016
的x坐标和y坐标;
(2)矢量地图块分类;
将所有的块划分为两类,normal块和empty块,将块Bi的顶点数目记为
Figure FDA0000483579690000017
如果
Figure FDA0000483579690000018
则块Bi为normal块;否则,块Bi为empty块;
(3)记录矢量地图块类型;
生成包含NB个元素的序列F,记录步骤(2)中每个块的类型,
F={fi|fi∈{0,1},i=1,...,NB}
其中,fi=0表示第i块为一个normal块,fi=1表示第i块为一个empty块;
(4)生成认证水印;
生成步骤(2)中每个normal块的认证水印,将块Bi的水印信息记为Hi
Hi={hi,j∈{0,1},j∈[0,L-1]}
其中,L表示Hi中比特的数目,hi,j(0≤j≤L–1)表示Hi中第j个比特;
(5)嵌入认证水印;
将步骤(4)中生成的认证水印嵌入到normal块中,在normal块中嵌入水印
(5.1)依据矢量地图块Bi的边界,计算Bi的中心
Figure FDA00004835796900000111
Figure FDA00004835796900000112
分别表示中心Bc,i的x坐标和y坐标;
(5.2)生成一个以Bc,i为中心,r为半径的圆CBi(Bc,i,r),将在圆CBi(Bc,i,r)的圆周上***含水印顶点以隐藏认证水印,半径r的取值为:
( B i , max x - B i , min x , B i , max y - B i , min y )
(5.3)将认证水印Hi转换成要嵌入的水印序列Wi={Wi,j|j∈[0,NA–1]},Wi,j表示序列Wi中第j个元素,NA表示序列Wi中元素数目;
(5.4)根据密钥Kd,生成双精度浮点数序列Ai={Ai,j|j∈[0,NA–1],(0≤Ai,j<180)},Ai,j表示序列Ai的第j个元素,序列Ai即用来嵌入水印序列Wi的角度序列;
(5.5)对于序列Wi的每个元素Wi,j(j∈[0,NA–1]),嵌入到序列Ai中的第j个角度Ai,j的尾数部分,将得到的含水印角度记为Ai,j';
(5.6)依据含水印角度Ai,j',计算在圆CBi的圆周上的含水印顶点
Figure FDA0000483579690000021
的位置,
r j a = A i , j &prime; &times; ( &pi; / 180 ) v i , j x = B c , j x + r &times; cos ( r j a ) v i , j y = B c , i y + r &times; sin ( r j a )
其中,
Figure FDA0000483579690000024
分别表示vi,j的x坐标和y坐标,将计算得到的含水印顶点集合记为Vi={vi,j|j∈[0,NA–1]};
(5.7)将Vi中的含水印顶点***到矢量地图中,得到含水印矢量地图;
(6)水印认证及原始数据恢复;
将含水印矢量地图的图元划分为互不重叠的块;根据步骤(3)中序列F识别每个块的类型;
对于empty块,块中含有顶点,则视其遭到了篡改;否则,认为该块通过认证,对于normal块:
(6.1)根据步骤(5)中计算块Bi'的中心
Figure FDA0000483579690000025
并生成以Bc,i'为中心,r'为半径的圆
Figure FDA0000483579690000026
Figure FDA0000483579690000027
分别表示中心Bc,i'的x坐标和y坐标;
(6.2)搜索CBi'圆周上所有的顶点,将CBi'圆周上所有顶点的集合记为 V i c = { v i , j c ( v i , j c , x , v i , j c , y ) | j &Element; [ 0 , N c - 1 ] ) } , v i , j c 表CBi'圆周上第j个顶点, v i , j c , x v i , j c , y 分别表示顶点 v i , j c 的x坐标和y坐标,Nc表示Vi c包含的顶点数目;
(6.3)获得所有可能的含水印顶点集合,将含水印顶点集合的序列记为 V i p = { V i , j p | j &Element; [ 0 , N p - 1 ] } , V i , j p = { v i , j , k p ( v i , j , k p , x , v i , j , k p , y ) | k &Element; [ 0 , N A - 1 ] } 表示一个可能的含水印顶点集合,通过从 V i c 中选取NA个不同的顶点获得,
Figure FDA00004835796900000216
表示可能含水印顶点集合
Figure FDA00004835796900000217
中第k个顶点,
Figure FDA00004835796900000218
Figure FDA00004835796900000219
分别表示顶点
Figure FDA00004835796900000220
的x坐标和y坐标,
Figure FDA00004835796900000221
表示可能含水印顶点集合的数目;
(6.4)对于
Figure FDA00004835796900000222
中每个可能含水印顶点集合
Figure FDA00004835796900000223
(6.4.1)利用步骤(4)中描述的水印生成方法生成Bi''的水印信息Hi'={hi,j'|hi,j'∈{0,1},j∈[0,L–1]},Bi''表示不包含
Figure FDA00004835796900000224
中顶点的块Bi';
(6.4.2)生成一个含水印顶点集合 V i , j &prime; = { v i , j , k &prime; ( v i , j , k x &prime; , v i , j , k y &prime; ) | k &Element; [ 0 , N A - 1 ] } , v i , j , k &prime; 表示Vi,j'的第k个顶点,
Figure FDA0000483579690000032
分别表示顶点vi,j,k'的x坐标和y坐标;
(6.4.3)如果块Bi'包含其相应的含水印顶点,块Bi '通过完整性认证,删除
Figure FDA0000483579690000034
中的顶点以恢复原始数据,块Bi'的认证过程到此结束;否则,重复步骤(6.4)直至
Figure FDA0000483579690000035
所有的集合都测试完毕;
(6.5)如果
Figure FDA0000483579690000036
中没有一个可能含水印顶点集合是块Bi'的含水印顶点集合,则认为块Bi'遭到了篡改。
CN201410120970.5A 2014-03-28 2014-03-28 一种基于顶点***的矢量地图完整性认证方法 Pending CN103903217A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410120970.5A CN103903217A (zh) 2014-03-28 2014-03-28 一种基于顶点***的矢量地图完整性认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410120970.5A CN103903217A (zh) 2014-03-28 2014-03-28 一种基于顶点***的矢量地图完整性认证方法

Publications (1)

Publication Number Publication Date
CN103903217A true CN103903217A (zh) 2014-07-02

Family

ID=50994525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410120970.5A Pending CN103903217A (zh) 2014-03-28 2014-03-28 一种基于顶点***的矢量地图完整性认证方法

Country Status (1)

Country Link
CN (1) CN103903217A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426710A (zh) * 2015-11-12 2016-03-23 南京师范大学 一种基于空域排序的矢量地理数据精确认证方法
CN105488434A (zh) * 2015-12-03 2016-04-13 江苏师范大学 一种基于标记的矢量地图完整性认证方法
CN107154011A (zh) * 2017-03-21 2017-09-12 江苏师范大学 定位篡改图元组的矢量地图完整性认证方法
CN113052939A (zh) * 2019-12-10 2021-06-29 辉达公司 对路径描边的补丁区段、顶端和连接统一编码
CN115630402A (zh) * 2022-12-22 2023-01-20 安徽华云安科技有限公司 基于浮点数的信息隐藏方法、装置、设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604440A (zh) * 2009-04-23 2009-12-16 哈尔滨工程大学 基于空间特征的矢量地图可逆水印处理方法
CN102800041A (zh) * 2012-06-11 2012-11-28 哈尔滨工程大学 一种数字矢量地图完整性保护方法
CN103325082A (zh) * 2013-06-14 2013-09-25 哈尔滨工程大学 一种基于lsd平面的矢量地图可逆信息隐藏方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604440A (zh) * 2009-04-23 2009-12-16 哈尔滨工程大学 基于空间特征的矢量地图可逆水印处理方法
CN102800041A (zh) * 2012-06-11 2012-11-28 哈尔滨工程大学 一种数字矢量地图完整性保护方法
CN103325082A (zh) * 2013-06-14 2013-09-25 哈尔滨工程大学 一种基于lsd平面的矢量地图可逆信息隐藏方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NANA WANG,ET AL.: "Reversible fragile watermarking for locating tampered blocks in 2D vector maps", 《MULTIMEDIA TOOLS AND APPLICATIONS》 *
NANA WANGA,ET AL.: "Reversible fragile watermarking for 2-D vector map authentication with localization", 《COMPUTER-AIDED DESIGN》 *
WANG NANA,ET AL.: "A high capacity reversible data hiding method for 2D vector maps based on virtual coordinates", 《COMPUTER-AIDED DESIGN》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426710A (zh) * 2015-11-12 2016-03-23 南京师范大学 一种基于空域排序的矢量地理数据精确认证方法
CN105426710B (zh) * 2015-11-12 2018-02-09 南京师范大学 一种基于空域排序的矢量地理数据精确认证方法
CN105488434A (zh) * 2015-12-03 2016-04-13 江苏师范大学 一种基于标记的矢量地图完整性认证方法
CN105488434B (zh) * 2015-12-03 2018-11-02 江苏师范大学 一种基于标记的矢量地图完整性认证方法
CN107154011A (zh) * 2017-03-21 2017-09-12 江苏师范大学 定位篡改图元组的矢量地图完整性认证方法
CN107154011B (zh) * 2017-03-21 2020-09-15 江苏师范大学 定位篡改图元组的矢量地图完整性认证方法
CN113052939A (zh) * 2019-12-10 2021-06-29 辉达公司 对路径描边的补丁区段、顶端和连接统一编码
CN113052939B (zh) * 2019-12-10 2024-03-08 辉达公司 对路径描边的补丁区段、顶端和连接统一编码
CN115630402A (zh) * 2022-12-22 2023-01-20 安徽华云安科技有限公司 基于浮点数的信息隐藏方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
Zhang et al. Reference sharing mechanism for watermark self-embedding
Dhole et al. Self embedding fragile watermarking for image tampering detection and image recovery using self recovery blocks
Wang et al. Reversible fragile watermarking for 2-D vector map authentication with localization
CN103310407B (zh) 基于qr码的矢量地理空间数据全盲水印方法
Peng et al. A reversible watermarking scheme for two-dimensional CAD engineering graphics based on improved difference expansion
Wang et al. Reversible fragile watermarking for locating tampered blocks in 2D vector maps
CN107742272A (zh) 一种基于图像篡改定位及恢复的半脆弱性水印方法
CN103903217A (zh) 一种基于顶点***的矢量地图完整性认证方法
CN103440617B (zh) 提高医学图像安全的图像处理方法
CN104063731A (zh) 一种采用数字水印技术的二维码防伪印刷及验证方法
CN102800041B (zh) 一种数字矢量地图完整性保护方法
Wu et al. A simple image tamper detection and recovery based on fragile watermark with one parity section and two restoration sections
CN105488434A (zh) 一种基于标记的矢量地图完整性认证方法
Ren et al. Selective authentication algorithm based on semi-fragile watermarking for vector geographical data
CN103123719B (zh) 一种图像认证和篡改定位的零水印方法
CN114567711A (zh) 一种基于块容量标签的大容量加密图像信息隐藏方法
Neyman et al. Reversible fragile watermarking based on difference expansion using manhattan distances for 2d vector map
CN102270336A (zh) 一种基于多块依赖结构的安全脆弱水印方法
CN103886536A (zh) 一种数字图像篡改定位的数字水印实现方法
Li et al. Study on copyright authentication of GIS vector data based on Zero-watermarking
CN102073978A (zh) 利用不规则区域分割的数字图像认证与恢复方法及***
Zheng et al. A fragile digital watermark used to verify the integrity of vector map
CN117150456B (zh) 矢量地理数据交换密码水印方法、装置及介质
CN103377320B (zh) 一种矢量地理数据选择性认证半脆弱水印方法
CN106599727B (zh) 一种矢量地图完整性认证方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140702

WD01 Invention patent application deemed withdrawn after publication