基于FPGA技術(shù)的GPS數(shù)據(jù)加密系統(tǒng)設(shè)計(jì)研究
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ā)展而來(lái)。其作用可使大容量信息在用數(shù)字簽名軟件簽署私人密匙前,被“壓縮”成一種保密的格式(對(duì)任意長(zhǎng)度的信息,生成一個(gè)長(zhǎng)度為128 bit的值)。
本設(shè)計(jì)將MD5算法移植到NIOS中,用于加密管理員口令。這樣系統(tǒng)在并不知道管理員口令的明碼情況下就可以確定口令的合法性,從而有效地防止了反編譯等技術(shù)手段對(duì)管理員口令進(jìn)行破解。系統(tǒng)工作時(shí),NIOS預(yù)先將管理員口令加密后,將MD5值存儲(chǔ)在Flash中,當(dāng)加密卡接收到更改密鑰、更改口令或發(fā)GPS接收機(jī)控制指令等操作命令時(shí),先將輸入的口令計(jì)算成MD5值,然后與存儲(chǔ)在Flash中的MD5值進(jìn)行比較,如果兩值相同則說(shuō)明口令正確,再進(jìn)行相應(yīng)的操作。
2.2 DES算法的原理及應(yīng)用
DES(Data Encryption Standard)是一種分組乘積加密算法,是用64 bit的密鑰對(duì)64 bit的明文加密,64 bit密鑰中每8 bit有一奇偶校驗(yàn)位不參與運(yùn)算,有效密鑰只有56 bit。同時(shí),它又是對(duì)稱加密算法,其加密和解密運(yùn)算過(guò)程完全相同,只是在迭代運(yùn)算時(shí)子密鑰的使用順序不同[1]。如圖2所示,64 bit的明文塊在經(jīng)過(guò)初始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算法本身并沒(méi)有大量的復(fù)雜數(shù)學(xué)計(jì)算(如乘、帶進(jìn)位的加、模等運(yùn)算),在加密、解密過(guò)程和密鑰生成過(guò)程中僅有邏輯運(yùn)算和查表運(yùn)算。因而,無(wú)論是從系統(tǒng)性能還是加、解密速度的角度來(lái)看,采用硬件實(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ù)分為左右兩部分,分別記為L(zhǎng)i和Ri。單個(gè)運(yùn)算的過(guò)程可以寫(xiě)為下面的公式:
評(píng)論