色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用FPGA實現AES算法的優化設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-04-18 08:15 ? 次閱讀

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

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

1 AES算法

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

AES算法是將輸入的明文(或密文)分成16個字節,在第一個Add Round Keys變換后進入10輪迭代。前9輪完全相同,依次經過字節代替(Substitute Bytes)、行移位(Shift Rows)、列混合(Mix Columns)、輪密鑰加(Add Round Keys),最后一輪則跳過了Mix Column。解密過程與加密過程類似,但執行順序與描述內容有所不同,因此AES算法的加解密過程需要分別實現。圖1給出了AES算法的加解密過程。

2 AES算法優化設計

2.1 硬件選擇

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

2.2 密鑰擴展單元優化設計

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

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

使用FPGA實現AES算法的優化設計

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

2.3 輪函數優化設計

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

輪函數中Substitute Byte(S-Box)是對一個字節的非線性操作。使用Verilog HDL描述S-Box通常有兩種方法:(1)使用case語句進行行為描述,綜合后占用LE資源;(2)使用FPGA中的存儲器資源。AES算法的S-Box是一個8入8出的查找表,如果用LE實現,則在Cyclone芯片中每個S-Box需要208個LE,AES算法的并行運算需要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)上的四次多項式矩陣乘法,輸入列向量(X0,X1,X2,X3),輸出列向量(Y0,Y1,Y2,Y3),加密過程是在GF(28)上乘以01、02、03,解密過程相對復雜,是在GF(28)上乘以09、0E、0B、0D。為了簡化設計以便于FPGA實現,可將矩陣乘法展開并整理,得到以下結果:

加密Mix Column:

使用FPGA實現AES算法的優化設計

解密Mix Column:

使用FPGA實現AES算法的優化設計

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

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

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

3 AES算法的快速實現

3.1 AES算法的硬件實現方式

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

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

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

3.2 流水線設計

AES算法結構簡單,只需要邏輯運算和查找表運算。筆者通過優化設計輪函數,使得基本迭代方式下的時鐘頻率遠高于PCI接口的時鐘頻率33MHz。本文在滿足算法時鐘頻率的基礎上,通過降低算法分組數據的處理時間來提高吞吐量。具體做法是:采用兩級輪外流水線,將AES算法的10輪迭代過程分為前后兩個操作段,每個操作段可作為一級流水線,在操作段內部,每輪之間以反饋(FB)方式完成5輪基本迭代,前一個操作段結束后,將結果直接送入第二個操作段,同時去處理下一個分組數據,兩個操作段互不影響,并行執行。考慮到實際應用中數據總線寬度(如PCI總線)通常為32位,這里將AES算法IP核的數據寬度設置為32位,4個時鐘輸入/輸出一個分組數據。為了與每一級流水線5輪迭代過程相匹配,在輸入/輸出分組數據的第5n個時鐘內執行一輪空操作,使得輸入明文數據、輸出密文結果、第一級流水線和第二級流水線四步操作同時執行,從而實現圖3所示的流水線過程。在得到第一個分組結果后,每5個時鐘就會產生一個分組結果,從外部看起來,完成一個分組僅需要5個時鐘。

使用FPGA實現AES算法的優化設計

3.3 實驗結果與性能分析

將設計在QuartusⅡ4.2軟件中綜合,仿真最高頻率為78.38MHz,完全可以滿足較低全局時鐘頻率的要求。整個系統設計采用33MHz時鐘,實驗測試結果表明,吞吐量已達到810Mbps。如果提高全局時鐘頻率,則吞吐量會超過1Gbps。

根據AES算法的特點及硬件加密系統的特點,給出了AES算法IP核的快速硬件設計方案。采用流水線技術和優化設計,在較低頻率下,可以獲得很高數據吞吐量,使加密算法的FPGA實現過程不再是傳輸速度的瓶頸。整個設計具有很強的實用性,運行穩定,且效果良好。對于AES算法分組長度和密鑰長度為192bit和256bit的情況,由于分組長度不同,執行輪數有所增加。要實現流水線操作并在資源使用和吞吐量方面達到較好的效果,還需要進一步優化設計,這也是今后研究的方向。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21759

    瀏覽量

    604371
  • 寄存器
    +關注

    關注

    31

    文章

    5357

    瀏覽量

    120692
  • 計算機
    +關注

    關注

    19

    文章

    7520

    瀏覽量

    88233
