解同同,李天陽(yáng)
一種基于嵌入式系統(tǒng)的3DES算法IP核的設(shè)計(jì)
解同同1,李天陽(yáng)2
(1.江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,無(wú)錫214122;2.中國(guó)電子科技集團(tuán)公司第58研究所)
使用Verilog語(yǔ)言設(shè)計(jì)了一款3DES算法IP核,采用ARM公司的AMBA總線,使其可以用于ARM體系結(jié)構(gòu)的嵌入式芯片中。首先通過(guò)分析3DES算法原理,提出IP核的整體結(jié)構(gòu),對(duì)算法的關(guān)鍵部分狀態(tài)機(jī)和S盒進(jìn)行分析設(shè)計(jì),完成整體設(shè)計(jì)后再進(jìn)行驗(yàn)證與綜合。目前該IP核的綜合結(jié)果符合要求,并已通過(guò)仿真驗(yàn)證,在一款32位高性能DSP芯片中得到了成功應(yīng)用。
嵌入式系統(tǒng);3DES;IP核;AMBA
隨著嵌入式系統(tǒng)朝著網(wǎng)絡(luò)化發(fā)展,安全性將成為嵌入式系統(tǒng)必須考慮的問(wèn)題。對(duì)傳輸信息進(jìn)行加、解密是保障信息傳輸安全的主要方法,3DES算法是一種在嵌入式系統(tǒng)中得到廣泛應(yīng)用的加解密算法[1]。信息數(shù)據(jù)的加密主要分為軟件加密與硬件加密。使用軟件進(jìn)行3DES加、解密的缺點(diǎn)主要有:明文和密鑰需要存儲(chǔ)在磁盤中,有泄露的風(fēng)險(xiǎn)[2];會(huì)占用系統(tǒng)資源,拖慢系統(tǒng)速度。而3DES算法常使用移位、異或、換位等位操作,非常適合采用硬件電路實(shí)現(xiàn)加密。
許多硬件加密IP核都是針對(duì)某一芯片專門設(shè)計(jì)的,通用性不好。ARM公司提出的AMBA總線標(biāo)準(zhǔn),已經(jīng)成為系統(tǒng)芯片設(shè)計(jì)領(lǐng)域公認(rèn)的總線標(biāo)準(zhǔn),其中使用最多的是AHB- APB架構(gòu)。因此設(shè)計(jì)一款可以掛接到AHB總線上的3DES算法IP核具有重要意義。本文設(shè)計(jì)的3DES算法模塊IP核,采用AHB總線接口,使用硬件資源少,可靈活地改變工作方式,具有很強(qiáng)的通用性,可以很容易集成到嵌入式芯片中。
圖1 DES算法基本流程
3DES算法是通過(guò)普通DES算法的混合運(yùn)算來(lái)實(shí)現(xiàn)的三重DES算法,它是DES算法的一個(gè)變形[3]。DES算法的基本流程如圖1所示。64位明文輸入后,首先使用初始置換IP對(duì)明文中的各位進(jìn)行換位,打亂排列次序后進(jìn)入一個(gè)16輪運(yùn)算組,進(jìn)行16輪迭代,最后經(jīng)過(guò)逆初始置換IP進(jìn)行換位,生成64位密文。
在16輪運(yùn)算的每輪變換中,先將64位輸入分成左、右兩部分(各32位)。左半部分不變,右半部分進(jìn)行位的擴(kuò)展,從32位擴(kuò)展成48位后與48位的子密鑰進(jìn)行異或,得到8組每組6位的數(shù)據(jù),輸入到8個(gè)S盒中進(jìn)行S盒置換(6位輸入,4位輸出),得到32位數(shù)據(jù)。再將此時(shí)的右半部分的數(shù)據(jù)與左半部分的數(shù)據(jù)進(jìn)行異或操作,生成新的右半部分,最終左半部分與右半部分合并輸出。
DES算法使用64位密鑰中的56位,而56位密鑰的窮舉空間為256,這樣即使用窮舉搜索法進(jìn)行攻擊,也幾乎難以破解。然而,隨著硬件技術(shù)和互聯(lián)網(wǎng)的發(fā)展,使用窮舉攻擊破解的可能性也越來(lái)越大,如果使用專門設(shè)計(jì)的硬件并行處理,只要幾個(gè)小時(shí)就可能破解[4]。為了增大DES算法的密鑰空間,提出了3DES算法。
3DES算法的原理如圖2所示。它采用加密-解密-加密序列對(duì)明文進(jìn)行三次加密,K1、K2、K3為3個(gè)56位的密鑰,3個(gè)密鑰互不相同時(shí)安全性最高,此時(shí)相當(dāng)于擁有168位的密鑰,可以有效地對(duì)抗窮舉法破解[5]。
圖2 3DES算法原理
2.1總體結(jié)構(gòu)
圖3 3DES算法lP結(jié)構(gòu)框圖
3DES算法IP總體結(jié)構(gòu)如圖3所示,由AHB總線接口模塊、寄存器模塊、狀態(tài)機(jī)控制模塊和數(shù)據(jù)處理模塊組成。AHB總線接口模塊作為AHB總線從機(jī)接口[5],將AHB總線主機(jī)發(fā)出的信號(hào)轉(zhuǎn)換為3DES模塊所需信號(hào)。寄存器模塊用來(lái)存放數(shù)據(jù)寄存器和密鑰寄存器的值。狀態(tài)機(jī)控制模塊通過(guò)狀態(tài)機(jī)的輪轉(zhuǎn)控制其余模塊工作并存放控制寄存器的值,同時(shí)向外提供加密完成、解密完成和密鑰檢驗(yàn)錯(cuò)誤三個(gè)中斷信號(hào)。數(shù)據(jù)處理模塊是3DES加解密算法的具體硬件實(shí)現(xiàn)。
3DES算法IP設(shè)置了一個(gè)64位的數(shù)據(jù)寄存器,用來(lái)存放等待加解密的數(shù)據(jù),3個(gè)64位的密鑰寄存器用來(lái)存放密鑰,使用時(shí)需要依次向密鑰寄存器1、2、3中寫入相應(yīng)密鑰。主要控制功能由32位的控制狀態(tài)寄存器DCCSR實(shí)現(xiàn),其具體功能如表1所列。
表1 控制狀態(tài)寄存器DCCSR功能
2.2狀態(tài)機(jī)設(shè)計(jì)
3DES算法需要對(duì)64位明文或密文依次進(jìn)行3次DES加密或解密,得到64位密文或明文。一般有兩種結(jié)構(gòu):一種是由3個(gè)DES模塊并行工作,形成流水線結(jié)構(gòu),這樣速度快;另一種是采用單個(gè)DES模塊,控制DES模塊順序進(jìn)行3次加密或解密,這樣可以節(jié)省硬件資源[6]。為了節(jié)約硬件資源、縮小芯片面積,保證IP核的可讀性和通用性,采用單個(gè)DES模塊順序進(jìn)行加解密。
狀態(tài)機(jī)控制模塊使用計(jì)數(shù)器對(duì)加解密運(yùn)算中的16輪或48輪迭代進(jìn)行計(jì)數(shù),判定狀態(tài)的跳轉(zhuǎn),控制狀態(tài)寄存器DCCSR起著重要作用。如圖4所示,主狀態(tài)機(jī)的設(shè)計(jì)中共定義了3種基本狀態(tài):空閑狀態(tài)、加密狀態(tài)和解密狀態(tài)。
空閑狀態(tài):系統(tǒng)復(fù)位后或寄存器DCCSR中TC位置1后,IP核進(jìn)入空閑狀態(tài),加密完成或解密完成轉(zhuǎn)到空閑狀態(tài)。
加密狀態(tài):寄存器DCCSR中CD位置0后,由空閑狀態(tài)轉(zhuǎn)到加密狀態(tài)。
解密狀態(tài):寄存器DCCSR中CD位置1后,由空閑狀態(tài)轉(zhuǎn)到解密狀態(tài)。
圖4 主狀態(tài)機(jī)
此外,根據(jù)寄存器DCCSR中CD位和CT位的值,以及計(jì)數(shù)器的值來(lái)判定狀態(tài)轉(zhuǎn)換,以實(shí)現(xiàn)加密狀態(tài)與解密狀態(tài)之間的變換。
圖5所示為加密運(yùn)算子狀態(tài)流程圖,解密狀態(tài)算法與加密相似。用Verilog語(yǔ)言設(shè)置5個(gè)狀態(tài):State0為輸入狀態(tài);State1為第一次16輪迭代狀態(tài);State2為第二次16輪迭代狀態(tài);State3為第三次16輪迭代狀態(tài);State4為輸出狀態(tài)。
圖5 加密運(yùn)算子狀態(tài)流程圖
狀態(tài)轉(zhuǎn)換過(guò)程:進(jìn)入輸入狀態(tài)后,每個(gè)周期輸入8位數(shù)據(jù),計(jì)數(shù)器count從0開始計(jì)數(shù),每輸入一次明文和密鑰,count加1,期間緩沖一個(gè)周期,等待密鑰生成。count=7時(shí),64位明文和密鑰輸入完成。開始第一次16輪循環(huán)迭代,count再次從0開始計(jì)數(shù),每完成一輪迭代,count加1,count=15時(shí),第一次16輪迭代完成。當(dāng)控制狀態(tài)寄存器DCCSR中的CT=0時(shí),表明使用DES算法,轉(zhuǎn)入輸出狀態(tài);CT=1時(shí),使用3DES算法,進(jìn)入第二次16輪迭代狀態(tài)。先緩沖一個(gè)周期,等待密鑰模塊產(chǎn)生子密鑰,然后count歸0開始計(jì)數(shù),每完成一輪迭代,count加1。count= 15時(shí),第二次16輪迭代完成。再次緩沖一個(gè)周期,等待密鑰模塊產(chǎn)生子密鑰,電路轉(zhuǎn)入第三次16輪迭代狀態(tài)。Count歸0開始計(jì)數(shù),每完成一輪迭代,count加l。count= 15時(shí),完成第三次16輪迭代。進(jìn)入輸出狀態(tài),count=7時(shí),完成輸出。
2.3S盒實(shí)現(xiàn)
在DES算法的16輪迭代運(yùn)算中,只有S盒變換是非線性和不可逆的,需要依靠S盒實(shí)現(xiàn)運(yùn)算過(guò)程中的混亂操作[7]。由于16輪迭代運(yùn)算是DES算法的核心,所以S盒是整個(gè)3DES算法的關(guān)鍵部位。
采用Verilog硬件描述語(yǔ)言建立S盒電路模型的方法主要有兩種:一種是采用Verilog語(yǔ)言中的多重選擇語(yǔ)句case,用純組合邏輯來(lái)實(shí)現(xiàn);另一種是利用FPGA器件內(nèi)部的嵌入式陣列塊進(jìn)行查表的方式實(shí)現(xiàn),為了節(jié)省硬件資源,采用雙層嵌套的case語(yǔ)句來(lái)實(shí)現(xiàn)??偣残枰?個(gè)S盒,每個(gè)S盒都是6位輸入、4位輸出。每個(gè)S盒的具體功能不一樣,但是設(shè)計(jì)方法類似。單個(gè)S盒設(shè)計(jì)的部分代碼如下所示:
單個(gè)S盒的輸入為s_bit[5:0],輸出為f_bit[3:0]。為了降低資源占用,通過(guò)雙層case嵌套,使用4輸入選擇器而不是6輸入選擇器。設(shè)計(jì)時(shí)外層使用輸入數(shù)據(jù)的s_bit[0]與s_bit[5]作為外層case的控制變量,s_bit[1]、s_bit[2]、s_bit[3]、s_bit[4]作為內(nèi)層case的控制變量,這樣設(shè)計(jì)既能保證數(shù)據(jù)運(yùn)算能力,又能降低資源占用率。
本文的3DES算法IP核用Verilog語(yǔ)言進(jìn)行設(shè)計(jì),使用Synopsys公司的DC軟件進(jìn)行綜合,器件庫(kù)選用TSMC的65 nm典型庫(kù),頻率為500 M Hz,電壓為0.95 V,結(jié)果如表2所列。18 穩(wěn)定性與可擴(kuò)展性。提出了基于時(shí)空約束的組播路由算法,克服了單層結(jié)構(gòu)的所有節(jié)點(diǎn)均需路由消耗能量,降低了節(jié)點(diǎn)設(shè)備的能耗。未來(lái)網(wǎng)絡(luò)的自適應(yīng)性決定了本文中的網(wǎng)關(guān)必須要融合多網(wǎng)絡(luò)的功能,目前采用基于IPv6的地址池來(lái)分配地址,可以增加地址空間的容量,在此基礎(chǔ)上增加諸如源地址檢查、無(wú)狀態(tài)地址映射等技術(shù),期望能滿足未來(lái)互聯(lián)網(wǎng)的要求。
[1]李嵩,李永超,夏葳,等.物聯(lián)網(wǎng)技術(shù)在氣象業(yè)務(wù)中的應(yīng)用性研究[J].中小企業(yè)管理與科技:中旬刊,2016(1):34-36.
[2]王夢(mèng)迪,楊柳濤.新型集裝箱狀態(tài)監(jiān)測(cè)系統(tǒng)軟件設(shè)計(jì)[J].上海船舶運(yùn)輸科學(xué)研究所學(xué)報(bào):2015(4).
[3]羅濤.基于ZigBee技術(shù)的糧倉(cāng)環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物流工程與管理,2015(11):80-83.
[4]馬國(guó)俊.基于物聯(lián)網(wǎng)技術(shù)的甘南牦牛疾病預(yù)警系統(tǒng)[J].工業(yè)儀表與自動(dòng)化裝置,2015(5):56-58.
[5]李眾,王鵬澄,陸???,等.基于ZigBee、以太網(wǎng)、WiFi技術(shù)的網(wǎng)關(guān)設(shè)計(jì)[J].測(cè)控技術(shù),2015(3):120-122.
[6]高泗俊,張永剛,周小林,等.農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用服務(wù)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].上海師范大學(xué)學(xué)報(bào):自然科學(xué)版,2015(01):58-70.
[7]王倩,鄭樹泉,丁志剛,等.一種“一主多從”的物聯(lián)網(wǎng)網(wǎng)關(guān)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2015(1):77-79.
[8]李孟,王季壯,田雨,等.農(nóng)業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)[J].機(jī)械與電子,2014(12):44-46.
陳勇(高級(jí)工程師),研究方向?yàn)檐浖图呻娐贰⑽锫?lián)網(wǎng)。
(責(zé)任編輯:薛士然 收修改稿日期:2016-03-29)
該IP核可通過(guò)寄存器選擇DES算法或3DES算法;有3種中斷信號(hào)并支持AMBA總線接口,具有良好的片上集成性與可重用性;可自動(dòng)或強(qiáng)制開始轉(zhuǎn)換方式,加解密運(yùn)算可停止;可以鎖定總線,對(duì)轉(zhuǎn)換過(guò)程進(jìn)行實(shí)時(shí)監(jiān)控。由綜合結(jié)果可知,時(shí)間冗余為正數(shù),功耗和面積都滿足設(shè)計(jì)預(yù)期。該IP核在500 MHz工作頻率下,加解密轉(zhuǎn)換速率為610 Mbps,實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。
表2 綜合結(jié)果
本文設(shè)計(jì)的3DES算法IP核已成功應(yīng)用于一款32位高性能DSP芯片中,此芯片采用軍用CMOS工藝,最高工作頻率為300 MHz。如圖6所示,3DES算法IP核掛接到AMBA總線上,作為整個(gè)嵌入式芯片的加解密引擎,可以提供快速、安全的硬件加解密支持,保證了通信數(shù)據(jù)的安全,在DES模式下的加解密速率可達(dá)到1.6 Gbps。由于該IP核使用AMBA總線接口,可以方便地在各類嵌入式芯片的開發(fā)中得到進(jìn)一步應(yīng)用。隨著集成電路產(chǎn)業(yè)的迅速發(fā)展,采用更先進(jìn)的工藝與制程,該IP核依然有很大的提升空間。
圖6 3DES算法模塊在DSP芯片中的位置
參考文獻(xiàn)
[1]陳志平,雷航,楊霞,等.嵌入式安全操作系統(tǒng)的研究和實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2007(1):83-85.
[2]周學(xué)廣,劉藝.信息安全學(xué)[M].北京:機(jī)械工業(yè)出版社,20-03.
[3]戴紫彬,孫萬(wàn)忠,張永福.DES算法IP核設(shè)計(jì)[J].半導(dǎo)體技術(shù),2003,28(5):58-59.
[4]王簡(jiǎn)瑜,張魯國(guó).基于FPGA實(shí)現(xiàn)DES算法的性能分析[J].微計(jì)算機(jī)信息,2007,23(3):217-219.
[5]張麗娜,陳建華.基于ASIC的有效DES/3DES流水線設(shè)計(jì)[J].計(jì)算機(jī)工程,2007,33(2):225-226.
[6]梅振宇,張虹.基于非S盒變換的DES分組密碼的改進(jìn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(17):4119-4121.
[7]晏福平,盛利元,簡(jiǎn)遠(yuǎn)鳴.基于DSP的3DES加密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2009,17(7):1390-1392.
解同同(碩士研究生)、李天陽(yáng)(工程師),研究方向?yàn)榧呻娐吩O(shè)計(jì)。
(責(zé)任編輯:薛士然 收修改稿日期:2016-03-28)
Design of 3DES Algorithm lP-core Based on Embedded System
Xie Tongtong1,Li Tianyang2
(1.College of Internet of Things,Jiangnan University,Wuxi 214122,China;2.NO.58 Research Institute of China Electronics Technology Group Corporation)
This paper introduces the design of 3DES algorithm IP-core using Verilog language,which adopts ARM's AMBA bus.It can be used for embedded chip in ARM architecture.Firstly,the principle of 3DES algorithm is introduced,the overall structure of IP-core is proposed,the key part of the state machine algorithm and S box are analyzed.Then on the basis of overall design,the verification and synthesis are completed.The comprehensive results of the IP-core meet the requirements.The design has been verified by the simulation,and successfully applied in a 32-bit high performance DSP chip.
embedded system;3DES;IP-core;AMBA
TP334
A