亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        全通用AES加密算法的FPGA實現(xiàn)

        2020-05-20 01:18:46李熾陽雷倩倩楊延飛
        計算機工程與應(yīng)用 2020年10期
        關(guān)鍵詞:設(shè)計

        李熾陽,雷倩倩,楊延飛

        西安工程大學(xué) 理學(xué)院,西安 710000

        1 引言

        隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,私人信息的安全形勢越來越嚴(yán)峻[1-2]。高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)算法[3]以其速度快、內(nèi)存需求低、靈活、易維護等優(yōu)點廣泛應(yīng)用于數(shù)字簽名、文檔加密、郵件加密、傳輸加密[4-7]。

        AES 算法根據(jù)密鑰長度的不同,分為AES-128、AES-192 和AES-256。AES 算法為分組密碼算法,其工作模式有電子密碼本(Electronic Code Book,ECB)模式、密文分組鏈接(Cipher Block Chaining,CBC)模式、密文反饋(Cipher FeedBack,CFB)模式、輸出反饋(Output FeedBack,OFB)模式、計數(shù)器(CTR)5 種。AES 加密算法在ECB 和CTR 模式支持并行運算,通過流水線式設(shè)計,每經(jīng)過一個時鐘周期可以加密128 bit 的原文,但流水線式加密設(shè)計具有局限性[8]。AES 加密算法在CFB、CBC 和OFB 模式,由于每一段原文進行加密前需要用到上一段的密文[9],不支持并行運算,無法使用流水線式設(shè)計。

        本文實現(xiàn)了一種非流水線式的AES加密算法,可兼容5種工作模式和3種位寬的密鑰以適用于不同的加密要求,并在速度和面積方面加以優(yōu)化。

        2 全通用AES加密算法的硬件設(shè)計

        圖1給出了全通用AES加密模塊的整體結(jié)構(gòu),頂層模塊下包含兩個子模塊:模式選擇模塊實現(xiàn)5種模式轉(zhuǎn)換功能,可調(diào)節(jié)密鑰AES 加密模塊進行3 種位寬密鑰的AES 加密。輸入的明文text_in 和額外向量initial 經(jīng)過Mode_Change 模塊處理后通過AES_in 輸入AES_Encryption模塊,并將開始信號AES_start置1,AES加密后輸出加密完成信號start_next 和加密數(shù)據(jù)AES_out,AES_out 經(jīng)過Mode_Change 模塊處理后輸出完成信號done和密文text_out。

        圖1 全通用AES加密框圖

        2.1 模式選擇模塊

        模式選擇模塊整體結(jié)構(gòu)如圖2所示,該模塊需要同時滿足5 種工作模式的加密。為了減小模塊的路徑延時,該模塊使用5條不同的路徑并行執(zhí)行,使用一個3 bit的AES_mode信號控制選擇器,在不同的工作模式下切換到不同的工作電路。5 種工作模式在AES 加密前后的處理流程均可通過簡單的組合邏輯電路實現(xiàn)。除ECB 外,其余工作模式均需要128 bit 的額外輸入,在CFB、CBC和OFB模式下輸入初始向量,在CTR模式下輸入自增算子。由于密鑰在整個加密流程不會發(fā)生變化,為了減少輸入輸出口,設(shè)定一個flag 輸入,當(dāng)flag=0時,key[255:0]輸入密鑰,當(dāng)flag=1時,key[127:0]輸入初始向量或自增算子。

        圖2 模式切換模塊

        每進行128 bit 的密文加密就需要進行一次工作模式的運算,該運算會造成不可避免的延時。AES加密模塊通過一個時鐘周期進行一輪加密,使得各個周期的路徑延時基本一致,避免因為某個時鐘周期延時太大影響整個系統(tǒng)的加密頻率。將首個輪密鑰加和工作模式的處理整合在一個額外周期中,使其不會影響加密模塊的時鐘頻率。第一個時鐘周期完成模式處理和輪密鑰加,接下來的N個周期完成N輪加密。

        2.2 可調(diào)節(jié)密鑰AES加密模塊

        AES-128、AES-192和AES-256均包含密鑰擴展、字節(jié)替代、行移位、列混淆和輪密鑰加5個模塊,區(qū)別在于輪密鑰的數(shù)目和加密的輪數(shù)N,AES-128、AES-192、AES-256 的N值分別為 10、12 和 14,整體流程如圖 3所示。

        圖3 AES加密流程

        2.2.1 可調(diào)節(jié)密鑰擴展模塊

        密鑰擴展模塊用于生成AES-128、AES-192和AES-256的輪密鑰。為了減小設(shè)計面積,將不同的密鑰擴展流程合并為一個模塊,整體結(jié)構(gòu)如圖4所示。

        圖4 密鑰擴展模塊

        密鑰擴展中含有RotWord、SubWord、XorRcon模塊。RotWord模塊將32 bit的數(shù)據(jù)向左平移8 bit,SubWord模塊是4個8 bit的S盒替換,XorRcon模塊將32 bit數(shù)據(jù)與32 bit常量Rcon進行異或運算。

        文獻(xiàn)[3]中密鑰擴展的標(biāo)準(zhǔn)流程為RotWord、SubWord、XorRcon,但由于AES-256中,高128 bit需要完整的3個流程,而低128 bit只需要SubWord步驟。在文獻(xiàn)[10]中通過在SubWord 模塊前后分別加入一個選擇器來實現(xiàn)高低位的切換。而根據(jù)計算,RotWord和SubWord步驟交換位置不影響結(jié)果,因此本設(shè)計通過交換兩個模塊位置并在兩個模塊間加入一個選擇器實現(xiàn),減少了一個選擇器的面積及路徑延時。

        模塊通過 flag 信號在 AES-128、AES-192 和 AES-256 間進行切換。AES-256 的密鑰為256 bit,存入W1至W8 共計8 個32 bit 儲存空間中,每輪生成一個32 bit的W值,進行密鑰的迭代運算。進行192 bit 和128 bit密鑰擴展算法時,分別復(fù)用W1 至W6 和W1 至W4 的儲存空間。該設(shè)計的優(yōu)點在于無論是AES-128、AES-192或者AES-256模式均為每經(jīng)過4個時鐘周期依次輸出W1、W2、W3、W4 為該輪的輪密鑰,無需多路選擇器切換到其他儲存空間。

        文獻(xiàn)[10]中密鑰擴展與AES加密并行,不需要額外的儲存空間存放輪密鑰,但每個輪密鑰需要4個時鐘周期生成,因此,每輪加密至少需要擴展為4個周期,且額外的并行電路會提升功耗。本設(shè)計采用預(yù)計算的方法,首先進行密鑰擴展算法的運算,生成全部的輪密鑰儲存在寄存器中。加密過程中使用輪密鑰時,訪問對應(yīng)寄存器即可,使得每輪加密只需要一個時鐘周期,且密鑰擴展模塊只需運算一次,提升了整體設(shè)計的加密速度并減小了功耗。

        2.2.2 字節(jié)替代模塊

        字節(jié)替代模塊在傳統(tǒng)流水線式AES 加密設(shè)計中引入復(fù)合場算法[11](Composite Field Arithmetic,CFA)的概念,為了在GF(28)上找到乘法逆,會引出高度復(fù)雜的電路。其優(yōu)點在于可以拆分字節(jié)替代模塊,在模塊內(nèi)部加入流水線,從而減小電路的最大延時。該方案在流水線式加密結(jié)構(gòu)中廣泛使用,但在非流水線式結(jié)構(gòu)中面積和延遲較大。因此本文采用文獻(xiàn)[12]基于查找表的方法,對于輸入的128 Byte的數(shù)據(jù),首先將數(shù)據(jù)分為16組,每組8 bit。然后構(gòu)建一個16×16 的S盒,對于輸入S盒的8 bit數(shù)據(jù),高4 bit對應(yīng)的值作為行標(biāo),低4 bit對應(yīng)的值作為列標(biāo),輸出對應(yīng)位置上儲存的8 bit 數(shù)。對于16組輸入構(gòu)建16個S盒,并行計算得到16個8 bit的值,將它們按原順序組合并輸出。

        2.2.3 行移位與列混淆模塊

        考慮到行移位增加獨立模塊會影響速度和面積。因此將字節(jié)替代模塊的輸出與列混淆模塊的輸入按照算法要求進行連接,從而完成了行移位流程。

        列混淆的矩陣乘法定義在GF(28)上,與一般的矩陣乘法有所不同,其中選定的模多項式為m(x)=x8+x4+x3+x+1。在該計算規(guī)則下,若直接在GF(28)上執(zhí)行多項乘法模運算,硬件復(fù)雜度較高,難以實現(xiàn),因此需要簡化算法。根據(jù)文獻(xiàn)[13]可知8 bit 數(shù)據(jù)b7b6b5b4b3b2b1b0乘2運算可以表示為:

        乘3運算結(jié)果為:

        因此,采用該算法后,只需循環(huán)移位和異或邏輯運算即可實現(xiàn)多項式模運算,算法硬件執(zhí)行效率明顯提高。

        3 測試結(jié)果

        本文采用Xilinx公司的ISE14.7工具,器件選擇Virtex7系列的XC7VX690T型號,速度等級為-3。綜合顯示資源消耗為1 173 Slices,最高工作頻率為348.191 MHz。

        3.1 功能測試

        為了驗證5種工作模式的加密功能,對同一明文和密鑰依次進行ECB、CBC、CTR、CFB、OFB 全部5 種工作模式加密,密鑰長度為128 bit,輸入明文為256'h3243f 6a8885a308d313198a2e037073412345678901234567890 123456789012,密鑰為128'h2b7e151628aed2a6abf71588 09cf4f3c。CTR模式初始自增算子為128'h12123456789 01234567890123456789,CBC、CFB、OFB 模式的初始向量為128'h1212345678901234567890123456789。仿真波形如圖5所示,模式選擇信號mode由1到5依次對應(yīng)ECB、CBC、CTR、CFB、OFB工作模式,接收到最后一個start_next 信號標(biāo)志著一次加密的完成。每個模式加密完成后將復(fù)位信號rst和開始信號start置0,rst置1后輸入下一個工作模式的數(shù)據(jù),然后將start置1開始下一次加密。

        為了驗證128/192/256 bit 密鑰加密功能,對同一明文依次進行128、192 和256 bit 密鑰加密,工作模式為ECB,輸入明文為128'h00112233445566778899aabbccddeeff,128 bit密鑰為128'h000102030405060708090a0b0c 0d0e0f,192 bit密鑰為192'h000102030405060708090a0b 0c0d0e0f1011121314151617,256 bit密鑰為256'h000102 030405060708090a0b0c0d0e0f101112131415161718191a 1b1c1d1e1f。仿真波形如圖6所示,密鑰位寬信號flag_in=1、2、3分別對應(yīng)128、192、256 bit信號,每次加密完成后將復(fù)位信號 rst 和開始信號 start 置 0,rst 置 1 后輸入下一個密鑰和密鑰位寬信號,然后將start 置1 開始下一次加密。

        3.2 性能測試

        對于AES加密算法的硬件實現(xiàn),已有文獻(xiàn)提出了一些AES 加密設(shè)計,如表1 所示。文獻(xiàn)[14]提出了一種高吞吐量AES流水線設(shè)計,但由于流水線設(shè)計的局限性,該設(shè)計無法在ECB、CBC 和OFB 工作模式下實現(xiàn)加密。文獻(xiàn)[15]提出了一種具有128 bit 塊大小和密鑰大小的重復(fù)循環(huán)方法。文獻(xiàn)[16]提出了一種完全基于預(yù)先計算的查找表(Look-Up Table,LUT)的AES 加密設(shè)計。文獻(xiàn)[17]提出了一種4級循環(huán)流水線結(jié)構(gòu)。本設(shè)計不僅可以兼容3 種密鑰長度和5 種工作模式,與文獻(xiàn)[15]相比,通量增加了2.1倍,面積增加了1.1倍,與文獻(xiàn)[16]相比,速度和面積均有優(yōu)勢,與文獻(xiàn)[17]相比,通量增加了1.6倍,面積減小了49.5%。

        4 結(jié)論

        針對AES 算法需要兼容不同工作模式以及不同密鑰長度的加密需求,提出全通用AES加密算法。該算法通過設(shè)計可調(diào)節(jié)密鑰擴展模塊和模式選擇模塊,實現(xiàn)128/192/256 位寬的加密,支持ECB/CBC/CFB/OFB/CTR 5 種工作模式。基于Xilinx 公司的XC7VX690T FPGA 綜合仿真,資源消耗為1 947 Slices,最高工作頻率為348.191 MHz。

        圖5 5種工作模式連續(xù)加密波形

        圖6 3種長度密鑰加密波形

        表1 與同類設(shè)計的比較

        猜你喜歡
        設(shè)計
        二十四節(jié)氣在平面廣告設(shè)計中的應(yīng)用
        河北畫報(2020年8期)2020-10-27 02:54:06
        何為設(shè)計的守護之道?
        《豐收的喜悅展示設(shè)計》
        流行色(2020年1期)2020-04-28 11:16:38
        基于PWM的伺服控制系統(tǒng)設(shè)計
        電子制作(2019年19期)2019-11-23 08:41:36
        基于89C52的32只三色LED搖搖棒設(shè)計
        電子制作(2019年15期)2019-08-27 01:11:50
        基于ICL8038的波形發(fā)生器仿真設(shè)計
        電子制作(2019年7期)2019-04-25 13:18:16
        瞞天過?!律O(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        從平面設(shè)計到“設(shè)計健康”
        商周刊(2017年26期)2017-04-25 08:13:04
        国产卡一卡二卡3卡4乱码| 喷潮出白浆视频在线观看| 久久久精品人妻一区二区三区免费| 国产亚洲精品国产精品| 巨茎中出肉欲人妻在线视频| 无码人妻一区二区三区在线视频 | 24小时日本在线视频资源| 国产成人综合久久精品免费| 国产在线欧美日韩精品一区二区| 国产成人av区一区二区三| 中文字幕日韩精品有码视频 | 亚洲熟妇色自偷自拍另类| 免费观看又污又黄的网站| 国内视频一区| 在线观看国产一区二区av| 亚洲日韩国产av无码无码精品| 国产乱子伦精品免费无码专区 | 亚洲人成人一区二区三区| 永久免费看黄在线观看| 久久久久久人妻无码| 黑人玩弄漂亮少妇高潮大叫| 国产在线欧美日韩精品一区二区| 亚洲成a人一区二区三区久久| 国产成人精品999视频| 久久久久无码国产精品不卡 | 亚洲熟妇av乱码在线观看| 精品国产自拍在线视频| 亚洲永久国产中文字幕| 亚洲av日韩av无码污污网站| 国产成人精品午夜福利免费APP| 国产情侣自拍偷拍精品| 国产精品videossex久久发布| 美女视频黄的全免费的| 中文字幕有码高清| 亚洲国产av一区二区四季| 伊人激情av一区二区三区| 国产精品一区二区久久乐下载| 亚洲免费一区二区av| av国产传媒精品免费| 大香视频伊人精品75| 91九色国产在线观看|