999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AES算法的加密模塊設計

2013-01-18 12:04:02弟宇鳴陳榮樺左廣霞
電子設計工程 2013年2期

弟宇鳴,陳榮樺,左廣霞

(第二炮兵工程大學 102室,陜西 西安 710025)

隨著信息技術的日新月異,信息的安全性問題日益突出,如何確保存儲信息的安全有效越來越成為人們關心的問題。采用加密技術是解決數據存儲安全性的首選[1]。當前,密碼學理論和技術已取得了長足的發展,新一代加密算法AES算法可以抵擋目前已知的所有攻擊手段,它的產生與應用,給數據加密帶來了福音。AES算法是一種迭代型分組密碼,該算法設計簡單,與公鑰密碼算法不同,沒有復雜的乘法運算,易于實現,靈活性強,輪函數良好的并行特性有利于硬件設計與實現[2]。

1 AES算法簡介

2001年 11月,NIST宣布將比利時人 Joan Daemen和Vicent Rijinen提交的Rijndael算法作為高級加密標準(AES)。2006年,AES算法已成為對稱密鑰加密中最流行的算法之一。AES算法是一種迭代型分組密碼,其分組長度和密鑰長度均可變,各自可以獨立指定為128位、192位、256位。輪數Nr依賴于密鑰長度。如果密鑰長度為128比特,則Nr=10;如果密鑰長度為192比特,則Nr=12;如果密鑰長度為256比特,則Nr=14。文中主要討論分組長度和密鑰長度為128位的情況[3]。

AES算法可以用軟件也可以用硬件實現,實際使用中根據具體的應用環境兩種情況都有。軟件實現是靠CPU的運算來實現算法,易受使用條件限制,加密速度慢,易受到破壞,影響數據傳輸質量。硬件實現是用專用芯片實現密碼算法,通過芯片對數據進行加密。專用加密芯片是實現信息安全與保密的核心模塊,具有保密性高,加密效率高,易于嵌入,總體成本低等優點,因此在復雜系統和大數據量加密系統中,一般都使用硬件來實現AES加密[4]。

2 AES算法原理

AES的加密流程為,首先將明文映射到狀態矩陣(State),進行初始密鑰加運算;然后進行Nr次輪運算,各輪都 由 字 節 替 換 (ByteSub)、 行 移 位 (RowShift)、 列 混 淆(MixColumn)、輪密鑰加(Addroundkey)4 個置換來實現,但第Nr輪不做列混淆;最后將狀態矩陣映射為密文[5]。解密過程與加密過程類似。加密解密流程圖如圖1所示。

圖1 AES加密解密流程圖Fig.1 Flow chart of encryption and decryption

2.1 位替換(ByteSub)

位替換是對狀態陣列的字節到字節的變換,它使用字節替換表(S盒)作用于狀態矩陣的每個字節。字節替換有正向字節替換和逆向字節替換,正向字節替換是一個簡單的查表操作。AES定義的S盒是由16×16個字節組成的矩陣,包含了8位值所能表達的256種可能的變換。State中每個字節按照如下的方式映射為一個新的字節:把該字節的高4位作為行值,低4位作為列值,取出S盒中對應行列的元素作為輸出。圖2描述ByteSub變換結果。

AES的S盒被設計成能防止已有的各種密碼分析攻擊,Rijndael開發者特別尋求輸入位和輸出位之間幾乎沒有相關性的設計,并且輸出值不能通過利用一個簡單的數學函數變換輸入值所得到。當然,S盒必須是可逆的,但S盒不是自逆的。

圖2 位替換示意圖Fig.2 Schematic diagram of ByteSub

2.2 行移位(ShiftRow)

行移位是對狀態陣列的行到行的變換,也就是將某個字節從一列移到另一列中,它的線性距離是4字節的倍數。在這里要注意到,行移位變換確保了某列的4字節被擴展到了4個不同的列。正向行移位變換,即State的第一行保持不變,把State的第2行循環左移一個字節,State的第3行循環左移2個字節,State的第4行循環左移3個字節。而逆向行移位變換則是將State中的第一行保持不變,后3行執行與正向行移位相反方向的移位操作。

2.3 列混淆(MixColumn)

列混淆是對狀態陣列的列到列的變換,它作用于狀態陣列的每一列。正向列混淆變換對每列獨立地進行操作,每列中的每個字節被映射為一個新值,此值由該列中的4個字節通過函數變換得到。

2.4 輪密鑰加(AddroundKey)

