方曉樂(lè),吳永靜,陳鑫祥,劉雪俊
(廣東省國(guó)土資源技術(shù)中心,廣東 廣州 510075)
一種適用于移動(dòng)端瓦片地圖的加密方法
方曉樂(lè),吳永靜,陳鑫祥,劉雪俊
(廣東省國(guó)土資源技術(shù)中心,廣東 廣州 510075)
在移動(dòng)端地圖大行其道的今天,如何保證地圖服務(wù)不被盜用和防止信息泄漏是一個(gè)亟待解決的難題。針對(duì)這種情況,本文提出了一種適用于移動(dòng)端瓦片地圖的加密方法,通過(guò)對(duì)地圖瓦片入庫(kù)順序的置亂,以及對(duì)瓦片的圖層行列值信息的加密,使得移動(dòng)端地圖瓦片在被非法使用時(shí)地圖信息無(wú)法還原,提高了移動(dòng)端上地理信息應(yīng)用的安全性。
地圖;移動(dòng)端;置亂;加密;瓦片
互聯(lián)網(wǎng)時(shí)代,地理信息是國(guó)家重要的戰(zhàn)略資源,無(wú)論是在政府管理決策、國(guó)民經(jīng)濟(jì)建設(shè),還是在人民生活等方面,它都起著舉足輕重的作用[1-3]。同時(shí),移動(dòng)終端隨著智能化發(fā)展,也在人們的生活工作中扮演著越來(lái)越重要的角色,這促進(jìn)了移動(dòng)端地圖應(yīng)用的發(fā)展。如今,在日常生活和工作中許多與地理位置信息相關(guān)的服務(wù),移動(dòng)地圖應(yīng)用都提供相應(yīng)的功能,移動(dòng)終端的地圖應(yīng)用已經(jīng)融入到了人們的生活甚至工作中[4-5]。然而,電子地圖信息由于其存放與提供的形式,特別是移動(dòng)端離線瓦片地圖的存放格式,導(dǎo)致了其具有無(wú)限次的復(fù)制性,同時(shí)復(fù)制處理手段非常簡(jiǎn)單和低廉,因此極容易出現(xiàn)非法的復(fù)制、篡改、傳播,造成了地圖的泄密與管理失控[6-8]。
如何對(duì)移動(dòng)端地理信息進(jìn)行保護(hù),在方便用戶的同時(shí),保證地圖信息不被他人竊取,是一個(gè)亟待解決的問(wèn)題。數(shù)字水印技術(shù)是解決電子地圖版權(quán)問(wèn)題的有效途徑之一[9],然而在電子地圖中加入數(shù)字水印只是一種被動(dòng)防御策略,只能在信息被竊之后進(jìn)行跟蹤和確認(rèn),無(wú)法主動(dòng)通過(guò)加密使得被竊信息不可使用。
針對(duì)這種情況,以廣東省天地圖數(shù)據(jù)為例,本文提出一種適用于移動(dòng)端瓦片地圖的加密和解密算法,使得移動(dòng)端格式的電子地圖在被非法復(fù)制使用的情況下不可讀,而在合法使用的情況下卻能正常讀取,以實(shí)現(xiàn)在離線數(shù)據(jù)庫(kù)格式下對(duì)影像電子地圖加密保護(hù),為電子地圖版權(quán)與私隱保護(hù)提供一種有效的主動(dòng)防御解決方案。
1.1 地圖瓦片的格式
以廣東省天地圖為例,地圖會(huì)被切割成每英寸打印點(diǎn)數(shù)(dots per inch,DPI)為96、分辨率為256×256像素級(jí)別的瓦片,并保存為JPEG或PNG格式。
1.2 地圖瓦片在移動(dòng)端的存放形式
地圖瓦片顯示通常采用切割的方式,以比例尺為單位圖層,將整幅影像地圖以像素為單位切割成若干個(gè)大小相同的格網(wǎng)。當(dāng)將多個(gè)比例尺的影像地圖瓦片放在一起時(shí),整個(gè)地圖就劃分成了如圖1所示的金字塔形、大小均勻的瓦片矩陣集合。廣東省天地圖也是采用這種金字塔存放形式對(duì)地圖瓦片進(jìn)行組織,然后以圖層命名第1層文件夾名字(如L1文件夾存放第1層的瓦片),以對(duì)應(yīng)圖層下瓦片的行次序號(hào)命名第2層文件夾名字(如L1/R1存放第1層下第1行的瓦片),以對(duì)應(yīng)層下瓦片的列次序號(hào)命名瓦片名稱(如L1/R1/C1.png則表示該瓦片顯示的內(nèi)容位于第1層第1行第1列)。
圖1 地圖瓦片金字塔存放形式
在移動(dòng)端,人們通常使用離線地圖包,然而零碎的瓦片組織會(huì)導(dǎo)致大量的存儲(chǔ)空間被浪費(fèi)。因此,許多移動(dòng)地圖應(yīng)用[4,10-11]都采用SQLite數(shù)據(jù)庫(kù)[12]將地圖瓦片以二進(jìn)制大文件(binary large object,BLOB)的形式進(jìn)行統(tǒng)一存放,形成獨(dú)立的數(shù)據(jù)庫(kù)文件,這樣可以減少碎片化,降低移動(dòng)端的存儲(chǔ)空間消耗。廣東省天地圖在移動(dòng)端實(shí)施中,采用表1的方式,將地圖瓦片組織成一個(gè)或多個(gè)SQLite文件。
表1 廣東“天地圖”瓦片在移動(dòng)端中SQLite的表結(jié)構(gòu)
1.3 離線地圖在移動(dòng)端的讀取
在移動(dòng)端應(yīng)用中讀取地圖,首先假設(shè)要獲取的相關(guān)瓦片顯示的經(jīng)緯度為(X,Y),圖層為第N層,在廣東天地圖中,采用規(guī)定的經(jīng)緯度轉(zhuǎn)行列號(hào)公式[8],獲取到瓦片的行列號(hào)(Row,Col),再根據(jù)層行列(N,Row,Col)對(duì)(離線地圖包或服務(wù)器中)SQLite格式存放的瓦片進(jìn)行查詢(見(jiàn)表1),讀取瓦片的BLOB格式,最后通過(guò)解析圖片完成瓦片的讀取。
鑒于移動(dòng)端的瓦片讀取方式,特別是在使用離線地圖包的情況下地圖瓦片信息極容易被獲取,因此,需要對(duì)地圖瓦片進(jìn)行加密,以避免信息泄露。
本文對(duì)移動(dòng)端地圖瓦片采用的加密方式主要是置亂和位異或運(yùn)算加密。加密方法如圖2所示,具體有以下幾個(gè)步驟:
圖2 移動(dòng)端地圖加密方法
(1) 隨機(jī)置亂瓦片的入庫(kù)次序,并賦予次序值在ID上。
(2) 用瓦片的層值(LV)、行值(Row)及列值(Col)進(jìn)行運(yùn)算組合,組合方式不是唯一的,可以自行選擇,甚至采用復(fù)雜度高的運(yùn)算方式,文中采用計(jì)算式(LV2×Row)^Col進(jìn)行,將得到的運(yùn)算值作為偽隨機(jī)數(shù)發(fā)生器的輸入,生成隨機(jī)數(shù),并對(duì)LV、Row、Col分別作位異或運(yùn)算加密,生成LV′、Row′和Col′。
(3) 在數(shù)據(jù)庫(kù)建立表,將瓦片入庫(kù)。
通過(guò)以上3步,完成對(duì)移動(dòng)端地圖瓦片包的加密。非法使用該瓦片服務(wù)或離線包時(shí),由于順序的置亂,瓦片在SQLite中的次序已被打亂;同時(shí)由于LV、Row和Col加密后值的隨機(jī)性,無(wú)法根據(jù)需要獲得準(zhǔn)確的瓦片,讀取的位置往往為空或是無(wú)序的瓦片的堆疊。如在廣東天地圖的組織順序中,LV=7、Row=22、Col=102的地圖瓦片原本是第1位入庫(kù)的,置亂后可能是第13 537位入庫(kù),同時(shí)對(duì)LV、Row和Col加密得出LV′=95 692,Row′=29 426,Col′=340 238,因此無(wú)法得知其準(zhǔn)確位置實(shí)現(xiàn)讀取。
對(duì)于采用了上述加密方法的地圖瓦片服務(wù)或離線包,移動(dòng)端地圖應(yīng)用需要通過(guò)解密方法才可以獲取到準(zhǔn)確的地圖信息,正常瀏覽瓦片,解密方法如圖3所示,具體可以分為以下兩個(gè)步驟:
圖3 移動(dòng)端地圖解密方法
(1) 利用需要讀取的(LV,Row,Col),通過(guò)與加密方式一致的計(jì)算公式進(jìn)行組合,并采用同樣的偽隨機(jī)數(shù)發(fā)生器,通過(guò)位異或運(yùn)算,獲取(LV′,Row′,Col′)。
(2) 利用(LV′,Row′,Col′)對(duì)SQLite數(shù)據(jù)庫(kù)進(jìn)行查詢,獲取實(shí)際(LV,Row,Col)位置的瓦片內(nèi)容。
采用廣東省天地圖矢量瓦片數(shù)據(jù),對(duì)所描述的加密解密方法進(jìn)行應(yīng)用示范,使用SQLite數(shù)據(jù)庫(kù)文件離線包的格式,開(kāi)發(fā)環(huán)境采用Eclipse Java,移動(dòng)端采用Android 5.1系統(tǒng)。
4.1 瓦片離線包的加密
4.1.1 順序置亂
使用Java Develop Kit 1.8中util庫(kù)中的Random函數(shù)生成隨機(jī)數(shù),利用洗牌算法(程序原理如圖4所示),隨機(jī)抽取瓦片進(jìn)行層行列的加密。
圖4 洗牌法抽取瓦片入庫(kù)次序
4.1.2 層行列加密
提取瓦片后,要對(duì)瓦片的信息進(jìn)行加密,首先對(duì)LV、Row和Col進(jìn)行組合,其中⊕表示位異或運(yùn)算,即
S0=(LV2×Row)⊕Col
(1)
然后以S0作為偽隨機(jī)數(shù)發(fā)生器的輸入,其中偽隨機(jī)數(shù)發(fā)生器采用文獻(xiàn)[13]中的混沌算法,以XORshift[14]作為基礎(chǔ)偽隨機(jī)數(shù)發(fā)生器,公式如下
(2)
式中,a、b、c可以通過(guò)文獻(xiàn)[14]中的介紹自行選擇,應(yīng)用中a=11、b=5、c=13。由于文獻(xiàn)[13]中的隨機(jī)序列滿足混沌特性,對(duì)輸入極其敏感,同時(shí)具有良好的統(tǒng)計(jì)特性,因此保證了瓦片加密的安全度。最后層行列的加密公式如下
(3)
獲取(LV′,Row′,Col′)后,對(duì)瓦片進(jìn)行入庫(kù)操作,完成離線包的制作,加密后與加密前的離線包SQLite文件內(nèi)容如圖5所示(zoom_level表示LV,tile_column表示Col,tile_row表示Row,tile_data表示瓦片BLOB內(nèi)容,左邊為加密前數(shù)據(jù),右邊為加密后數(shù)據(jù))??梢?jiàn),瓦片內(nèi)容被完全打亂,在未解密的情況下,地圖不可讀(如圖6(a)所示)。
4.2 移動(dòng)端瓦片包的解密讀取
在獲取了需要讀取的瓦片層行列值(LV,Row,Col)之后,需要采取以下步驟:
(1) 采用式(1)將(LV,Row,Col)換算成S0。
(2) 采用式(2)與式(3),計(jì)算出(LV′,Row′,Col′)。
圖5 庫(kù)中數(shù)據(jù)加密前后對(duì)比
圖6
(3) 利用(LV′,Row′,Col′)在地圖離線包中查詢出瓦片內(nèi)容并在移動(dòng)端顯示(如圖6(b)所示)。
針對(duì)移動(dòng)端瓦片地圖信息容易被泄漏且不容易保護(hù)的情況,本文提出了一種基于置亂與對(duì)層行列值位異或運(yùn)算的加密方法,實(shí)現(xiàn)了對(duì)移動(dòng)端調(diào)用地圖瓦片時(shí)信息的保護(hù),為移動(dòng)端上地理信息的安全使用問(wèn)題提供了一種有效的解決方案。
[1] 苗前軍. 地理信息公共服務(wù)平臺(tái)建設(shè)的有效驅(qū)動(dòng)[J]. 地理信息世界, 2010,8(1):6-11.
[2] 曾元武, 陳澤鵬, 吳永靜,等.廣東省地理信息公共平臺(tái)的建設(shè)及其應(yīng)用[J]. 測(cè)繪通報(bào), 2014(6):66-70.
[3] 肖蘇勇, 吳俐民, 劉文軍. 基于云計(jì)算的地理信息公共服務(wù)平臺(tái)應(yīng)用與研究[J]. 測(cè)繪通報(bào), 2012(9):78-80.
[4] 周強(qiáng), 宋志峰, 劉易鑫,等. 一種適用于多移動(dòng)終端的地圖瓦片格式的研究與應(yīng)用[J]. 測(cè)繪與空間地理信息, 2013(S1):70-76.
[5] 吳永靜, 吳錦超, 方曉樂(lè),等. 移動(dòng)終端地理信息系統(tǒng)在廣東省政務(wù)管理中的應(yīng)用[J]. 北京測(cè)繪, 2014(3):124-127.
[6] 王小虎, 邵楷, 吳愛(ài)華.一種地圖水印的嵌入方法[J].長(zhǎng)春大學(xué)學(xué)報(bào), 2010,20(2):45-47.
[7] 張馳, 李安波, 閭國(guó)年,等. 以?shī)A角調(diào)制的矢量地圖可逆水印算法[J]. 地球信息科學(xué)學(xué)報(bào), 2013,15(2):180-186.
[8] 陳鑫祥, 吳錦超. 利用ArcGIS Engine實(shí)現(xiàn)天地圖瓦片數(shù)據(jù)的切割[J]. 北京測(cè)繪, 2013(4):17-20.
[9] 方曉樂(lè), 吳永靜, 李志中,等. 一種基于DCT變換的數(shù)字水印算法在“天地圖廣東”中的應(yīng)用[J]. 地理信息世界, 2014,12(3):100-104.
[10] 吳東. OpenStreetMap大受青睞:開(kāi)源地圖迎來(lái)春天?[J]. 中國(guó)測(cè)繪,2012(3):48-51.
[11] 王曉東,劉慧平,喬瑜. 利用Bing Maps地圖切片實(shí)現(xiàn)網(wǎng)絡(luò)地圖服務(wù)[J]. 國(guó)土資源遙感,2010(2):122-127.
[12] 底玲曉, 閆會(huì)杰, 施建輝,等. 基于Android和SQLite的移動(dòng)地圖應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 測(cè)繪技術(shù)裝備, 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
方曉樂(lè),吳永靜,陳鑫祥,等.一種適用于移動(dòng)端瓦片地圖的加密方法[J].測(cè)繪通報(bào),2017(2):116-119.
10.13474/j.cnki.11-2246.2017.0063.
2016-05-27
廣東省國(guó)土資源廳科研專項(xiàng)(GDGTKJ2016003)
方曉樂(lè)(1984—),男,博士,高級(jí)工程師,主要從事GIS研發(fā)工作。E-mail:10048392@qq.com
P208
A
0494-0911(2017)02-0116-04