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