基于FPGA技術(shù)的GPS數據加密系統設計研究
2 數據加密算法的原理及應用
2.1 MD5算法的原理及應用
信息—摘要算法MD5(Message-Digest Algorithm 5),在90年代初由Rivest設計發(fā)明,經(jīng)MD2、MD3和MD4發(fā)展而來(lái)。其作用可使大容量信息在用數字簽名軟件簽署私人密匙前,被“壓縮”成一種保密的格式(對任意長(cháng)度的信息,生成一個(gè)長(cháng)度為128 bit的值)。
本設計將MD5算法移植到NIOS中,用于加密管理員口令。這樣系統在并不知道管理員口令的明碼情況下就可以確定口令的合法性,從而有效地防止了反編譯等技術(shù)手段對管理員口令進(jìn)行破解。系統工作時(shí),NIOS預先將管理員口令加密后,將MD5值存儲在Flash中,當加密卡接收到更改密鑰、更改口令或發(fā)GPS接收機控制指令等操作命令時(shí),先將輸入的口令計算成MD5值,然后與存儲在Flash中的MD5值進(jìn)行比較,如果兩值相同則說(shuō)明口令正確,再進(jìn)行相應的操作。
2.2 DES算法的原理及應用
DES(Data Encryption Standard)是一種分組乘積加密算法,是用64 bit的密鑰對64 bit的明文加密,64 bit密鑰中每8 bit有一奇偶校驗位不參與運算,有效密鑰只有56 bit。同時(shí),它又是對稱(chēng)加密算法,其加密和解密運算過(guò)程完全相同,只是在迭代運算時(shí)子密鑰的使用順序不同[1]。如圖2所示,64 bit的明文塊在經(jīng)過(guò)初始IP置換后,被重新排列,然后進(jìn)入16輪的迭代運算;每一輪迭代運算由一個(gè)f函數完成;最后一輪迭代的輸出為64 bit,將其左半部分和右半部分互換產(chǎn)生預輸出;預輸出再與逆初始置換IP-1作用產(chǎn)生64 bit的密文,IP-1是IP的反變換[2]。
采用軟件方式實(shí)現的DES算法會(huì )在很大程度上占用系統資源,造成系統性能的嚴重下降,而DES算法本身并沒(méi)有大量的復雜數學(xué)計算(如乘、帶進(jìn)位的加、模等運算),在加密、解密過(guò)程和密鑰生成過(guò)程中僅有邏輯運算和查表運算。因而,無(wú)論是從系統性能還是加、解密速度的角度來(lái)看,采用硬件實(shí)現都是一個(gè)理想的方案[3]。
圖3為DES IP的硬件邏輯圖,主要由狀態(tài)控制器、子密鑰生成器、DES算法運算器三部分組成。其中,狀態(tài)控制器用于控制IP的工作狀態(tài)、模式和標識完成狀態(tài);子密鑰生成器將56 bit密鑰分成兩部分,每部分按循環(huán)移位次數表移位并按置換選擇表置換,從而生成每一輪次運算的子密鑰K(K1,K2,…,K48);DES算法運算器為整個(gè)IP的關(guān)鍵,它將64 bit中間數據分為左右兩部分,分別記為L(cháng)i和Ri。單個(gè)運算的過(guò)程可以寫(xiě)為下面的公式:
評論