基于混沌序列的矢量地圖數(shù)據(jù)文件加密方法

矢量地圖數(shù)據(jù)文件具有數(shù)據(jù)量小、結(jié)構(gòu)緊湊和冗余度低等特點(diǎn),是地理空間數(shù)據(jù)的一種主要表現(xiàn)形式,也是地理信息系統(tǒng)的最主要的數(shù)據(jù)源。隨著GIS應(yīng)用的普及,矢量地圖數(shù)據(jù)文件的安全問題也日益引起人們的重視。加密技術(shù)是保障數(shù)據(jù)安全的最主要的手段,即對(duì)數(shù)據(jù)文件進(jìn)行加密處理,只有擁有密鑰的合法用戶才能正常使用數(shù)據(jù),而非法的攔截者獲取的是無意義的數(shù)據(jù),從而無法使用。因此,研究對(duì)矢量地圖數(shù)據(jù)文件進(jìn)行加密和解密非常必要。

一、基于混沌序列的矢量地圖數(shù)據(jù)加密算法

混沌系統(tǒng)用于數(shù)據(jù)文件加密最早由英國數(shù)學(xué)家Matthews提出,混沌密碼之所以引起人們的研究興趣,是因?yàn)槟承┐_定而簡單的離散動(dòng)力學(xué)系統(tǒng)所產(chǎn)生的混沌序列具有非常好的偽隨機(jī)性和初值敏感性,偽隨機(jī)性符合Shannon所提出的密碼設(shè)計(jì)應(yīng)遵循的混亂原則;初值敏感性符合Shannon所提出的密碼設(shè)計(jì)應(yīng)遵循的擴(kuò)散原則。另外,通過選取具有白噪聲統(tǒng)計(jì)特性及雪崩效應(yīng)等特性的非線性混沌動(dòng)力系統(tǒng)作為序列密碼密鑰流生成器,就可構(gòu)成有效的混沌序列密碼應(yīng)用。

而由混沌系統(tǒng)對(duì)初值和參數(shù)的極端敏感性可知,選用混沌系統(tǒng)的某一初值或參數(shù)作為密鑰足合適的。因?yàn)椴捎脙蓚€(gè)微小差異的初值或參數(shù)產(chǎn)生的混沌序列足截然不同的,這樣即使攻擊對(duì)手獲知了所采用的混沌模型方面的知識(shí),但若不知道作為密鑰的初值或參數(shù),它將無法破譯/提取加密的信息,從而能夠保證混沌加密系統(tǒng)的安全性。

本文結(jié)合上述思想,根據(jù)矢量地圖數(shù)據(jù)的特點(diǎn),設(shè)計(jì)了基于混沌序列的矢量地圖數(shù)據(jù)的加密算法,加密算法采用Logistic映射生成隨機(jī)序列,再把隨機(jī)序列映射成加密密鑰流,然后,把加密密鑰流與矢量數(shù)據(jù)流逐字節(jié)進(jìn)行“異或¨操作,從而完成數(shù)據(jù)文件的加密。圖1為示意圖。

基于混沌序列的矢量地圖數(shù)據(jù)文件加密方法

二、基于混沌序列的矢量地圖數(shù)據(jù)文件加密方法

1、密鑰的生成

Logistic混沌系統(tǒng)的密鑰即為系統(tǒng)的初值,它是一個(gè)取值范圍在(0.1)間的雙精度實(shí)數(shù),如果讓用戶使用一個(gè)雙精度數(shù)據(jù)作為密鑰,顯然使用不便。因此,可以設(shè)計(jì)下面的密鑰生成方法。

設(shè)有一長為m(m>1)的口令字符串S = C1C2C3……Cm,將該字符串按給定操作映射為(0,1)間的某個(gè)實(shí)數(shù)xo,用x0作為混沌映射的初值,即密鑰。例如,可以把映射操作定義為將組成字符串的各個(gè)字符映射成ASCII碼,再把ASCII碼按照某種規(guī)則收縮、排列,形成(0,1)間的一個(gè)實(shí)數(shù)。如輸入口令的字符串為S=“Drunkl’’,則按照上述方法映射為xo=0. 388487807719,這樣,用戶使用時(shí)不是記住煩瑣的實(shí)數(shù)xo=0.388487807719,而是記住一個(gè)有意義的字符串S=“Drunkl”,既方便使用,又滿足密鑰的條件。

2、加密密鑰流的形成?

以密鑰xo為初值,對(duì)式

基于混沌序列的矢量地圖數(shù)據(jù)文件加密方法

進(jìn)行反復(fù)迭代,生成足夠長度的隨機(jī)序列{xk,k=0,1,2,3.……1},對(duì)隨機(jī)序列{ xk,k=0,1,2,3,……}的各個(gè)元素xk,從小數(shù)點(diǎn)后首位非0數(shù)字開始,順序取9位數(shù)字組成一個(gè)長整型數(shù)據(jù)Ldk,再對(duì)這個(gè)長整型數(shù)據(jù)Ldk進(jìn)行取模運(yùn)算,得到一個(gè)[0,255]之間的整型數(shù)據(jù)dk。所有元素處理完后,把所得的整型數(shù)據(jù)序列{dk,k=1,2,3,……}作為加密密鑰流。

為了增強(qiáng)隨機(jī)性,舍棄開始部分長度為n的序列,即從序列的第n+1位開始作為密鑰流,進(jìn)行信息的加密。

n的確定:設(shè)字符串SS=Ck+1Ck+2Ck+3……Cm(k=m/2)為口令字符串S= C1C2C3…Cm的子串,按與生成初值相同的操作,把它映射為(0.1)間的某個(gè)實(shí)數(shù)d,然后對(duì)d進(jìn)行擴(kuò)散、取整,生成一個(gè)長整型數(shù)據(jù)L,再對(duì)L進(jìn)行取模運(yùn)算,即按式可得n:

基于混沌序列的矢量地圖數(shù)據(jù)文件加密方法

3、文件加密操作

在加密端,把矢量地圖數(shù)據(jù)文件轉(zhuǎn)變成二進(jìn)制文件格式,依次取出各字節(jié)流{mk,k=0,1,2,3,……}與加密密鑰流{dk,k=0,1,2,3,……}進(jìn)行“異或”操作,生成亂碼形式的密文流{pk,k =0,1,2,3,……},即Pk=mk+dk,完成整個(gè)數(shù)據(jù)文件的加密。

由于mk+dk+dk=mk,因此,在解密端,采取與加密端相反的操作,即將密文流{Pk,k=0,1,2,3,……}與完全相同的解密密鑰流{dk,k=0,1,2,3,……}執(zhí)行”異或”運(yùn)算,恢復(fù)出明文流{mk,k=0,1,2,3,……},完成整個(gè)數(shù)據(jù)文件的解密。

小知識(shí)之GIS

GIS即地理信息系統(tǒng)。

地理信息系統(tǒng)(Geographic Information System或 Geo-Information system,GIS)有時(shí)又稱為“地學(xué)信息系統(tǒng)”。它是一種特定的十分重要的空間信息系統(tǒng)。它是在計(jì)算機(jī)硬、軟件系統(tǒng)支持下,對(duì)整個(gè)或部分地球表層(包括大氣層)空間中的有關(guān)地理分布數(shù)據(jù)進(jìn)行采集、儲(chǔ)存、管理、運(yùn)算、分析、顯示和描述的技術(shù)系統(tǒng)。