新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > AES算法的快速硬件設(shè)計與實現(xiàn)

AES算法的快速硬件設(shè)計與實現(xiàn)

作者:北京電子科技學(xué)院 李雪梅 時間:2008-07-10 來源:電子設(shè)計應(yīng)用 收藏

  2.3 輪函數(shù)優(yōu)化設(shè)計

本文引用地址:http://butianyuan.cn/article/85545.htm

  優(yōu)化輪函數(shù)設(shè)計,減少輪函數(shù)的延時,是提高算法時鐘頻率的關(guān)鍵。本文通過對輪函數(shù)中Substitute Byte、Shift Row和Mix Column變換進行優(yōu)化來提高 算法的時鐘頻率。

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

  加密Mix Column:

  解密Mix Column:

  式中a是對一個字節(jié)的變換函數(shù),其Verilog HDL描述為:

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

  經(jīng)過整理,簡化了Mix Column實現(xiàn)過程,節(jié)約了硬件資源。Add Round Key只是簡單的異或,占用資源較少。優(yōu)化設(shè)計后輪函數(shù)的最大延時僅8.6ns,為提高整個設(shè)計的時鐘頻率提供了保障。

  3 算法的快速實現(xiàn)

  3.1 AES算法的硬件實現(xiàn)方式

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

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

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



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