APP下载

一种适用于移动端瓦片地图的加密方法

2017-03-07方晓乐吴永静陈鑫祥刘雪俊

测绘通报 2017年2期
关键词:瓦片离线解密

方晓乐,吴永静,陈鑫祥,刘雪俊

(广东省国土资源技术中心,广东 广州 510075)

一种适用于移动端瓦片地图的加密方法

方晓乐,吴永静,陈鑫祥,刘雪俊

(广东省国土资源技术中心,广东 广州 510075)

在移动端地图大行其道的今天,如何保证地图服务不被盗用和防止信息泄漏是一个亟待解决的难题。针对这种情况,本文提出了一种适用于移动端瓦片地图的加密方法,通过对地图瓦片入库顺序的置乱,以及对瓦片的图层行列值信息的加密,使得移动端地图瓦片在被非法使用时地图信息无法还原,提高了移动端上地理信息应用的安全性。

地图;移动端;置乱;加密;瓦片

互联网时代,地理信息是国家重要的战略资源,无论是在政府管理决策、国民经济建设,还是在人民生活等方面,它都起着举足轻重的作用[1-3]。同时,移动终端随着智能化发展,也在人们的生活工作中扮演着越来越重要的角色,这促进了移动端地图应用的发展。如今,在日常生活和工作中许多与地理位置信息相关的服务,移动地图应用都提供相应的功能,移动终端的地图应用已经融入到了人们的生活甚至工作中[4-5]。然而,电子地图信息由于其存放与提供的形式,特别是移动端离线瓦片地图的存放格式,导致了其具有无限次的复制性,同时复制处理手段非常简单和低廉,因此极容易出现非法的复制、篡改、传播,造成了地图的泄密与管理失控[6-8]。

如何对移动端地理信息进行保护,在方便用户的同时,保证地图信息不被他人窃取,是一个亟待解决的问题。数字水印技术是解决电子地图版权问题的有效途径之一[9],然而在电子地图中加入数字水印只是一种被动防御策略,只能在信息被窃之后进行跟踪和确认,无法主动通过加密使得被窃信息不可使用。

针对这种情况,以广东省天地图数据为例,本文提出一种适用于移动端瓦片地图的加密和解密算法,使得移动端格式的电子地图在被非法复制使用的情况下不可读,而在合法使用的情况下却能正常读取,以实现在离线数据库格式下对影像电子地图加密保护,为电子地图版权与私隐保护提供一种有效的主动防御解决方案。

1 移动端地图瓦片

1.1 地图瓦片的格式

以广东省天地图为例,地图会被切割成每英寸打印点数(dots per inch,DPI)为96、分辨率为256×256像素级别的瓦片,并保存为JPEG或PNG格式。

1.2 地图瓦片在移动端的存放形式

地图瓦片显示通常采用切割的方式,以比例尺为单位图层,将整幅影像地图以像素为单位切割成若干个大小相同的格网。当将多个比例尺的影像地图瓦片放在一起时,整个地图就划分成了如图1所示的金字塔形、大小均匀的瓦片矩阵集合。广东省天地图也是采用这种金字塔存放形式对地图瓦片进行组织,然后以图层命名第1层文件夹名字(如L1文件夹存放第1层的瓦片),以对应图层下瓦片的行次序号命名第2层文件夹名字(如L1/R1存放第1层下第1行的瓦片),以对应层下瓦片的列次序号命名瓦片名称(如L1/R1/C1.png则表示该瓦片显示的内容位于第1层第1行第1列)。

图1 地图瓦片金字塔存放形式

在移动端,人们通常使用离线地图包,然而零碎的瓦片组织会导致大量的存储空间被浪费。因此,许多移动地图应用[4,10-11]都采用SQLite数据库[12]将地图瓦片以二进制大文件(binary large object,BLOB)的形式进行统一存放,形成独立的数据库文件,这样可以减少碎片化,降低移动端的存储空间消耗。广东省天地图在移动端实施中,采用表1的方式,将地图瓦片组织成一个或多个SQLite文件。

表1 广东“天地图”瓦片在移动端中SQLite的表结构

1.3 离线地图在移动端的读取

