《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于內(nèi)外混合流水線的高吞吐率AES結(jié)構(gòu)
基于內(nèi)外混合流水線的高吞吐率AES結(jié)構(gòu)
2015年電子技術(shù)應(yīng)用第6期
江 磊,魏震楠,劉 明
東南大學 信息科學與工程學院,江蘇 南京211100
摘要: 提出了一種基于加解密輪內(nèi)外流水線的、高性能及高吞吐率的128 bit AES算法的硬件實現(xiàn)方法。在此之前人們多采用查找表來實現(xiàn)AES算法中的SubBytes和InvSubBytes轉(zhuǎn)換過程,本設(shè)計則僅僅使用了進行復(fù)合域運算的組合邏輯單元,硬件面積得以縮小,同時還可以將組合邏輯單元劃分為6級次級流水線,輪外和輪內(nèi)流水線得到更深層次的利用。使用本設(shè)計方案,在Altera DE2-115設(shè)備上以570 MHz頻率實現(xiàn)的加密器可以達到73.562 Gb/s的吞吐率。
中圖分類號: TN47
文獻標識碼: A
文章編號: 0258-7998(2015)06-0114-04
中文引用格式:江磊,魏震楠,劉明.基于內(nèi)外混合流水線的高吞吐率AES結(jié)構(gòu)[J].電子技術(shù)應(yīng)用,2015,41(06):114-117.
High throughput rate AES algorithm structure based on the pipelining and subpipelining
Jiang Lei,Wei Zhennan,Liu Ming
School of Information Science and Engineering, Southeast University,Nanjing 211100,China
Abstract: This paper presents a design for high-performance and high throughput rate hardware implementation of the 128-bit Advanced Encryption Standard(AES) algorithm based on the employment of pipelining and subpipelining in and between the rounds of encryption and decryption rounds. As most of the previous works rely on look-up tables(LUTs) to implement SubBytes and InvSubBytes transformations of the AES, our design, however, only employs combinational logic units which are designed for composite field arithmetic. As a result, the area requirements of the circuits are reduced accordingly, and it also gives chance to divide the composite field arithmetic into 6 rounds. As the advantage of pipelining and subpipelining are further developed, the throughput rate is much higher than before. By using the proposed design, the encryptor can achieve a throughput rate of 73.562 Gb/s at 570 MHz on an Altera DE2-115 device.
Key words : Advanced Encryption Standard(AES);composite field arithmetic;pipelining and sub-pipelining

    

0 引言

    密碼學在保證數(shù)據(jù)傳送的安全中扮演了重要角色。1997年1月,美國國家標準及技術(shù)研究所(NIST)發(fā)起征集高級加密標準(AES)的活動,以替換數(shù)據(jù)加密算法(DES)。在對15個候選加密算法進行兩輪測試和評比后,NIST最終于2000年10月選擇Rijindael算法作為高級加密標準算法。

    目前,AES算法在智能卡、移動電話、萬維網(wǎng)服務(wù)器、ATM機以及云存儲等領(lǐng)域有著廣泛的應(yīng)用。同軟件實現(xiàn)相比,AES算法的硬件實現(xiàn)提供了更好的物理安全性,而且處理的速度也更快。在大數(shù)據(jù)時代,AES已經(jīng)廣泛地用于保護云存儲數(shù)據(jù)的安全,為了滿足數(shù)千萬用戶的同時需求,與減少芯片面積、減小消耗相比,提高AES算法的吞吐率就變得更為重要。本文主要研究利用流水線結(jié)構(gòu)提高硬件上的AES加密算法的吞吐率。

    目前有3種主流的AES結(jié)構(gòu)優(yōu)化方法可以提高其在硬件上的處理速度:輪外流水線結(jié)構(gòu),輪內(nèi)流水線結(jié)構(gòu),循環(huán)迭代結(jié)構(gòu)。流水線結(jié)構(gòu)是在各級運算中間插入寄存器。內(nèi)部流水線與其相似,是在輪運算內(nèi)部復(fù)合域邏輯運算中插入寄存器。

    Zhang[1]利用等價的復(fù)合域GF(((2)2)2)2算法來實現(xiàn)一個快而緊湊的AES字節(jié)代換操作所要求的復(fù)合域乘法逆,但其設(shè)計的輪內(nèi)各級流水線路徑長度劃分不夠最優(yōu)。Hodjat[3]利用完全環(huán)展開的高度輪內(nèi)流水線架構(gòu),提出兩種字節(jié)代換方案:一個是對于字節(jié)代換操作利用BlockRAMs來實現(xiàn)查找表,另一個是利用復(fù)合域GF((2)4)2算法。利用復(fù)合域算法是由Rijmen[2]建議并且由Wolkerstorfer[3]證明。同樣Hodjat[4]在7級流水線設(shè)計中各級關(guān)鍵路徑劃分也不是最優(yōu),并且循環(huán)展開結(jié)構(gòu)導(dǎo)致AES的吞吐率/面積比率比較小。Zambreno[5]同樣采用完全環(huán)展開流水線設(shè)計,其中最深流水線設(shè)計是完全展開3級流水線,關(guān)鍵路徑相對比較長。Good[6]根據(jù)級聯(lián)的FPGA查找表(LUT)數(shù)來劃分關(guān)鍵路徑,進行完全環(huán)展開流水線設(shè)計,雖然增加了吞吐率,但更多的流水級劃分增加了更多的寄存器而增加了面積。本文同樣采取復(fù)合域GF((2)4)2算法替換查表法,而在輪內(nèi)運算中重新劃分展開為6級的流水線,從而更好地平衡了吞吐率和面積的關(guān)系。

