定位篡改图元组的矢量地图完整性认证方法与流程

文档序号:11234820阅读:445来源:国知局
定位篡改图元组的矢量地图完整性认证方法与流程

本发明涉及地理信息科学、信息隐藏领域,具体讲是一种定位篡改图元组的矢量地图完整性认证方法。



背景技术:

随着地理信息处理技术和通信技术的快速发展,矢量地图在导航、城市规划、交通运输、地籍管理等领域得到了广泛应用。获取高精度的矢量地图数据需耗费大量的人力物力,而借助于强大的地理信息处理工具和公共网络,人们可以方便快捷地复制、修改并发布这些矢量数据。如何认证矢量地图的完整性和真实性,保障矢量地图的安全应用是当前迫切需要解决的问题。

矢量地图脆弱水印方法是认证数据完整性的有效方法。通过将原始矢量地图划分为若干数据单元(如顶点分组、图元分组),为每个数据单元生成相应的认证水印(如数字签名、消息摘要)并嵌入在其中,篡改发生后,通过对比每个数据单元中提取的认证水印同再次生成的认证水印,矢量地图脆弱水印方法能够检测并定位发生篡改的数据单元。

当前,人们在矢量地图脆弱水印方面的研究已经取得了一些研究成果。邵承永等人于2005年首先给出了一种定位篡改顶点的可逆脆弱水印算法。该算法能检测矢量地图是否发生篡改,但定位增加/删除顶点攻击的能力还有待加强。zheng和you进一步提出了一种定位篡改顶点分块的可逆脆弱水印算法。但当篡改的顶点移出其原始分块后,可能会影响篡改检测阶段的顶点分块的划分,导致篡改定位能力的下降。基于图元标记的思想,wang和men设计了一种定位篡改图元分组的可逆脆弱水印算法。由于图元分组中的图元数目依赖于人工设定,未充分利用每个顶点的嵌入空间,该方法的篡改定位能力不强。wang和men提出一种定位篡改块的矢量地图可逆脆弱水印方案。该方案定位篡改图元块的同时,能够获取高质量的含水印矢量地图。但由于块内的图元数目不易控制,该方法不适合应用于更高篡改定位精度的场合。结合混沌映射技术,李莎莎等人提出了一种定位篡改图元分组的脆弱水印方法。基于量化的思想,研究学者提出了定位篡改顶点的脆弱水印算法。这两种方法能够准确定位修改或增加的顶点,但定位增加/删除图元攻击的能力不够强。yue等人提出了一种定位图元分组的脆弱水印方法。该方法能够准确定位增加或修改的图元,但还不能准确定位删除的图元。

综上所述,虽然人们目前提出了一些矢量地图脆弱水印方法,试图解决在认证数据完整性的同时,定位篡改的问题,但这些方法在准确定位篡改图元方面还存在不足。



技术实现要素:

提出一种定位篡改图元组的矢量地图完整性认证方法,一方面该方法利用模拟退火方法,将矢量地图图元自适应地划分为不同的组,考虑矢量地图的精度误差容限的前提下,采用可逆信息隐藏方法实现认证水印和图元组别信息的嵌入,确保准确定位篡改图元的同时,具有较好不可见性,而且无需额外存储空间;另一方面该算法在水印认证阶段,不仅能够准确定位篡改图元组,还能够在认证完整性后,无损恢复矢量地图原始数据,保证矢量地图数据的可靠应用。实验结果表明该方案是一种用于矢量地图完整性认证、定位篡改的实用算法。

矢量地图图元(点图元、线图元和面图元)是由大量密集的顶点按照特定的顺序排列而成的,地图数据就是这些顶点的2维坐标序列。矢量地图脆弱水印技术是一种解决矢量地图完整性认证、定位篡改问题的重要手段。人们当前提出的矢量地图脆弱水印策略能够达到认证数据完整性和真实性的目标,但这些策略在准确定位篡改图元方面还存在不足。针对上述问题,本发明提出定位篡改图元组的矢量地图完整性认证方法,包括如下步骤:

(1)图元顶点分类;

该步骤中,将矢量地图图元的顶点划分为两类:标记顶点和非标记顶点。标记顶点用于嵌入其所在图元所属图元组的组别信息(即标记),非标记顶点可嵌入认证水印。将每个线图元的第一个顶点和最后一个顶点视为其标记顶点,其他顶点视为非标记顶点。

