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

基于FPGA的AES算法硬件實現優化及IP核應用

2017-07-12 16:06:27龔向東
電子設計工程 2017年12期
關鍵詞:優化

龔向東,王 佳,張 準,王 坤

(1.深圳大學 電子科學與技術學院,廣東 深圳518060;2.深圳大學 光電工程學院,廣東 深圳518060)

基于FPGA的AES算法硬件實現優化及IP核應用

龔向東1,王 佳2,張 準2,王 坤2

(1.深圳大學 電子科學與技術學院,廣東 深圳518060;2.深圳大學 光電工程學院,廣東 深圳518060)

根據AES算法的特點,從3方面對算法硬件實現進行改進:列混合部分使用查找表代替矩陣變換,降低算法實現的運算復雜度,采用流水線結構優化關鍵路徑-密鑰拓展,提升加密速度,利用FPGA定制RAM (BRAM)預存查找表進一步提升加密速度。優化后的AES算法在Virtex-6 xc6vlx240T(速度等級 -3)FPGA上實現,結果發現,AES算法共占用1 139個Slice,最大頻率達到443.99 MHz,通量達到 56.83 Gbit/s,效率達到 49.89 (Mbit/s)/Slice;然后,對 AES算法進行接口邏輯聲明,將優化后AES算法封裝成自定制IP核;最后,采用基于NIOS II的SOPC技術,構建了一個嵌入式AES算法加密系統,實現了數據通信中的高速加密。

AES;流水線結構;通量;效率;自定制IP核;加密系統

數據加密標準(DES-Data Encryption Standard)[1]是密碼學歷史上第一個廣泛用于商用數據保密的密碼算法,隨著計算機性能的不斷提升,DES的密鑰長度和分組長度顯得過短,易被窮舉攻破。為了更好的保護數據,2001年更安全的數據加密標準 (AESAdvancedEncryptionStandard高級加密標準)正式公布。

AES[2]算法的分組長度為128 bit,密鑰長度支持128、192和256 bit。不同的密鑰長度對應不同的加密輪數,分別為10,12,14輪。如密鑰長度為128位的AES算法需要10輪迭代實現,前9輪迭代過程是一致的,包括字節替換、行移位、列混合、輪密鑰異或,最后一輪包括字節替換、行移位和輪密鑰異或,解密過程則是逆向輪迭代運算。AES算法可以通過硬件或軟件的方法有效的實現。軟件實現消耗較少的資源,獲得有限物理安全保障和慢的加密速度;硬件實現則消耗更多的資源,獲得極大的物理安全和很快的加密速度(達到Gbit/s)。

近些年網絡和通信的快速發展,對通信速度和信息安全的要求越來越高,為了保證用戶傳輸的信息在網絡或通信中不被盜取和篡改,用戶對信息進行加密后傳輸,這樣就要求更高的加密速度。因此,硬件電路實現的加密算法受到更加廣泛的關注。基于FPGA的加密算法具有安全性高、加密速度較快、開發周期短、可重配、成本低、可靠性高以及可移植性好等特點[3-4],在加密中得到廣泛應用。

基于FPGA的AES算法實現的研究中,部分研究側重AES算法加密速度的優化,并不關心其邏輯資源消耗:文獻[5]為了提高算法加密速度,使用了多核128-AES技術,一次處理多個128 bit數據,以達到提升加密速度的目的,這種硬件實現方式以犧牲大量可編程邏輯資源為代價。文獻[6]使用CTR模型來實現AES,加密速度很快,但可編程邏輯資源消耗非常大。另一部分研究雖然使用了較少的可編程邏輯資源,但其實現速度較慢:文獻[7]僅僅使用了輪內流水線結構來提升加密速度,資源消耗較少,但每10個時鐘周期輸出一個加密結果,加密速度很低。文獻[8]為了減少可編程邏輯資源的消耗,對S盒進行了優化,設計的S盒在有限域GF(24)2上取乘法逆,原S盒的仿射函數不變,并且與AES算法S盒的仿射函數相復合生成新的S盒,并未在其他方面優化,其整體加密速度較慢。

