《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > AES算法的可配置硬件結(jié)構(gòu)設(shè)計與實現(xiàn)
AES算法的可配置硬件結(jié)構(gòu)設(shè)計與實現(xiàn)
賈 旭1, 李 興2
(1. 66083部隊, 北京 102488; 2. 65571部隊, 吉林 四平 136000)
摘要: 在分析AES算法的基礎(chǔ)上,介紹了該算法各模塊的設(shè)計實現(xiàn)方法,并將加解密運算結(jié)構(gòu)設(shè)計為1個統(tǒng)一的結(jié)構(gòu)。通過對密鑰生成算法的分析,將3種密鑰長度的密鑰生成算法進行了可配置設(shè)計,使該設(shè)計能夠?qū)崿F(xiàn)加解密功能。該設(shè)計通過了FPGA仿真驗證,與傳統(tǒng)設(shè)計方案相比大大減小了硬件資源的消耗。
Abstract:
Key words :

摘 要: 在分析AES算法的基礎(chǔ)上,介紹了該算法各模塊的設(shè)計實現(xiàn)方法,并將加解密運算結(jié)構(gòu)設(shè)計為1個統(tǒng)一的結(jié)構(gòu)。通過對密鑰生成算法的分析,將3種密鑰長度的密鑰生成算法進行了可配置設(shè)計,使該設(shè)計能夠?qū)崿F(xiàn)加解密功能。該設(shè)計通過了FPGA仿真驗證,與傳統(tǒng)設(shè)計方案相比大大減小了硬件資源的消耗。
關(guān)鍵詞: 高級加密標(biāo)準(zhǔn)統(tǒng)一加解密結(jié)構(gòu); 可配置密鑰生成結(jié)構(gòu); 現(xiàn)場可編程門陣列

    在信息安全領(lǐng)域,數(shù)據(jù)加密是一種常用且行之有效的方法。高級加密標(biāo)準(zhǔn)AES[1]算法設(shè)計簡單,便于硬件實現(xiàn),是新一代的主流對稱加密算法。相對于軟件實現(xiàn),硬件實現(xiàn)加密算法安全性好、計算速度快。本文基于FPGA提出了一種AES算法的可配置設(shè)計方法,對數(shù)據(jù)分組長度為128 bit,密鑰長度為128 bit、192 bit和256 bit的加解密運算進行了可配置結(jié)構(gòu)的設(shè)計與實現(xiàn)。
1 AES算法介紹
 AES為迭代分組密碼算法,對待加密的明文先分組后再加密。明文長度和密鑰長度均可以為128 bit、192 bit和256 bit。根據(jù)明文長度及密鑰長度的不同組合,加密的輪數(shù)可以不同[1]。AES算法由加密、解密算法和密鑰擴展算法3個部分組成。
1.1 加/解密算法
 加密算法的每一輪由4個變換組成,依次為字節(jié)代替、行移位、列混合以及輪密鑰加。最后一輪變換與其他輪略有不同,主要是少了列混合變換。解密算法與加密算法相反,每一輪的4個變換為相應(yīng)加密變換的逆變換,依次為逆字節(jié)替代變換、逆行移位變換、逆列混合變換、逆輪密鑰加。加解密算法所用子密鑰相同,只是使用的順序剛好相反。
1.2 密鑰擴展算法
    圈子密鑰是通過密鑰擴展算法從初始密鑰中獲得的,其長度等于分組長度。AES的密鑰擴展算法由密鑰擴展和密鑰選取兩部分構(gòu)成。
    初始密鑰經(jīng)密鑰擴展過程產(chǎn)生32Nb(Nr+1) bit的擴展密鑰,共包含Nb(Nr+1)=t個4字節(jié)的密鑰字(其中Nr代表迭代輪數(shù),Nb代表數(shù)據(jù)分組數(shù),Nk代表密鑰分組數(shù),數(shù)據(jù)和密鑰每個分組為32  bit)。擴展后得到的全部密鑰字為:w0 w1…wt-1,前Nk個密鑰字直接由外部密鑰獲得,后續(xù)密鑰字根據(jù)初始密鑰的長度分為2種情況得到。當(dāng)密鑰長度為128  bit或192  bit時,后續(xù)密鑰字wi等于其前1個字wi-1與Nk個位置之前的字wi-Nk的“異或”。對于Nk的整數(shù)倍位置的字,在“異或”之前,要對wi-1進行1次G變換。G變換的步驟為先進行1次字節(jié)循環(huán)移位,然后再做1次字節(jié)替代變換,最后再“異或”1個輪常數(shù)。當(dāng)密鑰長度為256位時,如果Nk=8且i-4是Nk的整數(shù)倍,則“異或”之前對wi-1要做1次字節(jié)替代變換。
