基于VerilogHDL的AES加密電路設計說明_第1頁
基于VerilogHDL的AES加密電路設計說明_第2頁
基于VerilogHDL的AES加密電路設計說明_第3頁
基于VerilogHDL的AES加密電路設計說明_第4頁
基于VerilogHDL的AES加密電路設計說明_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 PAGE26 / NUMPAGES33畢業(yè)設計報告(論文) 基于Verilog HDL的AES加密電路設計所屬系 電子工程系 專 業(yè) 電子科學與技術 學 號 01310248 姓名 學 敏 指導教師 王 剛 起訖日期 2014.02 2014.05 設計地點 東南大學成賢學院 畢業(yè)設計報告(論文)誠信承諾 本人承諾所呈交的畢業(yè)設計報告(論文)與取得的成果是在導師指導下完成,引用他人成果的部分均已列出參考文獻。如論文涉與任何知識產權糾紛,本人將承擔一切責任。學生簽名:日 期:基于Verilog HDL的AES加密電路設計摘 要 現在的信息化社會,計算機技術正飛速地朝著快速、便攜方向發(fā)展,這就意

2、味著電子形式的數據與個人信息正逐漸被我們廣泛使用。因此,網絡信息安全這個名詞逐漸進入人們的眼球。如何才能保證私密信息不被外界竊取已經成為現在學者們研究的重點項目。本課題正是在這樣的背景下提出的,目的是基于Verilog HDL設計一個AES加密電路。課題完成過程中的主要容包括AES加密算法的原理分析和優(yōu)化設計,以與后續(xù)的硬件實現。設計AES加密電路的核心就是AES加密算法的實現。因此,本文先對AES算法的原理進行了介紹,包括S-盒、行列混合變換與AES流水線結構等。其次,本文將AES加密電路進行了模塊劃分,就Verilog HDL描述與Modelsim仿真作了一一介紹。最后給出了用SYNOPS

3、YS的DC和ASTRO進行綜合以與自動布線的設計過程。關鍵字: AES;加密標準;算法;Verilog HDL;Modelsim .The design of AES encryption circuit based on Verilog HDLAbstract Nowadays , the computer technology is in a rapid development in the direction of fast and portable in the information society . This means that the electronic form of d

4、ata and personal information is widely used by us . Therefore , the network information security has aroused peoples attention . The way of how to keep the private information away from the outside world to steal has became the focus of the scholars study now . This topic is put forward in the backg

5、round I mentioned before in purpose that design a circuit of AES encryption based on Verilog HDL . There are serval tasks to be done according to the subject , including the principle of AES encryption algorithm in the process of analysis and the subsequent hardware implementation . Firstly , the co

6、re of the design of AES encryption circuit is the implementation of AES encryption algorithm . Therefore , this article introduces the principle of AES algorithm , including the S-box 、shiftrows、mixcoloumns and AES line ranks , etc . Secondly , this paper compared the AES encryption circuit module p

7、artition and introduced Verilog HDL description and Modelsim simulation one by one . Finally , it gives the design process of use Synopsys DC and Astro to finish the comprehensive and automatic wiring . Key Words : AES ; Encryption Standard ; Algorithm ; Verilog HDL ; Modelsim .目 錄TOC o 1-3 h u HYPE

8、RLINK l _Toc18911 第一章 緒論 PAGEREF _Toc18911 1 HYPERLINK l _Toc20803 1.1 課題研究背景與意義 PAGEREF _Toc20803 1 HYPERLINK l _Toc1067 1.2 研究現狀 PAGEREF _Toc1067 1 HYPERLINK l _Toc9257 1.2.1 國外加密算法的研究現狀 PAGEREF _Toc9257 1 HYPERLINK l _Toc7749 1.2.2 數據加密標準的研究現狀 PAGEREF _Toc7749 1 HYPERLINK l _Toc21790 1.3 課題主要研究容

9、PAGEREF _Toc21790 2 HYPERLINK l _Toc26298 1.3.1 設計流程的介紹 PAGEREF _Toc26298 2 HYPERLINK l _Toc24161 1.3.2 軟硬件實現方式的介紹 PAGEREF _Toc24161 2 HYPERLINK l _Toc17706 第二章 AES算法的原理研究 PAGEREF _Toc17706 4 HYPERLINK l _Toc28162 2.1 分組密碼的研究 PAGEREF _Toc28162 4 HYPERLINK l _Toc18575 2.2 AES 加密算法的數學理論 PAGEREF _Toc18

10、575 5 HYPERLINK l _Toc13208 2.2.1 含有有限個元素的域 PAGEREF _Toc13208 5 HYPERLINK l _Toc21663 2.2.2 有限域上的多項式與運算 PAGEREF _Toc21663 5 HYPERLINK l _Toc5264 2.3 輪變換與密鑰擴展 PAGEREF _Toc5264 7 HYPERLINK l _Toc20318 2.4 AES 加密算法工作模式 PAGEREF _Toc20318 10 HYPERLINK l _Toc17411 2.5 AES算法的整體結構 PAGEREF _Toc17411 10 HYPER