輪密鑰加是輪密鑰與狀態陣列中的對應字節按位異或的變換,輪密鑰由密鑰擴展得到。在正向輪密鑰加變換中,128位的State按位與128位的密鑰XOR把這個操作看成是基于State列的操作,即把State的一列中的4個字節與輪密鑰的一個字進行異或。逆向輪密鑰加變換與正向輪密鑰加變換相同,因為異或操作是其本身的逆。也可以說由于AddroundKey只包括一個異或操作,所以InvAddRoundKey與AddroundKey變換一致。

2.5 密鑰擴展模塊

密鑰擴展模塊負責把輸入的初始密鑰擴展為每一輪輪變換所需要的輪密鑰。文中所設計的模塊,預先對輸入的密鑰進行擴展,一次性完成加密和解密每一輪輪變換所需要的輪密鑰。擴展所得的輪密鑰存儲于輪密鑰存儲器中,加密和解密過程直接調用輪密鑰以節省時間。密鑰擴展模塊如圖3所示。

圖3 密鑰擴展模塊Fig.3 Key extended module

3 硬件模塊設計

文中所設計的AES加密模塊是在一片FPGA中實現的,系統是以在滿足時序要求的條件下,最大程度地減小芯片面積為目標。如果直接在邏輯電路上實現AES算法的各種運算,必然會造成芯片面積過大和資源浪費,影響加解密效果和使用環境。AES加解密模塊整體結構如圖4所示。

圖4 AES加解密模塊整體結構Fig.4 Structure diagram of the AESencryption and decryption module

AES加解密模塊主要由分組寄存器、輪加密/解密運算單元、明文/密文緩沖器、狀態機(控制邏輯)、密鑰寄存器、密鑰擴展單元、輪密鑰存儲器及其他單元組成。Clk表示時鐘信號,Reset表示復位信號,Start表示算法開始信號,Mode表示加密/解密模式選擇,Key1和 Key2分別表示加密/解密密鑰輸入端口,Start_key表示密鑰擴展開始信號,Data_in1和Data_in2分別表示明文/密文數據輸入端口,Done表示加/解密完成信號,Data_out1和Data_out2分別表示密文/明文數據輸出端口。

在系統進行加密/解密運算前,Start_key信號開始控制密鑰擴展模塊對初始密鑰進行擴展,擴展完成的各輪變換所需要的輪密鑰存儲于輪密鑰存儲器中。加密/解密過程需要輪密鑰可直接從存儲器調用。這樣,在大量數據進行運算時,可以節省時間,提高加密解密效率。

4 仿真與結果分析

本設計的代碼輸入、仿真、綜合和實現過程都是在Xilinx公司開發的集成開發件ISE8.2i,Model Tech公司的Modelsim6.le中完成的,選用的是Spartan3系列的Sp3-500E型FPGA芯片。綜合工具使用ISE自帶的XST,以速度作為約束條件,對本設計進行了綜合優化,綜合后的得到優化結果如下:

邏輯單元:15 856 LE

存儲單元:247 416 bit

最高頻率:101.891 MHz

最短時延:9.814 ns

最大吞吐量:2.58 Gbit/s

以128比特分組數據為例,在明文分組為128比特,初始密鑰長度為128比特,利用高級加密標準提供的測試數據進行仿真。測試數據表1所示。

表1 測試數據Tab.1 Test data

在仿真系統中輸入128比特的密鑰和明文,仿真結果的密文為:3925 841D 02DC 09FB DC11 8597 196A0B32。仿真結果如圖5所示。

圖5 初始密鑰長度為128比特下的加密結果Fig.5 Encryption result of the key length of 128-bit

在仿真系統[6-7]中輸入128比特的密文和密鑰,仿真得到的明文為:3243 F6A8 885A308D 3131 98A2 E037 0734。仿真結果如圖6所示。

通過仿真結果可以知道,加密和解密得到的數據與高級加密標準資料中提供的測試數據一致。加密模塊能夠實現AES算法,AES加密模塊在設計上是成功的。

5 結束語

文中首先介紹了AES算法的結構和基本原理,然后提出AES加密模塊設計方案。通過用Verilog語言編寫實現程序,在Modelsim6.le軟件平臺上進行編譯、仿真,使得以Rijndael數據加密算法的AES高級加密標準得到很好的體現。實驗結果表明,文中所設計的AES加密模塊能夠對初始密鑰長度為128比特的明文和密文進行加密和解密,基本達到了預期的設計目標。

圖6 初始密鑰長度為128比特下的解密結果Fig.6 Decryption result of key length of 128-bit