2 AES算法各模塊的設(shè)計
2.1 S盒的設(shè)計

    字節(jié)替代變換是關(guān)于字節(jié)的非線性變換,它將狀態(tài)中每1個字節(jié)非線性地變換為另1個字節(jié),替代(S盒)是可逆的。S盒的傳統(tǒng)設(shè)計方法是使用VHDL語言中的CASE語句進行描述,但這樣實現(xiàn)的S盒將占用大量的邏輯資源,且速度較低,F(xiàn)PGA內(nèi)部的存儲器資源得不到充分利用。為了充分利用FPGA芯片內(nèi)部的存儲器資源,提高運行速度,可將替代的內(nèi)容存儲到FPGA內(nèi)部的存儲器中,根據(jù)輸入字節(jié)的數(shù)值進行快速的查表操作。即把輸入的8 bit待處理數(shù)據(jù)作為地址,對應(yīng)的地址空間中存放字節(jié)替代后輸出的8 bit數(shù)據(jù)。對于逆S盒,可以用同樣的方法來實現(xiàn)。
2.2 行移位的設(shè)計
    行移位是以字節(jié)為單位進行的循環(huán)移位。由于移位位數(shù)是固定的,故可采用直接連線的方式來實現(xiàn)。這樣只會占用連線資源,時間僅為線上傳輸延遲,速度非常快。對于逆行移位,可以采用同樣的方法來實現(xiàn)。
2.3 列混合的設(shè)計
    由AES列混合變換的原理可知,列混合變換就是輸入狀態(tài)矩陣與1個系數(shù)矩陣相乘,此系數(shù)矩陣中的元素有3種,分別為16進制數(shù)01、02、03。由參考文獻[2]可知,可以利用xf(x)算法對其進行快速實現(xiàn)。逆列混合變換的原理類似,其系數(shù)矩陣中的元素有4種,分別為16進制數(shù)09、0e、0b、0d。同樣可利用xf(x)算法對其進行實現(xiàn),只是乘數(shù)較大,需多次使用xf(x)算法,因此逆列混合較之列混合在資源消耗和運算時間上都有所增加。
2.4 密鑰加的設(shè)計
    由于本設(shè)計采用128 bit的數(shù)據(jù)分組長度,所以密鑰加的設(shè)計是將2個128 bit數(shù)作“異或”運算。因為“異或”的逆運算也為“異或”,所以解密變換的密鑰加也為2個128 bit數(shù)的“異或”。
3 加/解密運算的統(tǒng)一結(jié)構(gòu)設(shè)計
    AES算法加/解密運算過程的相似性是進行統(tǒng)一結(jié)構(gòu)設(shè)計的基礎(chǔ)。通過分析可知,加/解密運算的變換環(huán)節(jié)也存在相同或相似性,如S盒變換、行移位變換、密鑰加以及密鑰生成,這些都可作為統(tǒng)一結(jié)構(gòu)設(shè)計的組件。
    S盒變換是該算法硬件實現(xiàn)時最重要的環(huán)節(jié),其所占資源在整個算法中的比重很大,對于S盒和逆S盒,它們的輸入輸出端口都為8進8出,占用的存儲資源相同,不同的只是存儲空間中的內(nèi)容。因此在設(shè)計中,可讓加/解密共用同一個S盒模塊,只是在實現(xiàn)加/解密運算時,對S盒中的存儲內(nèi)容進行重新配置即可。S盒的重用可使消耗的硬件資源大為減少。
    對于行移位和逆行移位,其實現(xiàn)僅需占用連線資源,所以兩者的單獨設(shè)計不會造成邏輯資源消耗的增加。且行移位只是以字節(jié)為單位進行移位,與字節(jié)的值無關(guān)。而S盒變換只是改變字節(jié)的值,與字節(jié)的位置無關(guān)。所以兩者的執(zhí)行順序可以交換。在本設(shè)計中,為了使加/解密流程更趨于相同,把解密的逆S盒與逆行移位的位置進行了交換。
    對于“異或”運算,因其逆運算就是它本身,所以在加/解密過程中,2種密鑰加運算可以用同一硬件資源來實現(xiàn)。
    在增加了相應(yīng)的控制信號和選擇器之后,加/解密算法可歸結(jié)為同一個計算流程,如圖1所示。


    由于加/解密被歸結(jié)為同一個計算流程,因此在實現(xiàn)時,兩者可共用相同的控制資源。相對于單純的加密結(jié)構(gòu),本設(shè)計僅增加了逆列混合單元和部分控制資源即實現(xiàn)了加/解密運算的雙重功能。
