專利名稱:基于要素幾何精度弱化的gis矢量數(shù)據(jù)偽裝與還原方法
技術(shù)領(lǐng)域:
本發(fā)明屬于地理信息安全領(lǐng)域,具體涉及一種基于幾何精度弱化技術(shù)進(jìn)行GIS矢量數(shù)據(jù)偽裝與還原的方法。
背景技術(shù):
地理信息的安全防護(hù)涉及國(guó)家安全和社會(huì)利益,是當(dāng)前急需解決的國(guó)家和社會(huì)重大需求問題。特別是當(dāng)今空間數(shù)據(jù)共享需求逐步擴(kuò)大,地理信息服務(wù)應(yīng)用不斷拓展的情況下,地理信息的安全問題進(jìn)一步突出。作為國(guó)家空間數(shù)據(jù)基礎(chǔ)設(shè)施主要數(shù)據(jù)內(nèi)容的GIS矢量數(shù)據(jù),其信息安全研究更是至關(guān)重要。目前,信息偽裝已成為信息安全研究中除密碼學(xué)之外的另一重要分支。國(guó)內(nèi)外相關(guān)研究文獻(xiàn)及專利檢索結(jié)果分析表明,目前,在信息偽裝的研究方面,所研究的載體數(shù)據(jù)類型主要包括圖像、視頻、遙感影像、DEM等。但是,矢量數(shù)據(jù)由于其具有無(wú)固定存儲(chǔ)順序的數(shù)據(jù)組織、多樣的數(shù)據(jù)格式、強(qiáng)大的可視化表達(dá)手段、復(fù)雜的投影變換、繁多的空間分析應(yīng)用,以及精度高、冗余少等諸多方面的特性,使得針對(duì)矢量數(shù)據(jù)的信息偽裝研究具有一定的特殊性和較大難度。
發(fā)明內(nèi)容
本發(fā)明的目的在于基于要素屬性信息進(jìn)行要素幾何精度弱化的思路,提出一種針對(duì)GIS矢量數(shù)據(jù)的偽裝與還原方法,以有效提高GIS矢量數(shù)據(jù)在數(shù)據(jù)傳輸、脫密處理中的安全性。為了實(shí)現(xiàn)上述目的,本發(fā)明所采取的技術(shù)方案如下
基于要素幾何精度弱化的GIS矢量數(shù)據(jù)偽裝與還原方法,主要包括以下過(guò)程 (1)偽裝過(guò)程
步驟一打開一個(gè)GIS矢量數(shù)據(jù)圖層文件,讀取屬性字段名稱,設(shè)置處理用的數(shù)值型屬性字段名稱;設(shè)置8位二進(jìn)制隨機(jī)信息作為密鑰Key,并存入密鑰文件;
步驟二 判斷圖層類型,如果為點(diǎn)圖層數(shù)據(jù),則執(zhí)行步驟三;如果為線面圖層數(shù)據(jù),則執(zhí)行步驟四;
步驟三
(a)分別讀取一點(diǎn)要素的所指定屬性信息和幾何信息到數(shù)值型變量a和點(diǎn)對(duì)象Point
中;
(b)基于如下公式(1),進(jìn)行Point值的精度弱化 Point.X=Point. x+1/f(a)
Point. y=Point. y+l/f(a)(1)
其中,函數(shù)f (a)為取變量a的屬性等級(jí),其值域?yàn)閇1,η],η為正整數(shù);l/f(a)運(yùn)算中的小數(shù)位數(shù),與相應(yīng)點(diǎn)的小數(shù)位數(shù)保持一致; 步驟四(a)讀取一個(gè)要素中所有點(diǎn)的幾何數(shù)據(jù)到數(shù)組隊(duì)列D中,其指定屬性信息讀取到數(shù)值型變量a中;
(b)針對(duì)數(shù)組隊(duì)列D中的每一個(gè)點(diǎn),基于如下公式(2),進(jìn)行Point值的精度弱化 Point. X=Point. x+l/f (a) *g(Key, Mod (i, 8))
Point. y=Point. y+l/f (a) *g(Key, Mod(i, 8)) (2) 其中,i為數(shù)組隊(duì)列D中點(diǎn)的序號(hào);Key為密鑰;函數(shù)ModO為取余函數(shù);函數(shù)g() 為基于點(diǎn)序號(hào)i值所確定的余數(shù)從密鑰Key中取出相應(yīng)位的取值,其值為O或1 ;函數(shù)f (a) 為取變量a的屬性等級(jí),其值域?yàn)閇1,11],11為正整數(shù);1鄺(幻運(yùn)算中的小數(shù)位數(shù),與相應(yīng)點(diǎn)的小數(shù)位數(shù)保持一致;
步驟五根據(jù)不同的圖層類型,循環(huán)執(zhí)行步驟三或步驟四,直至每一要素處理完畢后,保存?zhèn)窝b后的數(shù)據(jù)文件; (2)還原過(guò)程
步驟一選擇處理用屬性字段名稱,打開一個(gè)GIS矢量數(shù)據(jù)圖層文件;讀取密鑰文件并設(shè)置密鑰Key ;
步驟二 判斷圖層類型,如果為點(diǎn)圖層數(shù)據(jù),則執(zhí)行步驟三;如果為線面圖層數(shù)據(jù),則執(zhí)行步驟四;
步驟三
(a)分別讀取一點(diǎn)要素的所指定屬性信息和幾何信息到數(shù)值型變量a和點(diǎn)對(duì)象Point
中;
(b)基于如下公式(3),進(jìn)行Point值的精度弱化 Point.X=Point. χ-l/f(a)
Point. y=Point. y-l/f (a)(3)
其中,函數(shù)f(a)為取變量a的屬性等級(jí),其值域?yàn)閇1,η],η為正整數(shù);l/f(a)運(yùn)算中的小數(shù)位數(shù),與相應(yīng)點(diǎn)的小數(shù)位數(shù)保持一致; 步驟四
(a)讀取一個(gè)要素中所有點(diǎn)的幾何數(shù)據(jù)到數(shù)組隊(duì)列D中,其指定屬性信息讀取到數(shù)值型變量a中;
(b)針對(duì)數(shù)組隊(duì)列D中的每一個(gè)點(diǎn),基于如下公式(4),進(jìn)行Point值的精度弱化 Point. X=Point. χ-1/f (a) *g(Key, Mod (i, 8))
Point. y=Point. y-l/f (a) *g(Key, Mod(i, 8))(4)
其中,i為數(shù)組隊(duì)列D中點(diǎn)的序號(hào);Key為密鑰;函數(shù)ModO為取余函數(shù);函數(shù)g() 為基于點(diǎn)序號(hào)i值所確定的余數(shù)從密鑰Key中取出相應(yīng)的密鑰位,其值為O或1 ;函數(shù)f (a) 為取變量a的屬性等級(jí),其值域?yàn)閇1,11],11為正整數(shù);1鄺(幻運(yùn)算中的小數(shù)位數(shù),與相應(yīng)點(diǎn)的小數(shù)位數(shù)保持一致;
步驟五根據(jù)不同的圖層類型,循環(huán)執(zhí)行步驟三或步驟四,直至每一要素處理完畢后,保存?zhèn)窝b后的數(shù)據(jù)文件。 本發(fā)明根據(jù)GIS矢量數(shù)據(jù)的數(shù)據(jù)組織特點(diǎn),基于要素屬性信息進(jìn)行要素幾何精度弱化的思路,提出了一種針對(duì)GIS矢量數(shù)據(jù)的偽裝與還原方法,可以進(jìn)行shp等格式數(shù)據(jù)的偽裝與還原處理,一定程度上滿足了 GIS矢量數(shù)據(jù)的隱藏通信與安全傳輸需求。
圖1是本發(fā)明實(shí)施例選取的實(shí)驗(yàn)數(shù)據(jù)。圖2是本發(fā)明實(shí)施例的原始數(shù)據(jù)局部效果圖。圖3是本發(fā)明實(shí)施例的偽裝數(shù)據(jù)局部效果圖。圖4是圖3效果圖的邊緣局部放大圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例做進(jìn)一步詳細(xì)說(shuō)明。本實(shí)例選擇一典型的shp面圖層數(shù)據(jù),針對(duì)數(shù)據(jù)的讀取、偽裝處理、數(shù)據(jù)還原的整個(gè)過(guò)程,進(jìn)一步詳細(xì)說(shuō)明本發(fā)明。本實(shí)施例選擇全國(guó)1 :400萬(wàn)的省界面狀圖層數(shù)據(jù)(如圖1) 作為實(shí)驗(yàn)數(shù)據(jù)。密鑰Key值為“10010101”。選取AREA字段為處理用要素屬性字段。(1)數(shù)據(jù)偽裝處理。步驟一打開省界圖層數(shù)據(jù)文件,數(shù)據(jù)格式為面狀數(shù)據(jù),密鑰Key值為 “10010101”。步驟二 判斷圖層類型,為面狀圖層數(shù)據(jù),則執(zhí)行如下步驟。步驟三
(a)讀取第一個(gè)要素中的923點(diǎn)的幾何數(shù)據(jù)到數(shù)組隊(duì)列D中,其相應(yīng)AREA字段的屬性取值68. 488655,讀取到數(shù)值型變量a中。(b)針對(duì)數(shù)組隊(duì)列D中的每一個(gè)點(diǎn),基于如下公式(2),進(jìn)行Point值的精度弱化
Point. X=Point. x+l/f (a) *g(Key, Mod (i, 8)) Point. y=Point. y+l/f (a) *g(Key, Mod(i, 8)) (2) 讀取的第一個(gè)點(diǎn)為{121. 49738309820822, 53. 3210449M51802},本實(shí)施例中,函數(shù)f (a)結(jié)果為計(jì)算變量a整數(shù)部分位數(shù),即變量a整數(shù)部分位數(shù)即為要素屬性級(jí)別。針對(duì)第一個(gè)點(diǎn),f (68. 488655) =2,經(jīng)處理,第一個(gè)點(diǎn)的值為{ 121. 99738309820822, 53.82104492451802}o步驟四循環(huán)步驟三,直至每一要素處理完畢后,保存?zhèn)窝b后的數(shù)據(jù)文件。(2)數(shù)據(jù)還原處理。步驟一打開偽裝處理后的省界圖層數(shù)據(jù)文件,數(shù)據(jù)格式為面狀數(shù)據(jù)。讀取密鑰文件,并設(shè)置密鑰密鑰Key,其值為“ 10010101”。選取AREA字段為處理用要素屬性字段。步驟二 判斷圖層類型,為面狀圖層數(shù)據(jù),則執(zhí)行如下步驟。步驟三
(a)讀取第一個(gè)要素中的923點(diǎn)的幾何數(shù)據(jù)到數(shù)組隊(duì)列D中,其相應(yīng)AREA字段的屬性取值68. 488655,讀取到數(shù)值型變量a中。(b)針對(duì)數(shù)組隊(duì)列D中的每一個(gè)點(diǎn),基于如下公式(4),進(jìn)行Point值的精度弱化 Point. X=Point. χ-1/f (a) *g(Key, Mod (i, 8))
Point. y=Point. y-l/f (a) *g(Key, Mod(i, 8))(4)
讀取的第一個(gè)點(diǎn)為{121. 99738309820822, 53. 82104492451802 },經(jīng)處理,其值還原為 {121.49738309820822, 53.32104492451802}。
6
步驟四循環(huán)步驟三,直至每一要素處理完畢后,保存?zhèn)窝b后的數(shù)據(jù)文件。本發(fā)明實(shí)施例中僅以面圖層數(shù)據(jù)進(jìn)行數(shù)據(jù)偽裝與還原處理,該方法也可以適用于點(diǎn)、線類型圖層數(shù)據(jù)。本發(fā)明實(shí)施例中僅以shp格式的GIS矢量數(shù)據(jù)進(jìn)行數(shù)據(jù)偽裝與還原處理,該方法也適用于GML、E00、MIF等其它格式GIS矢量數(shù)據(jù)的數(shù)據(jù)偽裝與還原處理。本發(fā)明實(shí)施例中,函數(shù)f (a)為計(jì)算變量a整數(shù)部分位數(shù),即變量a整數(shù)部分位數(shù)即為要素屬性級(jí)別。也可以采用其它分級(jí)函數(shù)。(3)測(cè)試分析。由上述實(shí)施例中原始數(shù)據(jù)(圖2)與偽裝處理數(shù)據(jù)的效果圖(圖3、圖4)可知數(shù)據(jù)經(jīng)偽裝處理后,雖仍為可使用GIS軟件正確打開的shp數(shù)據(jù),但要素坐標(biāo)點(diǎn)的位置發(fā)生了較大變化,對(duì)于數(shù)據(jù)精度質(zhì)量要求較高的GIS矢量數(shù)據(jù)來(lái)說(shuō),這一處理顯著降低了數(shù)據(jù)質(zhì)量和數(shù)據(jù)使用價(jià)值,限制了非法拷貝或攔截?cái)?shù)據(jù)的正常使用,達(dá)到一定的數(shù)據(jù)保護(hù)目的。只有合法用戶獲取到密鑰文件,才能正確、無(wú)損地還原數(shù)據(jù)。綜上分析,本發(fā)明所采用的方法可以成功地應(yīng)用于GIS矢量數(shù)據(jù)的偽裝與還原處理,一定程度上滿足GIS矢量數(shù)據(jù)的隱藏通信與安全傳輸需求。
權(quán)利要求
1.基于要素幾何精度弱化的GIS矢量數(shù)據(jù)偽裝與還原方法,主要包括以下過(guò)程(1)偽裝過(guò)程步驟一打開一個(gè)GIS矢量數(shù)據(jù)圖層文件,讀取屬性字段名稱,設(shè)置處理用的數(shù)值型屬性字段名稱;設(shè)置8位二進(jìn)制隨機(jī)信息作為密鑰Key,并存入密鑰文件;步驟二 判斷圖層類型,如果為點(diǎn)圖層數(shù)據(jù),則執(zhí)行步驟三;如果為線面圖層數(shù)據(jù),則執(zhí)行步驟四;步驟三(a)分別讀取一點(diǎn)要素的所指定屬性信息和幾何信息到數(shù)值型變量a和點(diǎn)對(duì)象Point中;(b)基于如下公式(1),進(jìn)行Point值的精度弱化 Point.X=Point. x+1/f(a)Point. y=Point. y+l/f(a)(1)其中,函數(shù)f (a)為取變量a的屬性等級(jí),其值域?yàn)閇1,η],η為正整數(shù);l/f(a)運(yùn)算中的小數(shù)位數(shù),與相應(yīng)點(diǎn)的小數(shù)位數(shù)保持一致; 步驟四(a)讀取一個(gè)要素中所有點(diǎn)的幾何數(shù)據(jù)到數(shù)組隊(duì)列D中,其指定屬性信息讀取到數(shù)值型變量a中;(b)針對(duì)數(shù)組隊(duì)列D中的每一個(gè)點(diǎn),基于如下公式(2),進(jìn)行Point值的精度弱化 Point. X=Point. x+l/f (a) *g(Key, Mod (i, 8))Point. y=Point. y+l/f (a) *g(Key, Mod(i, 8)) (2) 其中,i為數(shù)組隊(duì)列D中點(diǎn)的序號(hào);Key為密鑰;函數(shù)Mod ()為取余函數(shù);函數(shù)g() 為基于點(diǎn)序號(hào)i值所確定的余數(shù)從密鑰Key中取出相應(yīng)位的取值,其值為O或1 ;函數(shù)f (a) 為取變量a的屬性等級(jí),其值域?yàn)閇1,11],11為正整數(shù);1鄺(幻運(yùn)算中的小數(shù)位數(shù),與相應(yīng)點(diǎn)的小數(shù)位數(shù)保持一致;步驟五根據(jù)不同的圖層類型,循環(huán)執(zhí)行步驟三或步驟四,直至每一要素處理完畢后, 保存?zhèn)窝b后的數(shù)據(jù)文件; (2)還原過(guò)程步驟一選擇處理用屬性字段名稱,打開一個(gè)GIS矢量數(shù)據(jù)圖層文件;讀取密鑰文件并設(shè)置密鑰Key ;步驟二 判斷圖層類型,如果為點(diǎn)圖層數(shù)據(jù),則執(zhí)行步驟三;如果為線面圖層數(shù)據(jù),則執(zhí)行步驟四;步驟三(a)分別讀取一點(diǎn)要素的所指定屬性信息和幾何信息到數(shù)值型變量a和點(diǎn)對(duì)象Point中;(b)基于如下公式(3),進(jìn)行Point值的精度弱化 Point.X=Point. χ-l/f(a)Point. y=Point. y-l/f (a)(3)其中,函數(shù)f(a)為取變量a的屬性等級(jí),其值域?yàn)閇1,η],η為正整數(shù);l/f(a)運(yùn)算中的小數(shù)位數(shù),與相應(yīng)點(diǎn)的小數(shù)位數(shù)保持一致;步驟四(a)讀取一個(gè)要素中所有點(diǎn)的幾何數(shù)據(jù)到數(shù)組隊(duì)列D中,其指定屬性信息讀取到數(shù)值型變量a中;(b)針對(duì)數(shù)組隊(duì)列D中的每一個(gè)點(diǎn),基于如下公式(4),進(jìn)行Point值的精度弱化 Point. X=Point. χ-1/f (a) *g(Key, Mod (i, 8))Point. y=Point. y-l/f (a) *g(Key, Mod(i, 8))(4)其中,i為數(shù)組隊(duì)列D中點(diǎn)的序號(hào);Key為密鑰;函數(shù)ModO為取余函數(shù);函數(shù)g() 為基于點(diǎn)序號(hào)i值所確定的余數(shù)從密鑰Key中取出相應(yīng)的密鑰位,其值為O或1 ;函數(shù)f (a) 為取變量a的屬性等級(jí),其值域?yàn)閇1,11],11為正整數(shù);1鄺(幻運(yùn)算中的小數(shù)位數(shù),與相應(yīng)點(diǎn)的小數(shù)位數(shù)保持一致;步驟五根據(jù)不同的圖層類型,循環(huán)執(zhí)行步驟三或步驟四,直至每一要素處理完畢后, 保存?zhèn)窝b后的數(shù)據(jù)文件。
全文摘要
本發(fā)明公開了一種基于要素幾何精度弱化的GIS矢量數(shù)據(jù)偽裝與還原方法。本發(fā)明的數(shù)據(jù)偽裝方法包括以下步驟(1)打開一個(gè)GIS矢量數(shù)據(jù)圖層文件,讀取屬性字段名稱,設(shè)置8位二進(jìn)制隨機(jī)信息做為密鑰Key;(2)判斷圖層類型針對(duì)點(diǎn)圖層數(shù)據(jù),分別讀取一點(diǎn)要素的所指定屬性信息和幾何信息到數(shù)值型變量a和點(diǎn)對(duì)象Point中,并進(jìn)行Point值的精度弱化;針對(duì)線面圖層數(shù)據(jù),讀取一要素中所有點(diǎn)的幾何數(shù)據(jù)到數(shù)組隊(duì)列D中,其指定屬性信息讀取到數(shù)值型變量a中,并對(duì)D中的每一個(gè)點(diǎn)進(jìn)行Point值的精度弱化;(3)循環(huán)處理完每一要素后,保存?zhèn)窝b后的數(shù)據(jù)。本發(fā)明的方法能有效提高GIS矢量數(shù)據(jù)在數(shù)據(jù)傳輸中的安全性,可應(yīng)用于GIS矢量數(shù)據(jù)的隱藏通信與安全傳輸。
文檔編號(hào)G06F21/24GK102509056SQ20111029351
公開日2012年6月20日 申請(qǐng)日期2011年9月28日 優(yōu)先權(quán)日2011年9月28日
發(fā)明者張馳, 李安波, 閭國(guó)年 申請(qǐng)人:南京師范大學(xué)