1 AES高級加密標準

1.1 加密主體

    AES算法是一種對稱加密算法,加密服務(wù)器和解密服務(wù)器運用相同的密鑰進行加密和解密,一次數(shù)據(jù)位加密長度是128 bit,128 bit的數(shù)據(jù)加密長度可以被分成一個的狀態(tài)矩陣,其中每一個字節(jié)可以用Sij(0<i<4,0<j<4)表示。AES所有的算法均可視作基于對這個狀態(tài)矩陣進行操作。

    AES算法由主體迭代部分和密鑰擴展算法構(gòu)成。每一次的迭代運算稱為一輪,而AES算法的總輪數(shù)可以為10輪、12輪或14輪,分別對應(yīng)128 bit、196 bit或256 bit的密鑰長度。每一輪迭代運算分為4個不同的步驟,分別是S盒置換、行位移、列混合和密鑰加法。AES算法加密解密流程圖如圖1所示。

wl3-t1.gif

1.1.1 S盒置換

    S盒置換是將狀態(tài)矩陣中每一個元素視作有限域GF(28)中的一個元素,首先進行求逆變換,再將其在GF(28)域中的逆元素進行一次仿射變換,得到新的狀態(tài)矩陣。由于在GF(28)域中求逆運算過于復(fù)雜,所以在具體實現(xiàn)中,通常會使用查表法實現(xiàn)S盒置換,從而減少運算時間。

1.1.2 行位移

    行位移描述矩陣的行操作。在此步驟中,每一行都向左循環(huán)位移某個偏移量。在AES中(區(qū)塊大小128 bit),第一行維持不變,第二行里的每個字節(jié)都向左循環(huán)移動一格。同理,第三行及第四行向左循環(huán)位移的偏移量就分別是2和3。128 bit和192 bit的區(qū)塊在此步驟的循環(huán)位移的模式相同。經(jīng)過行位移之后,矩陣中每一豎列,都是由輸入矩陣中的每個不同列中的元素組成。對于長度256 bit的區(qū)塊,第一行仍然維持不變,第二行、第三行、第四行的偏移量分別是1 B、3 B、4 B。

1.1.3 列混合

    在列混合步驟,每一列的4個字節(jié)通過線性變換互相組合。每一列的4個元素分別當作1、x、x2、x3的系數(shù),合并即為GF(28)中的一個多項式,接著將此多項式和一個固定的多項式c(x)=3x3+x2+x+2在mod(x4)+1下相乘。列混合函數(shù)接收4個字節(jié)的輸入,輸出4個字節(jié),每一個輸入的字節(jié)都會對輸出的4個字節(jié)造成影響。