11、LINK l _Toc30745 2.6 本章總結 PAGEREF _Toc30745 12 HYPERLINK l _Toc25145 第三章 AES 算法模塊的設計與仿真 PAGEREF _Toc25145 13 HYPERLINK l _Toc7010 3.1 開發(fā)環(huán)境介紹 PAGEREF _Toc7010 13 HYPERLINK l _Toc10561 3.1.1 硬件描述語言(HDL)介紹 PAGEREF _Toc10561 13 HYPERLINK l _Toc13253 3.1.2 Modelsim仿真軟件 PAGEREF _Toc13253 13 HYPERLINK l _T

12、oc5957 3.2 AES 加密模塊總體架構 PAGEREF _Toc5957 13 HYPERLINK l _Toc17742 3.3 位變換模塊設計SubBytes與S-box PAGEREF _Toc17742 15 HYPERLINK l _Toc19589 3.4 列混合變換模塊設計MixColumns PAGEREF _Toc19589 16 HYPERLINK l _Toc29211 3.5 密鑰擴展模塊設計keysched PAGEREF _Toc29211 17 HYPERLINK l _Toc16922 3.6 加密模塊Testbench設計 PAGEREF _Toc16

13、922 18 HYPERLINK l _Toc30855 第四章 AES加密系統(tǒng)的綜合與布局布線 PAGEREF _Toc30855 20 HYPERLINK l _Toc26614 4.1 綜合與布線開發(fā)工具的介紹 PAGEREF _Toc26614 20 HYPERLINK l _Toc4022 4.1.1 Synopsys DC PAGEREF _Toc4022 20 HYPERLINK l _Toc27579 4.1.2 Synopsys Astro PAGEREF _Toc27579 20 HYPERLINK l _Toc32144 4.2 綜合和布局布線 PAGEREF _Toc3

14、2144 20 HYPERLINK l _Toc14166 4.2.1 過程概述 PAGEREF _Toc14166 20 HYPERLINK l _Toc22883 4.2.2 DC生成的門級電路和報告 PAGEREF _Toc22883 20 HYPERLINK l _Toc28047 4.2.3 Astro版圖生成流程 PAGEREF _Toc28047 23 HYPERLINK l _Toc18629 4.2.4 Astro生成的版圖 PAGEREF _Toc18629 23 HYPERLINK l _Toc7138 第五章 總結與展望 PAGEREF _Toc7138 25 HYPE

15、RLINK l _Toc12408 5.1 全文總結 PAGEREF _Toc12408 25 HYPERLINK l _Toc21604 5.2 展望 PAGEREF _Toc21604 25 HYPERLINK l _Toc24909 致 PAGEREF _Toc24909 26 HYPERLINK l _Toc14202 參考文獻 PAGEREF _Toc14202 27緒論1.1 課題研究背景與意義在我們工作和生活的當今社會中,信息技術飛速地發(fā)展,個人數據的安全性日益被人們重視,網絡信息安全這個名詞逐漸進入人們的眼球。如何才能保證私密信息不被外界竊取已經成為現在學者們研究的重點項目。加

16、密技術不僅局限于計算機疇,現在已經涉與到生物醫(yī)療、國防、航天等等領域。就拿我們息息相關的現實生活來說,我們的私人賬號,個人密碼,網絡賬戶資料等信息在互聯網上的傳輸交換過程都離不開加密技術,有了足夠安全的加密方法,我們才能更從容地享受信息時代的極大便利性。自上世紀70年代起,DES加密標準一直都是數據加密領域的重量級角色。然而,伴隨著電子技術的快速發(fā)展,計算機硬件的表現可以說在穩(wěn)步飆升,數據交換量空前,DES加密標準的安全性面臨空前的挑戰(zhàn),事實上,實踐表明DES已漸漸不堪復用,無法滿足高端用戶的需求。因此,從1997年1月開始,美國國家標準與技術研究所(NIST)高瞻遠矚地開始征集新一代的加密標

17、準,并在2001年11月公布了高級數據加密標準(AES),從此確立了AES加密算法在數據加密算法領域不可動搖的地位。AES設計目的就是用于取代漸漸過時的DES以與其升級版本3DES,進入21世紀后,AES算法開始走向成熟,被廣泛地應用于各個不同領域,其實用性、安全性的強悍不容置疑。緒論部分我將著重介紹國外加密算法以與數據加密標準的研究現狀,對課題主演研究的容作簡要概括,并對比軟硬件實現方式的優(yōu)缺點,在此基礎上介紹設計流程。1.2 研究現狀1.2.1 國外加密算法的研究現狀密碼技術主要由密碼編碼技術和密碼分析技術兩部分組成。為了使用戶的數據得到保護,運用高效的算法和協(xié)議對數據進行加密和認證的技術

