基于SOPC的GPS信息加密傳輸系統(tǒng)

近年來GPS(全球定位系統(tǒng))系統(tǒng)以其高精度的定位、測速和定時功能得到了廣泛的應用。GPS接收模塊安裝在車輛、輪船等運輸工具上,駕駛?cè)藛T可以實時了解車輛所處的地理位置,輔助車輛的導航、定位,在一些特殊情況下,需要在外部對一些重要的移動目標進行監(jiān)控,及時掌握其移動情況,對其指揮和導航。這就需要一套全球定位信息傳輸系統(tǒng),把地理位置及其它相關(guān)信息經(jīng)無線信道傳輸?shù)街笓]中心。在目標出現(xiàn)位置、狀態(tài)異常等情況時,指揮中心能夠及時掌握這些信息,并做出響應,由于經(jīng)無線信道傳輸?shù)男畔⒑苋菀追艕阂獾慕孬@,因此需要采取一定加密手段,提高中心和移動目標之間通信的安全性,本文設計了由一臺中心計算機和一組終端模塊組成的GPS信息加密傳輸系統(tǒng),實現(xiàn)移動目標的GPS信息采集和加密傳輸。

一、系統(tǒng)總體架構(gòu)

整個GPS信息加密傳輸系統(tǒng)由一個中心計算機和一組定位信息加密傳輸模塊(簡稱終端模塊)兩大部分組成,如圖1所示。

基于SOPC的GPS信息加密傳輸系統(tǒng)

中心計算機處于指揮中心,位置固定,負責信息的接收、顯示、導航、密鑰分發(fā)等系統(tǒng)管理任務。終端模塊安裝在移動的目標上,主要由GPS模塊、CDMA無線通信模塊和基于FPGA的控制模塊組成,它利用無線信道在規(guī)定的時間間隔內(nèi)向中心計算機發(fā)送加密后的GPS數(shù)據(jù)及其它相關(guān)信息。目前,無線通信系統(tǒng){要有GPRS和CDMA兩種,其中CDMA在傳輸數(shù)率、頻率資源、抗干擾能力、安全保密等方面都有較大優(yōu)勢。因此,在本系統(tǒng)中指揮中心和終端模塊之間采用CDMA實現(xiàn)無線通信。

二、定位信息加密傳輸模塊設計

在整個系統(tǒng)中,定位信息加密傳輸模塊是本系統(tǒng)設計的關(guān)鍵。中心計算機主要由一臺計算機、一組尤線通信模塊和相關(guān)的管理軟件組成,下面主要討論定位信息加密傳輸模塊的設計方法。

1、硬件總體架構(gòu)

信息加密傳輸模塊安裝在移動目標上,體積、功耗、防震動等對其穩(wěn)定工作非常重要。而可編程片上系統(tǒng)(SOPC)技術(shù)結(jié)合了SOC和可編程邏輯器件的優(yōu)點,一般具備以下基本特征:

(1)至少包含一個嵌入式處理器內(nèi)核;

(2)具有小容量片內(nèi)高速RAM資源;

(3)豐富的IP Core資源可供選擇;

(4)足夠的片上可編程邏輯資源;

(5)處理器調(diào)試接口和FPGA編程接口;

(6)包含部分可編程模擬電路;

(7)單芯片、低功耗、小封裝。

因此采用SOPC技術(shù)對于縮小系統(tǒng)體積、功耗,并提高系統(tǒng)可靠性很有幫助。本文基于Altera的SOPC技術(shù),設計環(huán)境是SOPC Builder,它集成在Altera公司的QuartusⅡ工具中。通過SOPC Builder用戶可以從Altera提供的IP庫中選取一些組件,如處理器、SDRAM、Flash、各種I/O等,并可靈活配置各組件的參數(shù)。另外,SOPC Builder有個尤為重要的功能:如果IP庫中沒有用戶要求的特殊功能,則用戶可以加入自定義的邏輯來實現(xiàn)。

定位信息加密傳輸模塊的核心部分由一片內(nèi)嵌Niosll處理器以及密碼算法模塊的FPGA芯片來實現(xiàn),該芯片實現(xiàn)了整個模塊的控制以及定位信息的加解密操作,其結(jié)構(gòu)如圖2所示。

基于SOPC的GPS信息加密傳輸系統(tǒng)

GPS模塊用于定位信息的采集:CDMA模塊用于信息的無線發(fā)送和接收:鍵盤主要用于密鑰的保護,也可根據(jù)需要輸入一些其它要發(fā)送的信息:顯示模塊主要顯示系統(tǒng)的工作狀態(tài),并以圖形方式顯示當前模塊所處的位置:Flash和SRAM主要用于存儲和運行程序;同時還可以利用SOPC良好的擴展性,添加其它接口,采集移動設備的其它信息(例如車輛運行狀態(tài)等)加密傳輸?shù)街笓]中心。

