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

一種AES密碼算法的硬件實現

2010-04-12 00:00:00王賾坤,陳松濤
現代電子技術 2010年16期

摘 要:介紹了一種適用于較小面積應用場合AES密碼算法的實現方案。結合該算法的特點,在常規輪變換中提出一種加/解密列混合變換集成化的硬件結構設計,通過選擇使用同一個模塊,可以實現加密和解密中的線性變換,既整合了部分加/解密硬件結構,又節約了大量的硬件資源。仿真與綜合結果表明,加/解密運算模塊面積不超過25 000個等效門,有效地減小了硬件實現面積,同時該設計方案也滿足實際應用性能的需求。關鍵詞:AES算法; 復合域算法;輪變換; 加/解密硬件結構

中圖分類號:TN918-33文獻標識碼:A

文章編號:1004-373X(2010)16-0010-04

Hardware Implementation of AES Cipher Algorithm

WANG Ze-kun1,CHEN Song-tao2

(1. Huaxia College, Wuhan University of Technology,Wuhan 430223,China;2. Fiberhome Co. Ltd., Wuhan 430223,China)

Abstract: An implementation of AES cipher algorithm for limited area application is introduced. In the normal round transformation, the combination of addroundkey transformation and (Inv) MixColumns transformation is presented for eliminating the difference between encryption and decryption in hardware architecture, and linear transformation is achieved when data is encrypted or decrypted in the certain condition choice. Simulation and synthesis results show that the encryption and decryption operation modules are no more than 25k gates, and can reduce the size of the hardware implementation more effectively. The design can meet the requirements in performance.

Keywords: AES algorithm; composite field arithmetic;round transformation; encryption and decryption hardware architecture

0 引 言

密碼模塊是安全保密系統的重要組成部分,其核心任務就是加/解密數據。目前,分組密碼算法AES以其高效率、低開銷、實現簡單等特點被廣泛應用于密碼模塊的研制。隨著計算機信息技術和超大規模集成電路技術的成熟與發展,通過硬件來實現密鑰模塊的內部運作,可保證在外界無密鑰的明文流動,能夠實現真正意義上的保密。此外,硬件實現還具有高速、高可靠性等特點。目前許多AES算法的硬件實現采用基于RAM查找表方式來實現算法中最關鍵的SubBytes部分。本文采用復合域來實現SubBytes部分的求逆運算,以便于采用組合邏輯減小面積[1]。同時采用加/解密運算中列變換的部分電路進行復用,從而進一步節省實現面積。這樣可以使AES密碼應用于RFID系統,IC卡等面積要求較小的場合。

1 AES算法簡介

AES算法是一種迭代型分組密碼,其分組長度和密鑰長度均可變,各自可以獨立指定為128 b,192 b,256 b[2-3]。本文主要討論分組長度和密鑰長度為128 b的情況。AES算法是將輸入的明文(或密文)分成16個字節,在第一個Add Round Keys變換后進入10輪迭代。迭代過程的前9輪完全相同,依次經過字節代替(substitute bytes)、行移位(shift rows)、列混合(mixcolumns)、輪密鑰加(add round keys),最后一輪則跳過了列混合(mix columns)。解密過程與加密過程類似,但執行順序與描述內容有所不同,因此AES算法的加解密運算需要分別實現。

2 AES算法的硬件設計

根據AES算法的原理和基本結構,將整個AES算法模塊分成4個相對獨立的子模塊:接口模塊、控制單元模塊、加解密運算模塊、密鑰擴展模塊。本文所設計的密碼算法不包括密鑰發生器,所用的密鑰通過接口模塊由外部輸入,加解密運算后的數據經輸出接口輸出[4]。AES算法模塊的總體結構如圖1所示。

2.1 接口模塊的設計

輸入接口模塊的主要任務是:將數據傳送到加解密運算模塊,將外部輸入的密鑰傳送到密鑰擴展模塊。由于明文和密鑰輸入都是128位,將導致整個模塊的輸入/輸出過多,占用太多資源,考慮到本文的設計主要應用于對面積要求較小的場合使用,如RFID系統中數據的傳輸[5],即每次傳輸的數據是64位,故采用4個32位寄存器,在時鐘的控制下每次輸入1組32位,通過4個時鐘周期可得到128位的數據,可以有效減少資源的占用。輸出接口模塊的作用是將128位的解密運算結果輸出,同樣也采取32位分4組輸出的方法。

圖1 AES算法模塊的總體結構框圖

2.2 控制模塊的設計