18、被稱為密碼編碼技術,相反,通過分析算法和協(xié)議,進行各種攻擊從而達到破解密碼的目的的行為稱為密碼分析技術。加密技術和密碼分析技術兩者相互矛盾,多年以來它們相互競爭,于斗爭中加密技術飛速發(fā)展。從目前已經被提出的加密思想來看,一種就是公鑰密碼、分組密碼、序列密碼等基于數學思想的加密技術。另一種則打破了常規(guī)思路,把量子密碼學、DNA技術以與混沌技術等一系列非常規(guī)手段應用到了信息加密上,不可不謂是另辟蹊徑。本文的主要研究對象是傳統(tǒng)的基于數學的密碼理論。根據加、解密過程是否使用一樣的密鑰,又能夠將傳統(tǒng)加密技術往下細分成私鑰和公鑰體制,即對稱和非對稱密碼體制。加、解密過程中使用的密鑰一樣的密碼體制稱為公鑰密

19、碼,這種加密算法往往由復雜的非線性變換組成,在商業(yè)領域廣泛應用。相反,加、解密過程密鑰不同的稱為私鑰密碼體制。1976年,在美國斯坦福大學這個自由的學術天堂,Diffie和 Hellman提出了具有建設性意義的公鑰密碼的思想,時至今日,公鑰密碼早已經早已傳遍大江南北,在全球圍廣泛流傳,大量的應用使其不斷發(fā)展,這過程中公鑰密碼又得到了長足的發(fā)展,并向下衍生出許多版本,RSA和Rabin體制、Diffie-Hellman 和ElGamal體制等等。1.2.2 數據加密標準的研究現狀DES聯邦加密標準是從1972年開始提出計劃,并歷時4年,克服種種困難,在全球各優(yōu)秀的加密算法中鶴立雞群,在1976年

20、一舉拿下美國聯邦標準的桂冠。在之后的幾年里,DES加密標準迅速升溫,全球圍DES開始滲透到各行各業(yè),當然了,加密算法最新都是為軍事服務的,后來逐漸進入民用領域。從上世紀七十年代到當今的21世紀,這近30年間在加密標準領域,DES可謂是獨占鰲頭。然而,在瞬息萬變的今天,新生事物層出不窮,計算機領域的更新換代速率更是驚人的快。硬件技術飛速發(fā)展,網絡傳輸速率空前,數據交換越來越頻繁,且數據的位寬也越來越長,DES的淘汰落伍似乎已成定局,DES最致命的缺陷就是密鑰長度太短,56位的密鑰長度已經不能勝任許多應用。因此,后續(xù)曾經出現過DES的升級版本,叫做三重DES。然而事實證明三重DES并不能提供理論上

21、的168位加密的安全性能。因此,新的加密算法的升級換代迫在眉睫。早在上世紀末,NIST就預見到在不久的將來對新的更安全的加密標準的迫切需求,因此,NIST開始在全球圍征集優(yōu)秀的加密算法。此次征集的目的就是要確立一個適用于全球圍各行各業(yè),具有較強通用能力的新一代加密標準,并且替代現有的即將過時的DES加密算法。AES的先進性決定了其篩選的嚴格程度,這個征集過程歷時3年,進行三輪層層篩選,第一輪選出15種候選算法,第二輪對前一輪結果進行篩選,只剩下5個算法晉級,最后一輪又經過詳細論證與三次研討會議,才最終確立了Rijndael算法的先進地位,并于2001年將其命名為AES新一代高級加密標準。1.3

22、 課題主要研究容1.3.1 設計流程的介紹要設計一個AES加密電路,其核心就是AES加密算法的實現。因此,該課題的首要任務就是對先前已有的AES算法進行研究學習,然后再根據自己預期的功能需求對AES算法進行優(yōu)化設計,包括S-盒優(yōu)化、列混合變換優(yōu)化與AES流水線結構優(yōu)化等。接下來就是AES算法的實現了。首先要用硬件描述語言(Verilog HDL)進行頂層模塊的描述并完成仿真驗證,同時生成目標文件。在完成基本設計后,使用SYNOPSYS的DC和ASTRO進行綜合以與自動布圖設計,最后利用CADENCE進行模擬和驗證。1.3.2 軟硬件實現方式的介紹其實要想實現AES算法有兩種手段,即軟件實現和硬

23、件實現。軟件實現方式:即使用一種語言在一個操作系統(tǒng)或單片機上編寫加密程序。 優(yōu)點:便捷、經濟,使用靈活,方便移植。 缺點:安全性能堪憂,處理速率不高,運行效率較低。硬件實現方式:優(yōu)點:可以方便地設計并行處理以提高運行速度,安全性能可靠。 缺點:設計成本較高,且開發(fā)相對困難,靈活性不佳。硬件實現方法又可分為專用集成電路(ASIC)方法和現場可編程邏輯門陣列(FPGA)方法。7對比這兩種實方法的優(yōu)缺點如表1-1所示。表1-1 ASIC與FPGA性能對比FPGAASIC數據并行處理可并行可并行流水線支持支持密鑰訪問權限一般嚴格速度較軟件實現方法快非??熳珠L可變可變抗干擾一般強是否能進行功能配置是否設

