一種衛星定位數據加密系統及加密方法
【專利摘要】本發明涉及一種衛星定位數據加密系統及加密方法,該系統的前端設備通過前端控制處理器處理衛星接收機接收到的信息,并將處理后的信息存儲到存儲器內,同時將處理后的信息通過數據傳輸器件發送到通信鏈路;中心數據傳輸器件接收通信鏈路傳來的信息,并將其傳送至中心控制處理器處理并將其存儲到中心存儲器內,同時將處理后的信息發送至展示器件和應用系統;在前端控制處理器上連接有加密/驗簽芯片用于對衛星接收機接收到的信息進行加密處理,以及對接收到的控制指令進行驗證,在中心控制處理器上連接有解密/驗簽芯片用于對中心數據傳輸器件接收到的信息進行解密處理,以及對發往前端的控制指令進行簽名。該系統可以在盡量少增加系統復雜性的情況下,保證前端定位數據在通過通信鏈路傳輸過程中的信息安全。
【專利說明】一種衛星定位數據加密系統及加密方法
【技術領域】
[0001]本發明涉及衛星導航定位、信息安全【技術領域】,具體涉及一種衛星定位數據加密系統及加密方法。
【背景技術】
[0002]使用衛星導航定位接收機可以很方便地獲取某人或某物在某一特定時刻所在的地理位置信息,加上必要的控制、傳輸、處理設備,可以構成各種前端位置展示或指揮調度系統,如出租車調度系統、公務用車管理系統、警力分布實時展示系統等。一個基本的前端位置展示應用系統一般由前端設備、通信鏈路和中心三部分組成。
[0003]前端設備是應用系統的數據源頭,一般由衛星導航定位接收機、控制及數據處理部件、存儲部件、數據傳輸部件等組成,能夠接收并響應中心指令,獲取衛星定位數據,按要求對數據進行處理(協議轉換、加密等),存儲或/和通過數據傳輸部件向中心發送數據。
[0004]通信鏈路的作用是在前端設備和中心之間建立起一個透明的雙向數據傳輸通道,保證前端設備與中心之間的數據交換能夠順利進行。由于前端設備一般經常處于移動狀態,通信鏈路一般是無線形式的,可以是2G、3G、4G等公眾通信網絡,也可以是TETRA、PDT等專用通信網絡。
[0005]中心是前端設備的管理者,以及前端衛星定位數據的用戶。中心一般由通信鏈路接口、數據存儲、處理、展示等設備組成。前端與中心之間既可以通過各種通信鏈路相聯(在線式);也可以平時相互獨立運行,只是在需要時才將前端數據傳送給中心(離線式)。
[0006]通過這樣一套技術系統,管理人員可在中心內對一個或多個前端設備所處的位置或運行軌跡進行展示、監控、分析、記錄,也可將對應的位置數據通過存儲器予以存儲,作為以后檢索或查證的資源或憑據。這樣的應用系統因構造簡單、成本低廉而獲得了大量應用,如許多車輛管理系統、出租車調度系統都采用這種方式。
[0007]不過,由于前端設備所傳送的衛星定位數據是通過無線鏈路及公共網絡傳輸的,所傳輸的位置數據是未加任何保護的“裸”數據,其內容很容易被懷有惡意的組織、人員非法獲取,存在重要的安全隱患。例如,前端設備的載體可能是運送重要人員(黨和國家領導人、社會名人、軍隊等)、運輸重要物資(武器、放射性材料、危險化學品、爆炸物等)的車輛,也可能是正在執行重要任務的人員(重大活動現場的保衛人員、反恐維穩前線的作戰部隊等),一旦這些敏感人員或物資的位置信息被“三股勢力”分子非法獲取,則極有可能對國家、社會造成嚴重危害。因此,有必要采取措施對此類事件的發生予以有效防范。
[0008]目前普通前端位置展示應用系統所存在的定位信息易被非法竊取的缺陷,嚴重影響了這些系統的適用范圍,并隱藏著很大的安全隱患。
【發明內容】
[0009]本發明的目的是,針對現有技術存在的問題,提供一種對現有系統在結構上所進行的改進:在前端設備內增加數據加密/驗簽芯片,前端設備采集到衛星定位數據后,先對定位數據進行加密處理,然后再通過通信鏈路向中心傳送;中心內增加數據解密/簽名部件,在收到前端發來的定位數據后,先對數據進行解密處理,然后再送給應用系統進行展示、存儲或其他處理。通過選擇合適的加密算法(SM2/SM4)及策略(會話公鑰加密/對稱算法加密),可以在盡量少增加系統復雜性的情況下,保證前端定位數據在通過通信鏈路傳輸過程中的信息安全。
[0010]為實現上述發明目的,本發明采用的技術方案是:提供一種衛星定位數據加密系統,該系統包括前端設備、通信鏈路和中心,前端設備通過前端控制處理器處理衛星接收機接收到的信息,并將處理后的信息存儲到前端存儲器內,同時將處理后的信息通過前端數據傳輸器件發送到通信鏈路;中心中的中心數據傳輸器件接收通信鏈路傳來的信息,并將其傳送至中心控制處理器處理,中心控制處理器將處理后的信息存儲到中心存儲器內,同時將處理后的信息發送至展示器件和應用系統;其特征在于,在前端控制處理器上連接有加密/驗簽芯片,加密/驗簽芯片用于對衛星接收機接收到的信息進行加密處理,以及對接收到的控制指令進行驗證,在中心控制處理器上連接有解密/簽名部件,解密/簽名部件用于對中心數據傳輸器件接收到的信息進行解密處理,以及對發往前端設備的控制指令進行簽名。
[0011]其中優選的技術方案是,所述前端數據傳輸器件為3G通信模塊,中心數據傳輸器件均為3G通信模塊或為網絡接口。
[0012]優選的技術方案還有,所述衛星接收機為北斗衛星定位接收機模塊,其型號為UM220-3、NE0-M8N。
[0013]優選的技術方案還有,所述前端存儲器為RAM、ROM、FLASH、EEPROM中的任意一種或其任意組合,所述前端存儲器為控制處理器內的存儲器或為外部擴展存儲器;所述中心存儲器為存儲硬盤或為SSD存儲器。
[0014]優選的技術方案還有,所述加密/驗簽芯片的型號為A980(SSX1111)、IS32U256A(SSX1014)等,加密/驗簽芯片用于存放預置的根密鑰公鑰、會話密鑰公鑰,生成并保存連續加密傳輸數據加密密鑰CK,配合前端控制處理器進行SM2、SM4加密運算;所述解密/簽名部件為安全服務器,用于支持SM2、SM4算法。
[0015]優選的技術方案還有,所述前端控制處理器的型號為STM32,或為S3C2440 ;所述中心控制處理器為PC機或為服務器。
[0016]本發明采用的另一個技術方案是:提供一種衛星定位數據加密系統中的方法,其特征在于,所述加密方法包括如下步驟:
[0017]S1、在前端設備及中心分別增加了使用SM2/SM4算法的衛星定位信息加密/驗簽芯片和解密/簽名部件;
[0018]S2、系統初始化;
[0019]S3、會話密鑰的設置及更新;
[0020]S4、數據的加密及解密。
[0021]其中優選的技術方案是,所述系統初始化的過程包括:
[0022](I)、中心內的SM2解密/簽名部件產生用于簽名/驗簽過程所需的根密鑰對公鑰/私鑰,將其中的根密鑰私鑰保存在SM2解密/簽名部件內,并保證該私鑰不能被讀出部件外;同時保存公鑰;[0023](2)、前端設備在使用前需到中心進行注冊登記,同時將中心所產生的根密鑰對中的根密鑰公鑰保存到前端設備的SM2加密/驗簽芯片內,并采取保護措施使其不能被輕易修改。
[0024]優選的技術方案還有,所述會話密鑰的設置及更新的程序包括:
[0025](I)、中心內的SM2解密/簽名部件產生用于對定位數據進行加密/解密過程所需的會話密鑰對公鑰/私鑰,將其中的會話密鑰私鑰保存在SM2解密/簽名部件內,并保證該會話密鑰私鑰不能被讀出部件外;同時保存會話密鑰公鑰;
[0026](2)、中心用根密鑰私鑰對會話密鑰公鑰進行簽名,生成簽名數據(為防止重放攻擊,所有要簽名的數據中均應加入時間信息,下同);
[0027](3)、中心向前端設備發送會話密鑰中公鑰設置/更新指令,同時將會話公鑰以及簽名數據發送給前端設備;
[0028](4)、前端設備用保存的根密鑰公鑰對接收到的簽名數據進行驗證,以證實所收到的會話密鑰公鑰是否由中心所發;若驗證通過,則將接收到的會話公鑰保存到前端設備的SM2加密/驗簽芯片內,作為前端設備與中心之間的會話密鑰。
[0029]優選的技術方案還有,所述數據的加密及解密過程包括單次傳輸數據加密解密過程和連續傳輸數據加密解密過程;
[0030]其中單次傳輸數據加密解密過程為:
[0031](I)、中心向前端設備發送單次加密傳輸指令SE,在SE指令內還應包含要求傳送的是基本位置數據BP、還是擴展位置數據EP的信息,并用會話密鑰私鑰對SE進行簽名,生成簽名數據S-SE,同時將S-SE發送給前端設備;
[0032](2)、前端設備用保存的會話密鑰公鑰對S-SE進行驗證,以確認所收到的指令是來自中心;
[0033](3)、前端設備按SE指令要求將要傳輸的數據按規定格式轉換為基本位置數據或擴展位置數據,使用設備內的SM2加密/驗簽芯片以及會話密鑰公鑰對基本定位數據BP或擴展位置數據EP進行加密,生成加密定位數據SE-BP或SE-EP。
[0034](4)、前端設備將加密定位數據SE-BP或SE-EP通過前端數據傳輸器件及通信鏈路發送到中心;
[0035](5)、中心收到加密定位數據SE-BP或SE-EP后,使用SM2解密/簽名部件以及會話密鑰私鑰對其進行解密,還原出定位數據BP或EP ;
[0036]至此,完成了一次單次傳輸數據加密解密過程;
[0037]而連續傳輸數據加密解密過程為:
[0038]連續傳輸數據加密解密過程可分為三個階段:
[0039]第一階段在下述步驟的I?5中:中心與前端設備使用會話密鑰對公鑰/私鑰,約定一個連續傳輸數據加密密鑰CK,該密鑰同時被保存在中心和前端設備內;
[0040]第二階段在下述步驟的6?7中;前端設備按固定的時間間隔,連續不斷地將定位數據按要求轉換成BP或EP后,用SM4加密/驗簽芯片及連續傳輸數據加密密鑰CK對BP或EP進行加密,生成加密定位數據CE-BP或CE-EP,然后通過前端數據傳輸器件及通信鏈路發送到中心;中心收到加密定位數據CE-BP或CE-EP后,使用SM4解密/簽名部件及連續傳輸數據加密密鑰CK對其進行解密,還原出定位數據BP或EP ;[0041]第三階段在下述步驟的8?9中:中心向前端設備發送停止連續加密傳輸指令TE,結束一次連續傳輸數據加密解密過程;
[0042]上述連續傳輸數據加密解密過程的具體步驟如下:
[0043](I)、中心向前端設備發送連續加密傳輸指令CE,在CE指令內還應包含要求傳送的是基本位置數據BP、還是擴展位置數據EP的信息,并用會話密鑰私鑰對CE進行簽名,生成簽名數據S-CE,同時將S-CE發送給前端設備;
[0044](2)、前端設備用保存的會話密鑰公鑰對S-CE進行驗證,以確認所收到的指令是來自中心;
[0045](3)、前端設備生成一個128bit的隨機數,將此隨機數作為連續傳輸數據加密密鑰CK;
[0046](4)、前端設備使用設備內的SM2加密/驗簽芯片以及會話密鑰公鑰SPb對連續傳輸數據加密密鑰CK進行加密,生成加密連續傳輸數據加密密鑰CE-CK,然后通過前端數據傳輸器件及通信鏈路將其傳送給中心;
[0047](5)、中心收到加密連續傳輸數據加密密鑰CE-K后,使用SM2解密/簽名部件以及會話密鑰私鑰對其進行解密,還原出連續傳輸數據加密密鑰CK ;
[0048](6)、前端設備按要求的時間間隔,該時間間隔為事先約定的固定值,或在連續加密傳輸指令CE中指明,連續不斷地從衛星定位接收機中獲取定位數據,按要求將定位數據轉換為BP或EP,再用SM4加密/驗簽芯片及連續傳輸數據加密密鑰CK對BP或EP進行加密,生成加密定位數據CE-BP或CE-EP,最后通過前端數據傳輸器件及通信鏈路發送到中心;
[0049](7)、中心收到加密定位數據CE-BP或CE-EP后,使用SM4解密/簽名部件及連續加密傳輸數據加密密鑰CK對其進行解密,還原出定位數據BP或EP ;
[0050](8)、中心向前端設備發送終止連續加密傳輸指令TE,并用會話密鑰私鑰對TE進行簽名,生成簽名數據S-TE,同時將S-TE發送給前端設備;
[0051](9)、前端設備用保存的會話密鑰公鑰對S-TE進行驗證,以確認所收到的指令是來自中心,然后停止連續加密傳輸過程。
[0052]與現有技術相比,本發明的優點和有益效果在于:該衛星定位數據加密系統及加密方法能極大地提高定位數據在傳輸過程中的安全性;通過對控制信令進行簽名/驗簽操作,保證了前端設備不會對偽造的控制信令作出響應,避免了前端設備因被欺騙而錯誤地以明文發送定位數據的風險;通過對定位數據進行加密/解密操作防止了定位數據在傳輸過程中被非法獲取的風險;使用國家商用密碼管理辦公室推薦的國產密碼算法SM2、SM4,其安全強度相當于RSA3072,預計在2040年之前不會被攻破(即通過本發明方法或系統所加密的定位數據在2040年前不會被破解)。
[0053]本發明針對系統內定位數據及控制指令均為單向傳輸的特點,通過預置根密鑰的方法,簡化了密鑰交換流程,且無需在前端設備中保存私鑰,避免了使用常規PKI/CA系統所要面對的復雜及昂貴。
[0054]本發明對需要加密傳輸的數據進行了格式轉換,并根據不同的傳輸方式(單次加密傳輸/連續加密傳輸)制定了不同的加密/解密方法,最大限度減少了需要傳輸的數據量;以連續加密傳輸方式、僅傳輸基本定位信息BP為例,每次傳輸數據僅為16字節 (128bit),遠低于NMEA-0183標準中所需的數據量(70字節以上)。
【專利附圖】
【附圖說明】
[0055]圖1為本發明衛星定位數據加密系統結構示意圖;
[0056]圖2為本發明衛星定位數據加密系統結構框圖。
【具體實施方式】
[0057]如圖1、2所示,本發明是一種衛星定位數據加密系統,該系統包括前端設備A、通信鏈路B和中心C,前端設備A通過前端控制處理器2處理衛星接收機I接收到的信息,并將處理后的信息存儲到前端存儲器3內,同時將處理后的信息通過前端數據傳輸器件5發送到通信鏈路B ;中心C中的中心數據傳輸器件6接收通信鏈路B傳來的信息,并將其傳送至中心控制處理器7處理,中心控制處理器7將處理后的信息存儲到中心存儲器內8,同時將處理后的信息發送至展示器件和應用系統10 ;在前端控制處理器2上連接有加密/驗簽芯片4,加密/驗簽芯片4用于對衛星接收機接收到的信息進行加密處理,以及對接收到的控制指令進行驗證;在中心控制處理器7上連接有解密/簽名部件9,解密/簽名部件9用于對中心數據傳輸器件接收到的信息進行解密處理,以及對發往前端的控制指令進行簽名。
[0058]在本發明中優選的實施方案是,所述前端數據傳輸器件5為3G通信模塊,中心數據傳輸器件6均為3G通信模塊或為網絡接口。
[0059]在本發明中優選的實施方案還有,所述衛星接收機I為北斗衛星定位接收機模塊,其型號為 UM220-3、NE0-M8N。
[0060]在本發明中優選的實施方案還有,所述前端存儲器3為RAM、ROM、FLASH、EEPROM中的任意一種或其任意組合,所述前端存儲器3為控制處理器內的存儲器或為外部擴展存儲器;所述中心存儲器8為存儲硬盤或為SSD存儲器。
[0061]在本發明中優選的實施方案還有,所述加密/驗簽芯片4的型號為A980 (SSX1111) ,IS32U256A (SSX1014)等,加密/驗簽芯片用于存放預置的根密鑰公鑰RPB、會話密鑰公鑰SPB,生成并保存連續加密傳輸數據加密密鑰CK,配合前端控制處理器2進行SM2、SM4加密運算;所述解密/簽名部件9為安全服務器,用于支持SM2、SM4算法。
[0062]在本發明中優選的實施方案還有,所述前端控制處理器的型號為STM32,或為S3C2440 ;所述中心控制處理器為PC機或為服務器。
[0063]本發明采用的另一個實施方案是:提供一種衛星定位數據加密系統中的方法,該加密方法包括如下步驟:
[0064]S1、在前端設備A及中心C是分別增加了使用SM2/SM4算法的衛星定位信息加密/驗簽芯片4和解密/簽名部件9 ;
[0065]S2、系統初始化;
[0066]S3、會話密鑰的設置及更新;
[0067]S4、數據的加密及解密。
[0068]在本發明中優選的實施方案是,所述系統初始化的過程包括:
[0069](I)、中心C內的SM2解密/簽名部件9產生用于簽名/驗簽過程所需的根密鑰對RPB/RdB (公鑰/私鑰),將其中的根密鑰私鑰RdB保存在SM2解密/簽名部件9內,并保證該私鑰RdB不能被讀出部件外;同時保存公鑰;
[0070](2)、前端設備A在使用前需到中心C進行注冊登記,同時將中心C所產生的根密鑰對中的根密鑰公鑰RPb保存到前端設備A的SM2加密/驗簽芯片4內,并采取保護措施使其不能被輕易修改,如必須通過專用的編程口寫入等。在本發明中優選的實施方案還有,所述會話密鑰的設置及更新的程序包括:
[0071](I)、中心C內的SM2解密/簽名部件9產生用于對定位數據進行加密/解密過程所需的會話密鑰對SPB/SdB (公鑰/私鑰),將其中的會話密鑰私鑰SdB保存在SM2解密/簽名部件9內,并保證該會話密鑰私鑰SdB不能被讀出部件外,由解密/簽名部件自身的操作系統或硬件保證;同時保存會話密鑰公鑰SPb ;
[0072](2)、中心C用根密鑰私鑰對會話密鑰公鑰SPb進行簽名,生成簽名數據;
[0073](3)、中心C向前端設備A發送會話密鑰公鑰SPb設置/更新指令,同時將會話密鑰公鑰SPb以及簽名數據發送給前端設備A ;
[0074](4)、前端設備A用保存的根密鑰公鑰RPb對接收到的簽名數據進行驗證,以證實所收到的會話密鑰公鑰SPb是否由中心所發;若驗證通過,則將接收到的會話密鑰公鑰SPb保存到前端設備A的SM2加密/驗簽芯片4內,作為前端設備與中心之間的會話密鑰。
[0075]在本發明中優選的實施方案還有,所述數據的加密及解密過程包括單次傳輸數據加密解密過程和連續傳輸數據加密解密過程;
[0076]其中單次傳輸數據加密解密過程為:
[0077](I)、中心C向前端設備A發送單次加密傳輸指令SE,在SE指令內還應包含要求傳送的是基本位置數據BP、還是擴展位置數據EP的信息,并用會話密鑰私鑰SdB對SE進行簽名,生成簽名數據S-SE,同時將S-SE發送給前端設備A ;
[0078](2)、前端設備A用保存的會話密鑰公鑰SPb對S-SE進行驗證,以確認所收到的指令是來自中心;
[0079](3)、前端設備A按SE指令要求將要傳輸的數據按規定格式轉換為基本位置數據BP或擴展位置數據EP,使用設備內的SM2加密/驗簽芯片4以及會話密鑰公鑰SPb對基本定位數據BP或擴展位置數據EP進行加密,生成加密定位數據SE-BP或SE-EP。
[0080](4)、前端設備A將加密定位數據SE-BP或SE-EP通過前端數據傳輸器件5及通信鏈路B發送到中心C ;
[0081](5)、中心C收到加密定位數據SE-BP或SE-EP后,使用SM2解密/簽名部件9以及會話密鑰私鑰SdB對其進行解密,還原出定位數據BP或EP ;
[0082]至此,完成了一次單次傳輸數據加密解密過程;
[0083]而連續傳輸數據加密解密過程為:
[0084]連續傳輸數據加密解密過程可分為三個階段:
[0085]第一階段在下述步驟的I?5中:中心C與前端設備A使用會話密鑰對SPB/SdB (公鑰/私鑰),約定一個連續傳輸數據加密密鑰CK,該密鑰同時被保存在中心C和前端設備A內;
[0086]第二階段在下述步驟的6?7中;前端設備A按固定的時間間隔,連續不斷地將定位數據按要求轉換成BP或EP后,用SM4加密/驗簽芯片4及連續傳輸數據加密密鑰CK對BP或EP進行加密,生成加密定位數據CE-BP或CE-EP,然后通過前端數據傳輸器件5及通信鏈路B發送到中心C ;中心C收到加密定位數據CE-BP或CE-EP后,使用SM4解密/簽名部件9及連續傳輸數據加密密鑰CK對其進行解密,還原出定位數據BP或EP ;
[0087]第三階段在下述步驟的8?9中:中心C向前端設備A發送停止連續加密傳輸指令TE,結束一次連續傳輸數據加密解密過程;
[0088]上述連續傳輸數據加密解密過程的具體步驟如下:
[0089](I)、中心C向前端設備A發送連續加密傳輸指令CE,在CE指令內還應包含要求傳送的是基本位置數據BP、還是擴展位置數據EP的信息,并用會話密鑰私鑰SdB對CE進行簽名,生成簽名數據S-CE,同時將S-CE發送給前端設備A ;
[0090](2)、前端設備A用保存的會話密鑰公鑰SPb對S-CE進行驗證,以確認所收到的指令是來自中心C ;
[0091](3)、前端設備A生成一個128bit的隨機數,將此隨機數作為連續傳輸數據加密密鑰CK;
[0092](4)、前端設備A使用設備內的SM2加密/驗簽芯片4以及會話密鑰公鑰SPb對連續傳輸數據加密密鑰CK進行加密,生成加密連續傳輸數據加密密鑰CE-CK,然后通過前端數據傳輸器件5及通信鏈路B將其傳送給中心C ;
[0093](5)、中心C收到加密連續傳輸數據加密密鑰CE-K后,使用SM2解密/簽名部件9以及會話密鑰私鑰SdB對其進行解密,還原出連續傳輸數據加密密鑰CK ;
[0094](6)、前端設備A按要求的時間間隔,該時間間隔為事先約定的固定值,或在連續加密傳輸指令CE中指明,連續不斷地從衛星定位接收機I中獲取定位數據,按要求將定位數據轉換為BP或EP,再用SM4加密/驗簽芯片4及連續傳輸數據加密密鑰CK對BP或EP進行加密,生成加密定位數據CE-BP或CE-EP,最后通過前端數據傳輸器件5及通信鏈路C發送到中心;
[0095](7)、中心C收到加密定位數據CE-BP或CE-EP后,使用SM4解密/簽名部件9及連續加密傳輸數據加密密鑰CK對其進行解密,還原出定位數據BP或EP ;
[0096](8)、中心C向前端設備A發送終止連續加密傳輸指令TE,并用會話密鑰私鑰SdB對TE進行簽名,生成簽名數據S-TE,同時將S-TE發送給前端設備A ;
[0097](9)、前端設備A用保存的會話密鑰公鑰SPb對S-TE進行驗證,以確認所收到的指令是來自中心C,然后停止連續加密傳輸過程。
[0098]實施例1
[0099]本實施例是一個按照圖2所示結構搭建的一套衛星定位數據加密傳輸系統,其中I是北斗衛星定位接收機模塊,負責接收來自衛星的定位信號,型號可以為UM220-3、NE0-M8N等,與通用處理器2之間采用UART接口連接;2是通用微處理器/微控制器,型號可以是STM32、S3C2440等;3是存儲器(包括RAM、ROM、FLASH、EEPROM等),可以僅使用微處理器內置的存儲器(如STM32內部集成有RAM和FLASH),也可以使用外部擴展存儲器;4為專用安全芯片,型號可以是A980(SSX1111)、IS32U256A(SSX1014)等,用來存放預置的根密鑰公鑰、會話密鑰公鑰,生成并保存連續加密傳輸數據加密密鑰CK,配合通用微處理器2進行SM2、SM4加密運算;5為3G通信模塊,可以選用華為EM770、中興MF210等型號。
[0100]中心也由5個部件組成:其中6是3G通信模塊或網絡接口,同樣可以選用華為EM770、中興MF210等型號產品;7是管理服務器,可以使用普通PC機或服務器,加上應用軟件構成;8是存儲設備(可以是硬盤、存儲服務器等),可使用普通硬盤或SSD ;9是安全服務器,可以是支持SM2、SM4等算法的專業安全服務器,也可以是支持這些算法的板卡或USB-KEY ;10為展示部件或其他應用設備,可以是GIS(地理信息系統),也可以是安裝在管理服務器上的一套地圖軟件。
[0101]本實施例的工作過程可簡述如下:
[0102](I)、中心內的解密/簽名部件9生成并保存根密鑰對RPB/RdB(公鑰/私鑰)。
[0103](2)、前端設備使用離線方式向中心注冊:中心內的管理服務器7記錄前端設備的屬性信息,為其分配一個系統內唯一的識別號IDn,存放于前端設備的存儲器3內;同時將根密鑰公鑰RPb注入到前端設備的加密/驗簽芯片4中。
[0104](3)、前端設備使用3G通信模塊5呼叫中心的3G通信模塊或網絡接口 6,在前端設備與中心之間建立起數據傳輸通道。
[0105](4)、中心與前端設備之間生成、設置并保存會話密鑰對SPB/SdB (公鑰/私鑰)。
[0106](5)、在需要時,中心可按照上述方法,從前端設備獲取單次加密定位數據:管理服務器7生成單次加密傳輸指令SE,并將SE交給解密/簽名部件9進行簽名運算;解密/簽名部件9生成簽名數據S(SE)后,將S(SE)送還給管理服務器7 ;管理服務器7將單次加密傳輸指令SE及簽名數據S (SE) —起通過中心的3G通信模塊或網絡接口 6發送到前端設備的3G通信模塊5 ;前端設備的3G通信模塊5將接收到的SE+S (SE)數據送交給通用微處理器/微控制器2 ;通用微處理器/微控制器2將SE+S (SE)送給加密/驗簽芯片4 ;加密/驗簽芯片4使用會話密鑰公鑰SPb對數據真偽進行驗證,然后將驗證結果返還給通用微處理器/微控制器2 ;如果驗證結果為假,則通用微處理器/微控制器2將不對該指令作出響應;如果驗證結果為真,則啟動以下單次加S傳輸過程。
[0107]前端設備的通用微處理器/微控制器2從衛星定位接收機I中讀取定位數據,將其按附錄A格式轉換成BP或EP后,發送給加密/驗簽芯片4進行單次數據加密;加密/驗簽芯片4使用會話密鑰公鑰SPb對BP或EP進行SM2算法加密,生成加密定位數據SE (BP)或SE (EP),然后將其送還給通用微處理器/微控制器2 ;通用微處理器/微控制器2將得到的加密定位數據SE (BP)或SE (EP)通過3G通信模塊5發送給中心的3G通信模塊或網絡接口 6 ;6將SE(BP)或SE(EP)數據傳送給管理服務器7 ;7將SE(BP)或SE(EP)數據傳送給解密/簽名部件9 ;9使用會話密鑰私鑰SdB對SE(BP)或SE(EP)進行SM2算法解密,還原出BP或EP明文數據,然后將其發送給管理服務器7 ;7最后將還原出的BP或EP明文數據送給展示部件或其他應用設備10進行實時展示或其他處理,至此完成了一次單次數據加密傳輸過程。
[0108](6)、在需要時,中心可按照上述方法,從前端設備獲取連續加密定位數據:管理服務器7生成連續加密傳輸指令CE,并將CE交給解密/簽名部件9進行簽名運算;解密/簽名部件9生成簽名數據S(CE)后,將S(CE)送還給管理服務器7 ;管理服務器7將連續加密傳輸指令CE及簽名數據S (CE) —起通過中心的3G通信模塊或網絡接口 6發送到前端設備的3G通信模塊5 ;前端設備的3G通信模塊5將接收到的CE+S (CE)數據送交給通用微處理器/微控制器2 ;通用微處理器/微控制器2將CE+S (CE)送給加密/驗簽芯片4 ;加密/驗簽芯片4使用會話密鑰公鑰SPb對數據真偽進行驗證,然后將驗證結果返還給通用微處理器/微控制器2 ;如果驗證結果為假,則通用微處理器/微控制器2將不對該指令作出響應;如果驗證結果為真,則啟動以下連續傳輸數據加密密鑰CK確定過程及連續加密傳輸過程。
[0109]連續傳輸數據加密密鑰CK確定過程:前端設備的通用微處理器/微控制器2控制加密/驗簽芯片4產生一個128bit的隨機數,該隨機數即是連續傳輸數據加密密鑰CK ;力口密/驗簽芯片4使用會話密鑰公鑰SPb對CK進行SM2算法加密,生成加密連續傳輸數據加密密鑰E (CK),然后將其送還給通用微處理器/微控制器2 ;通用微處理器/微控制器2將得到的E (CK)通過3G通信模塊5發送給中心的3G通信模塊或網絡接口 6 ;6將E (CK)傳送給管理服務器7 ;7將E (CK)數據傳送給解密/簽名部件9 ;9使用會話密鑰私鑰SdB對E (CK)進行SM2算法解密,還原出連續傳輸數據加密密鑰CK,該密鑰將與前端設備的ID綁定并被保存在加密/簽名部件4中,直至本次連續加密傳輸過程結束。
[0110]連續加密傳輸過程:前端設備的通用微處理器/微控制器2從衛星定位接收機I中讀取定位數據,將其按附錄A格式轉換成BP或EP后,發送給加密/驗簽芯片4進行連續數據加密;加密/驗簽芯片4使用連續傳輸數據加密密鑰CK對BP或EP進行SM4算法加密,生成加密定位數據CE (BP)或CE (EP),然后將其送還給通用微處理器/微控制器2 ;通用微處理器/微控制器2將得到的加密定位數據CE (BP)或CE (EP)通過3G通信模塊5發送給中心的3G通信模塊或網絡接口 6 ;6將CE(BP)或CE(EP)數據傳送給管理服務器7 ;7將CE(BP)或CE(EP)數據傳送給解密/簽名部件9 ;9根據前端設備ID找出其保存的連續傳輸數據加密密鑰CK,用CK對CE (BP)或CE (EP)進行SM4算法解密,還原出BP或EP明文數據,然后將其發送給管理服務器7 ;7最后將還原出的BP或EP明文數據送給展示部件或其他應用設備10進行實時展示或其他處理。
[0111]至此完成了 一次單次數據加密傳輸過程。
[0112](7)、為保證前端設備不被非法的中心所欺騙,中心發往前端的所有控制指令均需附有中心的簽名,前端設備只有在(使用SM2及會話密鑰公鑰SPb)對其真偽進行驗證通過后,才對控制指令進行響應。同時,為防止重放攻擊,在所有的控制指令中都應嵌入時間信
肩、O
[0113]附錄A:加密數據預處理編碼格式
[0114]在對定位數據進行SM2或SM4算法加密前,需要將其從不定長的NMEA-0183格式轉換成定長(長度為128bit或其整數倍)的分組數據格式。為在節省數據量的前提下提供更大的靈活性,本附錄將定位數據分成了基本定位數據BP和擴展定位數據EP兩種。其中BP數據包括最常用的經度、緯度、高度、速度、精度衰減因子等基本位置信息,總長度為128bit ;EP則除了包含BP外,還提供方向、時間、參與定位的衛星等信息,總長度為256bit。
[0115]在下述數據中,其中的前16字節為BP ;全部32字節合并起來成為EP。
[0116]第I字節:
[0117]
【權利要求】
1.一種衛星定位數據加密系統,該系統包括前端設備、通信鏈路和中心,前端設備通過前端控制處理器處理衛星接收機接收到的信息,并將處理后的信息存儲到前端存儲器內,同時將處理后的信息通過前端數據傳輸器件發送到通信鏈路;中心中的中心數據傳輸器件接收通信鏈路傳來的信息,并將其傳送至中心控制處理器處理,中心控制處理器將處理后的信息存儲到中心存儲器內,同時將處理后的信息發送至展示器件和應用系統;其特征在于,在前端控制處理器上連接有加密/驗簽芯片,加密/驗簽芯片用于對衛星接收機接收到的信息進行加密處理,以及對中心發來的控制指令進行驗證;在中心控制處理器上連接有解密/簽名部件,解密/簽名部件用于對中心數據傳輸器件接收到的信息進行解密處理,以及對發往前端的控制指令進行簽名運算。
2.如權利要求1所述的衛星定位數據加密系統,其特征在于,所述前端數據傳輸器件為2G或3G或4G無線通信模塊,中心數據傳輸器件可為對應的2G或3G或4G無線通信模塊或為網絡接口。
3.如權利要求1所述的衛星定位數據加密系統,其特征在于,所述衛星接收機為北斗衛星定位接收機模塊,其型號可為UM220-3、NE0-M8N。
4.如權利要求1所述的衛星定位數據加密系統,其特征在于,所述前端存儲器為RAM、ROM、FLASH、EEPROM中的任意一種或其任意組合,所述前端存儲器為控制處理器內的存儲器或為外部擴展存儲器;所述中心存儲器為硬盤、SSD、磁盤陣列、網絡存儲器。
5.如權利要求1所述的衛星定位數據加密系統,其特征在于,所述加密/驗簽芯片的型號為IS32U256A、A980、SSX1111,加密/驗簽芯片用于存放預置的根密鑰公鑰、會話密鑰公鑰,生成并保存連續加密傳輸數據加密密鑰CK,配合前端控制處理器進行SM2、SM4加密運算;所述解密/簽名部件為安全服務器、計算機版卡、USB-KEY,用于支持中心控制處理器完成SM2、SM4算法運算。
6.如權利要求1所述的衛星定位數據加密系統,其特征在于,所述前端控制處理器為STM32、S3C2440通用嵌入式處理器;所述中心控制處理器為PC機或為服務器。
7.—種衛星定位數據加密系統中的方法,其特征在于,所述加密方法包括如下步驟: 51、在前端設備及中心中分別增加了支持SM2/SM4算法的衛星定位信息加密/驗簽芯片和解密/簽名部件; 52、系統初始化; 53、會話密鑰的設置及更新; 54、數據的加密及解密。
8.如權利要求7所述的衛星定位數據加密系統中的方法,其特征在于,所述系統初始化的過程包括: (1)、中心內的SM2解密/簽名部件產生用于簽名/驗簽過程所需的根密鑰對公鑰/私鑰,將其中的根密鑰私鑰保存在SM2解密/簽名部件內,并保證該私鑰不能被讀出部件外;同時保存公鑰; (2)、前端設備在使用前需到中心進行注冊登記,同時將中心所產生的根密鑰對中的根密鑰公鑰保存到前端設備的SM2加密/驗簽芯片內,并采取保護措施使其不能被輕易修改。
9.如權利要求7所述的衛星定位數據加密系統中的方法,其特征在于,所述會話密鑰的設置及更新的程序包括:(1)、 中心內的SM2解密/簽名部件產生用于對定位數據進行加密/解密過程所需的會話密鑰對公鑰/私鑰,將其中的會話密鑰私鑰保存在SM2解密/簽名部件內,并保證該會話密鑰私鑰不能被讀出部件外;同時保存會話密鑰公鑰; (2)、中心用根密鑰私鑰對會話密鑰公鑰進行簽名,生成簽名數據,為預防重放攻擊,所有要簽名的數據中均應加入時間信息,下同; (3)、中心向前端設備發送會話密鑰公鑰設置/更新指令,同時將會話密鑰公鑰以及簽名數據發送給前端設備; (4)、前端設備用保存的根密鑰公鑰對接收到的簽名數據進行驗證,以證實所收到的會話密鑰公鑰是否由中心所發;若驗證通過,則將接收到的會話密鑰公鑰保存到前端設備的SM2加密/驗簽芯片內,作為前端設備與中心之間的會話密鑰。
10.如權利要求7所述的衛星定位數據加密系統中的方法,其特征在于,所述數據的加密及解密過程包括單次傳輸數據加密解密過程和連續傳輸數據加密解密過程; 其中單次傳輸數據加密解密過程為: (1)、中心向前端設備發送單次加密傳輸指令SE,在SE指令內還應包含要求傳送的是基本位置數據BP、還是擴展位置數據EP的信息,并用會話密鑰私鑰對SE進行簽名,生成簽名數據S-SE,同時將S-SE發送給前端設備; (2)、前端設備用保存的會話密鑰公鑰對S-SE進行驗證,以確認所收到的指令是來自中心; (3)、前端設備按SE指令要求將要傳輸的數據按規定格式轉換為基本位置數據或擴展位置數據,使用設備內的SM2加密/驗簽芯片以及會話密鑰公鑰對基本定位數據BP或擴展位置數據EP進行加密,生成加密定位數據SE-BP或SE-EP ; (4)、前端設備將加密定位數據SE-BP或SE-EP通過前端數據傳輸部件及通信鏈路發送到中心; (5)、中心收到加密定位數據SE-BP或SE-EP后,使用SM2解密/簽名部件以及會話密鑰私鑰對其進行解密,還原出定位數據BP或EP ; 至此,完成了一次單次傳輸數據加密解密過程; 而連續傳輸數據加密解密過程為: 連續傳輸數據加密解密過程可分為三個階段: 第一階段在下述步驟的I~5中:中心與前端設備使用會話密鑰對公鑰/私鑰,約定一個連續傳輸數據加密密鑰CK,該密鑰同時被保存在中心和前端設備內; 第二階段在下述步驟的6~7中;前端設備按固定的時間間隔,連續不斷地將定位數據按要求轉換成BP或EP后,用SM4加密/驗簽芯片及連續傳輸數據加密密鑰CK對BP或EP進行加密,生成加密定位數據CE-BP或CE-EP,然后通過前端數據傳輸器件及通信鏈路發送到中心;中心收到加密定位數據CE-BP或CE-EP后,使用SM4解密/簽名部件及連續傳輸數據加密密鑰CK對其進行解密,還原出定位數據BP或EP ; 第三階段在下述步驟的8~9中:中心向前端設備發送停止連續加密傳輸指令TE,結束一次連續傳輸數據加密解密過程; 上述連續傳輸數據加密解密過程的具體步驟如下: (I)、中心向前端設備發送連續加密傳輸指令CE,在CE指令內還應包含要求傳送的是基本位置數據BP、還是擴展位置數據EP的信息,并用會話密鑰私鑰對CE進行簽名,生成簽名數據S-CE,同時將S-CE發送給前端設備; (2)、前端設備用保存的會話密鑰公鑰對S-CE進行驗證,以確認所收到的指令是來自中心; (3)、前端設備生成一個128bit的隨機數,將此隨機數作為連續傳輸數據加密密鑰CK; (4)、前端設備使用設備內的SM2加密/驗簽芯片以及會話密鑰公鑰對連續傳輸數據加密密鑰CK進行加密,生成加密連續傳輸數據加密密鑰CE-CK,然后通過前端數據傳輸器件及通信鏈路將其傳送給中心; (5)、中心收到加密連續傳輸數據加密密鑰CE-K后,使用SM2解密/簽名部件以及會話密鑰私鑰對其進行解密,還原出連續傳輸數據加密密鑰CK ; (6)、前端設備按要求的時間間隔,該時間間隔為事先約定的固定值,或在連續加密傳輸指令CE中指明,連續不斷地從衛星定位接收機中獲取定位數據,按要求將定位數據轉換為BP或EP,再用SM4加密/驗簽芯片及連續傳輸數據加密密鑰CK對BP或EP進行加密,生成加密定位數據CE-BP或CE-EP,最后通過前端數據傳輸器件及通信鏈路發送到中心; (7)、中心收到加密定位數據CE-BP或CE-EP后,使用SM4解密/簽名部件及連續加密傳輸數據加密密鑰CK對其進行解密,還原出定位數據BP或EP ; (8)、中心向前端設備發送終止連續加密傳輸指令TE,并用會話密鑰私鑰對TE進行簽名,生成簽名數據S-TE ,同時將S-TE發送給前端設備; (9)、前端設備用保存的會話密鑰公鑰對S-TE進行驗證,以確認所收到的指令是來自中心,然后停止連續加密傳輸過程。
【文檔編號】H04L9/32GK103973454SQ201410220088
【公開日】2014年8月6日 申請日期:2014年5月23日 優先權日:2014年5月23日
【發明者】張俊業 申請人:公安部第一研究所, 北京中盾安全技術開發公司