適用于嵌入式系統的AES加密IP核設計

發(fā)布時(shí)間:2010-11-24 16:25    發(fā)布者:eetech
關(guān)鍵詞: AES , IP核 , 加密 , 嵌入式系統
Rijndael加密算法于2000年被確定為美國高級加密標準AES(Advanced Encryption Standard),現在己是工業(yè)界數據加密的通用標準之一。Rijndael算法無(wú)論從理論分析,還是在實(shí)踐應用都表現出很好的抵抗各種攻擊的性能,其安全性是不容置疑的。

隨著(zhù)計算機技術(shù)、微電子技術(shù)的不斷融合,嵌入式系統應用得到了迅猛發(fā)展。近年來(lái)嵌入式技術(shù)廣泛用于解決保密信息的傳輸、存儲和管理方面的問(wèn)題。而這些都需要嵌入式系統集成有可靠的加密模塊,F有一些應用中的加密模塊還不盡如人意。本文針對此應用需求設計一種適用于嵌入式系統的加密IP核。

1 AES算法

1.1 AES算法描述

密鑰密碼體制分為流密碼和分組密碼兩種。分組密碼是信息與網(wǎng)絡(luò )安全中實(shí)現數據加密、數字簽名、認證及密鑰管理的核心體制,具有速度快、易于標準化和便于軟硬件實(shí)現等特點(diǎn)。AES采用分組密碼的加密方式,其分組長(cháng)度分為128 bit、192 bit、256 bit三種,AES密碼在相同的輪函數作用下,迭代運算次數的不同可達到不同級別的安全強度。128 bit分組長(cháng)度的情況下,循環(huán)輪數指定為11次,目前還沒(méi)有可行的算法可以對該模型進(jìn)行有效攻擊。每一輪處理均為作用在中間結果上的一批運算,該中間結果稱(chēng)為狀態(tài),用4×4字節矩陣表示,其中,數據矩陣稱(chēng)為State、密鑰矩陣稱(chēng)為Key。AES加密涉及5種運算,分別是字節代換(SubBytes)、行移變換(ShiftRows)、列混合變換(MixColumns)、密鑰加法(AddRoundKey)和密鑰擴展(ExpandedKey)。

字節代換是對State每個(gè)字節進(jìn)行獨立非線(xiàn)性變換,由字節在GF(28)域中求其乘法逆并外加一個(gè)仿射變換完成。具體實(shí)現中廣泛使用查表方式完成該步變換(實(shí)現該功能單元被稱(chēng)為Sbox),以避免復雜的乘法運算。

行移變換是對State進(jìn)行按行移位操作,第0行不移位,第1行循環(huán)左移一位,第2行循環(huán)左移兩位,第3行循環(huán)左移三位。



密鑰加法是將輪密鑰Key和狀態(tài)State中對應字節按位“異或”。

密鑰擴展提供輪變換對應密鑰加法用到的各輪密鑰。各輪運算中使用到的輪密鑰都不相同,密鑰擴展運算通過(guò)控制迭代運算次數計算出對應輪所需輪密鑰。

加密過(guò)程由11輪運算組成,其中首輪只進(jìn)行密鑰加法,接著(zhù)進(jìn)行9次輪變換,輪變換由字節代換、行移變換、列混合變換及密鑰加法4個(gè)步驟構成,再進(jìn)行末輪變換,在末輪中跳過(guò)列混合變換。末輪完成后輸出密文數據。AES加密過(guò)程如圖1所示。




1.2 常用AES優(yōu)化實(shí)現

AES算法的輪操作特點(diǎn)看似更適合于在通用CPU平臺下編程實(shí)現,而實(shí)際上,此種實(shí)現方式在性能方面存在加密速度慢等先天局限性。AES加密處理單元一般處于數據主干道上,其處理數據能力直接影響整個(gè)應用系統的外在性能表現,因此,研究數據處理能力強的硬件加密實(shí)現方式具有重要的意義。如何實(shí)現高性?xún)r(jià)比的硬件AES加密一直是加密算法應用領(lǐng)域研究的熱點(diǎn)問(wèn)題。