4 密鑰擴展算法的可配置設(shè)計
    由算法原理可知,128 bit,192 bit及256 bit 3種密鑰長度的密鑰生成算法各不相同。128 bit密鑰長度的密鑰生成算法的每1圈流程[3]如圖2所示。192 bit密鑰長度的密鑰生成算法與之類似,只須把每輪的輸入輸出改為6路即可。


    256 bit密鑰長度的密鑰生成算法與128 bit和192 bit略有不同,即把第4路輸出經(jīng)過了1個S盒變換,S盒變換的結(jié)果再與第5路“異或”,其每1圈的流程如圖3所示。


     通過對3種密鑰生成算法的分析可知,3種算法的圈函數(shù)結(jié)構(gòu)存在很大的相似性,128 bit、192 bit的密鑰生成圈函數(shù)都可視為256 bit密鑰生成圈函數(shù)的一部分。因此可以通過對后者進行適當(dāng)?shù)淖冃危瑥亩鴮崿F(xiàn)128 bit、192 bit密鑰長度的密鑰生成算法。本文通過在256 bit密鑰生成算法圈函數(shù)的基礎(chǔ)上添加2個必要的數(shù)據(jù)選擇器來實現(xiàn)128 bit與192 bit的密鑰生成算法,具體實現(xiàn)結(jié)構(gòu)如圖4所示。


    圖中,第3路輸出和第5路輸出作為選擇器A的輸入,其輸出與第6路輸入“異或”。同理,第3路輸出與第7路輸出作為選擇器B的輸入,其輸出與最后1路輸入“異或”。選擇器A、B為32  bit的二選一多路選擇器。只須對選擇器A、B進行控制,便可靈活實現(xiàn)3種密鑰生成算法。若要實現(xiàn)256  bit密鑰生成算法,使選擇器的輸出均為上一路的輸入即可。若要實現(xiàn)192  bit密鑰生成算法,須使A選擇器的輸出為下一路,B選擇器的輸出為上一路。同時,圈函數(shù)的輸入與輸出應(yīng)分別選取除第4路與第5路之外的其他路;若要實現(xiàn)128 bit密鑰生成算法,只需使B選擇器的輸出為下一路。同時圈函數(shù)的輸入與輸出分別選取第1、2、3路和最后一路。
 由以上分析可知,僅通過添加2個數(shù)據(jù)選擇器、3種密鑰生成算法便可成為1個算法,易于實現(xiàn)且3種算法還可共用中間結(jié)構(gòu)寄存器資源、控制資源。所以相對于3種密鑰生成算法的單獨硬件結(jié)構(gòu)設(shè)計,本設(shè)計所消耗的硬件資源將大大減少。