設計并實現一種基于FPGA的AES加密算法,以較少的邏輯資源消耗獲得快的加密速度。從降低算法運算復雜度,優化關鍵路徑提高加密速度(通量),利用BRAM進一步提升加密速度等方面對算法的硬件實現進行優化,以獲得更高的加密速度和效率。優化后的AES算法封裝成IP核,并在SOPC上使用自定制IP核,實現數據通信中的高速加密。

1 AES算法的硬件實現優化

1.1 行移位與列混合的優化降低資源使用

明文分成16個字節,組成狀態矩陣[2]A。AES算法輪迭代包括4個部分:字節替代,行移位,列混合,輪密鑰異或。字節替代使用查找表(S盒)實現,替代后的輸出矩陣B行移位。為減少邏輯資源的使用,行移位與字節替代組合實現,矩陣A進行字節替代后輸出結果不再按照原始順序,而按行移位后的順序,節省行移位所需可編程邏輯資源。

列混合運算如式(1)所示,其中Bij是狀態矩陣B的元素,下標x=0、1、2、3表示狀態矩陣的不同列。

上述運算都在有限域GF(28)域[1]上進行的,硬件實現時,加法運算等價于異或;*運算則分為兩種情況[2]:如果二進制數Bij最高位為1,與2做*運算時,則先左移一位,然后與00011011進行異或運算;如果二進制數Bij最高位為0,與2做*運算時,則只左移一位。用查找表方式替代組合邏輯實現的*運算,將8位二進制數進行*運算的256種可能結果用一個查找替換表(M盒)進行存儲,輸入的8位二進制數為M盒的元素地址,取出對應地址的M盒元素,可以降低列混合的運算復雜度,減少可編程邏輯資源消耗。

1.2 關鍵路徑(密鑰擴展)的優化提升加密速度

AES系統的通量和效率定義如下:

通量=分組長度×最大頻率/所需時鐘周期數 (3)

效率=通量/所用可編程邏輯單元(Slice)個數(4)

標準AES經過10輪迭代,即每10個時鐘周期獲得一個加密結果[10],通量低。一般會將10輪迭代完全展開并在每一級加入流水線,每一個時鐘周期獲得一個加密輸出,加密速度提升為原來的十倍。

為了進一步提高AES算法通量,需找出關鍵路徑,對輪迭代中的每一個變換進行測試并獲得其最大頻率,將字節替換,行移位,列混合組合實現,得到最大頻率1 205.13 MHz;對密鑰拓展部分實現,獲得最大頻率為384.79 MHz。在AES算法的輪迭代中,密鑰拓展部分與另外3部分相對獨立。AES算法最大頻率由密鑰拓展和輪迭代的另外3部分組合實現的最大頻率中的較小者決定。而字節替換,行移位,列混合的組合實現的最大頻率遠高于密鑰拓展部分的最大頻率384.79 MHz,得出決定AES算法最大頻率的關鍵路徑是密鑰擴展部分。

密鑰擴展部分為AES的關鍵路徑,如圖1所示密鑰擴展流程圖,W為第i輪128位密鑰,N為第i+1 輪 128 位密鑰,W[i]、N[i](i=0,1,2,3)分別為 W 和N的32位分組,T、R為32位。

圖1 密鑰擴展流程圖

為了進一步提高AES算法的通量,需提高密鑰擴展部分的最大頻率。引入6級流水線結構,每次異或運算之后均加入寄存器,這樣一個時鐘周期之間的組合邏輯運算只有一次異或運算,與其他情況下的一個時鐘周期內多次異或運算相比較,最大延遲降低,最高頻率提高。插入流水線后單獨的密鑰擴展部分最大頻率提高到515.38 MHz。

1.3 利用BRAM進一步提升加密速度

FPGA內嵌RAM(BRAM)的讀寫操作具有延遲固定,低延時和訪問時間固定的優點。利用BRAM代替LUT實現S盒和M盒可以進一步提高算法的加密速度(通量)。

AES算法在FPGA上實現的最大頻率為443.99 MHz,消耗1 139個Slice,通量為56.83 Gbit/s,效率為49.89(Mbit/s)/slice。表1為關鍵路徑優化前后的對比。

表1 關鍵路徑優化前后的對比