1.1.4 輪密鑰加法

    輪密鑰加步驟,回合密鑰將會與原矩陣合并。在每次的加密循環(huán)中,都會由主密鑰產(chǎn)生一把回合密鑰,這把密鑰大小會跟原矩陣一樣,以與原矩陣中每個對應(yīng)的字節(jié)作異或(wl3-gs1-s1.gif)加法。

1.1.5 密鑰擴展算法

    密鑰擴展算法主要進行密鑰擴展操作,初始密鑰和擴展后的整個密鑰表可以看作是一個字序列。在密鑰擴展過程中完成了字旋轉(zhuǎn)和字替代兩個操作。字旋轉(zhuǎn)操作時將字的4個字節(jié)循環(huán)右移一個單位,如(W[0],W[1],W[2]W[3])經(jīng)過旋轉(zhuǎn)后得到字(W[3],W[0],W[1]W[2])。

1.2 復(fù)合域計算法實現(xiàn)S盒置換

    由于S盒置換的數(shù)學過程十分復(fù)雜,所以這個過程通常采用查表法實現(xiàn),這樣雖然執(zhí)行速度快,但是會消耗的大量硬件資源,而且查表法無法細分為更小的過程。單純地在GF(28)有限域中計算S盒置換的結(jié)果至少要使用620個門,同樣會消耗大量的硬件資源。然而,通過使用復(fù)合域算法可以顯著地降低運算中所需要邏輯門的數(shù)量,即將GF(28)中的運算轉(zhuǎn)換到GF((24)2)中。在復(fù)合域運算中,實現(xiàn)將GF(28)域中的元素轉(zhuǎn)換到GF((24)2)域中的同構(gòu)映射可以用12個異或門實現(xiàn),關(guān)鍵路徑上只有4個異或門。同時,同構(gòu)映射的逆變換,以及仿射變換都只需要19個異或門來實現(xiàn),關(guān)鍵路徑上也只有4個異或門。在復(fù)合域GF((24)2)中,一個元素可以被表示為shx+sl,sh,sl∈GF(24)。

    使用擴展歐幾里得算法,shx+sl的逆變換可以計算得:

wl3-gs1.gif

    所以S盒置換可以由圖2結(jié)構(gòu)通過運算來代替,因為通過復(fù)合域運算將GF(28)中的運算轉(zhuǎn)換到GF((24)2)中,GF((24)2)中的運算可以進一步分解到GF(22)中,進而被分解至GF(2)中。在GF(2)域中一次乘法運算就是一個簡單的邏輯與運算,減輕了電路的開銷。同時這樣的結(jié)構(gòu)也為接下來內(nèi)部流水線的建立提供了可能。

wl3-t2.gif

2 內(nèi)外混合流水線

    流水線技術(shù)就是在邏輯電路中插入流水線寄存器,以縮短組合邏輯路徑長度,達到提高工作頻率、實現(xiàn)高吞吐率的目的。由于總體的延時取決于延時最長的一級,因此要使流水線結(jié)構(gòu)的功能最優(yōu)化,就必須使得流水線中各級的延遲時間相等。下面分別闡述本文實現(xiàn)內(nèi)外流水線的方法。

2.1 外部流水線結(jié)構(gòu)

    外部循環(huán)流水線結(jié)構(gòu)由循環(huán)展開結(jié)構(gòu)發(fā)展而來。具體方法是在組合電路與每一輪加密運算對應(yīng)的部件之間都插入額外的寄存器。該方法可以在同一時刻處理多個數(shù)據(jù)分組,提高系統(tǒng)在單位時間內(nèi)處理數(shù)據(jù)的速度。圖3為外部10輪流水線流程圖。