5 系統(tǒng)的實現(xiàn)與仿真
 本文采用VHDL語言對系統(tǒng)進行描述,采用Altera公司的Stratix系列的EP1S10F484C5器件作為算法載體,通過QuartusII 5.0對系統(tǒng)進行綜合、仿真并下載。根據(jù)S盒/逆S盒的內(nèi)容生成內(nèi)存初始化文件mif,用In-System Memory Content Editor工具對S盒的內(nèi)容進行動態(tài)更新。仿真測試結(jié)果表明,相對于傳統(tǒng)的設(shè)計,本設(shè)計消耗的資源大為減少。表1為本設(shè)計與傳統(tǒng)設(shè)計在資源消耗和運行速度的比較。因為本設(shè)計在關(guān)鍵路徑上添加了必要的選擇控制單元,所以處理速度相對于傳統(tǒng)設(shè)計有所降低。
 本文對AES算法進行了可配置設(shè)計,在數(shù)據(jù)分組長度固定的前提下,可以根據(jù)安全等級的需要選擇不同分組長度的密鑰進行加密運算。本文設(shè)計出1個統(tǒng)一的加解密硬件結(jié)構(gòu),使資源消耗大為減少。由于采用了3種長度規(guī)格的密鑰,使得算法的安全級別靈活可變,用戶可根據(jù)不同的安全需求靈活選擇。在子密鑰的生成上,本文采用可配置的方式來實現(xiàn)3種密鑰生成算法,相對于使用不同的硬件結(jié)構(gòu)實現(xiàn)每一種密鑰生成算法,消耗的硬件資源進一步減少。算法中S盒的實現(xiàn)方式?jīng)Q定了其具備動態(tài)更新的特性,因此算法的安全性也得到進一步增強。綜上所述,本設(shè)計非常適用于硬件資源受限且有多種安全級別需要的密碼系統(tǒng)。

