加密算法在SOC中的設(shè)計實現(xiàn)

隨著微電子技術(shù)的發(fā)展,集成電路正向超大規(guī)模集成(VIsI)的方向發(fā)展,芯片的規(guī)模達(dá)到千萬門級,IC的制造特征尺寸達(dá)到納米級,設(shè)計復(fù)雜度也大大增加,在這種背景下,基于IP的設(shè)計方法開始逐步發(fā)展起來,越來越多的功能,甚至一個完整系統(tǒng)都可以集成到一個芯片當(dāng)中,形成SOC。由于其設(shè)計基于IP,所以具有產(chǎn)品開發(fā)周期短,可靠性高,低功耗,面積小等優(yōu)點。目前集成電路設(shè)計中越來越多的采用SOC方法來進行設(shè)計。

數(shù)據(jù)加密技術(shù)在當(dāng)今社會中起著很重要的作用,如軍事、國防、商貿(mào)等,尤其是隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)上交易越來越頻繁,數(shù)據(jù)加密得到了更多的重視,出現(xiàn)了各種類型的加密算法,尤其以3DES和AES等非對稱加密算法應(yīng)用最為廣泛。傳統(tǒng)的加密是通過在主機上運行加密軟件來工作的,其占用主機的資源,并且處理速度相對于硬件加密要慢很多。而硬件加密由于其獨立于主機,數(shù)據(jù)存儲、運算等都通過硬件實現(xiàn),所以有速度快、安全性高等優(yōu)點。

本文主要是將加密算法用硬件來實現(xiàn),集成到SOC芯片中,通過AMBA總線來實現(xiàn)內(nèi)部處理器與硬件加密模塊的連接,實現(xiàn)對數(shù)據(jù)加密的控制,而數(shù)據(jù)加密的過程由加密硬件模塊來實現(xiàn)。

一、加密算法簡介

加密技術(shù)是電子商務(wù)采取的主要安全保密措施,是最常用的安全保密手段,利用技術(shù)手段把重要的數(shù)據(jù)變?yōu)閬y碼(加密)傳送,到達(dá)目的地后再用相同或不同的手段還原懈密)。加密技術(shù)包括兩個元素:算法和密鑰。算法是將信息與加密結(jié)合,產(chǎn)生不可理解的密文的步驟,密鑰是用來對數(shù)據(jù)進行編碼和解碼的一種算法。在安全保密中,可通過適當(dāng)?shù)拿荑€加密技術(shù)和管理機制來保證網(wǎng)絡(luò)的信息通訊安全。

密鑰加密技術(shù)的密碼體制分為對稱密鑰體制和非對稱密鑰體制兩種。相應(yīng)地,對數(shù)據(jù)加密的技術(shù)分為兩類,即對稱加密(私人密鑰加密)和非對稱加密(從開密鑰加密)。對稱加密以數(shù)據(jù)加密標(biāo)準(zhǔn)(DES,Data EncDption StandaKI)算法為典型代表,非對稱加密通常以R&\ (Rivest ShanirAdleman)算法為代表。本文主要研究非對稱加密算法3DES和AES,下面將簡單介紹一下這兩種加密算法。

1、3DES加密

DES算法有三個輸入:key data、mode,其中key為64bit,是DES的密鑰;data為64bit,是加密解密的數(shù)據(jù);mode為DES的工作方式,加密或者解密。如果mode為加密,則用key對數(shù)據(jù)data進行加密,生成dataout作為輸出結(jié)果;如果mode為解密,則用key去解密data的密碼形式,還原data的明碼形式作為輸出結(jié)果。3DES是DES的一個變形,它以DES為基本模塊,通過組合分組來組織加密算法。

2、AES加密

AES是一種迭代分組密碼,輸入數(shù)據(jù)是128bit,密鑰長度支持128bit) 196bit. 256bit AES加密算法的實現(xiàn)包括密鑰擴展過程和加密過程,加密過程又包含一個作為初始輪的初始密鑰加法,接著進行九次輪變換,最后再使用一個輪變換。

二、加密算法在SOC中的實現(xiàn)

1、加密模塊在SOC中的結(jié)構(gòu)

3DES加密模塊和AES加密模塊作為SOC芯片的一個組成部分,通過AMBA總線同處理器和內(nèi)存控制器等其他模塊聯(lián)系起來,實現(xiàn)對加密算法的控制和加密數(shù)據(jù)的傳輸,架構(gòu)圖如圖1所示。

加密算法在SOC中的設(shè)計實現(xiàn)

3DES加密模塊和AES加密模塊內(nèi)部分別包含輸入數(shù)據(jù)寄存器、輸入密鑰寄存器、輸出數(shù)據(jù)寄存器、控制寄存器??刂萍拇嫫鳛?2bit,其他的寄存器3DES模塊中為64bit,AES模塊中為128bit最后加密或者解密后的數(shù)據(jù)通過內(nèi)存控制器傳送給內(nèi)存,3DES和AES加密模塊的寄存器如表1所示。

加密算法在SOC中的設(shè)計實現(xiàn)

2、加密模塊的功能仿真

(1)3DES加密模塊的功能仿真

分別給3DES模塊的輸入數(shù)據(jù),3個key和mode相應(yīng)的激勵后,得到的加密和解密后(mode為1時為加密,mode為0時為解密)的波形圖如圖2和圖3所示。

加密算法在SOC中的設(shè)計實現(xiàn)

通過仿真可以看到進行一次3DES加密過程需要56個cycle,同理解密的過程也是一樣。在SOC中采用的主時鐘的頻率是200M Hz,同時采用3級流水線(每一級DES使用一級流水),得到的吞吐率是686Mb/s。另外還可以看到對64bit的輸入數(shù)據(jù)進行加密然后解密后得到的輸出數(shù)據(jù)跟輸入數(shù)據(jù)一致,也就是證明邏輯功能的正確性。

(2)AES加密模塊的功能仿真

給AES模塊加入相應(yīng)的激勵后得到的加密和解密后的波形圖如圖4和圖5所示。

加密算法在SOC中的設(shè)計實現(xiàn)

通過仿真可以看到進行一個AES加密過程需要12個cycle,解密過程也是12個cycle,SOC采用200m Hz的主時鐘得到的吞吐率是2.1Gb/s,同時加密解密后的數(shù)據(jù)一致,邏輯功能是正確的。

3、加密模塊所占的資源

采用Cyclone III EP3C55 FPGA上對3DFS和AFS進行綜合。其中3 DES模塊所占的資源是2410個LE(logic element);AES模塊所占的資源是4798個LE。

4、3DES和AES加密模塊比較

從上面分析可看出,AES模塊的吞吐率大約為3DES模塊的3倍;而AES模塊所占的資源大約為3DES模塊所占資源的2倍。

小知識之SoC

SoC的定義多種多樣,由于其內(nèi)涵豐富、應(yīng)用范圍廣,很難給出準(zhǔn)確定義。一般說來, SoC稱為系統(tǒng)級芯片,也有稱片上系統(tǒng),意指它是一個產(chǎn)品,是一個有專用目標(biāo)的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部內(nèi)容。同時它又是一種技術(shù),用以實現(xiàn)從確定系統(tǒng)功能開始,到軟/硬件劃分,并完成設(shè)計的整個過程。