目前,市場上的大部分GPS接收模塊都是通過RS232串口與MCU進行數(shù)據(jù)傳輸?shù)?。這些數(shù)據(jù)包括經(jīng)度、緯度、海拔高度、時間、衛(wèi)星使用情況等基本信息。開發(fā)人員再依據(jù)這些基本數(shù)據(jù),進行數(shù)據(jù)處理來完成整套的定位系統(tǒng)軟件。本系統(tǒng)采用了Motorola公司生產(chǎn)的M12接收板,它提供了Motorola二進制和NMEA0183兩種命令格式,以方便用戶編程。CDMADTU(data transmit unit,數(shù)據(jù)傳輸單元)是基于CDMA無線公網(wǎng)開發(fā)的數(shù)據(jù)傳輸設備,內(nèi)嵌完整的TCPfIP協(xié)議,為不具備TCP/IP協(xié)議處理的終端設備提供無線通信能力,使用標準RS232接口和其它設備連接,具有功耗低、體積小的特點。本系統(tǒng)選用了深圳市盈科互動科技有限公司串口CWT3000-CSC3DTU。該模塊提供了標準的RS-232接口,支持完整的TCP/UDP/IP/PPP協(xié)議。

Altera公司為其SOPC提供了大量接口模塊,可以很方便地連接上述模塊,而無需在電路板上提供專門的接口芯片,大大縮小模塊的體積和功耗。GPS模塊和CDMA DTU分別通過串口與控制模塊的NiosU處理器相連接,鍵盤和LCD顯示模塊通過PlO(并行接口)接口和Niosll處理器相連接。同時,由于采用SOPC技術(shù)和成熟的GPS、CDMA模塊,用戶可以通過編程很方便地對各個內(nèi)外部模塊進行控制。

根據(jù)設計的總體結(jié)構(gòu),定位信息加密傳輸模塊選擇在DE2開發(fā)扳上搭建。DE2為用戶提供了豐富的外設及多媒體特性,井具有靈活而可靠的外圍接口設計。DE2平臺的設計和制造完全按照工業(yè)產(chǎn)品標準進行,可靠性很高。平臺上提供的資源如下:

(1)Akera Cyclonell系列的EP2C35F672C6 FPGA,內(nèi)含35000個邏輯單元(LE);

(2)板上內(nèi)置用于編程調(diào)試和用戶API設計的USB Blas-ter,支持JTAG模式和AS模式;

(3)512K字節(jié)SRAM;

(4)8M字節(jié)SDRAM;

(5)兩個扳上時鐘源(50MHz晶振和27MHz晶振);

(6) 4M字節(jié)Flash。

(7) RS232收發(fā)器。

由上述可以看出,DE2開發(fā)板豐富的資源正好滿足本設計的要求,定位信息加密傳輸模塊的SOPC設計如圖3所示。

基于SOPC的GPS信息加密傳輸系統(tǒng)

2、保密通信流程及密鑰管理方案

該模塊主要負責將移動設備的位置、狀態(tài)等信息加密后傳送到指揮中心,其中GPS模塊每秒接收一組定位信息,設備狀態(tài)信息則主要反映設備運行狀態(tài)、故障信息等。因此,每次傳輸?shù)臄?shù)據(jù)量不是很大,但傳輸次數(shù)比較頻繁(根據(jù)需要設定一定間隔時間)。為了保證系統(tǒng)安全性,除了數(shù)據(jù)傳輸任務之外,模塊還應支持其它一些管理功能,例如模塊啟動時需要向中心注冊、采用適當?shù)拿荑€管理策略等。

針對上述特點,本系統(tǒng)采用了對稱密碼算法和公鑰算法相結(jié)合的方法實現(xiàn)保密通信,即利用對稱密碼算法進行信息加密,利用RSA簽名算法實現(xiàn)注冊和會話密鑰更新。對稱密碼算法選用高級加密標準AES128,即分組長度和密鑰都為128位。公鑰算法選用RSA算法,是被廣泛接受并實現(xiàn)的通用公鑰密碼算法,目前已成為公鑰密碼的國際標準。