[1]沈昌祥,張煥國,馮登國.信息安全綜述[J].中國科學E輯:信息科學,2007,37(2):129-150.SHEN Chang-xiang,ZHANG Huan-guo,FENG Deng-guo.Summary of information safety[J].Science in China:Series E:Information Sciences,2007,37(2):129-150.

[2]唐金藝.AES算法FPGA實現分析[J].計算機安全,2007(6):14-20.TANGJin-yi.Analysis of AESs Implementation with FPGA[J].Computer Security,2007(6):14-20.

[3]吳鵬,李開成.基于FPGA的Rijndael算法實現的研究[J].鐵路計算機應用,2007(120):46-48.WU Peng,LI Kai-cheng.Research on implementation of rijndael algorithm based on FPGA[J].Railway Computer Application,2007(120):46-48.

[4]儲奕鋒.AES算法的FPGA實現[J].電腦知識與技術,2007(19):191-193.CHU Yi-feng.Implementation of AESalgorithm on FPGA[J].Computer Knowledge and Technology,2007(19):191-193.

[5]高旸,胡向東.AES算法的DSP實現[J].兵工自動化,2006,25(1):38-44.GAO Yang,HU Xiang-dong.Realization of AES based on DSP[J].Ordnance Industry Automation,2006,25(1):38-44.

[6]蘇國民,孫旭.基于Matlab的燃油爐溫度仿真系統的設計[J].工業儀表與自動化裝置,2011(3):89-90.SU Guo-min,SUN Xu.The design of fuel furnace temperature system with the Matlab[J].Industrial Instrumentation &Automation,2011(3):89-90.

[7]周艷平,胡乃平.基于Web的計算機控制技術遠程仿真系統開發[J].工業儀表與自動化裝置,2010(3):112-115.ZHOU Yan-ping.Development of remote simulation system for computer control technology based on Web[J].Industrial Instrumentation&Automation,2010(3):112-115.

主站蜘蛛池模板: 精品久久综合1区2区3区激情| 亚洲a级在线观看| 最新国产你懂的在线网址| 99人妻碰碰碰久久久久禁片| 亚洲欧美日韩另类| 日韩大片免费观看视频播放| 免费高清a毛片| 亚洲最猛黑人xxxx黑人猛交| 成人在线亚洲| 麻豆精品在线视频| 免费一级成人毛片| 国产成人亚洲无码淙合青草| 国产精品视屏| 在线亚洲小视频| 东京热一区二区三区无码视频| 亚洲欧洲一区二区三区| 午夜成人在线视频| 最新国产精品第1页| 国产麻豆另类AV| 亚洲欧洲一区二区三区| 久久久91人妻无码精品蜜桃HD| 国产精品色婷婷在线观看| 欧美在线视频a| 视频二区国产精品职场同事| 国产欧美精品一区aⅴ影院| 欧美日在线观看| 国产欧美专区在线观看| 中文无码精品A∨在线观看不卡| 国产99视频在线| 女人18毛片一级毛片在线 | 狠狠做深爱婷婷综合一区| 久久免费看片| 色哟哟国产成人精品| 国产一级裸网站| 天天色天天综合| 色哟哟国产精品| 欧美亚洲香蕉| 极品国产在线| 国产又大又粗又猛又爽的视频| 久热中文字幕在线观看| 成年人久久黄色网站| 亚洲天堂免费在线视频| 国产精品妖精视频| P尤物久久99国产综合精品| 久精品色妇丰满人妻| 中日无码在线观看| 欧美性天天| 国产国产人成免费视频77777| 美女毛片在线| 亚洲欧美自拍中文| 国产又粗又爽视频| 欧美成人影院亚洲综合图| 国产亚洲精品91| 午夜福利在线观看成人| 激情午夜婷婷| 亚洲成人动漫在线| 手机成人午夜在线视频| 伊人网址在线| 亚洲乱强伦| 成人福利在线免费观看| 国产69精品久久久久孕妇大杂乱 | 亚洲日韩日本中文在线| 亚洲床戏一区| 萌白酱国产一区二区| 91久久偷偷做嫩草影院免费看| 青青草综合网| 欧美一级在线| 精品99在线观看| 在线毛片免费| 成人午夜视频免费看欧美| 无码免费的亚洲视频| 一级福利视频| 99re在线免费视频| 亚洲无码高清一区| 欧美黄网站免费观看| 狠狠色狠狠综合久久| 被公侵犯人妻少妇一区二区三区| 欧美在线精品一区二区三区| 国产福利在线观看精品| 中文字幕va| 国产麻豆va精品视频| 国产精品网址你懂的|