常見(jiàn)的硬件優(yōu)化實(shí)現有如下幾種方式:(1)串行方式。將輪函數展平,每輪對應一級組合邏輯,11輪迭代過(guò)程直接相連,前一級輸出作為次一級的輸入,每一個(gè)時(shí)鐘周期均可完成一個(gè)分組處理;(2)迭代方式。各輪迭代只用一個(gè)對應輪函數功能的組合邏輯實(shí)體實(shí)現,每11個(gè)時(shí)鐘周期完成一個(gè)分組處理;(3)流水線(xiàn)方式。用于提高系統工作時(shí)鐘周期的流水線(xiàn)技術(shù),一般僅在局部使用,或是與串行方式并用,可提高工作時(shí)鐘頻率,使其滿(mǎn)足極大帶寬的應用要求;(4)輪內實(shí)現流水線(xiàn)。在輪函數對應實(shí)體中插入寄存器,將一輪運算分至多個(gè)邏輯段完成,每個(gè)時(shí)鐘周期仍能完成一個(gè)數據分組處理。

以上AES算法實(shí)現方式各有優(yōu)缺點(diǎn),但總體來(lái)說(shuō)缺乏靈活性。當前應用于嵌入式系統的AES加密模塊在靈活性、資源占用上還不是很理想。在對常用優(yōu)化方法進(jìn)行研究后,本文針對嵌入式系統設計一種AES加密IP核、實(shí)現低資源占用、高性能要求、32位數據位寬、且能方便進(jìn)行并行連接,實(shí)現數據位寬擴展。

2 IP核設計

2.1 系統架構設計

IP系統分為時(shí)序控制、密鑰處理、數據處理三個(gè)主要單元,其系統結構如圖2所示。系統的工作模式分為閑置模式、密鑰輸入模式、單輪加密模式及連續加密模式。復位后系統處于閑置模式,單輪加密模式可以直接切換為連續加密模式,而連續加密模式需進(jìn)入到閑置模式至少一個(gè)時(shí)鐘周期后才可切換到單輪加密工作模式。




密鑰處理單元在系統進(jìn)入密鑰輸入模式后的連續4個(gè)時(shí)鐘周期從數據輸入端口讀入總共128位密鑰數據,在第5個(gè)時(shí)鐘周期到來(lái)時(shí)完成第一輪密鑰的計算,然后系統返回閑置模式。在加密模式中密鑰處理單元按算法需求實(shí)時(shí)計算各輪密鑰,并按32位為一組輸出,與數據通道中32位數據進(jìn)行“異或”運算。在系統模式由加密模式轉為閑置模式時(shí),完成密鑰處理單元的歸位動(dòng)作,使得單元狀態(tài)與密鑰輸入后的狀態(tài)相同,為下一次加密做準備。

數據處理單元在加密模式下對明文數據進(jìn)行迭代運算。該單元檢測到當前是最末輪數據處理時(shí)自動(dòng)跳過(guò)列混合運算。在系統進(jìn)入加密模式后,數據處理單元從輸入端口分4次讀入128位明文數據,經(jīng)過(guò)接下來(lái)的40個(gè)時(shí)鐘周期數據運算過(guò)程后,得到密文中的第一個(gè)32位數據段。

時(shí)序控制單元負責整個(gè)系統關(guān)鍵控制信號的生成,控制信號集中由一個(gè)單元負責產(chǎn)生,不僅利于軟件綜合出較高的時(shí)鐘頻率,而且輸出的時(shí)鐘相位也有較優(yōu)的一致性。

系統正常工作狀態(tài)為先進(jìn)行一次密鑰載入操作,然后觸發(fā)進(jìn)入加密模式進(jìn)行多次的數據加密。在需要時(shí)可以在閑置狀態(tài)下再次進(jìn)行密鑰模式對密鑰進(jìn)行更新。