值得注意的是,由于在移動設備靜止不動時,會多次發(fā)送相同信息,很容易受到攻擊,防止此類攻擊,采用CBC(密碼分組鏈接)模式實現(xiàn)AES.它使得當同一明文分組重復出現(xiàn)時,產(chǎn)生不同的密文分組。所謂密碼分組鏈接模式,即加密函數(shù)的輸入是當前明文分組和前一密文分組的異或,每個明文分組加密函數(shù)的輸入與明文分組之間不再有固定的關(guān)系,因此不會再出現(xiàn)相同明文得到相同的密文。

密鑰管理采用分級管理方法,需要定義3種密鑰,即主密鑰MK(main key)、密鑰加密密鑰KEK即公私鑰對(Key Encrypt-Kcy)和會話密鑰(convcrsation kcy)。主密鑰用于保護模塊私鑰,公私鑰對主要用于會話密鑰的傳送和保護,會話密鑰用于保護終端系統(tǒng)和中心計算機間的通信消息。模塊啟用時,由指揮中心的密鑰管理軟件為模塊分發(fā)主密鑰、模塊公私鑰對。

為了提高系統(tǒng)的安全性,會話密鑰為幾話(由整個系統(tǒng)統(tǒng)一設定)一密,即每隔一定時間由指揮中心更新一次會話密鑰。為了防止模塊丟失時,威脅系統(tǒng)的安全,主密鑰分割為存儲在模塊內(nèi)部(Flash存儲器)的密鑰和兩個口令(由兩個人通過鍵盤輸入)3個部分。

模塊的詳細工作流程如下:

(1)系統(tǒng)初始化

系統(tǒng)啟動,工作人員通過鍵盤注入主密鑰的另外兩個分量,經(jīng)過運算組合成主密鑰。

(2)注冊

①利用中心的公鑰,向中心發(fā)出申請注冊:②收到注冊申請后,中心利用模塊的公鑰,發(fā)回一個確認:③模塊收到后利用自己的私鑰解密后,利用中心的公鑰將確認返回;④中心收到后注冊成功。

(3)更換會話密鑰(每隔幾分鐘一次)

①中心計算機用模塊的公鑰,利用RSA公鑰算法將新的會話密鑰加密,然后再將上述加密后數(shù)據(jù)用現(xiàn)在的會話密鑰利用AES算法加密,最后利用CDMA信道傳輸?shù)侥K:②終端模塊收到上述信息后,先用現(xiàn)在的會話密鑰利用AES算法解密,然后再用自己的私鑰調(diào)用RSA解密,得到新的會話密鑰。

(4)信息保密傳輸

終端模塊獲取地理位置、設備狀態(tài)等信息后,利用會話密鑰加密,最后利用CDMA信道傳輸?shù)街笓]中心,指揮中心接收信息后,利用會話密鑰解密,發(fā)回一個確認,然后進行后處理。

三、密鑰管理

1、主密鑰的注入

在使用該系統(tǒng)前,首先進行主密鑰的注入。終端系統(tǒng)上的主密鑰為128bit,由兩部分組成。在系統(tǒng)的存儲器中存有前64bit,終端系統(tǒng)的用戶執(zhí)有的USB硬件設備中存有后64bit,二者通過由鍵盤輸入的口令驗證后結(jié)合為主密鑰,如圖4所示。

基于SOPC的GPS信息加密傳輸系統(tǒng)

存儲器中存有96bit數(shù)據(jù),前64bit為主密鑰的前64bit,后32bit為驗證碼;USB設備中存有的96bit數(shù)據(jù),前64bit為主密鑰的后64bit,后32bit為驗證碼,用戶口令為32bit。系統(tǒng)使用前,用戶從司令部得到USB設備和口令,將USB設備插入終端系統(tǒng)并輸入口令后,系統(tǒng)判斷存儲器和USB設備中的驗證碼和口令三者相同時,使USB設備中的密鑰注入終端系統(tǒng),將前64bit主密鑰和后64bit主密鑰合并構(gòu)成128bit主密鑰。若系統(tǒng)判斷存儲器和USB設備中的驗證碼和口令三者不相同,則再次提示用戶再次輸入口令,若輸入三次均錯誤。則存儲器中的密鑰銷毀,96bit數(shù)據(jù)賦為全“O”,同時程序退出,使系統(tǒng)不能繼續(xù)使用。

2、密鑰加密密鑰分發(fā)方案

密鑰加密密鑰用于保護會話密鑰,而其本身被主密鑰保護。以終端A為例說明密鑰加密密鑰的分發(fā),步驟如下:

基于SOPC的GPS信息加密傳輸系統(tǒng)