(2)基于模拟退火方法的图元组自适应划分;

该步骤中,依据每个图元的非标记顶点数目,利用模拟退火方法,将矢量地图的图元划分为若干组。假设得到的最优图元组划分方法为sbest,sbest划分的图元组数目为g(sbest),sbest的第i(j=1,2,…,g(sbest))个图元组为中图元的数目为中第个图元为

(3)生成认证水印;

该步骤中,生成步骤(2)中每个图元组的认证水印。将图元组的认证水印记为hj

hj={hj,i∈{0,1},i=0,1,...,l-1}

其中,l表示hj中比特的数目,hj,i(i=0,1,…,l–1)表示hj的第i个比特。

将hj转换为待嵌入水印序列wj={wj,i|wj,i=0,1,…,2c–1,i=0,1,…,nr–1},

wj,i=hj,i×c×2c-1+hj,i×c+1×2c-2+…+hj,(i+1)×c-1×20

(4)嵌入认证水印;

该步骤中,利用基于量化的可逆信息隐藏方法,将步骤(3)中生成的待嵌入水印序列wj(j=1,2,…,g(sbest))嵌入到图元组的前个非标记顶点中。在图元组中嵌入其对应的认证水印hj后,得到含水印图元组的含水印线图元记为

(5)标记图元;

该步骤中,利用步骤(4)的信息嵌入方法,在含水印图元组(j=1,2,…,g(sbest))的每个线图元的标记顶点的坐标中嵌入组别信息(即该组的索引值j)。在每个图元中嵌入标记后,得到含标记矢量地图。

(6)水印认证及原始数据恢复;

该步骤中,依据图元标记及可逆信息隐藏方法,恢复矢量地图数据并定位篡改,具体步骤如下:

a.识别原始图元组;

从每个线图元的标记顶点中提取嵌入的标记,并将标记顶点恢复至嵌入标记前的状态,利用标记识别每个图元组的图元,得到含水印图元组

b.水印提取及原始数据恢复;

从每个含水印图元组(j=1,2,…,g(sbest))中提取认证水印并恢复矢量地图原始数据。将恢复数据后的含水印图元组记为中提取出的水印序列记为wj'={wj,i'|wj,i'=0,1,…,2c–1,i=0,1,…,nr–1}。利用以下公式,将wj'转化为二进制序列hj'={hj,i'|hj,i'∈{0,1},i=0,1,…,l–1}

c.生成认证水印;

利用步骤(3)的方法,生成每个恢复数据后的图元组的认证水印。假设为图元组(j=1,2,…,g(sbest))生成的认证水印为hj”={hj,i”|hj,i”∈{0,1},i=0,1,…,l–1}。

d.水印认证;

依据图元组(j=1,2,…,g(sbest))中提取出的水印hj'和生成的水印hj”,判定该图元组是否发生篡改。若hj'=hj”,则该组未发生篡改;否则,该组发生了篡改。验证完每个图元组的完整性后,显示所有被篡改的图元。

本发明提出一种定位篡改图元组的矢量地图完整性认证方法,一方面该方法利用模拟退火方法,将矢量地图图元自适应地划分为不同的组,考虑矢量地图的精度误差容限的前提下,采用可逆信息隐藏方法实现认证水印和图元组别信息的嵌入,确保准确定位篡改图元的同时,具有较好不可见性,而且无需额外存储空间;另一方面该算法在水印认证阶段,不仅能够准确定位篡改图元组,还能够在认证完整性后,无损恢复矢量地图原始数据,保证矢量地图数据的可靠应用。与其他矢量地图完整性认证方法相比,本发明具有以下优点:

1、本发明利用模拟退火方法,自适应地划分图元组,并为每个图元标记其组别信息,能够更准确的定位篡改图元组;

2、本发明依据矢量地图的精度误差容限,设置嵌入参数,能有效控制水印嵌入给矢量地图数据带来的扰动,能够保证含水印矢量地图质量;

3、本发明利用可逆信息隐藏方法在每个图元组中嵌入认证水印和图元组别信息,不仅无需额外存储空间,而且还能够在认证完整性后,无损恢复矢量地图原始数据,确保矢量地图数据的可靠应用。

附图说明

图1定位篡改图元组的矢量地图完整性认证方法流程图;

图2嵌入认证水印前的矢量地图(岩石边界地图);