24、計周期較軟件實現方法長很長開發(fā)成本昂貴較貴測試成本昂貴較貴維護與更新成本昂貴較貴描述硬件所使用的語言Verilog HDL、VHDLVerilog HDL、VHDL總的來說,AES加密算法的軟件實現方法雖然具有便捷、經濟,使用靈活,方便移植等優(yōu)點。但是在很多實際應用中,軟件加密方案并不能完全滿足現實需求。因此,本次課題的學習目標是重點掌握優(yōu)勢更為明顯的硬件實現方法。另外,由于本次畢設的最終要完成版圖的設計,所有工作都是基于模擬層面,不需要制作出昂貴的板子,所以課題要求選擇用抗干擾能力更強的ASIC方法來實現AES加密電路。AES算法的原理研究2.1 分組密碼的研究分組密碼、序列密碼都屬于對稱密

25、碼的疇。現階段由于技術的發(fā)展,密碼的位寬越來越寬,由開始的56位,到現在的128位可擴展密鑰,分組密碼的優(yōu)于序列密碼的趨勢已初現端倪。分組密碼中,加密、解密過程其實就是明文分組和密文分組進行相互轉換的過程。分組密碼的設計思想就是把密鑰擴展算法從加密算法的整體中分割出來,密鑰的擴展不收加密算法的影響。分組密碼把明文按一定長度進行分組,一般為128位,然后同長度可擴展的密鑰分組一起被送入加密算法,經過一系列的變換和復雜運算,最終將明文分組轉換成位寬一樣的密文分組,加密過程至此結束。相反,解密過程就是一個逆運算,加、解密過程中使用的密鑰分組是一樣的。AES算法運用的是迭代型分組算法,安全性高,靈活性

26、好,并且迭代型分組易于在軟硬件中實現。明文分組輪函數F1輪函數F2輪函數F3輪函數FN密文分組初始密鑰K密 鑰 擴 展 算 法K1K2K3KN圖2-1 迭代型分組密碼結構從結構上來看的話,迭代型分組密碼又可以往下細分成三大類,包括Feistel結構、SP 結構以與其它結構。SP和Feistel結構分別如圖2-2(a)(b)所示。LiRiFKiLi+1Ri+1輪 輸 入S 層輪 輸 出P 層子密鑰 (a) (b)圖2-2:網絡結構由于AES算法使用的結構類型是SP,因此,本文著重介紹SP網絡結構。從圖2-2(a)中可以看出,SP結構從上往下依次是輪輸入、S層、P層、輪輸出,然后子密鑰作用于S層。

27、結構非常簡單,便于分析。明文和密鑰共同作用于S層,在這一步中要完成的工作就是擾亂明文與密鑰彼此之間的聯系,使非法用戶無法從外界區(qū)分明文和密鑰,從而達到對密碼分析技術的免疫,即提高抵抗攻擊的能力。SP結構中的P層主要承擔著擴散的工作,經過這一層的計算,明文分組中的任何一點變動,都會引起相應密文的無規(guī)律變化。使密文的多樣性得到極大的拓展,使線性攻擊等手段對其無能為力。2.2 AES 加密算法的數學理論2.2.1 含有有限個元素的域有限域的,我們把它定義成一個域中包含的要素的個數是有限的,且這個集合中單個要素的個數我們將它定義成有限域的階。在公式中m表示階,p則代表特征值。在AES加密算法中,最常用

28、的特征值是2。2.2.2 有限域上的多項式與運算有限域轉化為傳統(tǒng)的多項式如下所示。 , (2.1)由式(2.1)我們可以看出,以一個8位的數據為例,轉換后的多項式如式2.2所示。 (2.2)需要注意的是,此多項式的系數是一個8位二進制數的每一位的數值,即非0即1。舉個列子,現在有一個多項式,那么它對應的8位二進制數就是1010011,因此,其對應的十六進制數就是A3。1)有限域上多項式的加法運算AES加密算法中,通過我們人為地定義,把一個字節(jié)(即8位的二進制數)的數據轉換成數學中常用的多項式,這就把不易計算分析的二進制數直觀地用符合我們正常思維的數學多項式的計算來表示。舉個例子,十六進制數A3

29、89多項式計算如(2.3)所示。二進制計算式:101001110001010 = 00101001多項式計算式:(2.3)2)有限域上多項式的乘法運算 多項式的乘法關于多項式的加法滿足分配律、交換律和結合律,單位元為。選取一個L次多項式,稱其為約化多項式。這樣才能讓乘法運算在有限域中具有封閉性。因此,多項式和的乘積表示為模約化多項式下多項式的代數乘積7。(2.4)定義時,稱為的逆元。為了定義字節(jié)乘法,被廣泛地用于AES加密算法的多項式為: (2.5)如在有限域中,16進制數 57 和 83 所表示的多項式的乘積可以用16 進制數 C1 表示。多項式表示為:(2.6)(2.7)在有限域中還有一種

30、乘法運算叫做乘,記作:多項式表示為:(2.8)在這個式子中,要是為0,多項式的系數依次向左移動1比特,最右邊空出來的1個比特我們用0來填充,這樣的改變并不影響該等式的結果;如若為1的話。那么乘積結果減,與 16進制數 1B 異或。3)有限域上多項式的四字節(jié)運算有限域中四字節(jié)表示為次數小于4的多項式。它的加法運算與一字節(jié)一樣,通過各系數的異或運算來實現。多項式表示為:;(2.9) 四字節(jié)的乘法運算采用的約化多項式為:(2.10) 多項式和的乘積多項式表示為:(2.11)根據冪的次數進行區(qū)分,得出其矩陣表示為: (2.12)2.3 輪變換與密鑰擴展S盒變換S-BOX S-Box操作是一個非線性的字