在移动端应用中读取地图,首先假设要获取的相关瓦片显示的经纬度为(X,Y),图层为第N层,在广东天地图中,采用规定的经纬度转行列号公式[8],获取到瓦片的行列号(Row,Col),再根据层行列(N,Row,Col)对(离线地图包或服务器中)SQLite格式存放的瓦片进行查询(见表1),读取瓦片的BLOB格式,最后通过解析图片完成瓦片的读取。

鉴于移动端的瓦片读取方式,特别是在使用离线地图包的情况下地图瓦片信息极容易被获取,因此,需要对地图瓦片进行加密,以避免信息泄露。

2 加密方法

本文对移动端地图瓦片采用的加密方式主要是置乱和位异或运算加密。加密方法如图2所示,具体有以下几个步骤:

图2 移动端地图加密方法

(1) 随机置乱瓦片的入库次序,并赋予次序值在ID上。

(2) 用瓦片的层值(LV)、行值(Row)及列值(Col)进行运算组合,组合方式不是唯一的,可以自行选择,甚至采用复杂度高的运算方式,文中采用计算式(LV2×Row)^Col进行,将得到的运算值作为伪随机数发生器的输入,生成随机数,并对LV、Row、Col分别作位异或运算加密,生成LV′、Row′和Col′。

(3) 在数据库建立表,将瓦片入库。

通过以上3步,完成对移动端地图瓦片包的加密。非法使用该瓦片服务或离线包时,由于顺序的置乱,瓦片在SQLite中的次序已被打乱;同时由于LV、Row和Col加密后值的随机性,无法根据需要获得准确的瓦片,读取的位置往往为空或是无序的瓦片的堆叠。如在广东天地图的组织顺序中,LV=7、Row=22、Col=102的地图瓦片原本是第1位入库的,置乱后可能是第13 537位入库,同时对LV、Row和Col加密得出LV′=95 692,Row′=29 426,Col′=340 238,因此无法得知其准确位置实现读取。

3 解密方法

对于采用了上述加密方法的地图瓦片服务或离线包,移动端地图应用需要通过解密方法才可以获取到准确的地图信息,正常浏览瓦片,解密方法如图3所示,具体可以分为以下两个步骤:

图3 移动端地图解密方法

(1) 利用需要读取的(LV,Row,Col),通过与加密方式一致的计算公式进行组合,并采用同样的伪随机数发生器,通过位异或运算,获取(LV′,Row′,Col′)。

(2) 利用(LV′,Row′,Col′)对SQLite数据库进行查询,获取实际(LV,Row,Col)位置的瓦片内容。

4 应 用

采用广东省天地图矢量瓦片数据,对所描述的加密解密方法进行应用示范,使用SQLite数据库文件离线包的格式,开发环境采用Eclipse Java,移动端采用Android 5.1系统。

4.1 瓦片离线包的加密

4.1.1 顺序置乱

使用Java Develop Kit 1.8中util库中的Random函数生成随机数,利用洗牌算法(程序原理如图4所示),随机抽取瓦片进行层行列的加密。

图4 洗牌法抽取瓦片入库次序

4.1.2 层行列加密

提取瓦片后,要对瓦片的信息进行加密,首先对LV、Row和Col进行组合,其中⊕表示位异或运算,即

S0=(LV2×Row)⊕Col

(1)

然后以S0作为伪随机数发生器的输入,其中伪随机数发生器采用文献[13]中的混沌算法,以XORshift[14]作为基础伪随机数发生器,公式如下

(2)

式中,a、b、c可以通过文献[14]中的介绍自行选择,应用中a=11、b=5、c=13。由于文献[13]中的随机序列满足混沌特性,对输入极其敏感,同时具有良好的统计特性,因此保证了瓦片加密的安全度。最后层行列的加密公式如下

(3)

获取(LV′,Row′,Col′)后,对瓦片进行入库操作,完成离线包的制作,加密后与加密前的离线包SQLite文件内容如图5所示(zoom_level表示LV,tile_column表示Col,tile_row表示Row,tile_data表示瓦片BLOB内容,左边为加密前数据,右边为加密后数据)。可见,瓦片内容被完全打乱,在未解密的情况下,地图不可读(如图6(a)所示)。

4.2 移动端瓦片包的解密读取

在获取了需要读取的瓦片层行列值(LV,Row,Col)之后,需要采取以下步骤:

(1) 采用式(1)将(LV,Row,Col)换算成S0。