終端A的主密鑰注入完成后,向中心計算機s發(fā)送用主密鑰朋配加密(采用AES加密算法)的密鑰加密密鑰請求報文A,S,KEK_request,RalMKa,中心計算機收到后向終端A發(fā)送應答報文{A,S,KEKa,rA},終端A收到并用主密鑰解密后即可得到密鑰加密密鑰KEK。見為A以當前時間作為種子產(chǎn)生的隨機數(shù),以保證密鑰加密解密的新鮮性。

3、會話密鑰協(xié)商

主密鑰注入、密鑰加密密鑰分發(fā)完成后,進行會話密鑰的協(xié)商。終端A和中心計算機S的會話密鑰協(xié)商步驟如下:

基于SOPC的GPS信息加密傳輸系統(tǒng)

其中,RA、RS分別是A和S產(chǎn)生的隨機散,總是中心計算機產(chǎn)生的會話密鑰種子,KEKA為終端A和中心計算機S共享的密鑰加密密鑰。KAS是本次協(xié)商產(chǎn)生的會話密鑰,f函數(shù)是一種啥希函數(shù),其強度關(guān)系到整個系統(tǒng)的安全強度。

四、SOPC內(nèi)部實現(xiàn)

采用SOC技術(shù)的最大好處是可以根據(jù)需要合理地進行軟硬件劃分,以提高系統(tǒng)的性能價格比。

軟件實現(xiàn)簡單、成本低,但速度較慢,硬件實現(xiàn)速度快,但需要占用相應的硬件資源,以提高系統(tǒng)的運行速度。Altcra公司提供了SOPC Builder。Quartusll等基于Akcra FPGA的SOPC開發(fā),軟件開發(fā)采用匯緞或C語言編程實現(xiàn),硬件設計則采用VHDL或Verilog硬件描述語言實現(xiàn)。

本系統(tǒng)中SOPC的主要任務是完成上述初始化、注冊、密鑰更新、信息傳輸?shù)?,其中AES、RSA密碼算法屬運算密集性,有軟、硬件兩種實現(xiàn)方案,由于定位信息只需每隔幾分鐘傳輸一次,因此,加解密傳輸速度不需要太高,網(wǎng)此AES和RSA密碼算法全部采用軟件編程實現(xiàn),并由Nios處理器實現(xiàn)。由于Altera公司的SOPC Builer提供了大量接口模塊,本系統(tǒng)中GPS模塊、CDMA模塊、鍵盤、LCD、Flash和SRAM等所需的接口AJtcra公司都以IP模塊形式提供,因此,SOPC設計中不需要用硬件描述語言設計專門的SOPC內(nèi)部硬件模塊,主要是進行軟件設計。

系統(tǒng)軟件主要由主控程序、注冊子程序、會話密鑰交換子程序,信息發(fā)送子程序、GPS管理子程序和CDMA管理子程序、顯示子程序、鍵盤掃描子程序以及AES和RSA密碼算法子程序等部分組成.由于Altcra公司的Niosll IDE(集成開發(fā)環(huán)境)為其Niosll處理器軟件開發(fā)提供了完善的開發(fā)環(huán)境,主要包括匯編器、C語言編譯器、模擬器、調(diào)試器、函數(shù)庫等,因此,整個模塊軟件全部采用C語言在NiosIIIDE環(huán)境中開發(fā)和調(diào)試.各個部分的功能如下:

(1)主程序。完成系統(tǒng)的初始化,形成主密鑰、解密私鑰保存在RAM中,初始化顯示等。

(2)注冊子程序:調(diào)用SHA及CDMA通信模塊,完成模塊的注冊。

(3)會話密鑰交換子程序:完成會話的交換。

(4)信息傳輸:完成一次定位信息的保密傳輸(定時調(diào)用)。

(5)GPS管理子程序:負責從GPS接收模塊讀取數(shù)據(jù),并進行適當處理。

(6)CDMA管理子程序z負責與CDMA模塊的交互,發(fā)送和接收數(shù)據(jù)。

(7)顯示予程序:系統(tǒng)狀態(tài)顯示、鍵盤輸入顯示、當前位置的圖形顯示、時間顯示等。

小知識之SPC

System-on-a-Programmable-Chip,即可編程片上系統(tǒng)。 用可編程邏輯技術(shù)把整個系統(tǒng)放到一塊硅片上,稱作SOPC??删幊唐舷到y(tǒng)(SOPC)是一種特殊的嵌入式系統(tǒng):首先它是片上系統(tǒng)(SOC),即由單個芯片完成整個系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件在系統(tǒng)可編程的功能。