wl3-t3.gif

    根據(jù)AES算法結(jié)構(gòu),容易發(fā)現(xiàn)該算法具有以下幾個顯著的特點:

    (1)AES算法加解密過程的核心是10次輪操作,前一輪操作的輸出是下一輪操作的輸入。

    (2)AES算法每次輪操作需要一組子密鑰,而一組子密鑰的產(chǎn)生僅與上一組子密鑰相關(guān)。

    根據(jù)上述特點可知,AES算法可以采用流水線形式實現(xiàn),把子密鑰的生成插入到每一次輪操作的過程中,將10次輪操作解開為一個10級的流水線。用外部循環(huán)結(jié)構(gòu)實現(xiàn)的加解密算法,模塊的面積與流水線級數(shù)成正比。AES加密算法展開為10級的流水線后效率提高為原來的10倍。 

2.2 內(nèi)部流水線

    內(nèi)部流水線是在內(nèi)部復(fù)合域邏輯運算中插入寄存器,可以使其邏輯長度更為縮短,從而大大提高吞吐率。采用輪內(nèi)流水線技術(shù)進行高性能AES硬件實現(xiàn)設(shè)計的關(guān)鍵就是如何利用最簡單的組合電路實現(xiàn)AES的輪單元及如何進行流水線劃分使得關(guān)鍵路徑最短。本文對每一輪加密過程進行改動,做如圖4劃分,分成6級的流水線。

wl3-t4.gif

    由表1可以看出,輪內(nèi)劃分的六部分的關(guān)鍵路徑都基本相等,所以各部分延時也基本相同,因而將輪內(nèi)操作分成6輪是合理的。與文獻[1]中將輪內(nèi)流水分成7輪相比,分成6輪雖然損失了部分速度,但是面積利用率更高。

wl3-b1.gif

3 測試方法和結(jié)果

3.1 仿真與測試

    本文采用硬件描述語言Verilog HDL代碼編寫了128 bit的AES算法,經(jīng)過外部10輪流水線改進以后的加密算法,改進S盒置換步驟后的AES算法,實現(xiàn)內(nèi)部流水線后的AES算法和內(nèi)外混合流水線的AES算法,并用Modelsim對每個算法逐個進行仿真。

    本文采用Altera Quarters II工具在芯片為Cyclone IV的FPGA上進行驗證,所獲得的數(shù)據(jù)已在表1中給出。

3.2 性能分析

    測試所得結(jié)果與同類論文研究結(jié)果的比較見表2。

wl3-b2.gif

    由表2可以看出,本文完成的工作使得吞吐率較同類論文結(jié)果平均提升197.5%,最高提升241.3%,取得顯著進步。同時,就內(nèi)外流水線而言,使用外部10輪流水線的吞吐率較原始結(jié)果提升10倍。同時使用內(nèi)外流水線相比只使用外部流水線而言,吞吐率增加5.5倍。這與理論基本相符。當然,吞吐率的增加伴隨著面積的增加,但可以看出,由于增加內(nèi)部流水線省去了占據(jù)面積巨大的S盒查找表,一定程度上抑制了面積的增加。因而,使用內(nèi)外混合流水線,對于提升吞吐率面積比,也有積極的作用。

4 結(jié)論

    本文提出了一種可以高效地實現(xiàn)AES算法的流水線結(jié)構(gòu),不同于以往采用查找表的方法實現(xiàn)S盒轉(zhuǎn)換,本文采用組合邏輯電路實現(xiàn)這一步驟。采用查找表的方法,雖然可以使處理速度得到提升,但是占用硬件面積過大;采用組合邏輯電路,雖然增加了電路的復(fù)雜程度,但是可以顯著減少占用的硬件面積,此外,通過使用復(fù)合域算法化簡域內(nèi)的轉(zhuǎn)換,電路的復(fù)雜度也可以得到降低。為了獲得更高的處理速度,本文在用于S盒轉(zhuǎn)換的組合邏輯電路內(nèi)部進行了內(nèi)部流水線劃分,最終設(shè)計了6段流水線,進一步提高了處理速度。

參考文獻

[1] Zhang Xinmiao,Keshab K.Parhi.High-speed VLSI architectures for the AES algorithm[J].IEEE Transactions on Very Large Scale Integration(VLSI) Systms,2004,12(9):957-967.