(2) 采用式(2)与式(3),计算出(LV′,Row′,Col′)。

图5 库中数据加密前后对比

图6

(3) 利用(LV′,Row′,Col′)在地图离线包中查询出瓦片内容并在移动端显示(如图6(b)所示)。

5 结束语

针对移动端瓦片地图信息容易被泄漏且不容易保护的情况,本文提出了一种基于置乱与对层行列值位异或运算的加密方法,实现了对移动端调用地图瓦片时信息的保护,为移动端上地理信息的安全使用问题提供了一种有效的解决方案。

[1] 苗前军. 地理信息公共服务平台建设的有效驱动[J]. 地理信息世界, 2010,8(1):6-11.

[2] 曾元武, 陈泽鹏, 吴永静,等.广东省地理信息公共平台的建设及其应用[J]. 测绘通报, 2014(6):66-70.

[3] 肖苏勇, 吴俐民, 刘文军. 基于云计算的地理信息公共服务平台应用与研究[J]. 测绘通报, 2012(9):78-80.

[4] 周强, 宋志峰, 刘易鑫,等. 一种适用于多移动终端的地图瓦片格式的研究与应用[J]. 测绘与空间地理信息, 2013(S1):70-76.

[5] 吴永静, 吴锦超, 方晓乐,等. 移动终端地理信息系统在广东省政务管理中的应用[J]. 北京测绘, 2014(3):124-127.

[6] 王小虎, 邵楷, 吴爱华.一种地图水印的嵌入方法[J].长春大学学报, 2010,20(2):45-47.

[7] 张驰, 李安波, 闾国年,等. 以夹角调制的矢量地图可逆水印算法[J]. 地球信息科学学报, 2013,15(2):180-186.

[8] 陈鑫祥, 吴锦超. 利用ArcGIS Engine实现天地图瓦片数据的切割[J]. 北京测绘, 2013(4):17-20.

[9] 方晓乐, 吴永静, 李志中,等. 一种基于DCT变换的数字水印算法在“天地图广东”中的应用[J]. 地理信息世界, 2014,12(3):100-104.

[10] 吴东. OpenStreetMap大受青睐:开源地图迎来春天?[J]. 中国测绘,2012(3):48-51.

[11] 王晓东,刘慧平,乔瑜. 利用Bing Maps地图切片实现网络地图服务[J]. 国土资源遥感,2010(2):122-127.

[12] 底玲晓, 闫会杰, 施建辉,等. 基于Android和SQLite的移动地图应用系统设计与实现[J]. 测绘技术装备, 2015,17(4):75-76.

[13] WANG Q X,YU S M,FANG X L,et al. Study on a New Chaotic Bitwise Dynamical System and Its FPGA Implementation[J]. Chinese Physics B, 2015(6):188-195.

[14] MARSAGLIA G. Xorshift RNGs[J]. Journal of Statistical Software, 2003, 8(14):1-6.

A Novel Map Encryption Solution for Mobile Map Application on Tiles

FANG Xiaole,WU Yongjing,CHEN Xinxiang,LIU Xuejun

(Land and Resources Technology Center of Guangdong Province, Guangzhou 510075, China)

Nowadays, mobile map applications have been applied everywhere. Protecting the copy rights and some private information of the maps is a hot topic. An encryption method for map tiles in mobile application is given in this paper, the sequence of the tiles would be scrambled by the random numbers, which are created by the tile’s row, column and level values. This approach is able to keep the map unreadable in the illegal application, which can enhance the protection.

map; mobile; scrambling; encryption; tiles

方晓乐,吴永静,陈鑫祥,等.一种适用于移动端瓦片地图的加密方法[J].测绘通报,2017(2):116-119.

10.13474/j.cnki.11-2246.2017.0063.

2016-05-27

广东省国土资源厅科研专项(GDGTKJ2016003)

方晓乐(1984—),男,博士,高级工程师,主要从事GIS研发工作。E-mail:10048392@qq.com

P208

A

0494-0911(2017)02-0116-04

猜你喜欢

瓦片离线解密
打水漂
异步电机离线参数辨识方法
炫词解密
解密“一包三改”
浅谈ATC离线基础数据的准备
一种基于主题时空价值的服务器端瓦片缓存算法
炫词解密
FTGS轨道电路离线测试平台开发
惯性
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素