摘 要: 針對GPS測量系統(tǒng)數(shù)據(jù)傳輸過程中的安全問題,,采用FPGA技術(shù)設(shè)計了GPS數(shù)據(jù)加密系統(tǒng)。系統(tǒng)移植MD5算法到NIOS中對系統(tǒng)口令加密,,并設(shè)計DES IP對GPS數(shù)據(jù)加密,。實驗表明,該設(shè)計可有效防止GPS數(shù)據(jù)被非法竊取,,具有安全性強(qiáng),、速度快、操作簡便等特點(diǎn),。
關(guān)鍵詞: FPGA,;GPS;MD5,;DES,;數(shù)據(jù)加密
隨著網(wǎng)絡(luò)通信技術(shù)的發(fā)展,數(shù)據(jù)傳輸對安全性的要求也隨之加強(qiáng),。如何確保信息的正確認(rèn)證與嚴(yán)格保密,,保證數(shù)據(jù)信息在傳輸與處理過程中不被非法竊取和篡改,成為信息安全理論與技術(shù)研究的重要內(nèi)容,。多數(shù)情況下,,數(shù)據(jù)加密是保證信息機(jī)密性的惟一方法。在GPS測量系統(tǒng)中,,GPS定位數(shù)據(jù)以明文形式通過電臺進(jìn)行傳輸,,可能會被同型號電臺獲取,,存在一定的安全隱患,。本設(shè)計應(yīng)用FPGA技術(shù)設(shè)計了GPS數(shù)據(jù)加密系統(tǒng),通過MD5加密算法對管理員口令進(jìn)行加密,;DES加密算法對GPS數(shù)據(jù)進(jìn)行加密,。這樣,GPS數(shù)據(jù)經(jīng)加密卡加密后再以密文方式發(fā)給電臺進(jìn)行傳輸,,同時接收端必須使用密鑰將密文解碼才能得到定位數(shù)據(jù),,從而確保了數(shù)據(jù)傳輸?shù)陌踩?br />
1 系統(tǒng)組成及功能
GPS數(shù)據(jù)加密系統(tǒng)由機(jī)載模塊和服務(wù)器端兩部分組成,通過電臺進(jìn)行通信,。其系統(tǒng)結(jié)構(gòu)如圖1所示,。
1.1 機(jī)載模塊
機(jī)載模塊由4×4鍵盤、機(jī)載LCD、加密卡三部分組成,,用戶可通過4×4鍵盤發(fā)送預(yù)定義指令,、更改密鑰等操作;機(jī)載LCD用于顯示系統(tǒng)工作狀態(tài),、飛行參數(shù)等數(shù)據(jù),;加密卡為系統(tǒng)核心部件,主要有以下4個功能:
(1)解析,、處理GPS數(shù)據(jù),、檢測設(shè)備工作狀態(tài)并在LCD上顯示相關(guān)信息;
(2)接收GPS數(shù)據(jù)并通過加密卡對其加密,,將密文通過電臺傳送到服務(wù)器端,;
(3)處理鍵盤或服務(wù)器端輸入的預(yù)存指令編號或新指令,將指令發(fā)給GPS接收機(jī)并返回回饋信息,;
(4)更新鍵盤或服務(wù)器輸入的新密鑰或新管理員口令,。新密鑰先保存在Flash中,再通過總線傳給密鑰寄存器,;新口令保存在Flash中,。
系統(tǒng)工作時,加密卡通過UART IP獲取GPS數(shù)據(jù)后同時傳給NIOS和DES IP,。NIOS解析GPS數(shù)據(jù)并經(jīng)LCD Controller傳給機(jī)載LCD進(jìn)行實時顯示,,方便機(jī)上人員了解設(shè)備工作狀態(tài);DES IP將GPS數(shù)據(jù)加密后,,通過I/O中斷傳給NIOS,,NIOS將密文加入數(shù)據(jù)包頭、尾字節(jié)后,,再經(jīng)電臺傳到服務(wù)器端,。
1.2 服務(wù)器端
服務(wù)器端為通用計算機(jī),其應(yīng)用軟件使用VC++6.0開發(fā),,服務(wù)器的主要功能有以下6點(diǎn):
(1)接收電臺傳來的密文并進(jìn)行DES算法解密,、解析和處理GPS數(shù)據(jù);
(2)顯示GPS參數(shù),,并保存數(shù)據(jù),;
(3)發(fā)送GPS接收機(jī)控制指令;
(4)更改密鑰,;
(5)更改管理員口令,;
(6)設(shè)置串口參數(shù)。
2 數(shù)據(jù)加密算法的原理及應(yīng)用
2.1 MD5算法的原理及應(yīng)用
信息—摘要算法MD5(Message-Digest Algorithm 5),,在90年代初由Rivest設(shè)計發(fā)明,,經(jīng)MD2,、MD3和MD4發(fā)展而來。其作用可使大容量信息在用數(shù)字簽名軟件簽署私人密匙前,,被“壓縮”成一種保密的格式(對任意長度的信息,,生成一個長度為128 bit的值)。
本設(shè)計將MD5算法移植到NIOS中,,用于加密管理員口令,。這樣系統(tǒng)在并不知道管理員口令的明碼情況下就可以確定口令的合法性,從而有效地防止了反編譯等技術(shù)手段對管理員口令進(jìn)行破解,。系統(tǒng)工作時,,NIOS預(yù)先將管理員口令加密后,將MD5值存儲在Flash中,,當(dāng)加密卡接收到更改密鑰,、更改口令或發(fā)GPS接收機(jī)控制指令等操作命令時,先將輸入的口令計算成MD5值,,然后與存儲在Flash中的MD5值進(jìn)行比較,,如果兩值相同則說明口令正確,再進(jìn)行相應(yīng)的操作,。
2.2 DES算法的原理及應(yīng)用
DES(Data Encryption Standard)是一種分組乘積加密算法,,是用64 bit的密鑰對64 bit的明文加密,64 bit密鑰中每8 bit有一奇偶校驗位不參與運(yùn)算,,有效密鑰只有56 bit,。同時,它又是對稱加密算法,,其加密和解密運(yùn)算過程完全相同,,只是在迭代運(yùn)算時子密鑰的使用順序不同[1]。如圖2所示,,64 bit的明文塊在經(jīng)過初始IP置換后,,被重新排列,然后進(jìn)入16輪的迭代運(yùn)算,;每一輪迭代運(yùn)算由一個f函數(shù)完成,;最后一輪迭代的輸出為64 bit,將其左半部分和右半部分互換產(chǎn)生預(yù)輸出,;預(yù)輸出再與逆初始置換IP-1作用產(chǎn)生64 bit的密文,,IP-1是IP的反變換[2],。
采用軟件方式實現(xiàn)的DES算法會在很大程度上占用系統(tǒng)資源,,造成系統(tǒng)性能的嚴(yán)重下降,而DES算法本身并沒有大量的復(fù)雜數(shù)學(xué)計算(如乘,、帶進(jìn)位的加,、模等運(yùn)算),,在加密、解密過程和密鑰生成過程中僅有邏輯運(yùn)算和查表運(yùn)算,。因而,,無論是從系統(tǒng)性能還是加、解密速度的角度來看,,采用硬件實現(xiàn)都是一個理想的方案[3],。
圖3為DES IP的硬件邏輯圖,主要由狀態(tài)控制器,、子密鑰生成器,、DES算法運(yùn)算器三部分組成。其中,,狀態(tài)控制器用于控制IP的工作狀態(tài),、模式和標(biāo)識完成狀態(tài);子密鑰生成器將56 bit密鑰分成兩部分,,每部分按循環(huán)移位次數(shù)表移位并按置換選擇表置換,,從而生成每一輪次運(yùn)算的子密鑰K(K1,K2,,…,,K48);DES算法運(yùn)算器為整個IP的關(guān)鍵,,它將64 bit中間數(shù)據(jù)分為左右兩部分,,分別記為Li和Ri。單個運(yùn)算的過程可以寫為下面的公式:
(1)將Ri-1按照擴(kuò)展換位表E擴(kuò)展為48 bit的數(shù)據(jù),;
(2)將擴(kuò)展后的Ri-1與循環(huán)移位后的48 bit子密鑰K(K1,,K2,…,,K48)“異或”,;
(3)將“異或”后的結(jié)果送入8個S盒(S box)進(jìn)行替代運(yùn)算,每個S盒都有6 bit輸入,、4 bit輸出,,并且8個S盒都不相同,48 bit的輸入分為6位一組,,分別送到8個S盒選擇相應(yīng)的輸出,,結(jié)果為32 bit;
(4)S盒替代后的32 bit結(jié)果依照P盒(P box)進(jìn)行置換,,置換后結(jié)果即為f(Ri-1,,Ki)的最終值,這樣便完成了f函數(shù)的運(yùn)算,。
算法中用到的初始換位表IP,、放大換位表E,、替代函數(shù)表S、換位函數(shù)P,、逆初始換位IP-1,、密鑰循環(huán)移位表可在參考文獻(xiàn)[4]中查到。本設(shè)計中,,GPS數(shù)據(jù)的加密在加密卡中完成,,解密在服務(wù)器端完成,為方便功能擴(kuò)展,,在加密卡中設(shè)計,、保留了解密功能。
2.3 DES算法仿真驗證
本設(shè)計的DES IP采用ALTERA公司的Quartus 7.0軟件開發(fā)及Verilog HDL語言編寫[5],,整個加密卡在單片Cyclone系列EP1C6Q240C8N芯片上實現(xiàn),。圖4為Quartus 7.0開發(fā)軟件下DES IP的仿真圖。
各仿真信號的意義及說明如下:
時鐘信號(clk):周期為10 ns,、占空比為50%,;
復(fù)位信號(reset_n):低電平有效,置高,;
模式信號(mode):加密/解密選擇,,‘1’為加密,‘0’為解密,;
加載信號(load):高電平有效,,置高;
加密數(shù)據(jù)(des_in):8000 0000 0000 0000,;
密鑰信號(key):0000 0000 0000 0000,;
加密結(jié)果(des_out):95F8 A5E5 DD31 D900;
加密完成信號(ready) :在第17個周期后置高,。
DES IP工作時,,“密鑰”保存在總線接口的密鑰寄存器中,“加密數(shù)據(jù)”由NIOS輸入,,加密完成后,,通過“加密完成信號”產(chǎn)生的I/O中斷傳回給NIOS。圖4中,,其加密結(jié)果與XILINX公司網(wǎng)站上設(shè)計參考中給出的數(shù)據(jù)一致,,表明DES IP設(shè)計正確。
本設(shè)計采用FPGA技術(shù)設(shè)計了GPS數(shù)據(jù)加密系統(tǒng),,重點(diǎn)介紹了機(jī)載模塊中DES IP的設(shè)計,。實驗發(fā)現(xiàn),采用NIOS進(jìn)行DES算法軟件加密時速度慢,,會出現(xiàn)間隔丟失GPS數(shù)據(jù)的現(xiàn)象,,而采用硬件DES IP進(jìn)行加密處理時,完全可以滿足GPS接收機(jī)的速度需要,,不會出現(xiàn)丟點(diǎn)現(xiàn)象,。系統(tǒng)采用MD5算法對管理員口令進(jìn)行加密,進(jìn)一步增強(qiáng)了系統(tǒng)的安全性,,因此本設(shè)計對解決該GPS測量系統(tǒng)安全性方面有較大的現(xiàn)實意義和實用價值,。
參考文獻(xiàn)
[1] 胡向東,魏琴芳.應(yīng)用密碼學(xué)[M].北京:電子工業(yè)出版社,,2006.
[2] 賀雪晨,,陳林玲,趙琰.信息對抗與網(wǎng)絡(luò)安全[M].北京:清華大學(xué)出版社,,2006.
[3] 褚雄,,王子敬,王勇.一種基于FPGA的DES加密算法實現(xiàn)[J].江南大學(xué)學(xué)報(自然科學(xué)版),,2006,,15(6):661-664.
[4] STALLINGS W.密碼編碼學(xué)與網(wǎng)絡(luò)安全(第3版)[M].劉玉珍,王麗娜,,傅建明,,等譯.北京:電子工業(yè)出版社,2004.
[5] 徐光輝,,程東旭,,黃如.基于FPGA的嵌入式開發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,2006.