SHP文件鲁棒数字盲水印技术研究与应用

2019-06-05 03:54周建伟通讯作者金永涛刘海燕张秦雪
网络安全技术与应用 2019年5期
关键词:数字水印空间数据矢量

◆丁 晖 周建伟通讯作者,2 金永涛,2 刘海燕 张秦雪



SHP文件鲁棒数字盲水印技术研究与应用

◆丁 晖1周建伟通讯作者1,2金永涛1,2刘海燕1张秦雪1

(1.北华航天工业学院 河北 065000;2.河北省航天遥感信息处理与应用协同创新中心 河北 065000)

地理空间数据是搭建地理信息系统平台,进行应用开发的核心,矢量数据又是地理空间数据关键一部分,SHP文件作为传输地理矢量信息的一种基本文件格式,其安全性的提升对整个地理信息系统有着重要意义。地理信息系统通过数字水印技术对数字信息数据提供有效防护,是新兴的结合方式。本文主要研究分析了矢量数据的特征,针对SHP矢量数据文件结构,提出了一种基于归一化的矢量数据盲水印算法。通过函数变换对所有矢量坐标进行归一化处理,再将水印信号嵌入到归一化值中,保证数据的统一性,提升模型的精度。实验结果表明,该方法对缩放、増删点、属性排序、数据格式转换等攻击具有较好的鲁棒性。

矢量数据;归一化;盲水印;鲁棒性

0 引言

目前为提升系统安全性,将数字水印技术与地理空间数据结合,在数据文件在流转和应用过程中进行追溯和监控,可以有效抵制非法复制、传播、利用他人成果的行为。矢量数据文件在GIS系统中被广泛应用研究,引起国内学者对其安全传输的重视,获得了越来越多的研究成果。本文通过函数变换对所有矢量坐标进行归一化处理,再将水印信号嵌入到归一化值中,保证数据的统一性,提升模型的精度。

1 地理空间数据

地理空间数据是将现实生活中真实可见的各种地理特征和现象以符号形式表示,用于分析自然、环境、社会、经济等领域中的诸多要素信息,包含要素的数量、质量、属性特征,用文字、数字、图像等方式展示空间实体目标的位置、形状、大小等信息的数据。地理空间数据是实现数字化系统的基础信息,而且地理空间系统的绝大部分功能将以地理空间数据为原点进行实现。现在空间数据已步入人们的日常生活,在交通应用、城市建设和环境保护中发挥重要作用。

1.1 地理空间数据特征

地理空间数据具有定位、定性、时间和空间关系等特性。定位是指在已知的坐标系里空间目标都具有唯一的空间位置;定性是指有关空间目标的自然属性,它伴随着目标的地理位置;时间是指空间目标是随时间的变化而变化;空间关系通常一般用拓扑关系表示。空间数据具有三个基本特征:空间特征、属性特征、时间特征。

空间特征主要表现为地理要素的位置信息,包括经纬度绝对位置和要素之间的相对位置。

属性特征通常称非空间数据,因为单独依靠位置信息无法对要素区分,需要对特定的要素添加属性,用来描述实体的性质和意义。存放时也是与空间位置数据分别保存的。比如一个点可以表示一段道路的起点,也可以表示终点。

时间特征指的是被记录的地理空间数据是随时间不断变化的,反映数据的动态性,数据只能记录被采集时的特征和属性,所以需要不断更新。而且时效性对数据分析有很大影响,这一特征也逐渐被重视。

1.2 地理空间矢量数据

矢量数据是通过用几何形状中的点、线、多边形来表示地理空间中的实物。例如:用坐标点来标注准确的地理位置,将连续的坐标点连接成线用于表示边界,多条线段头尾连接形成闭环表示区域等。在矢量文件,例如SHP文件中的每个元素都称作对象,每个对象成为独立的个体,拥有独特的属性特征,用不同的符号表示对象的颜色、形状、类型、大小等。也因为数据元素是独立的个体,在对整个图例进行放大缩小旋转操作时,不会出现失真的情况,不受分辨率的影响。也可以对对象的属性进行修改,而不会对其他对象产生影响,这一特性也为设计数字水印算法提供了可行性。

2 SHP文件

SHP文件是地理空间矢量数据的一种特殊的数据结构,可以用于表示点、线、多边形图形数据。每个SHP文件都是一个长度可变的文件,由长度固定100字节的主文件头和长度可变的空间数据记录两部分组成。每一条空间数据记录又由一个固定长度8字节的记录头和长度可变的记录内容构成。文件结构如图1所示。

图1 SHP文件结构

2.1 SHP主文件头数据结构