控制模塊的主要任務是實現加/解密運算模塊與密鑰擴展模塊工作的啟動。控制模塊在時鐘脈沖控制下,產生控制加/解密模塊中字節替代、行移位、列混合、密鑰加各部分工作信號。可由1個兩狀態的狀態機實現控制。當新的數據或密鑰輸入時,通過狀態機的信號可判斷上次加/解密運算是否完成。如果狀態機信號處于忙狀態,說明加解密運算正在進行,需要等待;如果信號處于空閑狀態,說明加解密運算已經完成,可以啟動加解密運算模塊與密鑰擴展模塊,將數據和密鑰分別輸入到加解密運算模塊與密鑰擴展模塊中,開始新一組數據的加解密運算。

2.3 加解密運算模塊的設計

AES算法的輪變換特點使之在硬件實現時可以有多種方式[6]:串行方式,輪變換可采用組合邏輯實現;在10輪迭代過程中,前一輪結果可直接作為下一輪的輸入;并在1個周期內完成1個分組運算,使吞吐量達到最佳狀態。但需要大量的存儲器資源和組合邏輯資源支持,一般的FPGA芯片難以滿足容量的需求,而且時鐘頻率非常低;基本迭代反饋方式,所有迭代只用1個輪變換模塊,10個時鐘周期完成1個分組運算,資源占用較少;輪內流水線方式,在輪變換中插入寄存器,將每輪運算分成多個操作段,每個時鐘完成1個操作段,其優點是可以提高算法運行的時鐘頻率。但輪內各級流水部件不能同時執行,因此增加了算法運行的時鐘數目。輪內流水線級數越多,時鐘數目也越多,雖然算法仿真頻率可以達到很高,但吞吐量并沒有明顯提高。

綜上比較可知,本文AES算法的硬件實現的目的是盡量減少資源的占用,使面積盡可能減小。故采用基本迭代反饋工作方式設計。

2.3.1 SubBytes( )和InvSubBytes( )的設計

字節代替是整個AES硬件實現中最為重要的變換,在加解密運算模塊及密鑰擴展模塊中字節代替是主要的運算過程。因此,字節代替的硬件設計決定了整個AES算法硬件實現的速度和面積。字節代替可以通過查找表和算術運算的方式[7]得到。傳統的AES算法使用查找表方法實現字節代替,可以提高求逆速度,但由于該變換輸入的數據為8位,加密和解密所用的替換字節表不同,因此需要的選擇器和寄存器數量較多,硬件實現面積較大,故主要用于高速AES的實現。算術運算的方式在硬件設計上表現為組合邏輯,采用算術運算的方式實現則會降低硬件設計的復雜度,減小面積[8]。

2.3.2 ShiftRows( )和InvShiftRows( )的設計

行移位變換作用在中間態的行上,將狀態中的行按不同的偏移量進行循環移位。加密運算中間態的0~3行,分別向右循環移動0,1,2,3個字節。該操作僅是將數據按字節進行移動,硬件實現時只需在布線上進行調整,基本不占硬件資源。

解密過程只是行移位的逆變換,即分別向左循環移動0,1,2,3個字節。同樣,該操作也僅將數據按字節移動。如果有字節的位置改變,只需在布線上進行修改。

2.3.3 MixColumns( )和InvMixColumns( )的設計

MixColumns( )變換以矩陣中的列為單位,將每列看作一個GF(28)域上的四階多項式,將多項式乘以c(x)/d(x)并對x4+1取模。其中c(x)為:

c(x)={03}x3+{01}x2+{01}x+{02}(1)

在相應的解密過程中:

d(x)={0B}x3+{0D}x2+{09}x+{0E}(2)

同樣對x4+1取模。

為了降低整個模塊的復雜度,考慮將加解密運算中列混合變換的部分電路進行復用,對比加解密運算所乘的多項式,可以發現{03}x可以用({02}x)⊕x表示,同理:

{0B}x={08}x⊕{02}x⊕x

{0D}x={08}x⊕{04}x⊕x

{09}x={08}x⊕x(3)

{0E}x={08}x⊕{04}x⊕{02}x⊕x

因此,{02}x可以作為一個基本單元,由于在GF(28)域內,{02}x mod m(x),x∈GF(28)

m(x)=x8+x4+x3+x+1(4)

這樣:

{02}x={x7x6x5x4x3x2x1x0}⊕

{0,0,0,x7,x7,0,x7,x7}(5)

由于0⊕xi=xi,式(8)只需要4個異或門就可實現。將該單元記為xtime( )函數。其硬件結構如圖2所示。加密時所取的系數較小{01,02,03},所以只需經過一次xtime( )單元,便將乘法運算轉換為移位操作和加法運算的復合。

而解密時,Mixcolumns( )的系數是{09,0B,0E,0D},實現這些乘法顯然比加密時需要更多的時間。由式(3)可知,InvMixcolumns( )也可用xtime ( )函數與異或門實現。這樣,就可以實現加/解密列混合變換電路的復用,從而節約電路面積,提高解密運算速度[9]。

