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