主文件头长度为一百个字节,包含了十七个信息,每个信息的长度不等,表示方式也不同。数据结构如表1所示。

表1 SHP文件主文件头数据结构

字节号32-35指定改文件的文件类型(Shape Type),例如:值为1指双坐标点文件,值为5指多边形文件等等。

2.2 SHP文件坐标点的读取

通过对SHP文件数据结构的分析,变长的数据用链表数据结构进行存储。每个字段都有特定含义,在读取数据内容的时候可以利用指针指定位置,读取某一属性值。记录头的内容包括该记录的序号和具体的坐标记录。记录号和坐标两个记录项都是int型,并且文件中的记录号都是从1开始的。

记录内容包括元素的几何类型和具体的坐标,记录内容随元素类型的变化而变化。点文件的记录内容如表2所示。

表2点文件记录内容

利用Geotools工具类对点文件进行内容读取。首先对SHP文件的图层对象进行读取,获取到对象列表,为对象设计数据模型包含属性定义方便调用。关键代码如下:

List gisObjectList = new ArrayList<>();

ShapefileDataStoredataStore=buildDataStore(shpFilePath);

FeatureSourcefs=dataStore.getFeatureSource(typeName);

FeatureCollectionresult=featureSource.getFeatures();

Collection property = ((ComplexAttribute) sf).getProperties();

Property pro = iterP.next();

PointX = ((Point)(pro.getValue())).getX());

PointY = ((Point)(pro.getValue())).getY());

3 数字水印技术

数字水印技术起源于传统印刷中的水印技术,也就是在造纸业中用于证明纸张合法性的技术,多用于纸币、邮票等。在700多年前,纸水印就在意大利的Fabriano小镇上的一家造纸厂出现了,通过机械压缩将图案压制到纸浆中。而最早出现的电子水印技术是在1954年的美国,当时为了保护音乐版权,将专利标识用隐式手法嵌入到音乐中。

3.1 数字水印的基本框架

数字水印技术主要解决水印嵌入和水印检测两个问题。进行水印嵌入工作至少需要水印载体和水印信号。一般情况,水印信号需要经过加密转换再进行嵌入。水印嵌入操作结束后的输出结果就是含有水印信号的产品,用于安全传输或发布。根据检测方法的差异,将水印技术又区分为盲水印技术和非盲水印技术。盲数字水印检测提取的过程中是不需要原载产品参与的。数字水印的框架如图2所示。

图2 数字水印的框架

3.2 数字水印生成

要嵌入原始载体文件中的水印信号一般是有意义的文字或数字。一般情况需要对水印信号进行加密处理,通过格式转换将文字符号转换成图像格式,例如bmp图像,再对图像信号进行二值化、灰度化处理,最后采用混沌置乱变换生成加密水印信号。处理结果如图3、4所示。

图3 bmp格式水印信号

图4 Arnold置乱变换后水印信号

3.3 数字水印嵌入

水印嵌入是数字水印技术的关键步骤,通过算法将水印信号嵌入到原始载体文件中。对于原始文件的格式不同,需要采用不同的算法,针对SHP特殊的数据结构,设计合适的算法是研究的难点。水印嵌入流程图如图5所示。

图5 水印嵌入过程

水印嵌入算法可以描述为:

有时为增强算法的安全性,在嵌入水印过程中会使用密钥加密。

针对SHP这种特殊的数据结构,需要考虑水印嵌入的位置和水印与原始数据的结合方式。根据水印嵌入位置不同,分为空间域水印算法和变换域水印算法。由于SHP文件中的属性数据都是用于描述文件属性,内容不能进行修改,于是选择采用空间域水印算法将水印嵌入到空间数据(坐标)中。本文采用了一种可以同时抵抗顶点攻击和几何攻击的鲁棒性盲水印算法。

通过对矢量坐标数据进行归一化处理,对归一化后的值进行水印嵌入,结束后的数据值通过反归一化,再次得到的数据就是含水印信号的数据。工作难点在于归一化处理以及选取水印信号的嵌入位置,还需保证函数值前后变化差别不大,对原图影响在可控范围内。

对第一次得到的函数值进行水印信号的嵌入,选用QIM量化方法。水印信号在嵌入前要进行二值化转换,生成随机的0,1序列。嵌入后将函数值进行反归一化处理得到含水印的数据,写入原文件中。

通过线性变化的数据值,可以有效抵抗几何攻击。数据的平移和放大缩小等几何攻击都可以看作是对数据值的算术运算,函数的选择有效地将数量变化消化为零。QIM量化嵌入方式,使水印数据随机分布到空间数据中,增强了算法的鲁棒性。