图3嵌入认证水印后的矢量地图(岩石边界地图);

图4发生篡改的含水印矢量地图(岩石边界地图);

图5定位篡改的矢量地图(岩石边界地图)。

具体实施方式

下面结合附图和实例对本发明技术方案做进一步的描述:

如图1所示,本发明定位篡改图元组的矢量地图完整性认证方法流程图,该方法总体分为两个方面:a、矢量地图水印嵌入算法;b、矢量地图水印认证算法。

a、矢量地图水印嵌入算法,步骤如下:

(1)图元顶点分类;

将矢量地图图元的顶点划分为两类:标记顶点和非标记顶点。标记顶点用于嵌入其所在图元所属图元组的组别信息(即标记),非标记顶点可嵌入认证水印。将每个线图元的第一个顶点和最后一个顶点视为其标记顶点,其他顶点视为非标记顶点。

(2)基于模拟退火方法的图元组自适应划分;

依据每个图元的非标记顶点数目,利用模拟退火方法,将矢量地图的图元划分为若干组。利用如下步骤,定义利用模拟退火方法自适应划分图元组所需的解、评价函数和新解生成函数:

a.解的定义:将矢量地图m的所有线图元的一种排列视为一个解。假设矢量地图m包含n个线图元,将sr={p1,p2,…,pn}视为一个解,pi(i=1,2,…,n)表示解sr中第i(j=1,2,…,n)个线图元。

b.评价函数:定义如下函数,计算解sr的评价函数值cost(sr)

cost(sr)=n-g(sr),

其中,g(sr)表示解sr能够划分的图元组数目。计算g(sr)的具体方法如下:

p1.设定每个图元组需满足的条件。假设每个图元组需嵌入的认证水印的比特数目为l(l≥1),每个非标记顶点坐标可隐藏的信息比特数目为c,则每个图元组至少包含个非标记顶点,才能完全嵌入l比特的认证水印。假设一个图元组中非标记顶点的数目为nc(nc≥0),则该图元组需满足如下条件

nc≥nr

p2.选取解sr的第一个图元组。将线图元pi的非标记顶点数目记为解sr的第j(j>0)个图元组记为gj,将解sr的前个线图元划分至第一个图元组g1中,其中为满足如下关系的最小正整数

p3.将余下的解sr的线图元划分为各个图元组。对于每个图元组gj(j>1),将余下的解sr的前个线图元划分给该组,为满足如下关系的最小正整数

δ表示图元组gj之前的组(即g1,g2…,gj-1)包含的线图元的数目,即

由于顺次将解sr的线图元划分为各个图元组,可能存在最后的图元组无法完全嵌入认证水印的情况,此时,将最后一组和倒数第二组合并为一组。将解sr的线图元划分为各个组后,得到图元组数目g(sr)。

c.新解生成函数:假设sr为当前解,通过随机交换sr的两个线图元位置的方式,生成当前解的新解。将新解生成函数记为neighbor(·)。

利用模拟退火方法的双层循环,自适应划分图元组的具体过程如下:

a.假设初始解为so,当前解为scur,最优解为sbest,初始温度为to,当前温度为tcur,内层循环最大次数为innermax,外层循环最大次数为outermax,当前内层循环次数为innercur,当前外层循环次数为outercur,矢量地图m的n个线图元依据记录号的排列为scur=so,sbest=so,tcur=to,innercur=0,outercur=0。

b.利用新解生成函数neighbor(·),由当前解scur生成新解snew。

c.依据增量δc,判定是否接受新解snew

δc=cost(snew)-cost(scur)

kb为boltzmann常数,random为在区间(0,1)内均匀分布的随机小数,如果δc<0或者exp(-δc/(kbtcur))>random,则接受新解snew为当前解,即另scur=snew;如果接受snew为当前解并且cost(snew)<cost(sbest),则将snew视为最优解sbest,即另sbest=snew。

d.另innercur=innercur+1。如果innercur<innermax,则转入本过程的步骤b。

e.另outercur=outercur+1,利用如下方法,依据降温速率α,降低当前温度tcur

tcur=tcur×α,α=1/(outercur+1)

如果outercur<outermax,则另innercur=0,转入本过程的步骤b;否则,结束该过程,将sbest视为最优解,将由sbest划分的图元组视为待嵌入水印的图元组。

