• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      AES加密算法的FPGA優(yōu)化設(shè)計(jì)

      2021-02-28 06:49:46湖南工學(xué)院電氣與信息工程學(xué)院
      電子世界 2021年22期
      關(guān)鍵詞:明文密文解密

      湖南工學(xué)院電氣與信息工程學(xué)院 陳 超

      高級(jí)加密標(biāo)準(zhǔn)AES(Advanced Encryption Standard)算法由于其安全性高的優(yōu)勢(shì)而應(yīng)用廣泛,再結(jié)合FPGA的優(yōu)勢(shì)可實(shí)現(xiàn)加密速度快,開發(fā)周期短且可通用性強(qiáng)的AES加密算法。多輪加密的每一輪采用復(fù)用的方式以節(jié)省資源,且通過狀態(tài)機(jī)控制加密過程。最后結(jié)合FPGA綜合仿真,資源消耗為9643,最高工作頻率為126.34MHz。

      隨著通信技術(shù)及計(jì)算機(jī)的發(fā)展,人們有越來越多的信息需要通過通信設(shè)備來傳輸與交換,用戶對(duì)于數(shù)據(jù)傳輸?shù)陌踩栽絹碓街匾暎虼诵枰獙?duì)數(shù)據(jù)進(jìn)行加密傳輸來保證數(shù)據(jù)的安全性。而AES以其速度快、設(shè)計(jì)簡(jiǎn)單、安全性高、易維護(hù)等優(yōu)點(diǎn)在郵件加密、數(shù)字簽名、文檔加密中廣泛應(yīng)用。

      AES算法是2001年由NIST(美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所)為取代DES而發(fā)布的新一代數(shù)據(jù)高級(jí)加密標(biāo)準(zhǔn)。AES-128算法的密鑰比DES-56的密鑰在破解的時(shí)間花費(fèi)上強(qiáng)1021倍。如果加解密采用同樣的密鑰會(huì)導(dǎo)致降低安全性。為了保證安全性,設(shè)計(jì)加解密密鑰可采用相關(guān)且不同的密鑰,即把加密模式的密鑰擴(kuò)展模塊的最后一輪子密鑰作為解密模式密鑰的初始密鑰,這樣就可以強(qiáng)化通信安全性,保密性以及出色的抗攻擊性。

      1 AES算法原理

      1.1 AES的算法描述

      AES算法是一種對(duì)稱密碼,且是屬于其中的一種分組密碼,其原理采用的是迭代分組密碼算法,它由輪變換函數(shù)經(jīng)過數(shù)次迭代變換而成。AES加密可用如下加密公式表示。

      其中E表示加密函數(shù),K表示密鑰,P表示明文,C表示密文。

      AES的密鑰長(zhǎng)度可分為128bit,192bit和256bit,而分組長(zhǎng)度固定為128bit。除了輪數(shù),這三種的加密過程相同。每種長(zhǎng)度對(duì)應(yīng)的變換輪數(shù)的關(guān)系如表1所示。

      表1 AES算法的分組,密鑰及輪數(shù)關(guān)系

      1.2 AES的加密過程

      把加密數(shù)據(jù)排列成以字節(jié)為單位元素的4×4狀態(tài)矩陣,該矩陣中字節(jié)的排列順序?yàn)閺纳系较?,從左至右。加密的第一個(gè)步驟是待加密的明文與初始密鑰異或(輪密鑰加),然后根據(jù)表1的密鑰長(zhǎng)度進(jìn)行對(duì)應(yīng)的多輪變換。每一輪包含字節(jié)替換,行移位,列混淆,輪密鑰加四個(gè)過程。其中最后一輪需跳過列混淆。

      AES解密是加密的逆過程,文中不再詳細(xì)闡述。圖1所示是AES加解密過程的結(jié)構(gòu)圖。

      圖1 AES加解密執(zhí)行過程

      2 AES加密算法的硬件設(shè)計(jì)及模塊分析

      2.1 AES實(shí)現(xiàn)的整體結(jié)構(gòu)

      由于大部分應(yīng)用采用AES-128,文中采用128bit來設(shè)計(jì),其整體實(shí)現(xiàn)結(jié)構(gòu)框圖如圖2所示,該設(shè)計(jì)的加密與解密是同一個(gè)模塊,通過mode輸入信號(hào)來控制加解密模式。該框架主要由加/解密模塊(Encrypt/Decrypt)、密鑰擴(kuò)展模塊(key_exp)、字節(jié)替換模塊(s_box)組成。其中加/解密模塊功能主要由狀態(tài)機(jī)控制,完成與字節(jié)替換/逆替換模塊的數(shù)據(jù)交互、行移位、列混淆運(yùn)算、輪密鑰加以及對(duì)密鑰擴(kuò)展模塊的控制。設(shè)計(jì)中為了節(jié)省I/O資源,128bit數(shù)據(jù)和128bit初始密鑰由32bit的data_in依次輸入,并通過k_or_d信號(hào)來區(qū)分?jǐn)?shù)據(jù)輸入還是密鑰輸入。輸入start信號(hào)為高表示輸入有效。同樣,輸出端亦為128bit密文由32bit端口依次輸出。加密數(shù)據(jù)流向?yàn)榻邮諗?shù)據(jù)后由加/解密模塊配合其他模塊進(jìn)行10輪迭代變換,最后一輪密鑰異或輸出即為密文。解密過程與其相同,把密文以相同的步驟作為數(shù)據(jù)輸入,同時(shí)設(shè)置mode=0,輸出即為明文。

      圖2 設(shè)計(jì)實(shí)現(xiàn)框圖

      2.2 密鑰擴(kuò)展模塊

      AES采用的是密碼密鑰,不能在每一輪都是中相同的密鑰,需要根據(jù)初始密鑰去擴(kuò)展獲得每一輪需要的密鑰。十輪密鑰擴(kuò)展得到總長(zhǎng)度為W*Nb(Nr+1),其中W為密鑰矩陣每列的位數(shù),Nb分組長(zhǎng)度為4,Nr指加密輪數(shù)。矩陣的每一列密鑰元素可用Wi表示,其中i的所在范圍為0 ≤i<Nb(Nr+1)。擴(kuò)展子密鑰可由初始密鑰生成。

      當(dāng)i能被4整除:

      當(dāng)i不能被4整除:

      其中:函數(shù)g()由三部分組成:字循環(huán)、字節(jié)替換和輪常量異或(函數(shù)g()可以增加密鑰拓展中的非線性,并且破壞AES算法的對(duì)稱性)。

      (1)字循環(huán):密鑰W[i]中的4個(gè)字節(jié)循環(huán)左移一個(gè)字節(jié)。例如輸入[a0,a1,a2,a3]變換后為[a1,a2,a3,a0]。

      (2)字節(jié)替換:將第一步的結(jié)果使用S盒進(jìn)行字節(jié)代換,與加密過程字節(jié)替換步驟相同。

      (3)輪常量異或:將第二步的結(jié)果與輪常量Rcon[j]異或,j表示輪數(shù)。Rcon用查找表實(shí)現(xiàn),輪計(jì)數(shù)器kcnt作為查找地址。

      2.3 字節(jié)替換與行移位模塊

      字節(jié)替換是數(shù)據(jù)4×4狀態(tài)矩陣中,每個(gè)字節(jié)元素的高四位為S盒的行地址,低四位為列地址,用尋址后的值替換狀態(tài)矩陣的值。逆字節(jié)替換同理,只是需要查找逆S盒的行列地址即可。設(shè)計(jì)中采用查找表的方式進(jìn)行字節(jié)替換與逆字節(jié)替換操作。以下為4×4狀態(tài)矩陣的排列順序。

      行移位是4×4狀態(tài)矩陣的行循環(huán)移位,第一行不變,第二行左移一個(gè)字節(jié),第二行左移兩個(gè)字節(jié),第三行左移三個(gè)字節(jié)。逆行移位為行移位反向操作,即向右循環(huán)移位即可。

      2.4 列混淆與輪密鑰加模塊

      列混淆運(yùn)算為位元變換,根據(jù)GF(28)有限域運(yùn)算規(guī)則,即將狀態(tài)矩陣左乘混淆矩陣,結(jié)果就是列混淆后的值。而逆列混淆運(yùn)算就是狀態(tài)矩陣左乘逆混淆矩陣。設(shè)計(jì)中的列混淆與逆列混淆采用函數(shù)的方法進(jìn)行運(yùn)算,一個(gè)時(shí)鐘周期出結(jié)果。部分代碼如下:

      輪密鑰加易于實(shí)現(xiàn),只需狀態(tài)矩陣與密鑰矩陣相同的位置進(jìn)行異或運(yùn)算后,得到的就是下一輪迭代變換的起始狀態(tài)矩陣。

      3 AES算法的仿真與實(shí)現(xiàn)

      3.1 AES算法仿真結(jié)果及分析

      設(shè)計(jì)采用Verilog HDL對(duì)AES算法進(jìn)行設(shè)計(jì)以及驗(yàn)證。在十輪迭代加密、解密運(yùn)算后,得到的加密與解密結(jié)果分別如圖3、圖4所示。

      圖3 AES加密數(shù)據(jù)仿真

      圖4 AES解密數(shù)據(jù)仿真

      表2、表3分別對(duì)應(yīng)圖3、圖4的加密和解密實(shí)例結(jié)果表。由實(shí)例數(shù)據(jù)測(cè)試結(jié)果可知,文中的AES算法設(shè)計(jì)在mode=1的加密模式下,輸入表2中的明文以及密鑰,可得到表2中的密文(如圖3所示);然后用密文作為輸入在mode=0的解密模式下,輸入表3中的密文以及密鑰,可得到表3中的明文(如圖4所示)。實(shí)驗(yàn)表明解密后的明文與加密前的明文相同。同時(shí)測(cè)試也用了多組數(shù)據(jù)進(jìn)行了設(shè)計(jì)驗(yàn)證,均證明了文中的設(shè)計(jì)可以對(duì)數(shù)據(jù)進(jìn)行正確的加密得到密文,密文也可以反過來解密出明文。

      表2 AES測(cè)試加密數(shù)據(jù)實(shí)例

      表3 AES測(cè)試解密數(shù)據(jù)實(shí)例

      3.2 性能分析

      文中設(shè)計(jì)軟件基于Quartus Ⅱ13.1,仿真軟件為ModelSim 10.1d,芯片為Cyclone Ⅳ系列EP4CE10E22C8進(jìn)行驗(yàn)證,最終設(shè)計(jì)綜合出來可實(shí)現(xiàn)工作頻率最高為126.34MHz,邏輯資源消耗為9643。再通過對(duì)比占用的邏輯單元數(shù),可將中文設(shè)計(jì)與其他文獻(xiàn)的方案做比較可得到表4,可說明本方案較其他方案相比,運(yùn)行速度更快,吞吐量更高;但同時(shí)占用邏輯單元數(shù)在對(duì)比中處于適中位置,不占很大優(yōu)勢(shì),這是用面積換取速度的結(jié)果導(dǎo)致。

      表4 設(shè)計(jì)與其他文獻(xiàn)方案對(duì)比

      文中分析了AES算法的原理以及設(shè)計(jì)的實(shí)現(xiàn)方案,實(shí)現(xiàn)的關(guān)鍵在于狀態(tài)機(jī)的控制;再通過劃分各個(gè)模塊來分析每個(gè)模塊的實(shí)現(xiàn)方法;最后實(shí)例測(cè)試采用文中的方案而實(shí)現(xiàn)的設(shè)計(jì)模塊以及設(shè)計(jì)的性能分析。結(jié)果表明該設(shè)計(jì)方案能滿足設(shè)計(jì)要求。

      猜你喜歡
      明文密文解密
      解密“熱脹冷縮”
      一種針對(duì)格基后量子密碼的能量側(cè)信道分析框架
      一種支持動(dòng)態(tài)更新的可排名密文搜索方案
      基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
      解密“一包三改”
      炫詞解密
      奇怪的處罰
      奇怪的處罰
      四部委明文反對(duì)垃圾焚燒低價(jià)競(jìng)爭(zhēng)
      鲁山县| 安仁县| 大冶市| 二连浩特市| 临朐县| 宣恩县| 财经| 新绛县| 濮阳市| 三台县| 北海市| 德钦县| 育儿| 扬州市| 桓台县| 汝城县| 德安县| 慈利县| 阳东县| 理塘县| 丰都县| 马山县| 通渭县| 香格里拉县| 汉寿县| 天津市| 福海县| 昌平区| 环江| 南郑县| 昭通市| 广宁县| 庆云县| 嵊州市| 疏勒县| 岑溪市| 连山| 桃江县| 乐至县| 肇东市| 金昌市|