31、節(jié)替換。它由兩個子轉換組成;乘法逆元素和仿射變換。每個字節(jié)的乘法逆元素運算: (2.13)仿射變換(這個步驟執(zhí)行): (2.14)加密過程解密過程添加常數,是為了防止S-box沒有定點,或沒有相反的定點。 加密 令 要實現AES兩個子步驟,通常需要SubBytes轉換,如表2所示。表中數據的大小是8位16*16即256 x 8位的ROM,數據規(guī)模不大,可以以一個簡單的方式與現代設計工具相結合。然而當硬件大小受到限制或者出現不能合并的ROM的時候,反演硬件就顯得相當有必要性。這種情況下,主要問題是如何實現高效S-box。仿射變換,但是需要少量的門電路,這就會造成一定的延遲。根據Rijndael,

32、AES應用了多項式。這是一個本原不可約多項式。大部分的作者和設計工程師都認為的計算是相當復雜的。好消息是,前人已經總結了一套實用的S-box計算方法。以下列舉兩個方法:結合表2-1進行查表;使用CAD工具優(yōu)化邏輯功能,合成并優(yōu)化邏輯函數,計算元素的反演。利用復合材料的使用領域設計的低功耗S-box轉換。元素中定義的映射。在底層領域對乘法和反演進行了優(yōu)化。這種方法既吸引了(2.14)的技術,又和(2.16)中的許多有用的想法相一致。為了減少了一些不必要的資源浪費,字段轉換只應用于S-box計算。沒有必要進一步分解復合場最低的地場。工作在復合材料領域,乘法逆元素是相對自由的。然而,總的來,我們必須

33、把中的元素映射到,其中。因此變換和逆變換矩陣是很重要的。元素可以被映射到元素,利用多項式表示元素,其中是初始的不可約多項式。結果映射在(2.15)、(2.16)的正逆矩陣中。,(2.15)(2.16)上圖左側的元素在上面的矩陣中表示最低有效位。利用映射元素形式,從到是簡單的乘法逆計算反演。因為總數據字節(jié)比較小,反演使用直接映射真值表的方法,在消耗較少的資源下查找數據。此外,在Rijndae1系統(tǒng)中數據以最初始的字節(jié)格式存在。令數據字節(jié)表示成,那么。由可以推導出:(2.17)(2.18)(2.19)(2.20)本文闡述了這種方法的擴展數量管道狀態(tài)選項S-Box設計。圖1所示的128位數據路徑是4

34、個32位的數據路徑。因為一個S-Box計算塊只需要8位的數據集,我們的確需要16個平行單位。字節(jié)替換計算也是KeyScheduling計算過程所需的關鍵。一輪128位關鍵是需要在每一輪的AES操作。然而只有32位:4字節(jié)替換8位的需求。因此只有4個16位的S-Box共享密鑰更新的計算。S 盒如表2-1所示。表2-1 S-BOX2) 行移位變換ShiftRows 行移位變換就是以字節(jié)為單位對數據進行循環(huán)移動,這種變換是線性的,它其實就是SP網絡結構中S層的組成部分,主要作用是混淆明文與密鑰。列混合變換MixColoumns列混合變換屬于代替變換,列混合運算表達式為:4)密鑰加法(AddRound

35、Key)密鑰加法KeyScheduling擴展初始128位密碼鍵生成圓鍵。圓鍵可以動態(tài)生成數據轉換,或者他們是提前計算和存儲,以供后續(xù)使用。這種輪密鑰用于加密或解密的數據轉換是動態(tài)計算。密鑰加法本質就是128位的異或運算。5)密鑰擴展(ExpendedKey)AES加密算法是十輪迭代型分組密碼算法,密鑰擴展和加、解密過程是分開的,因此密鑰擴展在整個加密算法中就顯得尤為重要,密鑰擴展主要是由密鑰分組的位寬以與迭代輪數決定的,主要負責為加密或解密算法提供各輪運算所需要的密鑰。2.4 AES 加密算法工作模式 本文的第一章節(jié)里面就曾提到,AES加密算法屬于分組密碼,分組密碼的設計思想就是將不同位寬的

36、明文和密鑰分成固定長度的明文組和密鑰組。因此,可想而知在我們現實生活的應用中,所要加密的明文位寬不可能完全一致,有可能高于或低于分組長度,鑒于現實應用的多樣性,AES加密算法就有必要應用不同的工作模式,這樣才能達到最優(yōu)的工作效率。確保AES能勝任各行各業(yè)的加密需求。 事實上,工作模式的問世要遠遠早于AES,要上溯到19世紀80年代。現如今,比較成熟且應用較為廣泛的幾種工作模式包括:電子密碼本模式(Electronic Code Book)、密文連接模式(Cipher Block Chaining)、密碼反饋模式(Cipher Feedback)和輸出反饋模式(Output Feedback)等