将sbest划分的图元组数目记为g(sbest),sbest的第i(j=1,2,…,g(sbest))个图元组记为中图元的数目记为中第个图元记为

(3)生成认证水印;

利用散列算法,生成步骤(2)中每个图元组的认证水印。将图元组(j=1,2,…,g(sbest))的认证水印记为hj

hj={hj,i∈{0,1},i=0,1,...,l-1}

其中,l表示hj中比特的数目,hj,i(i=0,1,…,l–1)表示hj的第i个比特。

生成认证水印hj的方法如下:

其中,i(·)表示获取空间数据和属性数据的方法,k表示生成hash(·)输入参数的私钥,vj图元组顶点的数目,min表示该矢量地图的索引值,hash(·)表示一个已有的加密哈希算法,grouphash(hja,l,k)表示在私钥k的控制下从比特序列hja中选择l比特的方法。

方法i(·)获取图元组的空间数据时,按照如下方法扫描该组的图元顶点:对于一个线图元,从具有较大y坐标的标记顶点所在端扫描至另一端,在图元组内部,则从具有较大y坐标的标记顶点的线图元扫描至具有较小y坐标的标记顶点的线图元。

将hj转换为待嵌入水印序列wj={wj,i|wj,i=0,1,…,2c–1,i=0,1,…,nr–1},

wj,i=hj,i×c×2c-1+hj,i×c+1×2c-2+…+hj,(i+1)×c-1×20

(4)嵌入认证水印;

利用基于量化的可逆信息隐藏方法,将步骤(3)中生成的待嵌入水印序列wj(j=1,2,…,g(sbest))嵌入到图元组的前nr个非标记顶点中。假设在非标记顶点vn(xn,yn)的x坐标xn中嵌入的水印为wj,i,利用如下方法嵌入wj,i

其中,

linterval为满足如下关系的实数

τ为矢量地图m的精度误差容限。

在图元组中嵌入其对应的认证水印hj后,得到含水印图元组的含水印线图元记为

(5)标记图元;

利用步骤(4)的信息嵌入方法,在含水印图元组(j=1,2,…,g(sbest))的每个线图元的标记顶点的坐标中嵌入组别信息(即该组的索引值j)。

在每个图元中嵌入标记后,得到含标记矢量地图。如图2-3所示,为认证水印嵌入前后矢量地图对比情况,其中图2为原始岩石边界地图,图3为嵌入认证水印后的情况。

b、矢量地图水印认证算法

(6)水印认证及原始数据恢复;

依据图元标记及可逆信息隐藏方法,恢复矢量地图数据并定位篡改,具体步骤如下:

a.识别原始图元组;

从每个线图元的标记顶点中提取嵌入的标记,并将标记顶点恢复至嵌入标记前的状态,利用标记识别每个图元组的图元,得到含水印图元组(j=1,2,…,g(sbest))。假设在标记顶点vm'(xm',ym')的x坐标xm'中嵌入的标记为j(j=1,2,…,g(sbest)),从xm'中提取j的具体步骤如下:

p1.利用下式提取标记j

其中

p2.利用下式,恢复xm'的原始数据

b.水印提取及原始数据恢复;

利用本步骤的a的公式,从每个含水印图元组(j=1,2,…,g(sbest))中提取认证水印并恢复矢量地图原始数据。将恢复数据后的含水印图元组记为中提取出的水印序列记为wj'={wj,i'|wj,i'=0,1,…,2c–1,i=0,1,…,nr–1}。利用以下公式,将wj'转化为二进制序列hj'={hj,i'|hj,i'∈{0,1},i=0,1,…,l–1},

c.生成认证水印;

利用步骤(3)的方法,生成每个恢复数据后的图元组的认证水印。假设为图元组(j=1,2,…,g(sbest))生成的认证水印为hj”={hj,i”|hj,i”∈{0,1},i=0,1,…,l–1}。

d.水印认证;

依据图元组(j=1,2,…,g(sbest))中提取出的水印hj'和生成的水印hj”,判定该图元组是否发生篡改。若hj'=hj”,则该组未发生篡改;否则,该组发生了篡改。

验证完每个图元组的完整性后,显示所有被篡改的图元。图4所示为图3的含水印岩石边界地图发生篡改后的矢量地图,在区域a、b、c中发生了篡改。图5中,检测完每个图元组的完整性后,发生篡改的图元组的图元显示为深灰色。可以看出,本发明能够准确定位篡改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1