表2為本設計結果與相關文獻(文獻均在Virtex 6實現AES算法)所報道的同類設計結果的比較。

本設計效率最高,為了驗證優化后加密算法的功能正確性,選取測試向量[13],其相關數據如下:

采用Modelsim進行功能時序仿真驗證,結果顯示優化后算法實現了預定功能。

表2 本設計與同類設計的比較結果

2 AES算法自定制IP核

優化后的AES算法封裝為自定制IP核,需要對接口進行聲明。自定制IP核硬件結構[14]如圖2所示,主要由AVALON接口邏輯部分,寄存器邏輯部分,任務邏輯部分和AES算法部分構成。

圖2 AES算法IP核硬件結構

4個模塊中,AVALON接口邏輯模塊聲明與總線通信的接口,調用寄存器邏輯模塊和任務邏輯模塊。寄存器邏輯模塊定義工作寄存器組,因為NIOS CPU是32位RISC軟核處理器,所以AVALON總線定為32位,設置的寄存器字長也為32位,包括4個32位的密鑰寄存器,4個32位的明文數據輸入寄存器,4個32位的結果寄存器和1個32位控制寄存器。為寄存器設定地址偏移量,密鑰寄存器地址偏移量為0x00~0x03,數據寄存器地址偏移量為0x04~0x07,結果寄存器地址偏移量為0x08~0x0b,控制寄存器地址偏移量為0x0c。控制寄存器用于控制AES算法,其格式如下:控制寄存器第0位為AES算法狀態位,用于判斷AES算法完成與否(完成則為1);寄存器第1位為AES算法啟動位,當啟動位為1時,AES算法啟動;寄存器第2位為加解密選擇位,選擇位為1,則AES進行加密,為0,則進行解密;寄存器第3位則為狀態復位位,復位位為1時,狀態機復位,進入休眠初始態,其余為保留位。

任務邏輯模塊用于狀態轉換,即狀態機的描述:狀態機復位后進入初始休眠態Idel,密鑰和明文輸入后,發送使能信號Enable,狀態機轉入建立態Setup,將明文和密鑰送入AES算法部分,之后狀態機自動跳入保持態Hold(加入保持態是為了確保明文和密鑰完全送入AES算法部分),等待AES算法啟動信號,像控制寄存器寫入啟動信號Start,狀態機進入工作態Work,AES算法開始工作,加/解密完成后,AES算法發出完成標志信號,狀態機進入完成態Finish,最后自動跳入休眠態Idel,如圖3所示。

圖3 任務邏輯狀態轉換圖

3 AES算法加密系統

基于NIOS II的可編程片上系統(SOPC),其硬件和軟件均可現場編程實現,從而為設計提供了極大的靈活性,并得到了越來越廣泛的應用[15-16]。

AES算法加密系統的SOPC結構如圖4所示,其中包括NIOS II處理器,自定制AES IP核,SDRAM控制器,FLASH接口等。AES IP核用于數據加密,SDRAM用于數據的存儲,FLSAH用于系統程序的運行,PIO用于顯示加密完成的標志,LCD用于顯示加密結果。

圖4 AES算法加密系統

SOPC系統采用Altera QuartusII設計軟件中的Qsys工具構建。Qsys的系統組件庫提供了CPU,FLASH存儲器接口,SDRAM控制器等IP核,AES加密則采用自定制設計IP核。AES加密系統的QuartusII工程頂層模塊如圖5所示。

圖5 AES加密系統的QuartusII工程頂層模塊

用戶應用程序通過硬件抽象層(HAL)系統訪問硬件,作為軟件運行環境的HAL系統將C標準庫,應用程序接口(API)和設備驅動程序集成在一起。當采用Qsys創建了NIOS II應用硬件系統后,就可以在NIOS II集成開發環境(EDS)中創建相應的HAL系統庫,并進行IP核應用編程。使用API函數IOWR(AESIP_BASE,OFFSET,DATA)將與上文驗證的128 位測試密鑰2b7e1516_28aed2a6_abf71588_09cf4f3c和128位明文3243f6a8_885a308d_313198a2_e0370734分別寫入密鑰寄存器,數據寄存器,程序如下。

