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

AES密碼算法的FPGA實現與仿真﹡

2013-09-17 12:31:20張慧霞趙建平李曉麗
通信技術 2013年9期

張慧霞, 趙建平, 李曉麗, 路 娜

(曲阜師范大學 物理工程學院,山東 曲阜 273165)

0 引言

由于缺乏保密措施,使得電話竊聽,密碼泄露等事件不斷發生,嚴重威脅到個人的隱私、軍事、商業機密、地區和國家的信息安全。因此,AES(Advanced Encryption Standard)加密算法已成為信息安全領域研究的熱點。AES算法是美國國家標準技術研究所(NIST)于 2001年宣布其成為取代DES的新一代數據高級加密標準[1]。該算法在實現方面具有設計簡單、安全性高、速度快等優點,而且AES算法的128位的密鑰比DES的56位密鑰在破解所花費的時間上強1021倍[2]。如果加解密使用同樣的密鑰,安全性得不到保證。文中所采用不同的(相關的)加解密密鑰,把加密密鑰擴展模塊的最后一輪子密鑰作為解密密鑰的初試密鑰,這樣可以加強通信安全性,保密性。

1 AES算法描述

AES是一個迭代型分組密碼算法,分組長度為128 bit,有三種可選密鑰長度分別是 128 bit,192 bit,256 bit。不同的密鑰長度對應的迭代循環次數rN分別是10輪,12輪,14輪。由于其操作都是以字節為基礎的,因此把中間變量和密鑰都分成 16個字節。加密數據按照從上到下、從左到右構成4×4以字節為元素的狀態矩陣(State)。加密過程是首先使待加密的明文與初始密鑰異或(AddRoundKey),然后進行 10次圈迭代變換。每圈包括字節替換變換(SubBytes)、行移位變換(ShiftRows)、列混合變換(MixColumns)、輪密鑰異或變換(AddAdd RoundKey)四步變換[3],最后一圈不含列混合操作。解密運算是與加密過程完全相反的逆運算。文中以數據長度和密鑰長度均為128 bit為例進行討論。

2 AES算法的實現

2.1 AES算法的整體設計

該設計的整體內部結構框圖如圖1所示,該結構由加密模塊、解密模塊、控制模塊、FIFO組成。其中AES加密模塊包括字節替換模塊(SubBytes)、行移位模塊(ShiftRows)、列混合模塊(MixColumns)、輪密鑰異或模塊(AddRoundKey);解密模塊包括逆字節替換模塊(invSubBytes)、逆行移位模塊(invShiftRows)、逆列混合模塊(invMixColumns)、逆輪密鑰異或模塊(invAddRoundKey)。加密過程的數據流向為:首先明文數據通過數據總線寫入16位入128位出的FIFO緩存;然后由控制模塊啟動AES加密模塊進行一次加密運算;運算完成輸出128 bit密文存入128位入16出的FIFO中。解密過程與其相同。

圖1 整體內部結構框

2.2 加密模塊和解密模塊設計

2.2.1 字節替換和逆字節替換的實現

字節替換是AES密碼中唯一的非線性變換。它將狀態組的每一個字節非線性變換成另一個字節。此模塊如果采用 GF(28)模乘求逆運算[4]實現,則邏輯延時較長,速度較慢。為加快速度,采用時延小、基于只讀存儲器(ROM)查找方式的S盒結構,即把輸入的8bit的數據作為地址而相應的輸出作為字節替換后的 8bit數據[5]。逆字節替換是字節替換的逆運算,采用逆S盒實現。字節替換的部分代碼是:

case (a)

8’h00: o=8’h63;

8’h01: o=8’h7c;

......

8’hff: o=8’h16;

2.2.2 行移位模塊與逆行移位模塊的實現

把行移位的結果狀態矩陣State的第一行不變,其余的三行依次循環左移一個字節、兩個字節、三個字節,變換如式(1)所示。逆行移位模塊是行移位的逆變換,即各行進行循環右移。