在系統閑置狀態(tài)下,密鑰加載信號被檢測為有效時(shí),系統進(jìn)入密鑰輸入模式,對密鑰數據進(jìn)行讀入、保存及生成第一輪密鑰待用,而忽略密鑰處理單元中是否先前已存在密鑰數據。數據加載引腳指示系統由閑置模式輸入單輪加密模式,因為128位數據要在4個(gè)時(shí)鐘周期完成讀入,加密后數據也需要4個(gè)時(shí)鐘周期時(shí)間才能完成輸出。因此,從明文數據輸入到密文數據輸出共需要等待40個(gè)時(shí)鐘周期。如果此時(shí)檢測到數據加載引腳信號有效則在輸出密文的同時(shí)進(jìn)行下一輪明文的讀入,系統進(jìn)入到連續加密模式,否則在接下來(lái)的4個(gè)時(shí)鐘周期將密文輸出后系統由單輪加密模式切換到閑置模式。連續加密模式適合用于進(jìn)行批量數據加密處理,系統每40個(gè)時(shí)鐘周期會(huì )從輸入端口讀入128位明文數據,同時(shí)在這40個(gè)時(shí)鐘周期中將提供密文數據。在進(jìn)行大量數據處理時(shí),載入密鑰及載入第一組加密數據的幾個(gè)時(shí)鐘周期均可忽略,系統性能為每40個(gè)時(shí)鐘周期處理128位數據。在讀入明文時(shí),若檢測到載入數據信號無(wú)效,則退出連續加密模式,系統回復到閑置狀態(tài)。

2.2 設計要點(diǎn)

嵌入式系統中資源相對較少,一般數據位寬為32位或更少,如果設計的AES數據通道位寬達到128位或更多,雖然輪處理時(shí)間較短,但數據通道在I/O接口段必然利用率不高,而且占用資源難以降低,故本設計采用主通道數據位寬為32位的結構。由于每輪中列混合變換需要的32位數據與前4個(gè)時(shí)鐘周期的行移變換輸出結果相關(guān),因此在行移與列混合單元間使用128位數據位寬,每4個(gè)時(shí)鐘周期進(jìn)行一次State0到State1轉換。

從AES加密方法流程圖中可見(jiàn)首輪與末輪均有特殊處理,未經(jīng)過(guò)完整的4個(gè)輪處理過(guò)程,在一些設計中將首輪與末輪使用單獨硬件實(shí)現,這樣可使硬件代價(jià)減少2輪的運算時(shí)間。首輪結構簡(jiǎn)單,與標準輪處理過(guò)程差異較大,單獨實(shí)現只需要在輸入端加上32個(gè)“異或”門(mén),能以較小的代價(jià)換取一輪的運算時(shí)間。而末輪與標準處理過(guò)程僅差列混合運算,單獨實(shí)現需要將近多一倍的輪處理硬件,所以在本設計中由時(shí)序控制單元控制末輪處理時(shí)跳過(guò)列混合運算。

Sbox作為非線(xiàn)性運算部分,必需具有良好的差分特性和比較復雜的代數結構,如果使用獨立邏輯電路實(shí)現,面積優(yōu)化空間不大,多采用查表法實(shí)現。AES實(shí)現中的密鑰擴展與數據處理都需要多個(gè)Sbox,通過(guò)分析綜合軟件資源消耗結果報告可知單個(gè)Sbox占用資源為208個(gè)LCs或是2KB RAM。減少Sbox的使用無(wú)疑成為降低資源占用的主要手段。經(jīng)過(guò)調研,一般嵌入式系統對AES加密性能要求在160 Mb/s到480 Mb/s之間,考慮到本設計可靈活擴展的特性,設計中在數據處理路徑使用4個(gè)Sbox進(jìn)行時(shí)分復用,另采用4個(gè)Sbox進(jìn)行密鑰實(shí)時(shí)擴展。

3 硬件實(shí)現