再將啟動加密的控制字寫入控制寄存器,AES IP核開始工作,程序如下:

加密完成后返回的加密完成信號觸發結果讀出及完成標志信號顯示。

4 結束語

文中首先介紹了基于FPGA的AES算法硬件實現優化,從行移位,列混合和關鍵路徑等進行硬件實現優化,獲得了AES算法加密速度56.83 Gbit/s,加密效率 49.89(Mbit/s)/Slice,與同類設計相比,加密速度較快,加密效率最高;然后,優化后的AES算法進行接口邏輯聲明,封裝成自定制IP核,以便隨時添加使用;最后,采用基于NIOS II的SOPC技術,構建了一個嵌入式AES算法加密系統,實現了數據的高速加密,該系統具有開發周期短,處理速度快,硬件可自由配置等優點,可以自由的應用于高速數據通信中。

[1]谷利澤,鄭世慧,楊義先.現代密碼學教程[M].2版.北京:北京郵電大學出版社,2015.

[2]劉艷萍,李秋慧.AES算法的研究與其密鑰擴展算法的改進[J].現代電子技術,2016,39(10):5-8.

[3]韓津生,林家駿,周文錦,等.基于FPGA的AES核設計[J].計算機工程與科學,2013,35(3):80-84.

[4]韓少男,李曉江.一種小面積低功耗串行AES硬件加解密電路[J].微電子學, 2010,40(3):347-353.

[5]Henzen L,Fichtner W.FPGA parallel-pipelined AES-GCM core for 100G Ethernet applications[R].ESSCIRC, 2010 Proceedings of the, Seville,2010:202-205.

[6]Abolfazl Soltani,Saeed Sharifian.An ultra-high throughput and fully pipelined implementation of AES algorithm on FPGA[J].Microprocessors and Microsystems, 2015(39):480-493.

[7]El Maraghy M,Hesham S,Abd El Ghany M A.Real-time efficient FPGA implementation of aes algorithm[C]//SOC Conference(SOCC),2013 IEEE 26th International, Erlangen, 2013:203-208.

[8]武一,郭婷婷.基于FPGA的加密算法改進及實現[J].電視技術,2014,38(5):66-70.

[9]楊軍,余江,趙征鵬.基于FPGA密碼技術的設計與應用[M].北京:電子工業出版社,2012.

[10]Wang Y,Ha Y.FPGA-Based 40.9-Gbits/s Masked AES With Area Optimization for Storage Area Network[R].in IEEE Transactions on Circuits and Systems II, 2013:36-40.

[11]Hussain U,Jamal H.An efficient high throughput FPGA implementation of AES for Multi-gigabit Protocols[C]//Frontiers of Information Technology(FIT), 2012 10th International Conference on,Islamabad, 2012:215-218.

[12]Rahimunnisa K, Karthigaikumar P, Rasheed S,et al.Suresh Kumar,Fpga implementation of aes algorithm for high throughput using folded parallel architecture[J].Security Commun.Netw.(2014),7(11):2225-2236.

[13]谷大武,徐勝波譯.高級加密標準(AES)算法-Rijndael的設計[M].北京:清華大學出版社,2003.

[14]龔向東,黃虹賓,劉春平.主從可配置I2C總線接口IP及其應用[J].電訊技術,2010,50(1):76-80.

[15]宋宇,宋雋煒.基于SOPC的微型無人機飛行控制系統設計[J].傳感器與微系統,2016,35(9):101-103.

[16]張磊,武騰飛,申雅峰.基于SOPC的光信號數據采集解調系統設計 [J].光學技術,2016,42(4):321-324.

Optimization of AES algorithm hardware implementation based on FPGA and application of its IP core

GONG Xiang-dong1,WANG Jia2,ZHANG Zhun2,WANG Kun2
(1.College of Electronic Science and Technology , Shenzhen University,Shenzhen 518060,China;2.College of Optoelectronic Engineering,Shenzhen University,Shenzhen 518060,China)