2.2.3 列混合變換與逆列混合變換的實現

列混合變換是利用矩陣乘法做位元變換。列混合變換將行移位的變換結果的狀態列看作是有限域上的次數小于 4的多項式 s(x)[6]與多項式進行模x4+1相乘運算。令,用矩陣乘法表示(矩陣元素用十六進制表示)如式(2)所示

function [7:0] mult2;

input [7:0] s;

mult2={s[6],s[5],s[4],s[3]^s[7],s[2]^s[7],s[1],s[0]^s[7],s[7]}

2.2.4 加密與解密密鑰擴展模塊

密鑰擴展作用是負責產生各輪操作所需要的子密鑰,它控制著整個算法的效率。因為每一輪變換都要和相應密鑰擴展生產的子密鑰進行異或運算。加密運算采用的是內部擴展,即加密運算與加密密鑰擴展運算是同步的,但是與解密不能同步,因為解密運算使用的初始密鑰是加密密鑰擴展模塊生產的最后一輪子密鑰。通過構造不同的加密密鑰擴展算法與解密密鑰擴展算法,使得采用不同初始密鑰實現數據的加密和解密。

AES算法利用外部輸入的初始密鑰 key(KN 為密鑰長度,以字為單位),通過密鑰擴展模塊得到輪密鑰的位數是(分組長度)×(KN+1),即 128×(10+1)=1408位。它涉及到一下二個模塊:

1)位置變換模塊(rot_word ):把一個4字節的序列in[31:0]變換成{in[23:0],in[31:24]};

2)S盒變換(sub_word):對一個4字節序列進行字節替換。圈常數數組’00’,’00’)是固定的數組,其中 rconst[i]所用可能值是示 ) ’01’,’02’,’04’,’08’,’10’,’20’,’40’,’ 80’,’1b’,’36’,‘6c’(十六進制)。

