AES算法的快速硬件設(shè)計與實現(xiàn)
3.2 流水線設(shè)計
本文引用地址:http://www.bjwjmy.cn/article/85545.htmAES算法結(jié)構(gòu)簡單,只需要邏輯運算和查找表運算。筆者通過優(yōu)化設(shè)計輪函數(shù),使得基本迭代方式下的時鐘頻率遠高于PCI接口的時鐘頻率33MHz。本文在滿足算法時鐘頻率的基礎(chǔ)上,通過降低算法分組數(shù)據(jù)的處理時間來提高吞吐量。具體做法是:采用兩級輪外流水線,將AES算法的10輪迭代過程分為前后兩個操作段,每個操作段可作為一級流水線,在操作段內(nèi)部,每輪之間以反饋(FB)方式完成5輪基本迭代,前一個操作段結(jié)束后,將結(jié)果直接送入第二個操作段,同時去處理下一個分組數(shù)據(jù),兩個操作段互不影響,并行執(zhí)行。考慮到實際應(yīng)用中數(shù)據(jù)總線寬度(如PCI總線)通常為32位,這里將AES算法IP核的數(shù)據(jù)寬度設(shè)置為32位,4個時鐘輸入/輸出一個分組數(shù)據(jù)。為了與每一級流水線5輪迭代過程相匹配,在輸入/輸出分組數(shù)據(jù)的第5n個時鐘內(nèi)執(zhí)行一輪空操作,使得輸入明文數(shù)據(jù)、輸出密文結(jié)果、第一級流水線和第二級流水線四步操作同時執(zhí)行,從而實現(xiàn)圖3所示的流水線過程。在得到第一個分組結(jié)果后 ,每5個時鐘就會產(chǎn)生一個分組結(jié)果,從外部看起來,完成一個分組僅需要5個時鐘。
3.3 實驗結(jié)果與性能分析
將設(shè)計在QuartusⅡ4.2軟件中綜合,仿真最高頻率為78.38MHz,完全可以滿足較低全局時鐘頻率的要求。整個系統(tǒng)設(shè)計采用33MHz時鐘,實驗測試結(jié)果表明,吞吐量已達到810Mbps。如果提高全局時鐘頻率,則吞吐量會超過1Gbps。
根據(jù)AES算法的特點及硬件加密系統(tǒng)的特點,給出了AES算法IP核的快速硬件設(shè)計方案。采用流水線技術(shù)和優(yōu)化設(shè)計,在較低頻率下,可以獲得很高數(shù)據(jù)吞吐量,使加密算法的FPGA實現(xiàn)過程不再是傳輸速度的瓶頸。整個設(shè)計具有很強的實用性,運行穩(wěn)定,且效果良好。對于AES算法分組長度和密鑰長度為 192bit和256bit的情況,由于分組長度不同,執(zhí)行輪數(shù)有所增加。要實現(xiàn)流水線操作并在資源使用和吞吐量方面達到較好的效果,還需要進一步優(yōu)化設(shè)計,這也是今后研究的方向。
參考文獻
1 Standaert.Efficient implementation of rijndael encryption in reconfigurable hardware:improvements and design tradeoffs.CHES 2003,LNCS 2779:334~350
2 Saggese.An FPGA-based peRFormance analysis of the unrolling,tiling and pipelining of the AESAlgorithm.FPL 2003,LNCS 2778:292~302
3 Gaj K,Pawel Chodowie.Comparison of the hardware perfor-mance of the AES candidates using reconfigurable hardware
4 Danmen J,Riijmen V.AES Proposal:rijndael.AES algorithm submission.AES home page:http://www.nist.gov/aes,1999-09-03
評論