陳思元, 巴曉輝,2,3,*, 蔡伯根,2,3, 姜 維,2,3, 王 劍,2,3
(1. 北京交通大學電子信息工程學院, 北京 100044; 2. 北京交通大學軌道交通控制與安全國家重點實驗室, 北京 100044; 3. 北京市軌道交通電磁兼容與衛(wèi)星導航工程技術研究中心, 北京 100044)
全球導航衛(wèi)星系統(tǒng)(global navigation satellite system, GNSS)能夠在全球范圍內提供定位導航授時(positioning, navigation and time, PNT)服務,已被廣泛應用于諸多領域[1]。在一些有物理阻隔或電磁干擾的應用場景下,GNSS信號噪聲增大、可見衛(wèi)星數目減少、系統(tǒng)的多徑誤差增大,系統(tǒng)的可用性、精確性出現明顯不足,由此可以使用一種基于地面設備的偽衛(wèi)星(pseudo satellite, PL)系統(tǒng)[2-4],在衛(wèi)星信號差的區(qū)域輔助GNSS系統(tǒng),實現局部獨立導航定位。然而,隨著電子技術的發(fā)展,衛(wèi)星導航信號電文格式和信號體制細節(jié)在接口控制文件中均可公開,使得接收機易受到多種欺騙干擾的攻擊。因此,研究導航信號防偽認證的方法對于PL導航系統(tǒng)的發(fā)展具有重要意義。
常見信號加密認證技術分為3大類:導航電文認證(navigation message authentication, NMA)技術、擴頻碼認證(spread code authentication, SCA)技術和無碼互相關技術[5-8]。NMA技術可以在不改變信號調制方式的情況下認證消息,抗欺騙效果好且易于接收機實現。國內外對于NMA方案的設計研究主要從數字簽名和加密技術兩方面開展實施。
Wesson等[9-11]設計了一種面向全球定位系統(tǒng)(global positioning system, GPS)民用信號的認證方案,基于Koblitz曲線設計數字簽名,結合密鑰序列方案,設計NMA加密認證方法,可以應對生成式欺騙干擾,但該方案僅對兩種方法進行簡單混合,無法發(fā)揮兩者的性能優(yōu)勢[12]。文獻[13-14]給出了Galileo系統(tǒng)NMA的設計原則,介紹數字簽名在導航電文中的實現和排布,在可行性方面有較大參考價值,但未能解決電文認證數據位占用高、認證效率低等問題。同時,針對Galileo系統(tǒng)導航認證方案的性能評估方法,文獻[15]提出可使用初次認證時間和認證時間間隔作為認證效率的研究指標。唐超等[16]對數字簽名的數字簽名加密認證技術進行研究,給出加密技術原理和性能分析。王洪偉等[17]介紹了常用電文加密認證技術的分類和優(yōu)缺點比較,為北斗衛(wèi)星導航系統(tǒng)的安全性研究提供了設計依據。文獻[18-19]針對北斗系統(tǒng)設計超幀電文認證和北斗主幀組電文認證方案,結合橢圓曲線數字簽名算法(elliptic curve digital signature algorithm, ECDSA)和時間效應流失容錯算法(timed efficient stream loss-tolerant algorithm, TESLA)協(xié)議提高認證方案的安全和效率指標,但目前TESLA尚未具備標準化規(guī)范,存在混合認證實現難度高、密鑰管理開銷大、需增加額外接收機硬件開銷等問題。
隨著衛(wèi)星導航系統(tǒng)的廣泛應用,對于區(qū)域導航系統(tǒng)的需求日益增多,本文采用一種基于國產密碼算法標準的NMA方法,結合PL平臺,利用導航電文未被定義的保留位信息設計數字簽名方案,并對方案設計的導航電文的具體排布方式作出說明。分析表明,該方法無需改變接收機硬件結構,在不同系統(tǒng)誤碼率下,認證錯誤率能維持在較低水平,為保障PL系統(tǒng)信號安全提供了解決方案。
PL是一種基于地面的、能夠傳播類似衛(wèi)星導航信號的發(fā)射器,通常都安裝在低空的開闊區(qū)域[20-21]。PL定位精度高,可以與GNSS組合,提供定位增強服務,且在GNSS衛(wèi)星信號較弱時可以通過自組網構建獨立的定位系統(tǒng),代替衛(wèi)星系統(tǒng)完成定位工作。
PL系統(tǒng)由收發(fā)機、定位接收機和系統(tǒng)組網組成,可以在GPS、北斗信號遮擋的區(qū)域形成地基增強系統(tǒng),提高區(qū)域定位精度,同時通過組網內時間同步,獨立為某些特定區(qū)域提供高精度位置服務。
收發(fā)機作為信號發(fā)射部分由4顆PL信號發(fā)射機構成,可以發(fā)射類似GPS衛(wèi)星信號,產生粗捕獲碼偽距信號,利用載波相位測量,測量精度可達厘米級。收發(fā)機的核心功能是產生和發(fā)射符合定位需求的PL信號,包含基帶信號生成、中頻信號的數模轉換器(digital to analog converter, D/A)轉換和信號上變頻處理等過程,最終產生的信號為定位用戶提供信號源,完成自身位置坐標結算、內部鐘差調整、與其他PL時間同步等,PL收發(fā)機的內部結構如圖1所示。
圖1 PL收發(fā)機結構圖Fig.1 Structure diagram of PL transceiver
接收機作為信號接收部分,主要用于接收并處理PL收發(fā)機發(fā)出的導航定位信號,并進行下變頻、模數轉換器(analog to digital converter, A/D)轉換以及捕獲跟蹤處理,得到信號的觀測量,其內部由接收機天線、中頻A/D轉換模塊、下變頻模塊和基帶信號處理模塊組成,結構如圖2所示。接收機裝置可放置在移動單元上進行動態(tài)航跡測量,能同時接收GPS信號和PL信號。
圖2 PL接收機結構圖Fig.2 Structure diagram of PL receiver
PL信號由載波、測距碼、導航電文3部分構成,信號結構如圖3所示。
圖3 PL信號結構圖Fig.3 Structure diagram of PL signal
測距碼也稱偽隨機噪聲(pseudo random noise, PRN)碼,也叫偽碼,通常由一系列二進制序列碼按一定的編碼規(guī)則產生;導航電文攜帶PL參數信息,導航電文速率和GPS速率一致,為50 bps;載波射頻頻率包含S1、S2兩個頻點,S1、S2信號表達式如下式所示:
(1)
式中:P為信號功率;Di(t)為導航電文;ci(t)為偽隨機序列;fci為對應第i(i=1、2)個頻點的載波頻率;hi([t/T])為跳時序列碼,基礎頻率選為10.23 MHz。PL的擴頻調制采用粗捕獲碼,是一種預先確認、可重復產生和復制的PRN。測距碼和導航電文通過二進制相移鍵控(binary phase shift keying, BPSK)的方式調制得到擴頻碼,然后由載波對擴頻碼進行BPSK調制,得到PL信號。
NMA即使用公鑰數字簽名算法對導航信息進行簽名,認證消息每隔固定的時間發(fā)送一次。NMA非對稱加密方案主要有兩種實現方式:數字簽名(digital signature, DS)技術和TESLA[22-23]。
DS技術一般由簽名方使用私鑰對明文消息加密生成簽名,然后將明文數據和簽名數據組成的簽名信息發(fā)給接收方,接收方使用對應公鑰進行驗證以確定簽名的真?zhèn)?簽名生成和驗簽的一般流程如圖4所示。
圖4 DS生成和驗證流程圖Fig.4 Flowchart of DS generation and verification
ECDSA使用橢圓曲線參數作為描述DS生成過程中公鑰加密方案的密鑰的參數,屬于非對稱的密碼體制,有較好的抗欺騙性能,但是計算開銷較大。
TESLA是一種廣播認證方案,采用對稱加密模型,利用密鑰延遲發(fā)布技術實現非對稱加密,以確保播發(fā)的安全性。該算法使用單向生成逆向使用的密鑰序列,參數序列生成過程如圖5所示。
圖5 TESLA參數序列生成過程Fig.5 TESLA parameter sequence generation process
TESLA技術具有正向生成復雜度低、逆向倒推計算難的特點,有效保證了在下一密鑰披露之前用戶無法計算到下一密鑰信息。認證過程需要發(fā)送方與接收方預先同步時鐘,達成松散的時間同步,且密鑰延遲時間不宜過長,否則欺騙者會有足夠時間根據當前密鑰計算出下一密鑰以實施欺騙。TESLA計算量低、魯棒性好,適合一對多的傳輸。
2.1.1 認證一般模型
一種簡單的公私鑰加密認證方案一般包含4個步驟:① 衛(wèi)星空間段通過私鑰對導航電文的特定字段進行加密處理;② 接收機通過公鑰對導航電文的加密字段進行解密認證,驗證接收信號的有效性;③ 用戶從可靠的密鑰管理機構獲取有效公鑰,防止欺騙干擾方發(fā)布的虛假公鑰引導接收機跟蹤欺騙信號;④ 導航系統(tǒng)運行機構可不定期更換加密私鑰并更換公鑰,避免私鑰被破解而造成接收機無法正確監(jiān)測欺騙信號[24]。NMA的一般模型結構如圖6所示。
圖6 NMA結構圖Fig.6 NMA structure diagram
2.1.2 國密算法
為滿足電子認證服務等應用的需求,國家密碼管理局制定了一系列國產密碼算法,目前主要公開的算法有SM2、SM3、SM4、SM9和ZUC[25-27],其區(qū)別如表1所示。
表1 國產密碼算法比較
SM1算法:分組密碼算法,分組長度為128 bit,密碼長度為128 bit,保密強度和軟硬件實現性能與高級加密標準(advanced encryption standard, AES)相當,算法不公開,僅以知識產權(intellectual property, IP)核的形式存于芯片中,現廣泛用于電子政務、電子商務等領域。
SM2算法:非對稱加密算法,包括SM2-1 ECDSA,SM2-2橢圓曲線密鑰交換協(xié)議,SM2-3橢圓曲線公鑰加密算法,分別用于實現DS密鑰協(xié)商和數據加密等功能。采用橢圓曲線密碼(elliptic curve cryptography, ECC)機制,簽名速度與密鑰生成速度均快于RSA(Rivest Shamir Adleman, RSA)算法,且256位的SM2密碼強度已經比2 048位的RSA密碼強度要高[28]。
SM3算法:雜湊(哈希、散列)算法,無需密鑰,對于任何文本長度不大于264bit的消息,都可以通過SM3算法通過填充和迭代壓縮生成長度為256 bit的雜湊值,填充規(guī)則參考密碼標準,取值范圍更大,且不能通過逆向運算暴露原文數據,適用于商用密碼應用中的DS和驗證,消息認證碼的生成與驗證以及隨機數的生成,安全性要高于消息摘要算法(message digest algorithm, MD5)和安全散列算法(secure hash algorithm 1, SHA-1),可滿足多種密碼應用的安全需求。
SM4算法:對稱加密算法,分組長度為128 bit,密碼長度為128 bit,加密解密共用一套密鑰,均采用32輪非線性迭代結構,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。SM4是專門為無線局域網產品設計的加密算法。
在實際應用中,可根據消息類型采用不同的密碼算法進行認證。密碼算法主要分為對稱加密算法和非對稱加密算法。其中,對稱加密算法加密速度強,但認證信息較少,加密強度一般;非對稱加密算法安全性高,認證信息量大,但由于計算復雜,加密和認證速度相比而言較慢?;谝陨咸攸c,在設計PL信號防偽認證方案時可根據電文保留位大小及電文速率,將國密算法進行組合,在確保認證信息安全的同時,實現更快的認證和密鑰更新速度。
作為信息防欺騙干擾方法的一個分支,基于密碼學的防偽認證方法近年來日趨成熟,具有較高的安全性,可以設計一種使用國產密碼標準加密的NMA方案,考慮到SM1算法不公開,目前僅以IP核的形式存于芯片中,不宜應用于衛(wèi)星通信;SM4是對稱加密算法,密鑰公開后信號安全性無法保障。同時,根據電文設計,PL導航電文第4幀預留位充裕,可以替換全部簽名信息。因此,本文設計使用非對稱加密算法SM2和密碼雜湊算法SM3生成簽名,將明文數據和簽名數據組成的簽名信息發(fā)給接收方,接收方使用對應公鑰進行驗證以確定簽名的真?zhèn)?認證流程如圖7所示。
圖7 NMA流程圖Fig.7 Flowchart of NMA
使用國密算法生成DS認證信息主要包含私鑰生成簽名和公鑰驗證簽名兩部分,具體包括以下步驟。
步驟 1參數驗證。確定橢圓曲線系統(tǒng)參數,包括有限域規(guī)模Fp、Fq,曲線方程E,橢圓曲線上的基點坐標G(xG,yG),以及階數n。根據SM2橢圓曲線公鑰密碼算法[29-30]規(guī)定的條件對上述參數加以驗證,參數有效,可建立認證系統(tǒng)。
步驟 2密鑰產生。輸入系統(tǒng)參數,用戶選取秘密值計算P=d[*]G,P為公鑰,d作為私鑰由加密方保存。
步驟 3簽名生成。輸入系統(tǒng)參數,私鑰d和待簽名消息M,按以下步驟生成簽名,流程如圖8所示。
步驟 3.1置M=ZA‖M;
步驟 3.2計算e=Hash(M),將e的數據類型轉換為整數,Hash()為單項截斷函數;
步驟 3.3用隨機數發(fā)生器產生隨機數k∈[1,n-1];
步驟 3.4計算橢圓曲線點(x1,y1)=[k]G,將x1的數據類型轉換為整數;
步驟 3.5計算r=(e+x1)modn,若r=0或r+k=n則返回重新選取k;
步驟 3.6計算s=((1+dA)-1·(k-r·dA))modn,若s=0則返回重新選取k;
步驟 3.7將r、s的數據類型轉換為字節(jié)串,輸出消息M的簽名為(r,s)。
圖8 DS生成算法流程圖Fig.8 Flowchart of DS generation algorithm
步驟 4簽名驗證:輸入系統(tǒng)參數,公鑰P及收到的消息M′的簽名(r′,s′),按如下步驟驗證簽名,流程如圖9所示。
步驟 4.1檢驗r′∈[1,n-1]是否成立,若不成立則驗證不通過;
步驟 4.2檢驗s′∈[1,n-1]是否成立,若不成立則驗證不通過;
步驟 4.3置M′=ZA‖M′;
步驟 4.4計算e′=Hash(M′),將e′的數據類型轉換為整數;
步驟 4.5將r′、s′的數據類型轉換為整數,計算t=t(r′+s′)modn,若t=0,則驗證不通過;
與其他數字簽名算法相比,SM2 DS算法采用ECC機制,在同等安全性級別條件下,DS過程能保障發(fā)送行為的真實性,有密鑰生成快、DS迅速、計算量小、安全性高等特點。對于軟件接收機而言,只需要存儲公鑰,無需存儲私鑰,在維持較低的通信成本與計算成本的同時,可保障衛(wèi)星導航信息的安全。因此,針對民用衛(wèi)星導航系統(tǒng)開放、透明的特點,使用ECDSA進行認證更為合適。
圖9 DS驗證算法流程圖Fig.9 Flowchart of DS verification algorithm
導航電文是一種二進制碼,包括計算衛(wèi)星位置的有關數據(衛(wèi)星星歷)、系統(tǒng)時間、衛(wèi)星鐘參數、歷書、電離層信息及衛(wèi)星工作狀態(tài)等內容。PL發(fā)射的導航電文數據以二進制碼的形式發(fā)送,以比特、字、子幀和幀的形式被編碼在信號上,并以50 bit/s的速率發(fā)送給接收機,接收方將其用于導航解算。每個主幀有1 500 bit的數據,并分成5個子幀,每個子幀有10個字,每個字為30 bit。幀結構如圖10所示。
圖10 導航電文幀結構圖Fig.10 Frame structure diagram of navigation message
其中,子幀1包含標識碼(如衛(wèi)星星期序號等)、星期數據齡期、時鐘改正數等,子幀2和子幀3包含衛(wèi)星星歷(軌道參數等),子幀4包含衛(wèi)星歷書、協(xié)調世界時間(universal time coordinated, UTC)和電離層改正參數、衛(wèi)星健康狀況等信息,子幀5包含衛(wèi)星歷史和健康狀況信息。
在實際應用中,排布PL導航電文信息時會預留一些分布集中的信息位,考慮到不影響傳統(tǒng)接收機正常接收信號,在定義認證信息位時可以將修改的導航電文安排在保留區(qū)域,以便于對信息進行有效的管理、維護和更新。對整個電文各個子幀中擁有的預留信息位情況進行統(tǒng)計,可得到如表2所示的信息。
表2 導航電文子幀1~5的預留信息位
SM2數字簽名算法生成私鑰長度128 bit,公鑰長度256 bit,簽名長度512 bit,根據導航電文幀結構設計,將512位簽名信息去替換每一頁面不同的保留位,具體的替換位置如表3所示。
表3 簽名信息編排分布
本方案的實驗測試平臺由基于GNU Radio的信號發(fā)射部分、基于Visual Studio OPENSSL的加解密部分以及基于CPU/GPU異構并行計算的信號接收部分組成,如圖11所示。測試過程依照設計的認證方案內容執(zhí)行,先根據密碼算法生成簽名,將添加認證信息的電文數據和星歷文件等輸入到信號生成軟件中,結合軟件無線電設備(universal software radio peripheral, USRP)實時發(fā)送信號,通過設置射頻定義文件和通道定義文件,描述軟件接收機需捕獲跟蹤的信號,結合多支路跟蹤模型,分析導航信號抗欺騙干擾能力。
圖11 實驗測試平臺Fig.11 Experimental test platform
首先對于明文加密、密文解密、簽名生成及認證過程進行仿真,具體實驗步驟和實驗結果如下。
步驟 1密鑰生成
SM2算法安全性和計算復雜度不依賴于參數選擇,橢圓曲線方程的參數是可以公開的,參數選擇步驟滿足系統(tǒng)驗證要求即可,也可使用算法隨機生成。本文方法主要基于國密算法應用,在密鑰生成前會先進行參數驗證,實驗采用國家密碼SM2橢圓曲線公鑰密碼算法推薦的曲線參數:y2=x3+ax+b,a、b為素域中的元素,用于定義橢圓曲線,G(xG,yG)為曲線基點,n表示基點G的階數,參數設置如表4所示。
表4 橢圓曲線參數信息
先驗證曲線參數是否有效,驗證無誤后根據以上參數生成的SM2公鑰、私鑰結果如表5所示。
表5 各階段密鑰生成信息
步驟 2信息加密
實驗選取每一幀的第一子幀的遙測字(telemetry word, TLM)信息作為加密信息,具體的明文信息加密后生成的密文信息如表6所示。
表6 導航電文生成密文信息
步驟 3簽名生成
利用SM3算法生成的摘要信息和SM2算法產生的私鑰一起組成導航電文的簽名信息如表7所示。
表7 簽名認證信息
步驟 4信號接收和驗證
接收端接收到導航信息后,根據表3所示的位置提取簽名內容并驗證信息的可靠性,核驗二者的哈希值是否一致,進而對簽名認證信息的有效性做出判斷:二者一致,導航信息通過驗證,是真實完整的導航信息;否則認證失敗,導航信息存在欺騙干擾的可能,不可用。認證結果如圖12所示。
圖12 信號認證階段的程序運行結果Fig.12 Program running results during the signal authentication phase
步驟 5性能分析
分析數字簽名認證方案的性能主要從安全性和可靠性兩個方面來衡量。
安全性評估可以考慮安全等級參數,安全等級用于衡量密碼算法被暴力破除的難度。在2030年之前,安全等級在112以上的密碼算法均在安全使用范圍內。SM2算法擁有128位安全等級,滿足NIST的安全等級標準,從密碼系統(tǒng)角度考慮是安全的。
可靠性的評估依賴于認證錯誤率(authentication error rate, AER)和認證時間間隔。AER表示沒有攻擊但存在真實傳輸信道干擾的情況下錯誤認證的概率,表示如下:
AER=1-(1-BER)NNA
(2)
式中:BER(bit error ratio BER)指系統(tǒng)位誤碼率;NNA指參與認證的電文比特總數,包含被認證電文和認證信息。
根據本文設計的NMA方案,當NNA為1 500 bit時,不同系統(tǒng)BER下認證錯誤率如圖13所示。由圖13可以看出,當系統(tǒng)BER小于10-5時,本文提出方案的認證錯誤率維持在較低水平,方案可靠性較好。
圖13 不同BER下方案的認證率Fig.13 Authentication rate under different BER
認證時間間隔(time between authentication, TBA)表示接收機正常運行時連續(xù)兩次認證的間隔時間。實際條件下,假設BER=10-6,可計算平均TBA:
(3)
式中:L表示導航電文的幀長度;k表示認證組中的幀數量;Tb表示導航電文碼片持續(xù)時間。對PL系統(tǒng)而言,采用主幀認證方式,L=300,k=5,Tb為0.02 s,可求得平均TBA為30.04 s,認證錯誤率為0.15%。
確定TBA需要權衡安全性和系統(tǒng)性能,TBA過大會導致接收機長時間接收未經認證的信號,增加受到欺騙的風險;TBA過小,需要頻繁認證傳輸電文,會增加計算成本和通信開銷,降低接收機性能。
將本文與其他學者提出的利用保留位進行信息認證的方法[18,31]進行比較,比較結果如表8所示。
表8 方案比較
PL平臺可根據需求自定義信號幀格式,在設計電文格式時在第四幀設計了較多空閑保留位。相比之下,本文可選取密碼強度更高的非對稱簽名算法;同時,將簽名安排在獨立子幀中,便于后期密鑰更新和簽名維護,較短的TBA安全性更好。
PL通信使用無線信道,導航電文作為通信內容易被篡改偽造,本文在分析PL信號特征的基礎上,使用DS技術,設計了適用于PL的NMA方案。通過比較分析,方案在兼容性方面,使用保留位存放數字簽名,與現有的接收機結構兼容,且不影響無認證功能的接收機工作;在安全性方面,使用國密算法避免了國外算法產生的安全隱患,SM2簽名與密鑰生成速度快,密碼強度高,能有效抵御生成式和部分再生式欺騙干擾的攻擊;在靈活性方面,通過電文調整,可以將簽名安排在獨立子幀中,便于對密鑰信息進行有效的管理、維護和更新。在未來的研究中,可以結合擴頻碼,設計與擴頻碼相關的認證方案,嘗試空中密鑰更新的策略,進一步減少時間開銷。