參考文獻
[1]     National Institute of standard and technology, advanced  encryption standard[S]. FIPS197, 2001,11.
[2]     韋寶典,劉東蘇,王新梅. 優(yōu)化實現(xiàn)研究[J].計算機工程與應(yīng)用,2002(20):4-6.
[3]     高娜娜,李占才,王沁.一種可重構(gòu)體系結(jié)構(gòu)用于高速實現(xiàn)DES、3DES和AES[J].電子學(xué)報,2006,34(8):1386-1390.
[4]     張清華.算法的高效實現(xiàn)及其性能分析[J].計算機應(yīng)用,2004,24(2):12-14.
[5]     SHIM J H, KIM D W, KANG Y K,et al. A rijndael cryptoprocessor using shared on-the-fly key scheduler[C].  ASIC,2002. Proceedings.2002.IEEE  Asia  Pacific Conference,2002,89(92):6-8.
[6]     沈涵飛,甘 萌. 加密算法在低成本FPGA上的實現(xiàn)[J]. 計算機工程與應(yīng)用,2004(22):116-119.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美—级a级欧美特级ar全黄| 国产一区二区主播在线| 久久久精品国产99久久精品芒果| 亚洲社区在线观看| 亚洲精品在线二区| 亚洲激情啪啪| 亚洲韩国青草视频| 亚洲国产成人av好男人在线观看| 欧美在线影院| 欧美在线亚洲一区| 欧美一区二区在线| 欧美一级久久久| 欧美亚洲综合另类| 亚洲欧美日韩系列| 亚洲欧美视频在线观看| 亚洲自拍高清| 亚洲欧美日韩精品久久久| 亚洲尤物精选| 亚洲欧美国产77777| 亚洲欧美日韩一区在线观看| 亚洲一区在线直播| 亚洲欧美资源在线| 欧美在线观看日本一区| 久久精品视频一| 亚洲激情在线激情| 日韩一级成人av| 在线亚洲一区| 亚洲欧美日本视频在线观看| 亚洲欧美欧美一区二区三区| 午夜精品一区二区三区电影天堂| 欧美一二三区在线观看| 久久精品男女| 蜜桃久久av一区| 欧美精品成人一区二区在线观看| 欧美日韩国产成人在线91| 欧美日韩一区国产| 国产精品一区二区欧美| 国产亚洲成av人在线观看导航 | 在线免费观看日韩欧美| 91久久精品国产| 亚洲视屏在线播放| 欧美亚洲一区| 亚洲免费久久| 西西人体一区二区| 美女精品自拍一二三四| 欧美日韩免费一区二区三区视频 | 亚洲一二三四区| 欧美在线精品一区| 99视频超级精品| 欧美一二三区精品| 免费欧美日韩国产三级电影| 欧美日韩视频在线第一区| 国产欧美日韩精品丝袜高跟鞋| 精品成人一区二区三区四区| 99成人免费视频| 久久国产精品久久w女人spa| 亚洲美女av网站| 欧美在线视频一区二区| 欧美黄色网络| 国产麻豆精品在线观看| 亚洲国产成人久久综合| 亚洲一区二区三区久久| 亚洲人成网站在线播| 午夜精品国产| 欧美国产日本高清在线| 欧美国产日韩a欧美在线观看| 欧美一区二区高清在线观看| 亚洲精品久久视频| 欧美亚洲综合另类| 欧美伦理一区二区| 国产一区二区三区电影在线观看| 日韩视频久久| 亚洲电影天堂av| 先锋亚洲精品| 欧美人成免费网站| 韩国三级电影久久久久久| aa成人免费视频| 亚洲啪啪91| 久久精品72免费观看| 欧美视频在线视频| 亚洲国产一区二区三区高清 | 亚洲在线视频网站| 99国产精品视频免费观看一公开| 久久精品国内一区二区三区| 欧美色网一区二区| 136国产福利精品导航网址应用| 亚洲欧美日韩一区在线| 亚洲一区二区高清| 欧美精品国产一区| 在线观看亚洲视频| 欧美一级一区| 午夜精品久久久久久久99水蜜桃| 欧美精品免费在线观看| 激情婷婷久久| 欧美亚洲一区在线| 午夜精品短视频| 欧美视频亚洲视频| 亚洲人午夜精品| 亚洲人成在线播放网站岛国| 久久精品在线播放| 国产美女精品视频免费观看| 在线亚洲高清视频| 中国成人黄色视屏| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美日本一区二区视频在线观看| 尤物yw午夜国产精品视频| 亚欧成人精品| 久久国产精品72免费观看| 国产精品高潮视频| 亚洲无线观看| 先锋影音网一区二区| 国产精品theporn88| 日韩一级黄色片| 在线中文字幕不卡| 欧美精品一区二区三区视频 | 99综合精品| 欧美日韩mv| 亚洲精品免费在线| 一本大道久久a久久综合婷婷| 欧美国内亚洲| 亚洲精品免费一二三区| 99在线精品视频| 欧美另类视频| 一本久道综合久久精品| 亚洲一区久久久| 国产精品看片资源| 亚洲欧美制服中文字幕| 久久精品国亚洲| 狠狠综合久久av一区二区老牛| 久久国产精品久久久| 久久综合999| 亚洲国产精品热久久| 99国产一区二区三精品乱码| 欧美人成免费网站| 亚洲少妇自拍| 欧美在线视频播放| 激情亚洲成人| 日韩亚洲视频| 国产精品久久午夜| 亚洲欧美亚洲| 久久蜜桃av一区精品变态类天堂| 黄色成人av在线| 亚洲精品免费观看| 欧美日韩综合网| 亚洲综合导航| 免费人成精品欧美精品| 99视频精品免费观看| 午夜在线一区| 在线观看一区二区视频| 在线亚洲精品| 国产日韩亚洲| 亚洲欧洲一区| 国产精品高潮呻吟久久av黑人| 小黄鸭视频精品导航| 免费在线欧美黄色| 夜夜嗨av色一区二区不卡| 欧美中文字幕在线播放| 在线欧美小视频| 亚洲男人第一av网站| 国内成人精品一区| 一卡二卡3卡四卡高清精品视频| 国产精品视频一| 亚洲人永久免费| 国产精品一二三四区| 亚洲经典三级| 国产精品乱码| 最新中文字幕亚洲| 国产精品久久久亚洲一区| 亚洲第一页在线| 欧美日韩在线三级| 久久精品亚洲乱码伦伦中文 | 国产欧美精品日韩精品| 亚洲日本久久| 国产精品久久久91| 亚洲激情综合| 国产精品午夜在线| 亚洲精品久久久蜜桃| 国产精品夜夜夜| 亚洲美女免费视频| 国产视频一区在线观看| 一区二区三区av| 黑人巨大精品欧美黑白配亚洲| 一区二区三区四区国产精品| 国产日韩精品电影| 一区二区三区成人| 激情丁香综合| 欧美一区二区三区精品电影| 亚洲激精日韩激精欧美精品| 欧美一区不卡| 夜夜狂射影院欧美极品| 免费成人高清| 欧美一级二级三级蜜桃| 欧美日韩一区二区三区四区在线观看| 久久精品国内一区二区三区| 国产精品久久九九| 99pao成人国产永久免费视频| 国产自产精品| 欧美一区午夜精品| 一区二区三区黄色| 欧美激情亚洲视频|