《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA技術(shù)的GPS數(shù)據(jù)加密系統(tǒng)設(shè)計研究
基于FPGA技術(shù)的GPS數(shù)據(jù)加密系統(tǒng)設(shè)計研究
來源:微型機與應(yīng)用2010年第15期
邢紅濤,,王建功,初 曉
中國人民解放軍63895部隊,,河南 孟州 454750
摘要: 針對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ù)被非法竊取,具有安全性強,、速度快,、操作簡便等特點。
Abstract:
Key words :

摘  要: 針對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ù)被非法竊取,具有安全性強,、速度快,、操作簡便等特點。
關(guān)鍵詞: FPGA,;GPS,;MD5;DES,;數(shù)據(jù)加密

    隨著網(wǎng)絡(luò)通信技術(shù)的發(fā)展,,數(shù)據(jù)傳輸對安全性的要求也隨之加強。如何確保信息的正確認(rèn)證與嚴(yán)格保密,,保證數(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ù)陌踩?br /> 1 系統(tǒng)組成及功能
    GPS數(shù)據(jù)加密系統(tǒng)由機載模塊和服務(wù)器端兩部分組成,,通過電臺進行通信。其系統(tǒng)結(jié)構(gòu)如圖1所示。

1.1 機載模塊
    機載模塊由4×4鍵盤,、機載LCD,、加密卡三部分組成,用戶可通過4×4鍵盤發(fā)送預(yù)定義指令,、更改密鑰等操作,;機載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接收機并返回回饋信息;
    (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預(yù)先將管理員口令加密后,,將MD5值存儲在Flash中,當(dāng)加密卡接收到更改密鑰,、更改口令或發(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,。同時,,它又是對稱加密算法,其加密和解密運算過程完全相同,,只是在迭代運算時子密鑰的使用順序不同[1],。如圖2所示,64 bit的明文塊在經(jīng)過初始IP置換后,,被重新排列,,然后進入16輪的迭代運算;每一輪迭代運算由一個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é)計算(如乘,、帶進位的加,、模等運算),在加密,、解密過程和密鑰生成過程中僅有邏輯運算和查表運算。因而,,無論是從系統(tǒng)性能還是加,、解密速度的角度來看,采用硬件實現(xiàn)都是一個理想的方案[3],。
    圖3為DES IP的硬件邏輯圖,,主要由狀態(tài)控制器、子密鑰生成器,、DES算法運算器三部分組成,。其中,狀態(tài)控制器用于控制IP的工作狀態(tài),、模式和標(biāo)識完成狀態(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)移位表可在參考文獻[4]中查到,。本設(shè)計中,GPS數(shù)據(jù)的加密在加密卡中完成,,解密在服務(wù)器端完成,,為方便功能擴展,在加密卡中設(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),重點介紹了機載模塊中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)實意義和實用價值。
參考文獻
[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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。