潘偉洲,陳振洲,李興民
華南師范大學(xué)計算機(jī)學(xué)院,廣州 510631
基于人工神經(jīng)網(wǎng)絡(luò)的百度地圖坐標(biāo)解密方法
潘偉洲,陳振洲,李興民
華南師范大學(xué)計算機(jī)學(xué)院,廣州 510631
提出了一種針對百度地圖坐標(biāo)加密算法的解密方法,利用百度開放的坐標(biāo)轉(zhuǎn)換接口獲取多組GPS和百度地圖坐標(biāo)對,基于BP神經(jīng)網(wǎng)絡(luò)擬合出逆轉(zhuǎn)換函數(shù),利用訓(xùn)練后的BP網(wǎng)絡(luò)來預(yù)測新的百度坐標(biāo)所對應(yīng)的GPS坐標(biāo)。實(shí)驗(yàn)結(jié)果證明,該方法得到的GPS坐標(biāo)與實(shí)際的GPS坐標(biāo)較為接近,因而可以達(dá)到較為理想的解密結(jié)果。
人工神經(jīng)網(wǎng)絡(luò);百度地圖;全球定位系統(tǒng)(GPS);反向傳播(BP);解密
隨著地理信息技術(shù)(Geographic Information System,GIS)[1]的廣泛應(yīng)用,人們可以以越來越便捷的方式獲取地理位置信息,例如Google地圖、百度地圖等。國際采用WGS-84經(jīng)緯度坐標(biāo)標(biāo)準(zhǔn)[2],這是一種為GPS全球定位系統(tǒng)使用而建立的坐標(biāo)系統(tǒng)。
為了保護(hù)個人隱私,國家測繪地理信息局規(guī)定必須至少使用GCJ-02標(biāo)準(zhǔn)[3],對地理位置進(jìn)行加密。百度坐標(biāo)在此基礎(chǔ)上,進(jìn)行了BD-09二次加密措施[4]。因此,百度地圖上任取一點(diǎn)的坐標(biāo)值與實(shí)際的GPS坐標(biāo)點(diǎn)存在較大偏移。表1給出了10個GPS坐標(biāo)點(diǎn)與其對應(yīng)的百度地圖坐標(biāo)點(diǎn)的對比。
為了驗(yàn)證百度地圖加密算法的安全性,本文使用BP神經(jīng)網(wǎng)絡(luò)對其進(jìn)行已知明文攻擊[5],擬合出逆轉(zhuǎn)換函數(shù),從而實(shí)現(xiàn)百度地圖坐標(biāo)到GPS點(diǎn)坐標(biāo)的轉(zhuǎn)換。實(shí)驗(yàn)結(jié)果證明,百度地圖的加密算法并不足以抵擋已知明文攻擊。
表1 GPS坐標(biāo)與百度地圖坐標(biāo)對比
2.1 百度地圖API簡介
應(yīng)用程序接口(Application programming Interface,API),又稱為應(yīng)用編程接口,是指軟件或網(wǎng)站為第三方開發(fā)人員提供的一組接口[6]。利用這些接口,應(yīng)用程序開發(fā)人員得以調(diào)用一組例程功能,而無須考慮其底層的源代碼為何,或理解其內(nèi)部工作機(jī)制的細(xì)節(jié)。百度地圖API是一套由JavaScript語言編寫的應(yīng)用程序接口,通過地圖服務(wù)應(yīng)用接口將平臺和地理信息數(shù)據(jù)捆綁,將復(fù)雜的GIS底層邏輯進(jìn)行封裝,從而幫助第三方開發(fā)人員在網(wǎng)站中構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用。百度地圖API包含了構(gòu)建地圖基本功能的各種接口,提供了諸如本地搜索、路線規(guī)劃等數(shù)據(jù)服務(wù)。
2.2 坐標(biāo)轉(zhuǎn)換
百度對外接口的坐標(biāo)系并不是GPS采集的真實(shí)經(jīng)緯度,為了方便開發(fā)者,百度開放了一個不可逆的坐標(biāo)轉(zhuǎn)換接口,允許將GPS坐標(biāo)轉(zhuǎn)換為百度坐標(biāo)。
以下代碼首先讀取id分別為“gpsX”和“gpsY”的兩個文本框的值,然后作為GPS坐標(biāo)點(diǎn)交給轉(zhuǎn)換接口轉(zhuǎn)換為百度坐標(biāo),坐標(biāo)轉(zhuǎn)換完成后交給一個名為translateCallback的回調(diào)函數(shù)來處理:
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural network,ANN)是在對人腦神經(jīng)網(wǎng)絡(luò)的基本認(rèn)識的基礎(chǔ)上,以數(shù)學(xué)和物理方法以及信息處理的角度對人腦神經(jīng)網(wǎng)絡(luò)進(jìn)行抽象,從而建立的某種簡化模型[7]。人工神經(jīng)網(wǎng)絡(luò)并不是人腦神經(jīng)網(wǎng)絡(luò)的真實(shí)寫照,而只是對它的簡化、抽象與模擬。由于人工神經(jīng)網(wǎng)絡(luò)具有類似生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)特征和性能特點(diǎn),因此人工神經(jīng)網(wǎng)絡(luò)具有較好的自學(xué)習(xí)、自組織和自適應(yīng)能力[8]。
神經(jīng)網(wǎng)絡(luò)由大量的神經(jīng)元(或稱“節(jié)點(diǎn)”,或“單元”)相互聯(lián)結(jié)而構(gòu)成。一個最簡單的神經(jīng)元模型稱為M-P模型,如圖1所示。
對于某一個神經(jīng)元,它可以同時接受許多個輸入信號,每兩個神經(jīng)元間的連接都代表一個對于通過該連接信號的加權(quán)值,稱之為權(quán)重(weight)。網(wǎng)絡(luò)的輸出則依網(wǎng)絡(luò)的連接方式,權(quán)重值和激勵函數(shù)的不同而不同。而網(wǎng)絡(luò)自身通常都是對自然界某種算法或者函數(shù)的逼近,也可能是對一種邏輯策略的表達(dá)[9]。
圖1 M-P模型示意圖
BP網(wǎng)絡(luò)是在多層感知器[10]的基礎(chǔ)上使用誤差反傳(Error Back Propagation,EBP)算法而提出來的一種人工神經(jīng)網(wǎng)絡(luò)模型[11]。BP網(wǎng)絡(luò)屬于多層前饋有導(dǎo)師型網(wǎng)絡(luò),典型的三層BP網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 三層BP網(wǎng)拓?fù)浣Y(jié)構(gòu)
由于BP網(wǎng)絡(luò)具有良好的非線性映射能力、泛化能力和容錯能力,因此它在曲線擬合[12]、語音識別[13]、股票預(yù)測[14]、工業(yè)控制[15]等領(lǐng)域具有廣泛的應(yīng)用。
本文利用了BP神經(jīng)網(wǎng)絡(luò)的擬合能力,對百度地圖的坐標(biāo)數(shù)據(jù)進(jìn)行了已知明文攻擊,其步驟如下:
(1)獲取訓(xùn)練數(shù)據(jù)。隨機(jī)生成大量的GPS坐標(biāo),并利用百度開放的轉(zhuǎn)換端口轉(zhuǎn)換為百度坐標(biāo)。
(2)建立及訓(xùn)練BP網(wǎng)絡(luò)。建立BP網(wǎng)絡(luò),將這兩類坐標(biāo)點(diǎn)作為訓(xùn)練數(shù)據(jù),訓(xùn)練BP網(wǎng)絡(luò),從而擬合逆轉(zhuǎn)換函數(shù)。
(3)預(yù)測新的坐標(biāo)點(diǎn)。將訓(xùn)練后的BP網(wǎng)絡(luò)用于預(yù)測新的百度坐標(biāo)對應(yīng)的GPS坐標(biāo)。
下面將介紹每一步的具體做法。
4.1 獲取訓(xùn)練數(shù)據(jù)
理論上,GPS坐標(biāo)點(diǎn)可以取的點(diǎn)落在經(jīng)度(-180~180),緯度(-90~90)的范圍內(nèi)。但在實(shí)際測試中,可以轉(zhuǎn)換成百度坐標(biāo)的GPS坐標(biāo)點(diǎn)必須落在中國版圖周圍的一個矩形區(qū)域內(nèi),如圖3所示。
因此,可以編寫一個JavaScript函數(shù)geRandPoint()用于生成隨機(jī)GPS坐標(biāo):
圖3 GPS坐標(biāo)點(diǎn)取值范圍
之后可以利用百度開放的坐標(biāo)轉(zhuǎn)換接口將隨機(jī)產(chǎn)生的GPS坐標(biāo)點(diǎn)轉(zhuǎn)換為百度坐標(biāo)點(diǎn)。
4.2 建立及訓(xùn)練BP網(wǎng)絡(luò)
由于經(jīng)度和緯度是彼此獨(dú)立的值,因此可以分別建立BP網(wǎng)絡(luò)進(jìn)行擬合。擬合得到的模型將與百度的坐標(biāo)轉(zhuǎn)換函數(shù)相逆,即輸入為百度坐標(biāo),輸出為GPS坐標(biāo)。
使用Matlab作為仿真環(huán)境,并使用1 000個坐標(biāo)點(diǎn)對作為訓(xùn)練數(shù)據(jù),分別對經(jīng)度值和緯度值建立雙隱層BP網(wǎng)絡(luò),每層隱層包含十個神經(jīng)元。代碼如下:
訓(xùn)練網(wǎng)絡(luò)前,分別繪制1 000個百度坐標(biāo)點(diǎn)與其對應(yīng)的GPS坐標(biāo)點(diǎn)經(jīng)度和緯度的差值圖如圖4和圖5所示。此時,經(jīng)度的差值區(qū)間約為(0.007,0.015),緯度的差值區(qū)間約為(0.002,0.009)。
網(wǎng)絡(luò)訓(xùn)練完成后,繪制擬合后的坐標(biāo)數(shù)據(jù)與GPS坐標(biāo)點(diǎn)的經(jīng)度和緯度差值圖分別如圖6和圖7所示。此時,經(jīng)度的差值區(qū)間約為(0,0.004),緯度的差值區(qū)間約為(0,0.001 5)。
圖4 訓(xùn)練前的百度坐標(biāo)與GPS坐標(biāo)的經(jīng)度差值圖
圖5 訓(xùn)練前的百度坐標(biāo)與GPS坐標(biāo)的緯度差值圖
圖6 訓(xùn)練后的GPS坐標(biāo)與原GPS坐標(biāo)經(jīng)度差值圖
圖7 訓(xùn)練后的GPS坐標(biāo)與原GPS坐標(biāo)緯度差值圖
圖8 仿真前百度坐標(biāo)與GPS坐標(biāo)的經(jīng)度差值圖
圖9 仿真前百度坐標(biāo)與GPS坐標(biāo)的緯度差值圖
圖10 預(yù)測的GPS坐標(biāo)與原GPS坐標(biāo)的經(jīng)度差值圖
圖11 預(yù)測的GPS坐標(biāo)與原GPS坐標(biāo)的緯度差值圖
4.3 預(yù)測新的坐標(biāo)點(diǎn)
由于BP網(wǎng)絡(luò)具有良好的泛化能力,因此可以利用訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)來預(yù)測新的百度坐標(biāo)點(diǎn)對應(yīng)的GPS坐標(biāo)點(diǎn)。讀入1 000個新的測試百度坐標(biāo)點(diǎn),分別繪制與這些坐標(biāo)點(diǎn)對應(yīng)的GPS坐標(biāo)點(diǎn)經(jīng)度和緯度的差值圖如圖8和圖9所示。此時,經(jīng)度的差值區(qū)間約為(0.006 5,0.015),緯度的差值區(qū)間約為(0.002,0.009)。
分別使用兩個神經(jīng)網(wǎng)絡(luò)來預(yù)測經(jīng)度和緯度的坐標(biāo)值,繪制得到的GPS坐標(biāo)點(diǎn)與原坐標(biāo)點(diǎn)的經(jīng)度和緯度差值圖分別如圖10和圖11所示。此時,經(jīng)度的差值區(qū)間約為(0,0.004),緯度的差值區(qū)間約為(0,0.001 8)。
分別統(tǒng)計1 000個測試百度坐標(biāo)與GPS坐標(biāo)的平均誤差,以及預(yù)測得到的GPS坐標(biāo)與原GPS坐標(biāo)的平均誤差和均方差結(jié)果如表2所示。
表2 仿真前后誤差對比
表3給出了前20個測試GPS坐標(biāo)與其對應(yīng)的百度坐標(biāo)及預(yù)測得到的GPS坐標(biāo)。
為了進(jìn)一步分析得到的GPS坐標(biāo)點(diǎn)的精度,首先將GPS坐標(biāo)點(diǎn)(L,B)投影到平面直角坐標(biāo)(x,y)[16],然后計算兩坐標(biāo)點(diǎn)間的歐式距離。根據(jù)實(shí)驗(yàn)結(jié)果,仿真前1 000個百度坐標(biāo)的平均精度為1 056.52 m,最大誤差為1 737.39 m,與實(shí)際GPS坐標(biāo)存在較大偏移;仿真后得到的GPS坐標(biāo)的平均精度為7.16 m,最大誤差為286.24 m,與民用GPS系統(tǒng)自身精度處于同一數(shù)量級之內(nèi)(民用GPS的定位精度為100 m),結(jié)果較為理想。
表3 解密結(jié)果
綜上所述,使用BP神經(jīng)網(wǎng)絡(luò)得到的GPS坐標(biāo)與實(shí)際的GPS坐標(biāo)較為接近,達(dá)到了較為理想的已知明文攻擊效果。
[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]百度.百度地圖開發(fā)[EB/OL].(2012-05-11)[2012-09-28]. http://dev.baidu.com/w iki/map/index.php?title=開發(fā)指南.
[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]韓力群.人工神經(jīng)網(wǎng)絡(luò)教程[M].北京:北京郵電大學(xué)出版社,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測量與數(shù)據(jù)處理[M].武漢:武漢大學(xué)出版社,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
國家高技術(shù)研究發(fā)展計劃(863)(No.2012AA 021105)。
潘偉洲(1988—),男,碩士研究生,主研方向:計算機(jī)圖形圖像;陳振洲(1974—),通訊作者,男,博士,講師,主研方向:機(jī)器學(xué)習(xí);李興民(1957—),男,博士,教授,主研方向:調(diào)和分析、四元數(shù)分析、八元數(shù)分析等。E-mail:cs.w zpan@gmail.com
2012-10-08
2012-12-25
1002-8331(2014)17-0110-04
CNKI網(wǎng)絡(luò)優(yōu)先出版:2013-03-26,http://www.cnki.net/kcms/detail/11.2127.TP.20130326.1042.014.htm l