采用FPGA器件實現(xiàn)GPS數(shù)據(jù)加密系統(tǒng)中機載模塊中DES IP的設(shè)計
針對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ù)被非法竊取,具有安全性強、速度快、操作簡便等特點。
隨著網(wǎng)絡(luò)通信技術(shù)的發(fā)展,數(shù)據(jù)傳輸對安全性的要求也隨之加強。如何確保信息的正確認證與嚴格保密,保證數(shù)據(jù)信息在傳輸與處理過程中不被非法竊取和篡改,成為信息安全理論與技術(shù)研究的重要內(nèi)容。多數(shù)情況下,數(shù)據(jù)加密是保證信息機密性的惟一方法。在GPS測量系統(tǒng)中,GPS定位數(shù)據(jù)以明文形式通過電臺進行傳輸,可能會被同型號電臺獲取,存在一定的安全隱患。本設(shè)計應(yīng)用FPGA技術(shù)設(shè)計了GPS數(shù)據(jù)加密系統(tǒng),通過MD5加密算法對管理員口令進行加密;DES加密算法對GPS數(shù)據(jù)進行加密。這樣,GPS數(shù)據(jù)經(jīng)加密卡加密后再以密文方式發(fā)給電臺進行傳輸,同時接收端必須使用密鑰將密文解碼才能得到定位數(shù)據(jù),從而確保了數(shù)據(jù)傳輸?shù)陌踩?/p>
1 、系統(tǒng)組成及功能
GPS數(shù)據(jù)加密系統(tǒng)由機載模塊和服務(wù)器端兩部分組成,通過電臺進行通信。其系統(tǒng)結(jié)構(gòu)如圖1所示。
1.1 機載模塊
機載模塊由4×4鍵盤、機載LCD、加密卡三部分組成,用戶可通過4×4鍵盤發(fā)送預定義指令、更改密鑰等操作;機載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ù)器端輸入的預存指令編號或新指令,將指令發(fā)給GPS接收機并返回回饋信息;
(4)更新鍵盤或服務(wù)器輸入的新密鑰或新管理員口令。新密鑰先保存在FLASH中,再通過總線傳給密鑰寄存器;新口令保存在FLASH中。
系統(tǒng)工作時,加密卡通過UART IP獲取GPS數(shù)據(jù)后同時傳給NIOS和DES IP。NIOS解析GPS數(shù)據(jù)并經(jīng)LCD CONtroller傳給機載LCD進行實時顯示,方便機上人員了解設(shè)備工作狀態(tài);DES IP將GPS數(shù)據(jù)加密后,通過I/O中斷傳給NIOS,NIOS將密文加入數(shù)據(jù)包頭、尾字節(jié)后,再經(jīng)電臺傳到服務(wù)器端。
1.2 服務(wù)器端
服務(wù)器端為通用計算機,其應(yīng)用軟件使用VC++6.0開發(fā),服務(wù)器的主要功能有以下6點:
(1)接收電臺傳來的密文并進行DES算法解密、解析和處理GPS數(shù)據(jù);
(2)顯示GPS參數(shù),并保存數(shù)據(jù);
(3)發(fā)送GPS接收機控制指令;
(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ù)手段對管理員口令進行破解。系統(tǒng)工作時,NIOS預先將管理員口令加密后,將MD5值存儲在FLASH中,當加密卡接收到更改密鑰、更改口令或發(fā)GPS接收機控制指令等操作命令時,先將輸入的口令計算成MD5值,然后與存儲在FLASH中的MD5值進行比較,如果兩值相同則說明口令正確,再進行相應(yīng)的操作。
2.2 DES算法的原理及應(yīng)用
DES(Data Encryption Standard)是一種分組乘積加密算法,是用64 bit的密鑰對64 bit的明文加密,64 bit密鑰中每8 bit有一奇偶校驗位不參與運算,有效密鑰只有56 bit。同時,它又是對稱加密算法,其加密和解密運算過程完全相同,只是在迭代運算時子密鑰的使用順序不同。如圖2所示,64 bit的明文塊在經(jīng)過初始IP置換后,被重新排列,然后進入16輪的迭代運算;每一輪迭代運算由一個f函數(shù)完成;最后一輪迭代的輸出為64 bit,將其左半部分和右半部分互換產(chǎn)生預輸出;預輸出再與逆初始置換IP-1作用產(chǎn)生64 bit的密文,IP-1是IP的反變換。
采用軟件方式實現(xiàn)的DES算法會在很大程度上占用系統(tǒng)資源,造成系統(tǒng)性能的嚴重下降,而DES算法本身并沒有大量的復雜數(shù)學計算(如乘、帶進位的加、模等運算),在加密、解密過程和密鑰生成過程中僅有邏輯運算和查表運算。因而,無論是從系統(tǒng)性能還是加、解密速度的角度來看,采用硬件實現(xiàn)都是一個理想的方案。
圖3為DES IP的硬件邏輯圖,主要由狀態(tài)控制器、子密鑰生成器、DES算法運算器三部分組成。其中,狀態(tài)控制器用于控制IP的工作狀態(tài)、模式和標識完成狀態(tài);子密鑰生成器將56 bit密鑰分成兩部分,每部分按循環(huán)移位次數(shù)表移位并按置換選擇表置換,從而生成每一輪次運算的子密鑰K(K1,K2,…,K48);DES算法運算器為整個IP的關(guān)鍵,它將64 bit中間數(shù)據(jù)分為左右兩部分,分別記為Li和Ri。單個運算的過程可以寫為下面的公式:
(1)將Ri-1按照擴展換位表E擴展為48 bit的數(shù)據(jù);
(2)將擴展后的Ri-1與循環(huán)移位后的48 bit子密鑰K(K1,K2,…,K48)“異或”;
(3)將“異或”后的結(jié)果送入8個S盒(S box)進行替代運算,每個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)進行置換,置換后結(jié)果即為f(Ri-1,Ki)的最終值,這樣便完成了f函數(shù)的運算。
算法中用到的初始換位表IP、放大換位表E、替代函數(shù)表S、換位函數(shù)P、逆初始換位IP-1、密鑰循環(huán)移位表可在參考文獻中查到。本設(shè)計中,GPS數(shù)據(jù)的加密在加密卡中完成,解密在服務(wù)器端完成,為方便功能擴展,在加密卡中設(shè)計、保留了解密功能。
2.3 DES算法仿真驗證
本設(shè)計的DES IP采用ALTERA公司的Quartus 7.0軟件開發(fā)及Verilog HDL語言編寫,整個加密卡在單片Cyclone系列EP1C6Q240C8N芯片上實現(xiàn)。圖4為Quartus 7.0開發(fā)軟件下DES IP的仿真圖。
各仿真信號的意義及說明如下:
時鐘信號(clk):周期為10 ns、占空比為50%;
復位信號(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),重點介紹了機載模塊中DES IP的設(shè)計。實驗發(fā)現(xiàn),采用NIOS進行DES算法軟件加密時速度慢,會出現(xiàn)間隔丟失GPS數(shù)據(jù)的現(xiàn)象,而采用硬件DES IP進行加密處理時,完全可以滿足GPS接收機的速度需要,不會出現(xiàn)丟點現(xiàn)象。系統(tǒng)采用MD5算法對管理員口令進行加密,進一步增強了系統(tǒng)的安全性,因此本設(shè)計對解決該GPS測量系統(tǒng)安全性方面有較大的現(xiàn)實意義和實用價值。