37、。由于篇幅有限,本文只對以上幾種工作模式作簡要說明。1)電子密碼本模式(ECB)電子密碼本模式,分組長度128位,若明文長度不足128位的話,就在空缺的數據位上添加上空字符。由于AES加密算法的特性,決定了電子密碼本模式只能在明文分組較少的實例中擁有良好表現,一旦碰到分組數量較多且重復率較高的情況,ECB模式速度快的優(yōu)勢就無法彌補其安全隱患的缺陷了。2)密文模式(CBC)密文模式,先將一個明文分組進行加密,其結果存儲在寄存器中,然后明文分組再與寄存器中的密文進行逐位異或,異或的結果與密鑰分組一齊被送入加密電路。該模式的流水線是串行模式,加密結構牽一發(fā)而動全身,明文分組的一絲變化,都會導致密文分

38、組的連鎖反應。3) 密碼反饋模式(CFB)密碼反饋模式,初始向量位于一串數據的最高位,加密完成后最前面的8比特與明文最初8比特進行異或運算,生成密文最初8比特。然后將該8比特的數據移動到隊列的最后,其它位依次左移動8個比特。密碼反饋模式的工作方式與CBC有很大的相似性。4) 輸出反饋模式(OFB)輸出反饋模式相較于CFB,變塊密碼為流密碼就是輸出反饋模式最大的特點,其它基本與CFB模式相仿。然而,抵抗力較弱,安全性存在缺陷,無法并行處理數據等等先天性的缺點也制約了其發(fā)展。2.5 AES算法的整體結構 AES加密算法為替代/置換(SP)型網絡結構,輪變換的輪函數由以下三層組成:S層(非線性層):

39、由字節(jié)代換函數(SubBytes)組成,進行非線性S 盒變換,起混淆作用,確保達到掩蓋明文、密文、密鑰關系的目的。P層(線性混合層):進行列混淆變換MixColumn和行移位變換ShiftRow,主要是為了確保多輪迭代后的數據高度擴散。密鑰加層:進行輪密鑰加變換(AddRoundKey),控制子密鑰的產生,使明文與擴展出的密鑰更有效地結合。AES 的算法結構非常簡單,以一個明文分組長度為128bit,輪數為10的加、解密整體結構為例。對加密和解密操作,算法從輪密鑰加開始,接下來執(zhí)行9輪迭代運算,每一輪都包含字節(jié)代換、行移位、列混淆、輪密相加這四個階段的代換,最后1輪運算只包含字節(jié)代換、行移位、

40、輪密相加這三個階段。加、解密過程中10輪迭代中的每個階段均是可逆的。解密過程中,對字節(jié)代換、行移位變換和列混淆變換,它們分別使用相對應的逆函數。而輪密鑰相加階段的逆就是用同樣的輪密鑰和分組相異或的過程。事實上AES的加密過程和解密過程相類似,加密過程是正運算,解密過程就是相應的逆運算。AES加密算法的工作流程如圖2-3所示。輪密相加明 文輪密相加字節(jié)代換行變換列變換輪密相加字節(jié)代換行變換列變換輪密相加字節(jié)代換行變換輪密相加逆向行變換逆向字節(jié)代換輪密相加逆向列變換逆向行變換逆向字節(jié)代換輪密相加逆向列變換輪密相加逆向字節(jié)代換逆向行變換擴展密鑰密 鑰明 文密 文密 文第一輪第九輪第十輪第一輪第九輪第

41、十輪圖2-3 明文分組長度為128bit,輪數為10的AES加、解密流程圖2.6 本章總結本章節(jié)著重介紹了AES加密算法的工作原理,從其數學理論基礎,到AES加密算法的模塊介紹,再到其總體工作流程的剖析,全方位地展示了AES加密算法的基本結構。此外,本章章首還對分組密碼以與分組密碼的兩種主要結構進行了介紹,雖說不很詳盡,但是也簡要概括了分組密碼的結構流程和工作模式。全方位地闡述了AES算法的工作原理。理解這些知識點對更深層次、更透徹地理解AES加密算法大有幫助,此外,這也為后續(xù)的加密電路的設計工作打下了良好的基礎。AES 算法模塊的設計與仿真3.1 開發(fā)環(huán)境介紹3.1.1 硬件描述語言(HDL

42、)介紹硬件描述語言即Hardware Description Language,簡稱HDL。HDL提供了一種將硬件電路通過文字的形式表現出來的方法。它不僅用于描述已有的電路,還可通過對預期功能的描述達到設計電路的目的。該過程就是首先用HDL語言描述目標電路,然后運用相關工具進行仿真(如Modelsim)、生成相應的目標文件(如EDA),最后再用ASIC或者FPGA方式來實現電路。硬件描述語言發(fā)展至今,已經衍生出了多種針對于不同應用目的硬件描述語言。它們一般面向特定的領域、針對特定的應用、采用特定的層次,訂制程度高,但是由于彼此之間缺乏相應的通用標準,因而基本不能跨領域通用。最終,VHDL和Ve