圖2 xtime( )的硬件結構

2.3.4 密鑰加AddRoundKey( )的設計

在AES算法中,加法用異或操作實現。密鑰加是中間狀態的每一字節按位與輪密鑰進行異或操作,加法的逆運算也用異或操作,所以可采用逐位異或操作實現加解密運算的AddRoundkey( )。AddRoundkey( )的逆運算是其自身。因此本文在常規輪中把加密時的密鑰加、列混合變換和解密時的密鑰加、列混合變換集成為同一模塊,通過加解密信號的選擇,實現加解密運算的列變換和密鑰加功能。這樣可消除加解密硬件結構的差異,同時也可降低輪密鑰處理的復雜度。

2.4 密鑰擴展模塊的設計

輪密鑰的產生是AES 加解密運算的基礎,密鑰擴展模塊的作用就是產生除了初始密鑰本身之外的10 個輪密鑰,分別用于10輪加解密運算。

加密運算采用密鑰內部擴展的方式,即加密運算與密鑰擴展并行完成[10]。這一過程,每一輪變換都要和相應密鑰擴展輪次生成的子密鑰進行異或,因此需使用狀態機控制加密運算和密鑰擴展的同步,否則會發生混亂。需要指出,使用內部擴展方式可以提高整個加密運算速度。而解密運算采用外部擴展方式,即密鑰擴展完之后再進行解密運算,因為解密運算使用的初始密鑰是密鑰擴展生成的最后一輪子密鑰。

3 仿真測試與結果

根據前述設計思路和優化措施, 系統采用Mentor公司專門為各邏輯器件制造廠商設計的第三方專用仿真工具ModelSim 6.0進行功能仿真,給出了最后的功能仿真圖。

3.1 加密運算的仿真測試

一次完整的加密操作,需要12個時鐘周期。其中,10個周期用于10個輪循環變換,1個時鐘周期用于初始的密鑰擴展,1個時鐘周期用于密文的輸出。加密運算的功能測試仿真波形如圖3所示。

圖3 加密運算的功能仿真結果

從圖3給出的加密運算功能仿真結果可以看出,加密運算與密鑰擴展過程是并行進行。當“rst”變為低電平,“ld”變為高電平時,明文3243f6a8885a308d313198-a2e0370734與密鑰2b7e151628aed2a6abf7158809cf4f3c分別同時加載到加解密運算模塊與密鑰擴展模塊中;在下一個時鐘周期,密鑰擴展模塊生成1輪子密鑰,等待加密輪變換中的密鑰加操作。當完成1次加密過程后,“done”信號變為高電平,同時輸出密文3925841d02dc09fbdc-118597196a0632。從圖3中同時也可以看出,密鑰擴展模塊總是提前一個時鐘周期生成下一輪的子密鑰,這樣可以保證密鑰擴展與加密運算同時進行而不會發生錯亂,并且還可提高加密速度,節約資源占用和減少面積。使用DC進行綜合和優化后,加密運算模塊面積不超過20 000個等效門,其中組合邏輯面積為14 264門,非組合邏輯面積為3 878門。

3.2 解密運算的仿真測試

在解密過程中,完成一次解密操作同樣需要12時鐘周期。其中,10個周期用于10個輪循環變換,1個時鐘周期用于初始密鑰的加載,1個時鐘周期用于密文的輸出。在解密過程中,本文采用在解密之前所生成的10輪子密鑰,因為解密初始需要的子密鑰是密鑰擴展得到的最后一輪子密鑰,而最后一輪需要的子密鑰是密鑰擴展的初始密鑰。如圖4所示。

解密過程與密鑰擴展過程不是同步的,當“kld”為高電平時,從第1個時鐘周期開始,便將初始密鑰2b7e151628aed2a6abf7158809cf4f3c輸入到密鑰擴展模塊中,之后經過10個時鐘周期生成10輪子密鑰,并存儲到寄存器中。當“ld”為高電平時,密文3925841-d02dc09fbdc118597196a0632開始加載到解密模塊中,經過10個時鐘周期將解密的密文輸出,同時“done”信號變為高電平,表示解密過程結束,并輸出明文3243f6a8885a308d313198a2e0370734。

圖4 解密運算的功能仿真測試結果

對比圖3與圖4仿真測試結果可知,加解密運算的功能正確,即解密運算能夠正確地解出加密運算的密文。

解密運算模塊使用DC進行綜合和優化后面積不超過25 000個等效門。其中組合邏輯面積為10 495門,非組合邏輯面積為14 142門。由于密鑰擴展與解密過程不是同步進行,占用了寄存器存儲解密過程所需的10輪子密鑰,所以非組合邏輯面積比加密運算模塊大。但需要指出,由于加/解密運算模塊部分電路采用復用的方法實現,所以整個加/解密運算模塊的實際總面積比沒有復用時減小。