According to the characteristics of AES algorithm,its hardware implementation is improved from three aspects in this paper:In parts of sub_Bytes and MixColumns,using lookup table replace matrix transform to reduce the computational complexity of AES algorithm implementation;Using pipeline architecture for optimization of critical path greatly increase encryption speed;Employing FPGA customized RAM (BRAM)store pre-computed lookup table value to further enhance the encryption speed.The optimized AES algorithm is simulated and verified,then it is implemented on a Xilinx Virtex-6 xc6vlx240T (speed grade-3) FPGA.Improved results are obtained:1 139 Slices is totally employed, maximum frequency is 443.99 MHz, throughput is 56.83 Gbit/s,and efficiency is 49.89(Mbit/s)/Slice; Then, declaring Interface logic for AES algorithm, the optimized AES algorithm is encapsulated into a custom IP core;At last,using SOPC technology to build an embedded AES algorithm encryption system based on NIOS II,the system implement high speed data encryption in data communication.

AES;pipelinearchitecture;maximumfrequency;efficiency;customIPcore;encryptionsystem

TN918

A

1674-6236(2017)12-0001-05

2016-10-08稿件編號:201610011

國家自然科學基金儀器專項(61027014)

龔向東(1956—),男,廣東深圳人,教授。研究方向:瞬態光電技術,微機系統應用等。

猜你喜歡
優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
PEMFC流道的多目標優化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
圍繞“地、業、人”優化產業扶貧
今日農業(2020年16期)2020-12-14 15:04:59
事業單位中固定資產會計處理的優化
消費導刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度優化 JVC DLA-X8 18 BC
幾種常見的負載均衡算法的優化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 亚洲六月丁香六月婷婷蜜芽| 色偷偷男人的天堂亚洲av| 国产精品冒白浆免费视频| 色网站免费在线观看| 91人人妻人人做人人爽男同| 人人91人人澡人人妻人人爽| 欧美翘臀一区二区三区| 国产成人精品视频一区二区电影| 国产成人综合亚洲网址| 中字无码av在线电影| 91外围女在线观看| 国产成人区在线观看视频| 大香伊人久久| 国产成人综合久久精品下载| 亚洲日韩精品无码专区| 亚洲精品片911| 在线国产三级| 欧美综合一区二区三区| 国产青青操| 亚洲男人在线| 91福利国产成人精品导航| 国产午夜不卡| 午夜日本永久乱码免费播放片| 亚洲欧美日韩另类在线一| 国产主播喷水| 99尹人香蕉国产免费天天拍| 亚洲三级成人| 欧美成人手机在线观看网址| 日本免费一区视频| 午夜不卡福利| 免费毛片视频| 高清无码一本到东京热| 亚洲三级片在线看| 色偷偷av男人的天堂不卡| 欧美色视频网站| 秋霞一区二区三区| 国产超薄肉色丝袜网站| 久久精品女人天堂aaa| 国产在线精品99一区不卡| 国产丝袜第一页| 欧美日韩专区| 亚洲精品无码在线播放网站| 免费一级毛片在线观看| 国产成人无码Av在线播放无广告| 日本尹人综合香蕉在线观看| 毛片大全免费观看| jizz亚洲高清在线观看| 国产区精品高清在线观看| 青青草原偷拍视频| 亚洲国产中文综合专区在| 亚洲国产精品VA在线看黑人| 久久综合国产乱子免费| 亚洲成av人无码综合在线观看| 欧美日韩精品在线播放| 777国产精品永久免费观看| 亚洲成人高清无码| 日韩精品一区二区深田咏美| 亚洲第一天堂无码专区| 精品无码国产自产野外拍在线| 亚洲成人黄色在线| 91精品综合| 国产无码精品在线播放| 无遮挡国产高潮视频免费观看| 伊人狠狠丁香婷婷综合色| 国产情侣一区二区三区| 青青操国产| 国产美女视频黄a视频全免费网站| 国产极品美女在线| 九色在线视频导航91| 国产免费a级片| 欧美亚洲中文精品三区| 一级香蕉人体视频| 成人午夜天| 日本在线欧美在线| 久久综合九色综合97婷婷| 久久亚洲欧美综合| 精品少妇三级亚洲| 久久精品电影| 日韩精品成人网页视频在线 | 亚洲男人天堂久久| 干中文字幕| 国产精品制服|