43、rilogHDL在優(yōu)勝劣汰中生存了下來,并先后成為IEEE標準。3.1.2 Modelsim仿真軟件Modelsim是一款硬件描述語言仿真軟件,其性能之優(yōu)秀在業(yè)是有目共睹的,Mentor公司憑借它在仿真軟件領域遙遙領先。相比較于其它仿真軟件,Modelsim只靠著一個核就可以同時兼容VHDL、Verilog HDL兩種語言的仿真,這一優(yōu)勢可謂獨樹一幟,無人能與。與此同時Tcl/Tk技術、單一核仿真技術和直接優(yōu)化編譯技術這些看家本領無疑都成為Modelsim軟件的加分點,這些獨有的技術造就了其速度快且代碼編譯不受使用平臺的限制等優(yōu)點。個性化的圖形界面以與可自由配置的用戶接口等因素都讓Models

44、im成為仿真軟件的首選。3.2 AES 加密模塊總體架構本課題研究的AES加密共有7個部分,分別是:SubBytes、ShiftRows、MixColumns、AddRoundkey、S-box、Key Expansion,其中Encrypt模塊由SubBytes、ShiftRows、MixColumns、AddRoundkey、S-box這5個部分組成,完成加密功能。Key Expansion模塊是密鑰擴展模塊,主要作用是完成密鑰的擴展和子密鑰的輸出。Control模塊控制電路選擇加密或解密模塊實現不同的功能。其總體架構如圖3-1所示。AES加密模塊頂層的外部接口與部分端口功能說明分別如圖3

45、-2、表3-1所示。AES加密電路仿真波形如圖3-3所示。Mix ColumnsSub BytesShift RowsAdd Round keyS-boxControlKey Expansion控制信號數據輸入密鑰圖3-1 AES加密總體架構clkresetload_idata_i127.0decrypt_ikey_i127.0ready_odata_o127.0圖3-2 AES加密模塊頂層外部接口示意表3-1 AES加密模塊部分端口說明端口名稱端口類型端口描述load_iinput數據加載decrypt_iinput加密控制data_iinput127:0數據輸入key_iinput127:

46、0外部密鑰輸入data_ooutput127:0數據輸出ready_ooutput完成信號圖3-3 AES加密電路仿真波形3.3 位變換模塊設計SubBytes與S-box位變換模塊(SubBytes)是一個將數組中每一個字節(jié)變換為另外一個字節(jié)的過程,且該過程中的變換為非線性的,它是一個字節(jié)大小的非線性變換。另外,與AES其它模塊一樣,位變換是可逆的。位變換過程如圖3-4所示。位變換模塊外部接口如圖3-5所示。位變換(SubBytes)模塊仿真波形如圖3-6所示。S盒模塊(S-box)仿真波形如圖3-7所示。S-BoxSr,sSr,sS0,0S0,1S0,2S0,3S1,0S1,1S1,2S1

47、,3S2,0S2,1S2,2S2,3S3,0S3,1S3,2S3,3S0,0S0,1S0,2S0,3S1,0S1,1S1,2S1,3S2,0S2,1S2,2S2,3S3,0S3,1S3,2S3,3圖3-4 位變換過程示意圖clkresetstart_idata_i127.0decrypt_isbox_data_i7.0ready_odata_o127.0sbox_data_o7.0sbox_decrypt_o圖3-5 位變換模塊外部接口圖3-6 位變換模塊仿真波形圖3-7 S盒模塊(S-box)仿真波形3.4 列混合變換模塊設計MixColumnsMixColumns變換是一個實現狀態(tài)數組逐列

48、進行變換的過程,它最主要的部分是有限域乘法。MixColumns是列的變換,它包括word_mixcolumn模塊,然而每個word_mixcolumn又包括4個byte_mixcolumn。因此,列混合變換實際就是對字變換和字節(jié)變換的調用。另外,由于shiftrows模塊是一個簡單的以字節(jié)為單位的循環(huán)移動過程,所以該模塊可以在列混合變換模塊中體現,從而節(jié)省空間,提高運算效率。列混合變換過程與外部接口分別如圖3-8、3-9所示,Mixcolumns模塊仿真波形如圖3-10所示。MixcolumnsS0,0S0,1S0,2S0,3S1,0S1,1S1,2S1,3S2,0S2,1S2,2S2,3S

49、3,0S3,1S3,2S3,3S0,0S0,1S0,2S0,3S1,0S1,1S1,2S1,3S2,0S2,1S2,2S2,3S3,0S3,1S3,2S3,3S0,0S1,0S2,0S3,0S0,0S1,0S2,0S3,0圖3-8 列混合變換過程clkresetstart_idata_i127.0decrypt_iready_odata_o127.0圖3-9 列混合變換Mixcolumns模塊外部接口圖3-10 列混合變換Mixcolumns模塊仿真波形3.5 密鑰擴展模塊設計keysched密鑰擴展模塊是整個AES加密電路中比不可少的一部分,AES算法的可靠性就是依賴于密鑰的程度。在AES算

