基于ARM的3DES加密算法實(shí)現(xiàn)
在3DES加密算法中,加密過程用兩個(gè)不同的密鑰K1和K2對(duì)一個(gè)分組消息進(jìn)行三次DES加密。首先使用第一個(gè)密鑰進(jìn)行DES加密,然后使用第二個(gè)密鑰對(duì)第一次的結(jié)果進(jìn)行DES解密,最后使用第一個(gè)密鑰對(duì)第二次的結(jié)果進(jìn)行DES加密。
解密過程首先使用第一個(gè)密鑰進(jìn)行DES解密,然后使用第二個(gè)密鑰對(duì)第一次的結(jié)果進(jìn)行DES加密,最后再使用第一個(gè)密鑰對(duì)第二次的結(jié)果進(jìn)行DES解密。
DES算法的密鑰長(zhǎng)度是56位,三重DES算法的密鑰長(zhǎng)度是112位,加密強(qiáng)度顯著增強(qiáng),可以很好地應(yīng)付各種攻擊,目前尚沒有可行的攻擊方法,應(yīng)用3DES的加密系統(tǒng)具有很大的實(shí)用價(jià)值。
2 基于ARM的硬件實(shí)現(xiàn)
根據(jù)滿足3DES算法和一般嵌入式應(yīng)用的需求,在此設(shè)計(jì)了一個(gè)基于ARM微處理器的嵌入式系統(tǒng)。以三星S3C2410處理器作為系統(tǒng)的核心,用嵌入式Linux作為操作系統(tǒng)。加密的數(shù)據(jù)可以存放于NAND FLASH等存儲(chǔ)介質(zhì)上,加密后的結(jié)果可以通過液晶屏直觀地顯示出來(lái),實(shí)現(xiàn)用戶交互。在此設(shè)計(jì)過程中,難點(diǎn)是圖形顯示與加密函數(shù)的實(shí)現(xiàn)。這里通過移植MiniGUI,并在其上開發(fā)顯示程序,完成了兩者之間的聯(lián)系,實(shí)驗(yàn)結(jié)果給出了3DES算法的演示效果。整個(gè)系統(tǒng)的具體實(shí)現(xiàn)如下。
2.1 系統(tǒng)設(shè)計(jì)框圖
系統(tǒng)的核心部分是ARM微處理器,由ARM微處理器和其他一些功能單元構(gòu)成了完整的嵌入式系統(tǒng)。這里的ARM微處理器選為基于ARM920T核心的S3C2410處理器芯片,其工作頻率最高達(dá)200 MHz;外圍包括64 MB的NAND FLASH和64 MB的RAM、鍵盤接口、串口、CPLD譯碼單元、網(wǎng)絡(luò)單元、語(yǔ)音單元、LCD及觸摸屏等。上述部件共同構(gòu)建了嵌入式系統(tǒng)的硬件平臺(tái)。系統(tǒng)核心框架如圖3所示。
2.2 操作系統(tǒng)移植
該系統(tǒng)建立在嵌入式Linux系統(tǒng)之上,因此首先要移植Linux系統(tǒng)到ARM處理器上。嵌入式Linux是按照嵌入式操作系統(tǒng)要求設(shè)計(jì)的一種小型操作系統(tǒng)。一由一個(gè)內(nèi)核以及一些根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成。
要構(gòu)建運(yùn)行環(huán)境,首先移植BootLoader到嵌入式系統(tǒng)中,通過BootlLoader可以完成對(duì)系統(tǒng)板上的主要部件,如CPU,SDRAM,F(xiàn)LAsH、串行口等進(jìn)行初始化。分配內(nèi)存空間的映射,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)準(zhǔn)備好正確的環(huán)境。Linux內(nèi)核采用了穩(wěn)定版的linux-2.4.18內(nèi)核。該系統(tǒng)采用Cramfs文件系統(tǒng),Cramfs被設(shè)計(jì)為簡(jiǎn)單較小的只讀可壓縮文件系統(tǒng),因此很適合用作嵌入式的文件系統(tǒng)。可以利用工具軟件BusyBox和Mkcramfs制作Cramfs文件系統(tǒng)。做好文件系統(tǒng)后下載到開發(fā)板上,可以看到Linux系統(tǒng)運(yùn)行正常。
2.3 MiniGUI圖形界面顯示
MiniGUI是針對(duì)嵌入式設(shè)備,跨操作系統(tǒng)的圖形界面支持系統(tǒng),MiniGUI為實(shí)時(shí)嵌入式操作系統(tǒng)提供了非常完善的圖形及用戶界面支持。MiniGUI小巧、靈活且對(duì)中文的支持性最好。從技術(shù)架構(gòu)上看,MiniGUI包括幾個(gè)模塊:輸入抽象層、輸出抽象層、消息模塊、窗口模塊、圖形設(shè)備接口模塊及.MiniGUI組件。
要想使MiniGUI能在本硬件系統(tǒng)上執(zhí)行,需要移植MiniGUI到S3C2410開發(fā)平臺(tái)。首先,安裝交叉編譯鏈,下載相關(guān)資源:libminigui-1.3.4.tar.gz,minigui-res-1.3.3.tar.gz,經(jīng)過相應(yīng)的配置和交叉編譯后就可以把相應(yīng)的庫(kù)拷貝到Cramfs文件系統(tǒng)的目錄,重新用Mkcramfs工具制作文件系統(tǒng)。對(duì)于應(yīng)用程序,只需要經(jīng)過交叉編譯后執(zhí)行可執(zhí)行程序即可。
該系統(tǒng)利用MiniGUI圖形界面作為3DES的演示輸出。消息機(jī)制是MiniGUI運(yùn)行的基礎(chǔ),應(yīng)用程序通過接收消息與外界交互。消息由系統(tǒng)和應(yīng)用程序產(chǎn)生,比如創(chuàng)建窗口時(shí)系統(tǒng)會(huì)產(chǎn)生MSG_CREAT消息,用戶在窗口中的各種操作都會(huì)產(chǎn)生一系列相應(yīng)消息。系統(tǒng)采用了邏輯字體輸出,建立邏輯字體的函數(shù)為Create-LogFont,設(shè)置設(shè)備hdc實(shí)用指定邏輯字體的函數(shù)為SelectFont。用TextOut作為輸出,部分主函數(shù)如下:
其中調(diào)用的show(hdc)是3DES加密算法的具體實(shí)現(xiàn)。實(shí)驗(yàn)的簡(jiǎn)單演示結(jié)果如圖4所示。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)可以實(shí)現(xiàn)正確的加密和解密功能,因此可以用基于ARM的嵌入式3DES加密系統(tǒng)進(jìn)行數(shù)據(jù)加密,保證信息的安全。采用這種嵌入式微處理器的方法實(shí)現(xiàn)起來(lái)簡(jiǎn)單,體積小,易于移植到其他系統(tǒng)中,與采用FPGA的方法相比,實(shí)現(xiàn)起來(lái)靈活,系統(tǒng)復(fù)雜度低。
3 結(jié) 語(yǔ)
在此結(jié)合嵌入式系統(tǒng)的特點(diǎn)及3DES加密算法,實(shí)現(xiàn)了基于ARM的3DES的加密算法的系統(tǒng)設(shè)計(jì),詳細(xì)闡述了3DES算法原理及加密系統(tǒng)的實(shí)現(xiàn)過程,并給出了演示結(jié)果。此系統(tǒng)具有方便、靈活、體積小,可定制等特點(diǎn),因此在實(shí)際應(yīng)用中有一定的參考意義。
評(píng)論