<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

AES算法的快速硬件設計與實(shí)現

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

  是計算機科學(xué)技術(shù)的熱點(diǎn)研究領(lǐng)域,則是的重要手段。隨著(zhù)可編程技術(shù)的飛速發(fā)展及高速集成電路的不斷出現,采用實(shí)現加密算法已受到越來(lái)越廣泛的關(guān)注和重視[1][2]。與傳統的軟件加密方法相比,硬件加密的優(yōu)點(diǎn)是:(1)安全性好,不易被攻擊;(2)計算速度快,效率高;(3)成本低,性能可靠。加密系統中體現數據傳輸速度的一個(gè)重要性能指標是數據吞吐量,計算公式為:(數據長(cháng)度M/時(shí)鐘個(gè)數N)×時(shí)鐘頻率F。提高數據吞吐量是改善加密系統性能的關(guān)鍵,也是加密算法硬件實(shí)現技術(shù)的重要內容。

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

  算法作為DES算法的替代者應用非常廣泛,其硬件實(shí)現方法已有不少討論,主要是通過(guò)提高算法頻率來(lái)提高吞吐量。但是在實(shí)際運行中,為了保證整個(gè)加密系統的穩定性,通常全局時(shí)鐘頻率較低,不可能達到算法的仿真頻率,如PCI接口電路時(shí)鐘頻率只有33MHz,因此實(shí)際數據吞吐量仍然較低。本文根據算法的結構特點(diǎn)及硬件系統的特點(diǎn),提出一種快速的算法IP核設計方法。該方法采用優(yōu)化設計輪函數和流水線(xiàn)技術(shù),在較低的系統時(shí)鐘頻率下,通過(guò)減少分組運算時(shí)鐘數目來(lái)獲得更高的吞吐量和更快的傳輸速度。

  1 AES算法

  AES是美國國家標準與技術(shù)研究所(NIST)提出的高級加密標準[4]。2000 年10月,NIST宣布將比利時(shí)人Joan Daemen和Vicent Rijinen提交的Rijndael算法作為高級加密標準(AES)。該算法設計簡(jiǎn)單,與公鑰密碼算法不同,沒(méi)有復雜的乘法運算,易于實(shí)現,靈活性強,輪函數良好的并行特性有利于硬件設計與實(shí)現。AES算法是一種迭代型分組密碼,其分組長(cháng)度和密鑰長(cháng)度均可變,各自可以獨立指定為128bit、 192bit、256bit。本文主要討論分組長(cháng)度和密鑰長(cháng)度為128bit的情況。

  AES算法是將輸入的明文(或密文)分成16個(gè)字節,在第一個(gè)Add Round Keys變換后進(jìn)入10輪迭代。前9輪完全相同,依次經(jīng)過(guò)字節代替(Substitute Bytes)、行移位(Shift Rows)、列混合(Mix Columns)、輪密鑰加(Add Round Keys),最后一輪則跳過(guò)了Mix Column。解密過(guò)程與加密過(guò)程類(lèi)似,但執行順序與描述內容有所不同,因此AES算法的加解密過(guò)程需要分別實(shí)現。圖1給出了AES算法的加解密過(guò)程。關(guān)于A(yíng)ES算法的詳細描述請參見(jiàn)參考文獻[4]。

  2 AES算法優(yōu)化設計

  2.1 硬件選擇

  Cyclone器件是Altera公司推出的成本最低的SRAM工藝,容量為2 910~20 060個(gè)邏輯單元(LE)和多達288kbit的M4K memory block。每個(gè)LE都有一個(gè)四輸入的LUT查找表、可編程寄存器和具有進(jìn)位選擇能力的進(jìn)位鏈,可實(shí)現任何四輸入變量的函數,能夠進(jìn)行大量邏輯運算,非常適合作為加密算法的硬件載體。設計中所使用的開(kāi)發(fā)工具是QuartusII4.2,芯片選擇Cyclone器件的EP1C12Q240C8,基于 Verilog HDL語(yǔ)言實(shí)現。

  2.2 密鑰擴展單元優(yōu)化設計

  密鑰擴展是將初始密鑰作為種子密鑰,經(jīng)過(guò)字節代換、字節移位、輪常數計算、字異或等過(guò)程,計算產(chǎn)生10輪迭代子密鑰。有文獻提出計算密鑰時(shí)密鑰擴展和加密過(guò)程同步執行,這樣做會(huì )節約 FPGA的存儲器資源。但筆者認為在算法運行過(guò)程中,擴展密鑰進(jìn)程始終運行會(huì )增加FPGA芯片的動(dòng)態(tài)功耗。另外,AES算法解密運算是從最后一輪子密鑰開(kāi)始,只有擴展出所有子密鑰才能啟動(dòng)解密運算,因此制約了解密過(guò)程的實(shí)現。通常情況下初始密鑰不會(huì )頻繁改變,加/解密多包數據時(shí)可共享密鑰擴展結果,同時(shí)由于Cyclone器件存儲器資源豐富,為存放子密鑰提供了足夠的空間。因此本文采用更普遍的做法,將所有子密鑰擴展后保存在RAM中,使用時(shí)依次從RAM 中讀取。這種方式不受加解密實(shí)現過(guò)程的限制,靈活性強,非常適合于加密算法的FPGA實(shí)現。

  從RAM中讀取子密鑰需要時(shí)間,為了避免算法第一個(gè)Add Round Key過(guò)程帶來(lái)的延時(shí),可以將第一組子密鑰(初始密鑰)和最后一組子密鑰(解密過(guò)程第一組子密鑰)在寫(xiě)入RAM的同時(shí),分別保存在兩組寄存器中。如圖2所示,加/解密時(shí)直接利用寄存器結果進(jìn)入算法第一輪迭代,保證算法在10個(gè)時(shí)鐘內完成10輪迭代,從而減少Add Round Key的時(shí)間。

  保存密鑰雖然多占用了約256個(gè)寄存器資源,但這樣做更易于實(shí)現算法的流水線(xiàn)操作,對提高整體性能有很大幫助。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: FPGA AES 信息安全 數據加密

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>