a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > AES算法的快速硬件設計與實現

AES算法的快速硬件設計與實現

作者:北京電子科技學院 李雪梅 時間:2008-07-10 來源:電子設計應用 收藏

  2.3 輪函數優化設計

本文引用地址:http://www.j9360.com/article/85545.htm

  優化輪函數設計,減少輪函數的延時,是提高算法時鐘頻率的關鍵。本文通過對輪函數中Substitute Byte、Shift Row和Mix Column變換進行優化來提高 算法的時鐘頻率。

  輪函數中Substitute Byte(S-Box)是對一個字節的非線性操作。使用Verilog HDL描述S-Box通常有兩種方法:(1)使用case語句進行行為描述,綜合后占用LE資源;(2)使用中的存儲器資源。算法的S- Box是一個8入8出的查找表,如果用LE實現,則在Cyclone芯片中每個S-Box需要208個LE,算法的并行運算需要32個S-Box,共6656個LE,不但占用大量的硬件資源,而且使結構復雜,增加了延時。而用存儲器資源實現S-Box,不需占用其他硬件資源,并且可以減少延時,是個很好的選擇。本文即采用這種方法,并充分利用器件資源:Cyclone器件中每個memory block可以設計為一個256×16bit的ROM,將加/解密過程的S-Box設計在同一個ROM內,加密S-Box內容置于ROM的前8bit,解密S-Box內容置于ROM的后8bit,這樣可以使memory block的數目比分別使用ROM設計時減少一半,大幅提高了資源利用率。Shift Row的硬件實現非常簡單,只是連線操作。為了進一步降低由于連線引起的延時,將Substitute Byte與Shift Row合為一體,使兩部分延時僅取決于S-Box的ROM。Mix Column變換被定義為系數在有限域GF(28)上的四次多項式矩陣乘法[4],輸入列向量(X0,X1,X2,X3),輸出列向量(Y0,Y1,Y2,Y3),加密過程是在GF(28)上乘以01、02、03,解密過程相對復雜,是在GF(28)上乘以09、0E、0B、0D。為了簡化設計以便于實現,可將矩陣乘法展開并整理,得到以下結果:

  加密Mix Column:

  解密Mix Column:

  式中a是對一個字節的變換函數,其Verilog HDL描述為:

  a={b[6:0],1′b0}^(8′h1b&{8{b[7]}});

  經過整理,簡化了Mix Column實現過程,節約了硬件資源。Add Round Key只是簡單的異或,占用資源較少。優化設計后輪函數的最大延時僅8.6ns,為提高整個設計的時鐘頻率提供了保障。

  3 算法的快速實現

  3.1 AES算法的硬件實現方式

  AES算法的輪操作特點使得其硬件實現可以有多種方式[3]:(1) 串行運算:輪函數用組合邏輯實現,10輪迭代過程直接相連,前一輪結果直接作為下一輪的輸入,1個時鐘周期內完成一個分組運算,吞吐量可以達到最佳狀態。 (2)基本迭代:采用反饋模式,所有迭代只用一個輪函數,10個時鐘周期完成一個分組運算。(3)輪內流水線:在每一個輪函數中插入寄存器,將一輪運算分成多個操作段,每個時鐘完成一個操作段,這種方式被很多人討論并使用,其優點是可以提高算法運行的時鐘頻率。

  在以上幾種AES算法實現方式中,方式(1)由于10個輪函數同時工作,不但需要大量的寄存器資源和組合邏輯資源的支持,而且還增加了延時,一般的芯片難以滿足容量的要求,時鐘頻率也非常低,所以這種方法不適合加密算法的硬件實現。方式(2)實現簡單,資源占用較少,但每個分組運算時間比較長,吞吐量仍然相對較低。在方式 (3)中,由于加密算法的輪操作特點使得輪內各級流水部件不能同時執行,增加了算法運行的時鐘數目。輪內流水線級數越多,時鐘數目也越多。雖然算法仿真頻率可以達到很高,但由于受硬件加密系統全局時鐘的影響,吞吐量并沒有明顯提高。

  在對以上算法的幾種實現方式進行分析后,本文基于流水線技術,提出一種更快速的AES算法的FPGA實現方案。該方案即使在全局時鐘頻率較低的情況下,也能獲得很高的吞吐量。



評論


相關推薦

技術專區

關閉