收藏 人收藏

    評論

    相關推薦

    如何優化AES算法中S-box和列混合單元?

    AES)。由于其較高的保密級別,AES算法被用來替代DES和3-DES,那么我們該如何優化才能讓其適應更為嚴苛的數據加密需要呢?
    發表于 08-06 06:19

    什么是AES算法? 怎樣快速實現AES算法

    什么是AES算法?如何對AES算法進行優化?怎樣快速實現AE
    發表于 04-28 06:51

    基于FPGAAES加密算法的高速實現

    介紹AES 算法的原理以及基于FPGA 的高速實現。結合算法FPGA 的特點,采用查表法
    發表于 01-25 14:26 ?29次下載

    基于FPGAAES加密算法的高速實現

    介紹AES算法的原理以及基于FPGA的高速實現。結合算法FPGA的特點,采用查表法
    發表于 07-17 18:09 ?46次下載

    AES中SubBytes算法FPGA實現

    介紹了AES中,SubBytes算法FPGA的具體實現.構造SubBytes的S-Box轉換表可以直接查找ROM表來實現.通過分析SubB
    發表于 11-09 16:42 ?25次下載

    AES算法中S-box和列混合單元的優化FPGA技術實現

    AES算法中S-box和列混合單元的優化FPGA技術實現 由于其較高的保密級別,AES
    發表于 04-23 09:34 ?3079次閱讀
    <b class='flag-5'>AES</b><b class='flag-5'>算法</b>中S-box和列混合單元的<b class='flag-5'>優化</b>及<b class='flag-5'>FPGA</b>技術<b class='flag-5'>實現</b>

    AES中的字節替換的FPGA實現

    介紹 AES 中的字節替換算法原理并闡述基于FPGA的設計和實現。為了提高系統工作速度,在設計中應用了流水線技術。最后利用MAXPLUS-II開發工具給出仿真結果,并分析了系統工作速度
    發表于 09-27 15:54 ?6148次閱讀
    <b class='flag-5'>AES</b>中的字節替換的<b class='flag-5'>FPGA</b><b class='flag-5'>實現</b>

    基于FPGA的SM3算法優化設計與實現

    基于FPGA的SM3算法優化設計與實現的論文
    發表于 10-29 17:16 ?5次下載

    基于AES加密算法的S盒優化設計_胡春燕

    基于AES加密算法的S盒優化設計_胡春燕
    發表于 03-19 11:31 ?2次下載

    基于AES算法硬件優化及IP核應用

    根據AES算法的特點,從3方面對算法硬件實現進行改進:列混合部分使用查找表代替矩陣變換,降低算法實現
    發表于 11-02 10:59 ?0次下載
    基于<b class='flag-5'>AES</b><b class='flag-5'>算法</b>硬件<b class='flag-5'>優化</b>及IP核應用

    AES加密算法說明

    1 引 言 AES加密算法的一種優化FPGA實現方法 隨著密碼分析水平,芯片處理能力和計算技術的不斷進步,des的安全強度已經難以適應新的
    發表于 11-30 01:31 ?2193次閱讀

    基于AES算法研究與設計

    由于對廣泛使用的AES算法的性能要求越來越高,基于軟件的密碼算法已經越來越難以滿足高吞吐量密碼破解的需求,因此越來越多的算法利用現場可編程邏輯門陣列(
    發表于 12-03 09:49 ?7次下載
    基于<b class='flag-5'>AES</b><b class='flag-5'>算法</b>研究與設計

    AES算法中S—box和列混合單元的優化FPGA實現的論文說明

    由于AES算法的硬件實現較為復雜,在此提出一種優化算法中S—box和列混合單元的方法。其中S—box通過組合和有限域映射的方法進行
    發表于 01-25 14:27 ?19次下載
    <b class='flag-5'>AES</b><b class='flag-5'>算法</b>中S—box和列混合單元的<b class='flag-5'>優化</b>及<b class='flag-5'>FPGA</b><b class='flag-5'>實現</b>的論文說明

    基于FPGAAES算法中S-box和列混合單元優化

    基于FPGAAES算法中S-box和列混合單元優化
    發表于 06-08 10:52 ?7次下載

    基于PIC單片機的AES算法優化設計

    電子發燒友網站提供《基于PIC單片機的AES算法優化設計.pdf》資料免費下載
    發表于 10-30 09:46 ?0次下載
    基于PIC單片機的<b class='flag-5'>AES</b><b class='flag-5'>算法</b><b class='flag-5'>優化</b>設計
    主站蜘蛛池模板: 欧美白妞大战非洲大炮| 麻豆国产96在线日韩麻豆| 久久永久视频| 亚洲精品在线影院| 国产精品亚洲视频在线观看| 神马电影dy888午夜我不卡| 工口肉肉彩色不遮挡| 日本在线免费播放| 久草高清在线| 亚洲国产综合另类视频| 黑人巨茎大战白人女40CMO| 亚洲国产成人精品久久久久| 饥渴的新婚女教师| 欧美精品高清在线观看| 99热这里只有精品88| 欧美精品专区第1页| 51国产午夜精品免费视频| 护士一级片| 中字幕视频在线永久在线| 欧美老少欢杂交另类| 观赏女性排尿| 亚洲欧美日韩精品自拍| 久久午夜夜伦痒痒想咳嗽P| 97久久国产露脸精品国产| 人人爽久久久噜噜噜丁香AV| 国产成人在线观看免费网站| 亚洲精品福利一区二区在线观看 | 手机看片国产免费| 精品一区二区三区AV天堂| 爱爱好爽好大好紧视频| 亚洲电影成人 成人影院| 年轻夫妇韩剧中文版免费观看| 国产精品爽黄69天堂A片| 60岁老年熟妇在线无码| 偷窥 亚洲 色 国产 日韩| 美女18毛片免费视频| 国产亚洲精品V在线观看一| 99热精品在线视频观看| 亚洲日韩精品AV中文字幕| 秋霞在线观看视频一区二区三区| 精品无码国产污污污免费网站2|