AES算法的快速硬件設計與實(shí)現
3.2 流水線(xiàn)設計
本文引用地址:http://dyxdggzs.com/article/85545.htmAES算法結構簡(jiǎn)單,只需要邏輯運算和查找表運算。筆者通過(guò)優(yōu)化設計輪函數,使得基本迭代方式下的時(shí)鐘頻率遠高于PCI接口的時(shí)鐘頻率33MHz。本文在滿(mǎn)足算法時(shí)鐘頻率的基礎上,通過(guò)降低算法分組數據的處理時(shí)間來(lái)提高吞吐量。具體做法是:采用兩級輪外流水線(xiàn),將AES算法的10輪迭代過(guò)程分為前后兩個(gè)操作段,每個(gè)操作段可作為一級流水線(xiàn),在操作段內部,每輪之間以反饋(FB)方式完成5輪基本迭代,前一個(gè)操作段結束后,將結果直接送入第二個(gè)操作段,同時(shí)去處理下一個(gè)分組數據,兩個(gè)操作段互不影響,并行執行??紤]到實(shí)際應用中數據總線(xiàn)寬度(如PCI總線(xiàn))通常為32位,這里將AES算法IP核的數據寬度設置為32位,4個(gè)時(shí)鐘輸入/輸出一個(gè)分組數據。為了與每一級流水線(xiàn)5輪迭代過(guò)程相匹配,在輸入/輸出分組數據的第5n個(gè)時(shí)鐘內執行一輪空操作,使得輸入明文數據、輸出密文結果、第一級流水線(xiàn)和第二級流水線(xiàn)四步操作同時(shí)執行,從而實(shí)現圖3所示的流水線(xiàn)過(guò)程。在得到第一個(gè)分組結果后 ,每5個(gè)時(shí)鐘就會(huì )產(chǎn)生一個(gè)分組結果,從外部看起來(lái),完成一個(gè)分組僅需要5個(gè)時(shí)鐘。
3.3 實(shí)驗結果與性能分析
將設計在QuartusⅡ4.2軟件中綜合,仿真最高頻率為78.38MHz,完全可以滿(mǎn)足較低全局時(shí)鐘頻率的要求。整個(gè)系統設計采用33MHz時(shí)鐘,實(shí)驗測試結果表明,吞吐量已達到810Mbps。如果提高全局時(shí)鐘頻率,則吞吐量會(huì )超過(guò)1Gbps。
根據AES算法的特點(diǎn)及硬件加密系統的特點(diǎn),給出了AES算法IP核的快速硬件設計方案。采用流水線(xiàn)技術(shù)和優(yōu)化設計,在較低頻率下,可以獲得很高數據吞吐量,使加密算法的FPGA實(shí)現過(guò)程不再是傳輸速度的瓶頸。整個(gè)設計具有很強的實(shí)用性,運行穩定,且效果良好。對于A(yíng)ES算法分組長(cháng)度和密鑰長(cháng)度為 192bit和256bit的情況,由于分組長(cháng)度不同,執行輪數有所增加。要實(shí)現流水線(xiàn)操作并在資源使用和吞吐量方面達到較好的效果,還需要進(jìn)一步優(yōu)化設計,這也是今后研究的方向。
參考文獻
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
評論