50、法中,初始密鑰通過密鑰擴展模塊進行變換,從而產生每一輪加密運算中所需要的輪密碼。密鑰的擴展根據擴展時序又能夠被分成非并行擴展和并行擴展。并行擴展:輪運算與子密鑰的生成是同步的,即每一輪輪運算開始的同時,下一輪運算所需要的子密鑰也相應地產生了。非并行擴展:子密鑰生成和輪運算過程是不同步的,密鑰擴展模塊單獨運行,并將生成的各輪子密鑰進行存儲,然后供各輪加解密運算使用。這兩種密鑰擴展方案理論上都是可行的,然而并行擴展密鑰在解密過程中的第一個子密鑰是加密過程中最后一輪的子密鑰,因此,解密過程就必須要在這一輪加密結束后才能開始。同時解密過程還需要與之匹配的解密密鑰的擴展電路,這就造成了一定的資源浪費。相

51、比較而言非并行擴展就不存在這樣的問題,所以,本課題采用的是非并行擴展方案。密鑰擴展模塊狀態(tài)機與外部接口分別如圖3-11、3-12所示,仿真波形如圖3-13所示。000100001010011clkresetstart_ilast_key_i127.0round_i3.0sbox_data_i7.0ready_osbox_access_osbox_data_o7.0sbox_decrypt_onew_key_o127.0 圖3-11 keysched模塊狀態(tài)機 圖3-12 keysched模塊外部接口圖3-13 keysched模塊仿真波形3.6 加密模塊Testbench設計該模塊的目的就是驗

52、證在給予AES加密模塊一樣的明文、完全一致的密鑰時,輸出結果是否一樣。驗證過程的原理如圖3-14所示。Testbench模塊仿真波形如圖3-15所示。AES 1AES 2激 勵算法轉換檢 查 輸 出 結 果圖3-14 Testbench驗證原理圖圖3-15 Testbench仿真波形AES加密系統(tǒng)的綜合與布局布線4.1 綜合與布線開發(fā)工具的介紹4.1.1 Synopsys DC Design Compile,簡稱DC,它是synopsys的綜合軟件和優(yōu)化工具,它能夠把寄存器(RTL)級的代碼轉化為門級網表。綜合過程包括轉譯(Translation)、優(yōu)化(Opitimization)和映射(M

53、apping)這三個步驟。轉譯是軟件根據預設自動地將硬件描述語言翻譯成與其相對應的功能模塊(包括模塊之間的拓撲結構)的過程。優(yōu)化:綜合器根據外部施加的一定條件(包括時序和電路面積的限制等),按照預定的算法對轉譯的結果進行邏輯優(yōu)化。映射:綜合器根據外部施加的一定條件(包括時序和電路面積的限制等),從已知的工藝庫中搜索符合條件的元器件來組成實際電路。 在使用synopsys DC進行綜合時,工藝庫,目標庫,標志庫等參數是必不可少的,DC工具在工作時就是根據這些參數來確定所使用的相關算法與優(yōu)化方案的。4.1.2 Synopsys AstroSynopsysAstro是一個優(yōu)化、布局、布線的設計環(huán)境,

54、它是為超深亞微米(UDSM)IC設計訂制的。它能夠滿足5千萬門級、時鐘頻率達到GHz等技術需求。得益于Synopsys的兩項新技術(PhySiSys和Milkyway DUO結構),Astro擁有優(yōu)秀的優(yōu)化與布局布線能力。4.2 綜合和布局布線4.2.1 過程概述本次試驗利用DC實現生成.v,.sdf和.sdc文件,然后利用Astro進行版圖的生成。DesignCompiler可以針對層次化的組合電路或者時序電路的速度、面積和可布性進行優(yōu)化,按照所定義的電路的測量特征所達到的目標,DC綜合一個電路并將其放入目標庫,這樣可以生成適用于計算機輔助設計工程(CAE)工具的原理圖或網表。應用Synop

55、sys公司開發(fā)的后端設計工具Astro可以完成布局布線的設計,同時Astro還具有時序優(yōu)化的功能,可以再一次流程中使設計電路達到預設的指標。4.2.2 DC生成的門級電路和報告如圖4-1、4-2、4-3、4-4所示,為DC綜合后的門級電路圖。圖4-1 DC綜合后門級電路圖圖4-2 AES門級電路1圖4-3 AES門級電路2圖4-4 AES門級電路3如圖4-5、4-6、4-7所示,為DC過程生成的報告。 圖4-5 面積報告 圖4-6 規(guī)則約束報告 圖4-7 時序報告4.2.3 Astro版圖生成流程一、準備1.建立庫 2.讀入Verilog 3.打開庫 4.打開單元 5.裝載SDC文件 6.時序設置 7.保存單元數據;二、布局規(guī)劃1.載入TDF文件 2.全局的FloorplanDesignSetup 3.添加PadFiller單元 4.連接電源和地 5.生成PadRing 6.放置Macro單元 7.設計電源線;三、布局1.打斷掃描鏈 2.設置放置參數 3.放置標準單元,同時進行第一次優(yōu)化 4.放置 5.查看布局擁塞視圖 6.查看時序報告 7.查看布局概況 8.存儲設計數據;四、時鐘和綜合1.設置時鐘 2.綜合完以后檢查clockskewTiming 3.連接電源和地;五、布線1.重新連接掃描鏈 2.設置時序以與布線的選項 3.布時鐘線 4.布線 5.優(yōu)化 6.再進行一次全

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論