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