4 結 語

根據設計思路和優化措施, 本文使用Verilog硬件描述語言實現AES密碼算法, 并在ModelSim 6.0工具下進行仿真,證明本文設計的正確性。為了更進一步做比較,證明本文設計思路的合理性和優化措施的有效性,同樣采取未優化的設計方案實現了該算法,通過在DC中進行綜合、布線,兩相比較, 優化后的設計比優化前節省了22%的邏輯單元,處理速度提高了13%。

參考文獻

[1]黃小苑,戴紫彬.基于FPGA的AES算法芯片設計實現[J].微電子學與計算機,2005,22(8):62-64.

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

[3]盧開澄.計算機密碼學:計算機網絡中的數據保密與安全[M].北京:清華大學出版社,1998.

[4]夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2003.

[5]Joint Technical Committee. ISO/IEC 14443 (Part1-Part4)identification cards-contactless integrated circuit(s) cards – Proximity cards[S]. [2001-07-15].http://webstore.jec.ch/preview.

[6]MORIOKA S, SATOH A. An optimized S-box circuit architecture for low power AES design[C]//Proc. of CHES.[S.l.]: CHES, 2003: 172-186.

[7]陳俊,王晶,曾曉洋,等.低復雜度先進密碼算法的VLSI實現[J].計算機工程,2007,33(4):143-145.

[8]吳亞聯,段斌.AES密碼計算構件的設計及應用[J].計算機工程,2005,31(21):181-186.

[9]蔡宇東,沈海斌,嚴曉浪.AES算法的高速實現[J].微電子與計算機,2004,20(1):83-85.

[10]武玉華,李艷俊,周玉坤,等.基于FPGA的AES-128密碼算命實現研究[J].微計算機信息,2007,23(25):53-54.

主站蜘蛛池模板: 午夜国产精品视频| 在线视频一区二区三区不卡| 日韩毛片免费| a毛片免费观看| 国产第一页第二页| 久久美女精品国产精品亚洲| 国产激情无码一区二区免费| 欧美全免费aaaaaa特黄在线| 久久精品国产在热久久2019| 天天躁日日躁狠狠躁中文字幕| 亚洲欧美极品| 久久特级毛片| 999在线免费视频| 亚洲一级毛片免费看| 在线亚洲小视频| 91九色国产porny| 欧洲精品视频在线观看| 在线观看免费国产| 国产chinese男男gay视频网| 五月激情婷婷综合| 日本伊人色综合网| 中文字幕亚洲综久久2021| 草草影院国产第一页| 东京热av无码电影一区二区| 青青草国产一区二区三区| av一区二区无码在线| 久久婷婷色综合老司机| 亚洲中文无码h在线观看| 青青草91视频| 国产精品久久久精品三级| 亚洲国产精品久久久久秋霞影院| 精品一区二区三区波多野结衣| 国产在线第二页| 亚洲乱强伦| 国产超薄肉色丝袜网站| 日韩国产亚洲一区二区在线观看| 国产乱子伦手机在线| 韩国v欧美v亚洲v日本v| 黄片在线永久| 人妻熟妇日韩AV在线播放| 国产高清在线精品一区二区三区| 久草美女视频| 久久狠狠色噜噜狠狠狠狠97视色| 精品伊人久久久大香线蕉欧美| 免费人成视网站在线不卡| 亚洲国产高清精品线久久| 国产杨幂丝袜av在线播放| 亚洲欧美成人影院| 国产香蕉97碰碰视频VA碰碰看| 日本不卡在线播放| 91福利一区二区三区| 欧美黄网站免费观看| 亚洲高清在线天堂精品| 日本久久免费| 亚洲精品国产成人7777| 国产精品开放后亚洲| 欧美日韩91| 中文字幕天无码久久精品视频免费| 亚洲性日韩精品一区二区| 欧美成人怡春院在线激情| a亚洲视频| 日韩麻豆小视频| a免费毛片在线播放| 国模极品一区二区三区| 亚洲青涩在线| 亚洲av无码专区久久蜜芽| 欧美综合一区二区三区| 欧美黄网站免费观看| 日韩精品亚洲精品第一页| 天堂成人在线| 亚洲IV视频免费在线光看| 91国内在线观看| 亚洲精品无码AⅤ片青青在线观看| 国产精品刺激对白在线| 亚洲综合18p| 2024av在线无码中文最新| 日本午夜在线视频| a欧美在线| 欧美一区二区三区国产精品| 一级毛片免费不卡在线| 4虎影视国产在线观看精品| 好吊日免费视频|