基于人工神经网络的百度地图坐标解密方法
2014-07-08潘伟洲陈振洲李兴民
潘伟洲,陈振洲,李兴民
华南师范大学计算机学院,广州 510631
基于人工神经网络的百度地图坐标解密方法
潘伟洲,陈振洲,李兴民
华南师范大学计算机学院,广州 510631
提出了一种针对百度地图坐标加密算法的解密方法,利用百度开放的坐标转换接口获取多组GPS和百度地图坐标对,基于BP神经网络拟合出逆转换函数,利用训练后的BP网络来预测新的百度坐标所对应的GPS坐标。实验结果证明,该方法得到的GPS坐标与实际的GPS坐标较为接近,因而可以达到较为理想的解密结果。
人工神经网络;百度地图;全球定位系统(GPS);反向传播(BP);解密
1 引言
随着地理信息技术(Geographic Information System,GIS)[1]的广泛应用,人们可以以越来越便捷的方式获取地理位置信息,例如Google地图、百度地图等。国际采用WGS-84经纬度坐标标准[2],这是一种为GPS全球定位系统使用而建立的坐标系统。
为了保护个人隐私,国家测绘地理信息局规定必须至少使用GCJ-02标准[3],对地理位置进行加密。百度坐标在此基础上,进行了BD-09二次加密措施[4]。因此,百度地图上任取一点的坐标值与实际的GPS坐标点存在较大偏移。表1给出了10个GPS坐标点与其对应的百度地图坐标点的对比。
为了验证百度地图加密算法的安全性,本文使用BP神经网络对其进行已知明文攻击[5],拟合出逆转换函数,从而实现百度地图坐标到GPS点坐标的转换。实验结果证明,百度地图的加密算法并不足以抵挡已知明文攻击。
表1 GPS坐标与百度地图坐标对比
2 百度地图API
2.1 百度地图API简介
应用程序接口(Application programming Interface,API),又称为应用编程接口,是指软件或网站为第三方开发人员提供的一组接口[6]。利用这些接口,应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何,或理解其内部工作机制的细节。百度地图API是一套由JavaScript语言编写的应用程序接口,通过地图服务应用接口将平台和地理信息数据捆绑,将复杂的GIS底层逻辑进行封装,从而帮助第三方开发人员在网站中构建功能丰富、交互性强的地图应用。百度地图API包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。
2.2 坐标转换
百度对外接口的坐标系并不是GPS采集的真实经纬度,为了方便开发者,百度开放了一个不可逆的坐标转换接口,允许将GPS坐标转换为百度坐标。
以下代码首先读取id分别为“gpsX”和“gpsY”的两个文本框的值,然后作为GPS坐标点交给转换接口转换为百度坐标,坐标转换完成后交给一个名为translateCallback的回调函数来处理:
3 人工神经网络
人工神经网络(Artificial Neural network,ANN)是在对人脑神经网络的基本认识的基础上,以数学和物理方法以及信息处理的角度对人脑神经网络进行抽象,从而建立的某种简化模型[7]。人工神经网络并不是人脑神经网络的真实写照,而只是对它的简化、抽象与模拟。由于人工神经网络具有类似生物神经网络的结构特征和性能特点,因此人工神经网络具有较好的自学习、自组织和自适应能力[8]。
神经网络由大量的神经元(或称“节点”,或“单元”)相互联结而构成。一个最简单的神经元模型称为M-P模型,如图1所示。
对于某一个神经元,它可以同时接受许多个输入信号,每两个神经元间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight)。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达[9]。
图1 M-P模型示意图
BP网络是在多层感知器[10]的基础上使用误差反传(Error Back Propagation,EBP)算法而提出来的一种人工神经网络模型[11]。BP网络属于多层前馈有导师型网络,典型的三层BP网络拓扑结构如图2所示。
图2 三层BP网拓扑结构
由于BP网络具有良好的非线性映射能力、泛化能力和容错能力,因此它在曲线拟合[12]、语音识别[13]、股票预测[14]、工业控制[15]等领域具有广泛的应用。
4 解密方法
本文利用了BP神经网络的拟合能力,对百度地图的坐标数据进行了已知明文攻击,其步骤如下:
(1)获取训练数据。随机生成大量的GPS坐标,并利用百度开放的转换端口转换为百度坐标。
(2)建立及训练BP网络。建立BP网络,将这两类坐标点作为训练数据,训练BP网络,从而拟合逆转换函数。
(3)预测新的坐标点。将训练后的BP网络用于预测新的百度坐标对应的GPS坐标。
下面将介绍每一步的具体做法。
4.1 获取训练数据
理论上,GPS坐标点可以取的点落在经度(-180~180),纬度(-90~90)的范围内。但在实际测试中,可以转换成百度坐标的GPS坐标点必须落在中国版图周围的一个矩形区域内,如图3所示。
因此,可以编写一个JavaScript函数geRandPoint()用于生成随机GPS坐标:
图3 GPS坐标点取值范围
之后可以利用百度开放的坐标转换接口将随机产生的GPS坐标点转换为百度坐标点。
4.2 建立及训练BP网络
由于经度和纬度是彼此独立的值,因此可以分别建立BP网络进行拟合。拟合得到的模型将与百度的坐标转换函数相逆,即输入为百度坐标,输出为GPS坐标。
使用Matlab作为仿真环境,并使用1 000个坐标点对作为训练数据,分别对经度值和纬度值建立双隐层BP网络,每层隐层包含十个神经元。代码如下:
训练网络前,分别绘制1 000个百度坐标点与其对应的GPS坐标点经度和纬度的差值图如图4和图5所示。此时,经度的差值区间约为(0.007,0.015),纬度的差值区间约为(0.002,0.009)。
网络训练完成后,绘制拟合后的坐标数据与GPS坐标点的经度和纬度差值图分别如图6和图7所示。此时,经度的差值区间约为(0,0.004),纬度的差值区间约为(0,0.001 5)。
图4 训练前的百度坐标与GPS坐标的经度差值图
图5 训练前的百度坐标与GPS坐标的纬度差值图
图6 训练后的GPS坐标与原GPS坐标经度差值图
图7 训练后的GPS坐标与原GPS坐标纬度差值图
图8 仿真前百度坐标与GPS坐标的经度差值图
图9 仿真前百度坐标与GPS坐标的纬度差值图
图10 预测的GPS坐标与原GPS坐标的经度差值图
图11 预测的GPS坐标与原GPS坐标的纬度差值图
4.3 预测新的坐标点
由于BP网络具有良好的泛化能力,因此可以利用训练后的神经网络来预测新的百度坐标点对应的GPS坐标点。读入1 000个新的测试百度坐标点,分别绘制与这些坐标点对应的GPS坐标点经度和纬度的差值图如图8和图9所示。此时,经度的差值区间约为(0.006 5,0.015),纬度的差值区间约为(0.002,0.009)。
分别使用两个神经网络来预测经度和纬度的坐标值,绘制得到的GPS坐标点与原坐标点的经度和纬度差值图分别如图10和图11所示。此时,经度的差值区间约为(0,0.004),纬度的差值区间约为(0,0.001 8)。
5 实验结果评估
分别统计1 000个测试百度坐标与GPS坐标的平均误差,以及预测得到的GPS坐标与原GPS坐标的平均误差和均方差结果如表2所示。
表2 仿真前后误差对比
表3给出了前20个测试GPS坐标与其对应的百度坐标及预测得到的GPS坐标。
为了进一步分析得到的GPS坐标点的精度,首先将GPS坐标点(L,B)投影到平面直角坐标(x,y)[16],然后计算两坐标点间的欧式距离。根据实验结果,仿真前1 000个百度坐标的平均精度为1 056.52 m,最大误差为1 737.39 m,与实际GPS坐标存在较大偏移;仿真后得到的GPS坐标的平均精度为7.16 m,最大误差为286.24 m,与民用GPS系统自身精度处于同一数量级之内(民用GPS的定位精度为100 m),结果较为理想。
表3 解密结果
综上所述,使用BP神经网络得到的GPS坐标与实际的GPS坐标较为接近,达到了较为理想的已知明文攻击效果。
[1]Malczew ski J.GIS and multicriteria decision analysis[M]. [S.l.]:W iley,1999:15-77.
[2]Slater J A,Malys S.WGS84-past,present and future[M]// Advances in positioning and reference frames.Berlin:Springer,1997:1-7.
[3]国家测绘地理信息局.中华人民共和国测绘法[EB/OL].(2012-09-03)[2012-09-12].http://www.sbsm.gov.cn/article/ ztzl/dlxxsczxzz/zcfg/200903/20090300049617.shtm l.
[4]百度.百度地图开发[EB/OL].(2012-05-11)[2012-09-28]. http://dev.baidu.com/w iki/map/index.php?title=开发指南.
[5]Forouzan B A.Cryptography and network security[M].[S.l.]:M cGraw-Hill,Inc,2007:57-58.
[6]Bloch J.Effective java[M].[S.l.]:Prentice Hall,2008.
[7]韩力群.人工神经网络教程[M].北京:北京邮电大学出版社,2006.
[8]Jain A K,Mao J,Mohiuddin K M.Artificial neural networks:a tutorial[J].IEEE Computer,1996,29(3):31-44.
[9]Yao X in.Evolving artificial neural networks[J].Proceedings of the IEEE,1999,87(9):1423-1447.
[10]M insky M,Papert S.Perceptron[M].Cambridge,MA:M IT Press,1969.
[11]Rumelhart D,M cClell J.Parallel distributed processing:psychological and biological models[M].[S.l.]:The M IT Press,1986.
[12]Chen D S,Jain R C.A robust back propagation learning algorithm for function approximation[J].IEEE Transactions on Neural Networks,1994,5(3):467-479.
[13]Bengio Y.Neural networks for speech and sequence recognition[M].[S.l.]:International Thomson Computer Press,1996.
[14]Baba N,Kozaki M.An intelligent forecasting system of stock price using neural networks[C]//International Joint Conference on Neural Networks,1992:371-377.
[15]Fukuda T,Shibata T.Theory and applications of neural networks for industrial control systems[J].IEEE Transactions on Industrial Electronics,1992,39(6):472-489.
[16]李征航,黄劲松.GPS测量与数据处理[M].武汉:武汉大学出版社,2005:7-11.
PAN Weizhou,CHEN Zhenzhou,LI Xingmin
School of Computer, South China Normal University, Guangzhou 510631, China
This paper presents a decryption method of Baidu map’s coordinates. A converting interface from GPS coordinates to Baidu map’s coordinates given by Baidu is utilized to get pairs of GPS-Baidu coordinates. The inverse converting function is fitted based on BP neural network. The trained BP network is used to predict GPS coordinates corresponding to some new Baidu coordinates. Experimental result demonstrates that the converted GPS coordinate given by this method is closed to the real GPS coordinate. Hence the decrypted result is ideal.
artificial neural network; Baidu map; Global Positioning System(GPS); Back Propagation(BP); decryption
PAN Weizhou, CHEN Zhenzhou, LI Xingmin. Decryption method of Baidu map’s coordinates based on artificial neural network. Computer Engineering and Applications, 2014, 50(17):110-113.
A
TP183
10.3778/j.issn.1002-8331.1210-0047
国家高技术研究发展计划(863)(No.2012AA 021105)。
潘伟洲(1988—),男,硕士研究生,主研方向:计算机图形图像;陈振洲(1974—),通讯作者,男,博士,讲师,主研方向:机器学习;李兴民(1957—),男,博士,教授,主研方向:调和分析、四元数分析、八元数分析等。E-mail:cs.w zpan@gmail.com
2012-10-08
2012-12-25
1002-8331(2014)17-0110-04
CNKI网络优先出版:2013-03-26,http://www.cnki.net/kcms/detail/11.2127.TP.20130326.1042.014.htm l