加密子密鑰生成過程:外部輸入的密鑰作為初始密鑰,以后的子密鑰就是字 w[i]等于其前一個字w[i-1]與前kN 個字 w[i-kN]進行“異或”,即 []w i=若i是KN 的倍數:w[i]=w[i-加密密鑰擴展模塊的部分代碼是:

rot_word..rw(.i(key_in[31:0]), .out(rot_key));

sub_word sw (.in (rot_key), .out(subrot_key));

xor6_32q(.o(key_out[127:96]),.a({rconst[i],24'b0}),.b(subrot_key),.c(key_in[127:96]),.d(32'b0),.e(32'b0),.f(32'b0));

解密子密鑰生成過程是:首先使初始密鑰字序列進行異或,然后再進行位置變換、字節替換和異或運算。

解密密鑰擴展模塊的部分代碼是:

assign {a,b,c,d} = key_in;

wire [31:0] w,x,y,z;

assign key_out = {w,x,y,z};

assign z = c ^ d;

assign y = b ^ c;

assign x = a ^ b;

wire [31:0] rot_key;

wire [31:0] subrot_key;

rot_word rw (.in (z), .out(rot_key));

sub_word..sw(.in(rot_key),

.out(subrot_key));

assignw=a ^ subrot_key ^ {rconst,24'b0}

3 AES算法的仿真

用Xilinx ISE Simulator分別對加密模塊與解密模塊進行功能仿真,加密模塊功能仿真結果如圖 2所示,其輸入明文是dat_in[127:0]=128’h8e09e9d2ba 681af3d6d33313bcdb20d3,密鑰是 key[127:0]=128’hfa32bb8cc3c825ad90c45d3ab6980c57,對應的輸出密文是 dat_out[127:0]=128’h1468974803d64bcc89bcf 0ad7b28a454。

將加密后的結果進行解密,把加密輸出的子密鑰作為解密的初始密鑰,解密模塊功能仿真結果如圖 3所示,輸入密鑰是:inv_key[127:0]=128’h3fdf0ed cabe54f56c60a5337984d34df。解密后的結果:dat_out=128’h8e09e9d2ba681af3d6d33313bcdb20d3,與輸入的明文比較結果相同,驗證成功。

圖2 加密結果信號功能仿真

圖3 解密結果信號功能仿真

4 結語

文中加密算法的實現采用賽靈思(Xilinx)公司的Spartan6系列的XC6SLX16芯片作為器件,在ISE 13.1軟件平臺下對AES算法verilog HDL代碼進行編譯、綜合、仿真。在加密密鑰與解密密鑰不同,但相關的情況下,經過多次調試仿真后,驗證該算法正確性。

[1] 何德彪,胡進,陳建華.基于 FPGA的高速 AES實現[J].華中科技大學學報,2010(02):101-103.

[2] 楊軍,張偉平,趙嘎,等.面向 SOPC的 FPGA設計與應用[M].北京:科學出版社,2012:177-188.

[3] 嚴迎健,任方,付小兵,等.基于 NIOSII的語音加密傳輸系統設計[J].電子技術應用,2009(09):61-6.

[4] 宋軍輝.基于選進加密標準(AES)算法的加密芯片設計[D].南京:南京理工大學,2004.

[5] 黃前山,季曉勇.基于低成本 FPGA的 AES密碼算法設計[J].通信技術,2010,43(09):156-158.

[6] 高帥娜.基于 FPGA的數據加密設備的設計[D].大連:大連海事大學,2012.

主站蜘蛛池模板: 狠狠色成人综合首页| 国产91线观看| 日韩av无码DVD| 欧美爱爱网| 亚洲日韩国产精品无码专区| 国产精品永久久久久| 福利国产在线| 亚洲永久视频| 幺女国产一级毛片| 国产欧美专区在线观看| 国产免费a级片| 在线观看国产黄色| 国产精品一区二区不卡的视频| 亚洲精品欧美日韩在线| 找国产毛片看| 在线欧美一区| 亚洲精品午夜天堂网页| 黄色免费在线网址| 国产欧美在线观看一区| 57pao国产成视频免费播放| 免费人欧美成又黄又爽的视频| 香蕉视频国产精品人| 国产欧美亚洲精品第3页在线| 亚洲精品欧美日本中文字幕| 国产在线小视频| 免费毛片网站在线观看| 亚洲无码91视频| 国产流白浆视频| 中文字幕va| 国产日韩欧美一区二区三区在线| 久久国产精品麻豆系列| 国产特级毛片| 久草热视频在线| AV不卡国产在线观看| www.精品国产| 少妇人妻无码首页| 欧美一级高清免费a| 成年人国产网站| 91视频日本| 亚洲天堂福利视频| 97视频精品全国免费观看| 国产视频自拍一区| 中文成人在线视频| 婷婷成人综合| 国产白浆一区二区三区视频在线| av一区二区三区在线观看| 亚洲无码视频一区二区三区| 青青青亚洲精品国产| 狠狠做深爱婷婷综合一区| 中文字幕亚洲另类天堂| 欧美成人区| 免费在线视频a| 米奇精品一区二区三区| 第一区免费在线观看| 国产丝袜91| 日韩区欧美区| 美女无遮挡被啪啪到高潮免费| 亚洲成av人无码综合在线观看| 天堂亚洲网| 喷潮白浆直流在线播放| 国产成人久久777777| 国内自拍久第一页| 美女潮喷出白浆在线观看视频| 亚洲色无码专线精品观看| 特级欧美视频aaaaaa| 亚洲一区毛片| 国产精品三级专区| 91精品综合| 成人一区专区在线观看| 综1合AV在线播放| 久久久久亚洲AV成人网站软件| 国产午夜精品一区二区三| 国产最爽的乱婬视频国语对白| 爆乳熟妇一区二区三区| 精品国产免费观看| 精品视频一区在线观看| 这里只有精品国产| 毛片免费试看| 国产农村妇女精品一二区| 四虎永久免费地址| av在线人妻熟妇| 国产女人综合久久精品视|