羅曉萌,閆富朝,孟維曉
(哈爾濱工業(yè)大學電子與信息工程學院,哈爾濱 150001)
為了保證無線通信的信息安全,需要有效可靠的保密機制對信息進行加密?;谖恢玫牡乩砑用芗夹g是將空時信息引入到加解密過程中,并結合傳統(tǒng)數(shù)據(jù)加密算法(如對稱加密和非對稱加密算法)的一種加密技術,為無線通信網(wǎng)絡安全提供了保障。
地理位置加密算法(The Geo-Encryption Algorithm)在2003年首次由Logan Scott和Denning提出,根據(jù)接收機的位置、速度和時間(Position Velocity and Time,PVT)對數(shù)據(jù)信息進行加密。為了克服接收機定位不準確、不一致的問題,Liao H-C和H.Hamad等分別提出了靜態(tài)位置加密算法(Location Dependent Encryption Algorithm,LDEA)和動態(tài)容忍距離(Dynamic Toleration Distance)加密算法。文獻[4-5]給出了LDEA在移動系統(tǒng)中的應用,文獻[6-7]討論了地理加密技術在云計算中的應用。隨著傳統(tǒng)加密中高級加密標準(Advance Encryption Stan-dard,AES)算法的提出,地理加密中的AES-DEDTD協(xié)議也逐漸取代了DES-GEDTD協(xié)議。文獻[10-11] 比較了AES-DEDTD協(xié)議和DES-GEDTD協(xié)議在時延和能量消耗等不同參數(shù)下的區(qū)別,并在此基礎上改進了現(xiàn)有的地理位置加密協(xié)議,提高了基于位置網(wǎng)絡的數(shù)據(jù)傳輸性能。
國內(nèi)對于地理加密技術的研究較少,2015年徐麗麗提出了在車載自組織網(wǎng)絡中基于位置加密的概念;文獻[13]利用節(jié)點位置給出了一種基于位置的動態(tài)網(wǎng)絡安全認證機制;文獻[14]提出了一種基于位置密鑰交換的可證安全模型。
傳統(tǒng)的地理位置加密主要存在需要第三方的密鑰管理與分發(fā)中心且加密算法與空時信息不適配等問題。本文在前人研究的基礎上,提出了一種基于北斗衛(wèi)星導航系統(tǒng)的定位授時服務與短報文業(yè)務,利用合法接收方的空時信息進行加解密的安全通信方法。該方法具有以下3個特點:
1)通過北斗衛(wèi)星導航系統(tǒng)的短報文業(yè)務省去第三方的密鑰管理與分發(fā)工作。收發(fā)雙方共享接收方的空時信息,采用相同的密鑰生成算法生成密鑰,可以保證收發(fā)雙方用于加解密的密鑰相同。此時不需要專門的密鑰管理中心即可實現(xiàn)密鑰的共享,降低了設備的計算與存儲要求,極大地減少了安全通信的成本,且避免了由第三方密鑰管理中心帶來的安全隱患。
2)設計了適用于空時信息的MD5-Logistic密鑰生成算法和基于地理位置的加密算法。傳統(tǒng)的地理位置加密技術一般以空時信息作為輸入,直接采用標準的哈希函數(shù)或混沌映射生成密鑰,再通過對稱加密或非對稱加密算法進行加解密。本文考慮到空時信息具有變化快、覆蓋范圍相對固定等特點,對標準算法進行改進,得到更適合處理空時信息的安全通信方法。
3)實現(xiàn)了我國自主的地理位置加密安全通信。目前的地理位置加密主要通過全球定位系統(tǒng)獲取用戶的地理位置信息,隨著我國北斗導航系統(tǒng)的全面建成,用戶可以通過北斗系統(tǒng)獲取空時信息進行加密,逐步實現(xiàn)我國獨立自主的地理位置加密。
文本的結構安排如下:第1節(jié)給出了整個安全通信的系統(tǒng)模型;第2節(jié)具體闡述了該安全通信方法中提出的2個改進算法:MD5-Logistic密鑰生成算法與適配的加密算法;第3節(jié)對上述提出的2個算法的性能進行了檢測;第4節(jié)在此基礎上對北斗導航系統(tǒng)定位模塊精度進行了實測,并給出了通信成功率與容忍距離間的關系;第5節(jié)對全文進行了總結。
本文提出的安全通信方法的系統(tǒng)模型如圖1所示,其中包括了北斗導航系統(tǒng)、發(fā)送方和接收方三部分。
圖1 系統(tǒng)模型Fig.1 The system model
該安全通信方法分為4個步驟,依次為接收空時信息、共享空時信息、密鑰生成與加解密。首先,數(shù)據(jù)接收方通過北斗導航系統(tǒng)獲取自己的空時信息,并通過短報文業(yè)務共享給數(shù)據(jù)發(fā)送方。收發(fā)雙方以空時信息為輸入,根據(jù)本文提出的MD5-Lo-gistic密鑰生成算法得到相同的密鑰。隨后,發(fā)送方根據(jù)生成的密鑰利用加入地理位置的AES算法對信息進行加密,接收方收到密文后以相同的密鑰進行解密,最終得到原始明文數(shù)據(jù)。
綜上所述,本文主要需要解決以下2個問題:
1)設計適用于處理空時信息的密鑰生成算法??諘r信息具有動態(tài)變化快和覆蓋范圍相對固定等特點,因此需要對傳統(tǒng)的密鑰生成算法進行改進。
2)設計適配于上述密鑰的AES對稱加密算法。對傳統(tǒng)的加密算法進行改進,通過加入地理位置信息使加密算法實現(xiàn)動態(tài)更新,提高密文的安全性。
本節(jié)針對上述提出的2個問題分別給出相應的算法:MD5-Logistic混沌映射密鑰生成算法與基于地理位置的AES算法。前者將接收方的空時信息映射成具有高隨機性的密鑰,后者則通過密鑰對明文進行加密。
該密鑰生成算法以哈希函數(shù)中的MD5算法為原型,通過改進的Logistic混沌序列對空時信息進行填充后,進行MD5雜湊函數(shù)映射。
改進的Logistic混沌序列如下
+1=()=××(1-)-
?××(1-)」
(1)
其中,為控制參數(shù),選用北斗報文信息中的緯度信息確定控制參數(shù);經(jīng)度信息作為混沌映射的初值;時間參數(shù)模10000作為迭代次數(shù)。+1取迭代結果后的小數(shù)部分。
密鑰生成的具體步驟如下:
1)對空時信息進行預處理,提取經(jīng)度緯度時間參數(shù)。以北斗官網(wǎng)給出的一種報文信息格式為例,當接收到的報文信息為$GNGLL,3413.9977,N,10854.5696,E,019998.000,A,A*46時。其中,緯度信息3413.9977決定Logistic混沌映射的控制參數(shù)。為了避免混沌序列出現(xiàn)迭代不均勻等問題,需要保證控制參數(shù)在任何位置都大于2600,故取緯度信息加2600作為控制參數(shù)。經(jīng)度信息10854.5696作為Logistic混沌映射的初值。時間參數(shù)019998.000用于確定混沌序列的迭代次數(shù)。由于時間將隨著通信次數(shù)不斷增加,為防止時間參數(shù)過大影響加密速度,故取時間參數(shù)整數(shù)部分19998模10000作為迭代次數(shù)。確定初值、控制參數(shù)及迭代次數(shù)后,通過式(1)產(chǎn)生基于空時信息的混沌序列。
2)將定位報文信息轉(zhuǎn)換為ASCII符的形式并與上述產(chǎn)生的混沌序列拼接。
3)對定位報文信息與混沌序列拼接的混合序列進行MD5雜湊函數(shù)運算,得到基于空時信息的密鑰,即MD5(定位報文信息+混沌序列)。
密鑰生成算法如圖2所示。
圖2 MD5-Logistic混沌映射密鑰生成算法Fig.2 MD5-Logistic chaotic map key generation algorithm
經(jīng)過上述密鑰生成算法,該空時信息生成的密鑰為1C05040962D5FABFD6A77CB48642A6A1,是一串長度為16的ASCII碼,對應于下一步AES對稱加密中的128bit輸入密鑰。圖3所示為密鑰生成界面,輸入定位報文信息后,會根據(jù)上述算法顯示從報文信息中提取的用于混沌序列迭代的初值系數(shù)、迭代系數(shù)及迭代次數(shù),并生成相應的密鑰。
圖3 MD5-Logistic混沌映射密鑰生成系統(tǒng)界面Fig.3 MD5-Logistic chaotic map key generation system interface
AES算法是一種明文長度為128位的分組密碼算法。本文以標準AES算法為基礎,采用上述密鑰生成算法得到的128位密鑰進行加密。本文主要對與密鑰相關的輪密鑰加操作進行改進,充分利用北斗收發(fā)雙方可以共享空時信息這一特點,將接收方的地理位置信息加入到AES算法中,使加密不僅依賴于密鑰,同時也需要接收方的位置信息。
在密鑰擴展階段,不再使用僅由初始密鑰得到的輪密鑰,改為由初始密鑰和地理信息一起擴展得到包含地理位置的輪密鑰。其密鑰擴展過程如圖4所示。
圖4 基于地理位置的輪密鑰生成過程Fig.4 Location-based round key generation process
具體的輪密鑰生成步驟如下:
1)初始密鑰共128bit,表示為16個字節(jié),即~,這16個字節(jié)可以得到一個四字(,,,),記為初始密鑰的一個狀態(tài);
2)將空時信息經(jīng)度和緯度的整數(shù)部分拼接并轉(zhuǎn)換為32位,記為地理位置信息;
3)在余下40個字(,=4 ~ 43)的計算中,引入地理位置信息,每次計算均按位異或(XOR)。根據(jù)取值的不同,有以下兩種計算方法:當滿足mod4 ≠ 0時,=-1?-4?;當滿足mod4=0時,=?-4?。其中參數(shù)是一個臨時字,與標準AES中給出的相同。
以報文信息$GNGLL,3413.9977,N,10854.5696,E,015217.000,A,A*46為例,當發(fā)送方接收到接收方的空時信息后,通過上文的MD5-Logistic混沌映射密鑰生成算法生成128bit密鑰:268B6C61219E937DFACABB2F8C3AB824。將經(jīng)緯度的整數(shù)部分拼接并轉(zhuǎn)換為32位,得到地理位置信息。假設輸入明文為9798C4601BAD75E7C3227DB910174E72,通過改進的基于地理位置的AES算法進行加密,結果如表1所示。
表1 基于地理位置的AES加密結果
當合法接收方以相同的空時信息生成相同密鑰,且采用上述基于地理位置的方法擴展生成輪密鑰后,可以成功地對密文進行解密,得到相同的明文信息,完成整個加解密過程,實現(xiàn)安全通信。解密結果如表2所示。
表2 基于地理位置的AES解密結果
當非法的第三方截獲密文信息進行解密時,由于無法使用正確的密鑰,得到的明文信息與發(fā)送方傳送的不同,有效防止了第三方的竊聽。此時使用只有一位不同的密鑰進行解密,解密結果如表3所示。
表3 非法用戶的解密結果
本節(jié)將對第2節(jié)提出的2個算法的性能分別進行分析。
對于密鑰來說,密鑰的隨機性越好、越接近理想的白噪聲序列,用于加密的密文的安全性則越高。本文采用2012年3月由國家密碼管理局發(fā)布的《中華人民共和國密碼行業(yè)標準》中的隨機性檢測規(guī)范,對上述MD5-Logistic混沌映射密鑰生成算法生成的密鑰進行檢測。
根據(jù)密鑰長度選擇該標準中的6個測試項目,檢測結果如表4所示。
表4 密鑰隨機性檢測結果
本文提出的MD5-Logistic混沌映射密鑰生成算法以高概率通過了國家密碼管理局商用密碼測試標準的部分適合檢測項目,具有較強的隨機性,可以在加密中得到廣泛應用。與傳統(tǒng)的MD5雜湊函數(shù)相比,在不影響密鑰生成速度的情況下,通過加入混沌序列,提高了密鑰抗字典攻擊的能力,為加密安全提供了保障。
此外,該算法在保證填充序列隨機性的同時,通過北斗的短報文業(yè)務省去了第三方對隨機序列的管理分發(fā)工作,不需要一個專門的密鑰管理中心即可實現(xiàn)密鑰的共享,減少了安全通信的成本,且避免了由第三方密鑰管理中心帶來的安全隱患。
密文的安全性指標應為將明文相關性降低的能力。密文是對明文內(nèi)容的一種隱藏,當明文間有極高相關性時,密文應該破壞這種規(guī)律,表現(xiàn)出無關性。
本文采用漢明距離度量兩次通信中的明文互相關性及密文互相關性,漢明距離越小說明兩個序列越相近。將上述輸入明文轉(zhuǎn)換為128位二進制比特,當128位中有一位發(fā)生變化時,通過上述改進的AES算法得到其密文輸出,計算改變輸入后新密文與原密文的漢明距離。此時,密文間漢明距離的大小反映了當輸入明文相關性極高時輸出密文的變化情況。由于此時的輸入輸出皆為128位二進制0、1序列,故理想情況下,兩次密文的漢明距離應為64,即占比50%。這種情況說明即使兩次明文序列相關性極強,只有1bit發(fā)生變化,但兩次密文卻沒有任何相關性,即加密算法成功地破壞了這種相關性,讓竊聽者無跡可尋。理想漢明距離為64而不是128的原因是,如果兩次密文相互比較所有比特都發(fā)生變化,則相當于一次0、1之間的翻轉(zhuǎn),不再具有隨機性。
根據(jù)上述分析,分別改變輸入明文的第1位至第128位,計算密文的漢明距離,并統(tǒng)計得出平均漢明距離為63.7312,占密文序列長度的49.79%,與理想情況的50%十分接近。由此說明,此加密方法將明文0.78%的漢明距離提高到接近理想的49.79%,成功地降低了兩次通信之間的相關性,結果如圖5所示。
圖5 改變不同位置一位明文后的新舊密文漢明距離Fig.5 The Hamming distance between old and new ciphertext after changing one plaintext in different positions
此外,在AES算法的密鑰擴展階段引入地理位置信息后,最終得到的輪密鑰與接收方的地理位置相關,且地理位置信息的微小變化可以引起加密過程的巨變,極大地提高了密文的抗攻擊性能。根據(jù)接收方位置的經(jīng)緯度變化,每次加密的輪密鑰實現(xiàn)動態(tài)更新。同時,因為收發(fā)雙方可以實時共享接收方的空時信息,故雙方的輪密鑰計算過程一致,不影響解密。
本節(jié)考慮到在實際應用中,北斗定位通信模塊自身存在一定的精度誤差范圍,即使在固定點進行多次測試,定位經(jīng)緯度也會有一定的變化。而上述密鑰生成方法與加密方法完全依賴于空時信息,接收方地理位置經(jīng)緯度的任何微小變動都會導致密鑰與加密結果的不同。因此,為了使系統(tǒng)更加穩(wěn)定且實用,需要設置一定的容忍距離,即當經(jīng)緯度變化在一定范圍內(nèi)時,都可以用相同的密鑰來加解密,從而提高系統(tǒng)的魯棒性。
在加入容忍距離之前,首先需要考慮北斗接收機自身的定位精度及誤差范圍。本文采用實驗實測的方法對第一代北斗定位通信模塊的定位精度進行測量。
本文使用的北斗接收機是北京北斗教儀科技有限公司的第一代北斗定位通信模塊。該模塊如圖6所示,兩邊需要分別連接12V電源及無源天線。在測試方法中選擇連續(xù)定位,該模塊會以1min一次的頻率連續(xù)輸出定位信息,并自動保存于命名為“定位信息”的txt文本中。
圖6 北斗定位通信模塊Fig.6 BeiDou positioning communication module
北斗定位通信模塊定位精度的測量應選擇空曠、人流量較小且正南方向無遮擋的區(qū)域。本文分別選擇了2個地點進行測試,測試環(huán)境的實景圖如圖7所示。
圖7 測試環(huán)境實景圖Fig.7 Test environment
測量北斗定位通信模塊定位誤差的方法為在不同位置分別連續(xù)多次定位,記錄并統(tǒng)計其定位信息。由于測量時天線附近人員走動、天線不穩(wěn)定等不可避免原因,處理中采用去除偏差極大的不可靠數(shù)據(jù)點后計算其均值作為該點的真實經(jīng)緯度坐標,并計算其他數(shù)據(jù)點相對于真實坐標的定位偏差。對于哈爾濱工業(yè)大學操場所選位置,經(jīng)度坐標的均值為126°37′38.3″,緯度坐標的均值為45°44′15.6″,經(jīng)度最大偏差為±0.2″,緯度最大偏差為±0.2″。對于哈爾濱工業(yè)大學科創(chuàng)大廈停車場所選位置,經(jīng)度坐標的均值為126°37′30.3″,緯度坐標的均值為45°43′37.0″,經(jīng)度最大偏差為±0.2″,緯度最大偏差為±0.1″。根據(jù)經(jīng)緯度與米的換算關系,經(jīng)度中1m對應0.00001141°,即0.041″;緯度中1m對應0.00000899°,即0.032″。故在此次實測中,經(jīng)度坐標的誤差范圍半徑為4.88m,緯度坐標的誤差范圍半徑為6.25m。
上述實測數(shù)據(jù)表明,在實際應用中,即使在同一點進行定位得到的經(jīng)緯度坐標也有一定的幅度變化范圍。定位誤差不僅與北斗定位通信模塊的精度有關,也與不同測量點的環(huán)境如有無大型遮擋物、測量時間及天線波束強度等方面有關。
容忍距離(Tolerance Distance,TD)指成功解密時接收方的實際坐標距目標坐標之間的最遠距離,同時也意味著容忍距離范圍內(nèi)的坐標在密鑰生成階段將生成相同的密鑰,即將解密從一個特定目標點擴大到以目標坐標為圓心、容忍距離為半徑的圓周內(nèi)。在此解密圓周內(nèi),圓心的目標坐標位置代表了整個圓周各個點的坐標。加入容忍距離后,不同空時信息通過MD5-Logistic混沌映射密鑰生成算法得到的密鑰如圖8所示。此時,不再是由經(jīng)緯度空間中一點映射成一個密鑰,而是空間中的一片區(qū)域?qū)粋€相同的密鑰。圖中每一個密鑰方格的長度即為容忍距離的大小。
圖8 加入容忍距離后的經(jīng)緯度坐標與密鑰關系映射圖Fig.8 Mapping latitude and longitude coordinates with keys after adding tolerance distance
容忍距離的加入使解密過程變得更加靈活。發(fā)送方可以根據(jù)用戶的實際需求、不同接收機的誤差范圍及加解密環(huán)境等各種因素,將容忍距離和接收機的目標位置一同作為加密的地理位置參數(shù)。然而解密范圍的擴大意味著解密區(qū)域內(nèi)的其他用戶也可以成功解密,增加了非法接收方竊聽的可能,降低了安全通信系統(tǒng)的安全性。因此,一個合理的容忍距離應由發(fā)送方根據(jù)加密內(nèi)容的安全性與解密成功率折中考慮,給出一個適當?shù)膮?shù)。
在不考慮天氣、遮擋物和天線指向影響的情況下,定位測試結果的經(jīng)緯度變化范圍應為均勻分布。為使容忍距離的設定更具一般性,本文按照均勻分布考慮經(jīng)緯度的變化范圍。有效坐標指在所有測試的定位結果中,定位坐標在對應容忍距離內(nèi)的坐標占所有坐標數(shù)量的比值。如當容忍距離為100m時,有效坐標指測量坐標緯度與真實坐標緯度之差在3.2364″內(nèi),經(jīng)度與真實坐標經(jīng)度之差在4.1076″內(nèi)。當用戶坐標為有效坐標時,收發(fā)雙方才可以搭建安全通信線路,即用戶才可以通過本文設計的安全通信方法進行安全通信。盡管用戶坐標為有效坐標只是用戶成功通信的必要條件,通信成功率的測量還需經(jīng)多次實驗,綜合考慮通信環(huán)境、收發(fā)設備、信道等其他外在因素影響。但在此為了更直觀地表示用戶實際坐標及容忍距離與通信成功率的關系,認為其他條件均為理想條件,不影響用戶通信成功率。此時,可以得到容忍距離與通信成功率之間的關系,如圖9所示??梢园l(fā)現(xiàn),通信成功率隨容忍距離的增加而增大,當容忍距離為100m時,通信成功率可以達到理想的100%。
圖9 通信成功率與容忍距離的變化關系Fig.9 The relationship between communication success rate and tolerance distance
為了使容忍距離的設定更貼近實際,對科創(chuàng)大廈停車場位置實際測試的定位報文信息和多次通信結果進行分析。本文取多次測量結果的平均值作為真實坐標,容忍距離設定范圍為0~50m,測試結果如圖10所示??梢园l(fā)現(xiàn),通信成功率隨容忍距離的增大而提高,當容忍距離為25m時,通信成功率可以達到100%。這表明實際測試中,定位通信模塊的精度會發(fā)生變化,只有在極為惡劣的情況下,模塊的定位精度才會為給出的極限值100m。實際使用時,精度可能會受其他因素的影響而改變,需要根據(jù)實測值設定合理的容忍距離范圍。對于哈爾濱工業(yè)大學科創(chuàng)大廈停車場的實測點,本文設定的合適容忍距離為25m。
圖10 實測點通信成功率與容忍距離的變化關系Fig.10 The relationship between communication success rate and tolerance distance of measured points
進一步分析,容忍距離的設定與多個因素相關。直接影響因素是硬件模塊的定位精度,定位精度越高,容忍距離的設定應越低。同時,由于定位誤差的影響,會出現(xiàn)接收方在真實位置附近時也能正確解密,即保密區(qū)域不只在某一點而是在某個范圍內(nèi)的情況。圖11所示為在不同距離時容忍距離與通信成功率的變化結果。通過連續(xù)測量真實坐標附近50m內(nèi)的坐標,根據(jù)不同的容忍距離,分別計算各個范圍內(nèi)符合要求的坐標占全部坐標的比值,從而得到相應的通信成功率??梢钥闯?,當容忍距離為0m時,成功率為0%,說明此時沒有符合要求的坐標,條件過于苛刻;當容忍距離從5m變化到35m時,通信成功率隨距離的增加而逐漸降低。當距真實坐標的距離在容忍距離范圍內(nèi)時,通信成功率較高,但由于系統(tǒng)自身的定位誤差,沒有達到100%;當距真實坐標的距離在容忍距離范圍外時,通信成功率會逐漸降為0%。沒有立刻降為0%的原因是由于定位誤差的影響,導致在容忍距離范圍外也測得了符合要求的坐標。在未來的工作中,可以進一步分析容忍距離和接收方移動距離與路徑之間的關系,設置動態(tài)的容忍距離,以提高系統(tǒng)的智能性。
圖11 不同距離時容忍距離的變化結果圖Fig.11 Results of tolerance range of different distances
本文針對空天地一體化網(wǎng)絡的安全問題,提出了一種利用用戶空時信息進行加密的安全通信方法。該方法通過將接收方空時信息加入到密鑰生成算法和對稱加密算法中,使密鑰和加密過程隨位置變化實現(xiàn)動態(tài)更新。仿真結果表明,本文提出的MD5-Logistic混沌映射密鑰生成算法具有高隨機性,可以更有效地抵抗字典攻擊和窮舉攻擊,加入地理位置的AES算法生成的密文可以降低明文間的相關性,使明文0.78%的漢明距離提高到接近理想的49.79%。最后為了進一步提高系統(tǒng)的魯棒性和實用性,本文將容忍距離加入到安全通信方法中,通過實測得到通信成功率與容忍距離間的變化關系,并給出指定地點的合適容忍距離。
隨著大眾手機成功實現(xiàn)北斗三號的短報文通信功能,短報文業(yè)務已經(jīng)逐漸實現(xiàn)由面向部分行業(yè)服務到面向大眾服務的拓展轉(zhuǎn)型,改善了本文提出的安全通信方法的局限性。 此外,根據(jù)北斗短報文業(yè)務的性能指標,其服務頻度為30s一次,最高可達1s一次,而密鑰的更新頻率與空時信息的更新頻率一致,根據(jù)接收機的請求頻率最高為100Hz。對于一般的民用場景,1s一次的加密密鑰更新率已經(jīng)可以滿足加密通信的需求;對于軍用等需要更高加密通信頻率的特殊場景,該安全通信方法存在一定的局限性,后續(xù)可以考慮聯(lián)合軌跡的位置預測以提高密鑰的更新速率。