[2] RIJMEN V.Efficient implementation of the rijindael S-box[J].Katholieke Universiteit Leuven,Dept.ESAT.Belgium,2000.

[3] WOLKERSTORFER J,OSWALD E,LAMBERGER M.An ASIC implementation of the AES SBoxes[M].Topics in  Cryptology-CT-RSA 2002.Springer Berlin Heidelberg,2002:67-68.

[4] HODJAT A,VERBAUWHEDE I.A 21.54 Gbits/s fully pipelined AES processor on FPGA[C].Field-Programmable Custom Computing Machines,2004.FCCM 2004.12th Annual IEEE Symposium on.IEEE,2004:308-309.

[5] ZAMBRENO J,NGUYEN D,CHOUDHARY A.Exploring area/delay tradeoffs in an AES FPGA implementation[M].Field Programmable Logic and Application.Springer Berlin Heidelberg,2004:575-585.

[6] GOOD T,BENAISSA M.Pipelined AES on FPGA with support for feedback modes(in a multi-channel environment)[J].IET Information Security,2007,1(1):1-10.

[7] FU Y,HAO L,ZHANG X,et al.Design of an extremely high performance counter mode AES reconfigurable processor[C].Embedded Software and Systems,2005.Second International Coference on IEEE,2005:7.

[8] FAN C P,HWANG J K.Implementations of high throughput sequential and fully pipelined AES processors on FPGA[C].Intelligent Signal Processing and Communication Systems,2007.ISPACS 2007.International Symposium on.IEEE,2007:353-356.