本硬件實(shí)現在QuartusII8.0下使用 Verilog HDL語(yǔ)言進(jìn)行描述,在ModelSim6.2環(huán)境下進(jìn)行調試與仿真,使用Synplify9協(xié)助完成綜合與關(guān)鍵路徑分析工作。主要分析該IP核綜合到目標器件EP1C4F324C6中在80 MHz頻率的性能表現及資源占用情況。同時(shí)在更高性能的目標器件EP2S15F484C3中也進(jìn)行了綜合及后仿真,以作縱向對比。

在QuartusII環(huán)境下選定目標器件為低成本Cyclone系列EP1C4F324C6設置速度與面積均衡優(yōu)化模式,目標工作頻率為90 MHz,使用邏輯單元實(shí)現Sbox查找表功能。綜合報告顯示實(shí)際綜合頻率為87.82 MHz(period=11.387 ns),本IP核占用資源2 647(Logic Cells),其中密鑰擴展單元占用1 388(LCs),時(shí)序控制單元占用45(LCs)。文中均以此IP核運行于80 MHz時(shí)鐘頻率進(jìn)行性能分析。

選定綜合到StratixII系列中EP2S15F484C3器件,綜合頻率FMAX達到169.12 MHz時(shí)占用資源Logic utilization 9%,其中Combinational ALUTS 834/12 480(7%),Dedicated logic registers 598/12 480(5%)。將此綜合結果在ModelSim中用133 MHz時(shí)鐘驅動(dòng)進(jìn)行后仿真。

4 數據分析

仿真結果見(jiàn)表1,No.1采用常用測試數據,密鑰為:2b7e1516_28aed2a6_abf71588_09cf4f3c,輸入明文為3243f6a8_885a308d_313198a2_e0370734時(shí),得到輸出密文3925841d_02dc09fb_dc118597_196a0b32,結果正確無(wú)誤。




該IP核工作在80 MHz時(shí)鐘頻率下時(shí),數據吞吐量為128 bit×80 MHz/40 clk=256 Mb/s。速度/資源比(Mb/s)/Slice=256/(2647/2)=0.193。當并行連接IP核進(jìn)行位寬擴展時(shí),密鑰擴展單元與時(shí)序控制單元可共用,進(jìn)一步提高資源利用率。當擴展為128位數據位寬時(shí),數據吞吐量成倍增加,而速度/資源比也有所提高,幾乎能達到 (Mb/s)/Slice=1024/((2647×4-(1388+45)×3)/2)=0.326。

表2中數據顯示本設計在32位數據位寬的同類(lèi)設計中有一定的優(yōu)勢,從適用于嵌入式系統應用的角度考慮,本設計更具優(yōu)越性。128位數據位寬的設計中原文計算速度/資源比值時(shí)未考慮所占用的RAMs資源,而且文中設計為25 MHz時(shí)鐘頻率,進(jìn)行數據分析時(shí)卻將工作頻率直接換算為54 MHz,而未對其設計是否可正常工作于此頻率進(jìn)行論證。其設計主要考慮建立流水作業(yè)以提高性能。參考文獻中采用6級流水線(xiàn)技術(shù)及復合域方法優(yōu)化Sbox,達到了較優(yōu)的設計指標,但其固定的128位數據位寬在嵌入式系統中應用有一定的局限性。




在Synplify9下選定目標器件EP2S15F484C3,優(yōu)先考慮提高速度,綜合結果報告最高時(shí)鐘頻率超過(guò)240 MHz,說(shuō)明本IP核設計合理,較好地利用了目標器件資源。如果將本IP核應用在更高性能目標器件上或是設計為ASIC將會(huì )有更大的性能提升。

本文設計的IP核在低端FPGA能以較低的資源消耗提供I/O性能,AES實(shí)現達到256 Mb/s,并提供適合應用于嵌入式系統中32位數據界面。在輸入、輸出端加FIFO數據緩存器可減少主器件被中斷數據傳輸的次數,提供標準通信界面、簡(jiǎn)化主器件的操作時(shí)序。該IP核具有一定的靈活性,可將數據位寬擴展為64位或128位等,滿(mǎn)足多種數據位寬應用的要求,是一種低成本高性能的AES加密實(shí)現方法。
本文地址:http://selenalain.com/thread-41515-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页