采用上述嵌入方法进行试验。作为水印嵌入的载体文件。矢量坐标数据都精确到了小数点后15位,通过将数据放大为整数更适合变换。图6为SHP格式的河北省区域图像:

图6 河北省区域SHP文件

表3是载体图像的一些属性信息。

表3 载体图像属性信

图7是水印信号嵌入到载体文件后的图像。

可以通过坐标嵌入水印前后的坐标误差计算分析试验结果,通过表4的结果可知此方法前后误差很小,满足精度要求。

表4 试验结

3.4 数字水印提取

数字水印的提取算法是嵌入算法的逆过程,在嵌入过程中选用的函数处理方式,目的是在水印提取过程中不再需要原始数据的参与,达到盲检测的效果,提高算法的可用性。数字水印提取过程如图8所示:

图8 数字水印提取过程

在水印实际提取过程中,通过嵌入的反向操作,将原始载体文件X与水印信号W分离,再对水印信号进行置乱算法的逆过程,得到正确的二值序列,最后进行符号转换就可以看到水印的实际意义。

4 结束语

本文所介绍的水印添加方法是针对矢量数据SHP格式文件,对坐标数据采用归一化处理后,通过QIM量化处理选定嵌入位置,并且在水印提取方面不需要原始载体文件的参与,实现盲水印目的。并且通过试验结果表明,这种水印方式可以有效抵抗几何攻击,具有较好的鲁棒性,实现方法简便快捷。

[1]孙建国,门朝光,俞兰芳,曹刘娟.矢量地图数字水印研究综述[J].计算机科学,2009,36(09):11-16.

[2]郭思远.矢量地理空间数据数字水印算法与攻击性研究[D].解放军信息工程大学,2008.

[3]黄良永,肖德贵.二值图像Arnold变换的最佳置乱度[J].计算机应用学报,2009,29(02):474-476.

[4]金聪,叶俊民,许凯华,张清国.具有抗几何攻击能力的盲数字图像水印算法[J].计算机学报,2007(03):474-482.

[5]杨成松,朱长青,陶大欣.基于坐标映射的矢量地理数据全盲水印算法[J].中国图像图形学报,2010,15(04):684-688.

[6]曹江华. GIS矢量数据多重水印研究[D].南京师范大学,2011.

[7]郭思远,朱长青,阚映红,杨成松.空域矢量地理数据水印算法及攻击方法分析[J].测绘科学,2009,34(03):37-38+205.

[8]钟尚平,高庆狮.矢量地图水印归一化相关检测的可行性分析与改进[J].中国图像图形学报,2006(03):401-409.

[9] 杨成松,朱长青.基于常函数的抗几何变换的矢量地理数据水印算法[J].测绘学报,2011,40(02):256-261.

[10]闵连权.一种鲁棒的矢量地图数据的数字水印[J].测绘学报,2008(02):262-267.

[11]Suk-Hwan Lee,Won-Joo Hwang,Ki-Ryong Kwon.Poly-line curvatures based robust vector data hashing[J].Multimed-ia Tools and Applications.2014(3).

[12]张海涛,祝晓坤,董明,肖洲.基础地理信息数据产品数字水印技术研究[J].测绘通报,2012(S1):494-497.

[13]王忠军,王玉海,王豪.一种鲁棒的矢量地图数字水印算法[J].测绘科学,2008(04):148-150.

[14]武进霞. 数字水印模型及其在地学空间信息数字产品版权保护中的应用[D].中国地质大学,2016.

[15]A Dynamic Graph Software Watermarking AlgorithmBased onChaotic Theory. Zhang Shao-bo,Zhu Bin. IndustrialControl and Electronics Engineering (ICICEE),2012Internation-alConference on. 2012.

本课题得到河北省技术创新引导计划项目(18240703D)、基于全盲鲁棒水印的遥感影像版权保护的研究与应用(2017011043)、基于遥感影像的SHP文件全盲鲁棒数字水印加密算法研究与应用(YKY-2018-12)资助。

猜你喜欢
数字水印空间数据矢量
一种适用于高轨空间的GNSS矢量跟踪方案设计
基于遗传优化的自然语言文本数字水印方法
矢量三角形法的应用
10项空间数据与信息传输领域国家标准正式发布
GIS空间数据与地图制图融合技术
推力矢量对舰载机安全起降的意义
数字水印技术及其在电力系统中的应用
一种基于三维小波变换的鲁棒视频水印方案
基于分块DWT和SVD的鲁棒性数字水印算法
三角形法则在动态平衡问题中的应用