[9] VANITHA M,SAKTHIVEL R,SUBHA S.Highly secured high throughput VLSI architecture for AES algorithm[C].Devices,Circuits and Systems(ICDCS),2012 International Conference on IEEE,2012:403-407.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品99久久久久久久久| 一本一本久久| 亚洲高清免费| 激情小说亚洲一区| 国产精品亚洲不卡a| 国产精品成人观看视频国产奇米| 欧美日韩国产高清视频| 欧美精品一区二区三| 欧美国产日韩视频| 欧美国产视频在线| 欧美激情久久久| 欧美成人精品在线播放| 美女精品网站| 农夫在线精品视频免费观看| 美女主播一区| 免费在线观看一区二区| 欧美刺激午夜性久久久久久久| 欧美成人免费小视频| 欧美电影免费| 欧美日韩999| 国产精品chinese| 国产精品一香蕉国产线看观看 | 亚洲国产cao| 亚洲区国产区| 99re66热这里只有精品4| 99热精品在线观看| 亚洲欧美久久| 欧美一区二区在线观看| 久久精品一区二区三区不卡| 91久久极品少妇xxxxⅹ软件| 日韩亚洲欧美高清| 亚洲一区二区av电影| 欧美在线播放视频| 久久在线免费| 欧美日韩精品一区二区三区四区 | 亚洲香蕉伊综合在人在线视看| 亚洲综合999| 久久精品国产欧美激情| 免费在线观看日韩欧美| 欧美日韩午夜精品| 国产嫩草一区二区三区在线观看| 国内一区二区三区在线视频| 亚洲国产经典视频| 一区二区三区精品| 欧美一区二区视频97| 亚洲精品一区在线观看| 亚洲在线网站| 久久天天狠狠| 欧美三级在线| 国产一区二区0| 亚洲美女黄网| 性色一区二区| 日韩一级精品视频在线观看| 亚洲欧美日韩在线综合| 美女视频黄免费的久久| 欧美体内she精视频在线观看| 国产偷国产偷亚洲高清97cao| 91久久国产自产拍夜夜嗨| 亚洲一级二级| 亚洲精品黄色| 欧美在线视频免费播放| 欧美精品三级日韩久久| 国产欧美一区在线| 最新国产成人av网站网址麻豆| 亚洲综合色激情五月| 亚洲精品日韩综合观看成人91| 亚洲一区二区欧美日韩| 久久免费精品日本久久中文字幕| 欧美美女操人视频| 国产在线一区二区三区四区| 99热免费精品| 亚洲国产精品女人久久久| 亚洲在线成人| 欧美黄色小视频| 国内精品视频久久| 在线亚洲精品福利网址导航| 亚洲福利精品| 欧美亚洲在线观看| 欧美日韩在线电影| 亚洲国产高清在线观看视频| 欧美一区二区三区免费大片| 亚洲综合三区| 欧美日本亚洲韩国国产| 伊人久久成人| 午夜一级久久| 亚洲淫性视频| 欧美日韩成人免费| 亚洲第一精品夜夜躁人人爽 | 国产欧美一区二区色老头| 亚洲裸体在线观看| 久久国产直播| 欧美在线观看天堂一区二区三区| 欧美日韩精品在线视频| 亚洲国产精品成人一区二区| 欧美综合二区| 久久av一区| 国产精品一区二区三区久久| 亚洲美女av在线播放| 亚洲精品一级| 蜜臀av国产精品久久久久| 国产亚洲欧美aaaa| 亚洲欧美日韩国产中文| 亚洲摸下面视频| 欧美日韩三级视频| 亚洲精品在线视频观看| 亚洲精品乱码| 欧美a级理论片| 在线观看日韩av先锋影音电影院| 欧美在线91| 久久成人精品电影| 国产老肥熟一区二区三区| 亚洲视频二区| 亚洲欧美日韩国产精品| 国产精品看片你懂得| 在线中文字幕不卡| 国产精品99久久久久久久久久久久| 欧美黄色精品| 亚洲人成高清| 亚洲免费高清| 欧美猛交免费看| 亚洲精品在线视频观看| 一本色道久久88亚洲综合88| 欧美区日韩区| 日韩视频一区二区在线观看| 99综合视频| 欧美视频在线观看一区| 一区二区三区黄色| 午夜电影亚洲| 国产人久久人人人人爽| 欧美一级在线视频| 久热精品视频在线免费观看| 亚洲大胆美女视频| 日韩视频第一页| 欧美日韩免费看| 亚洲无亚洲人成网站77777| 亚洲综合色噜噜狠狠| 国产女人精品视频| 久久国产精品第一页| 久久综合九色综合网站| 亚洲电影自拍| 国产精品99久久久久久有的能看| 国产精品卡一卡二| 欧美一区二区久久久| 美女日韩欧美| av成人国产| 亚洲欧美在线视频观看| 国产午夜亚洲精品理论片色戒| 久久精品国产第一区二区三区最新章节 | 亚洲先锋成人| 国产日韩欧美视频在线| 久久精品日韩欧美| 欧美精品免费在线观看| 亚洲一区二区三区四区中文| 久久精品一二三| 91久久综合| 午夜精品久久久久久久99黑人| 国产一区二区你懂的| 91久久黄色| 国产精品二区二区三区| 久久国产欧美| 欧美剧在线观看| 香蕉成人伊视频在线观看| 蜜臀99久久精品久久久久久软件| 日韩性生活视频| 欧美中文在线免费| 亚洲国产成人一区| 亚洲欧美激情四射在线日 | 欧美欧美午夜aⅴ在线观看| 亚洲一区国产一区| 久久这里有精品视频| 亚洲精品中文字幕在线| 欧美一区1区三区3区公司| 亚洲福利视频网| 亚洲自拍偷拍一区| 尤物九九久久国产精品的特点 | 免费成人av资源网| 亚洲手机成人高清视频| 久久夜色精品国产欧美乱| 日韩午夜中文字幕| 久久免费观看视频| 一区二区三区产品免费精品久久75 | 亚洲人成小说网站色在线| 欧美一区二区三区免费看| 亚洲电影免费观看高清| 小嫩嫩精品导航| 亚洲欧洲日本国产| 久久精品成人一区二区三区蜜臀 | 欧美日韩国产在线播放网站| 欧美亚洲午夜视频在线观看| 欧美激情一区二区三区| 欧美一区成人| 欧美丝袜一区二区| 亚洲欧洲中文日韩久久av乱码| 国产精品免费视频观看| 亚洲老板91色精品久久| 韩日成人在线| 亚洲欧美中文另类| 亚洲美女啪啪| 免费日韩av电影| 久久er精品视频|