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

AES密碼算法的FPGA實(shí)現(xiàn)與仿真﹡

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

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

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

0 引言

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

1 AES算法描述

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

2 AES算法的實(shí)現(xiàn)

2.1 AES算法的整體設(shè)計(jì)

該設(shè)計(jì)的整體內(nèi)部結(jié)構(gòu)框圖如圖1所示,該結(jié)構(gòu)由加密模塊、解密模塊、控制模塊、FIFO組成。其中AES加密模塊包括字節(jié)替換模塊(SubBytes)、行移位模塊(ShiftRows)、列混合模塊(MixColumns)、輪密鑰異或模塊(AddRoundKey);解密模塊包括逆字節(jié)替換模塊(invSubBytes)、逆行移位模塊(invShiftRows)、逆列混合模塊(invMixColumns)、逆輪密鑰異或模塊(invAddRoundKey)。加密過程的數(shù)據(jù)流向?yàn)椋菏紫让魑臄?shù)據(jù)通過數(shù)據(jù)總線寫入16位入128位出的FIFO緩存;然后由控制模塊啟動(dòng)AES加密模塊進(jìn)行一次加密運(yùn)算;運(yùn)算完成輸出128 bit密文存入128位入16出的FIFO中。解密過程與其相同。

圖1 整體內(nèi)部結(jié)構(gòu)框

2.2 加密模塊和解密模塊設(shè)計(jì)

2.2.1 字節(jié)替換和逆字節(jié)替換的實(shí)現(xiàn)

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

case (a)

8’h00: o=8’h63;

8’h01: o=8’h7c;

......

8’hff: o=8’h16;

2.2.2 行移位模塊與逆行移位模塊的實(shí)現(xiàn)

把行移位的結(jié)果狀態(tài)矩陣State的第一行不變,其余的三行依次循環(huán)左移一個(gè)字節(jié)、兩個(gè)字節(jié)、三個(gè)字節(jié),變換如式(1)所示。逆行移位模塊是行移位的逆變換,即各行進(jìn)行循環(huán)右移。

2.2.3 列混合變換與逆列混合變換的實(shí)現(xiàn)

列混合變換是利用矩陣乘法做位元變換。列混合變換將行移位的變換結(jié)果的狀態(tài)列看作是有限域上的次數(shù)小于 4的多項(xiàng)式 s(x)[6]與多項(xiàng)式進(jìn)行模x4+1相乘運(yùn)算。令,用矩陣乘法表示(矩陣元素用十六進(jìn)制表示)如式(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 加密與解密密鑰擴(kuò)展模塊

密鑰擴(kuò)展作用是負(fù)責(zé)產(chǎn)生各輪操作所需要的子密鑰,它控制著整個(gè)算法的效率。因?yàn)槊恳惠喿儞Q都要和相應(yīng)密鑰擴(kuò)展生產(chǎn)的子密鑰進(jìn)行異或運(yùn)算。加密運(yùn)算采用的是內(nèi)部擴(kuò)展,即加密運(yùn)算與加密密鑰擴(kuò)展運(yùn)算是同步的,但是與解密不能同步,因?yàn)榻饷苓\(yùn)算使用的初始密鑰是加密密鑰擴(kuò)展模塊生產(chǎn)的最后一輪子密鑰。通過構(gòu)造不同的加密密鑰擴(kuò)展算法與解密密鑰擴(kuò)展算法,使得采用不同初始密鑰實(shí)現(xiàn)數(shù)據(jù)的加密和解密。

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

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

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

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

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));

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

解密密鑰擴(kuò)展模塊的部分代碼是:

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分別對(duì)加密模塊與解密模塊進(jìn)行功能仿真,加密模塊功能仿真結(jié)果如圖 2所示,其輸入明文是dat_in[127:0]=128’h8e09e9d2ba 681af3d6d33313bcdb20d3,密鑰是 key[127:0]=128’hfa32bb8cc3c825ad90c45d3ab6980c57,對(duì)應(yīng)的輸出密文是 dat_out[127:0]=128’h1468974803d64bcc89bcf 0ad7b28a454。

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

圖2 加密結(jié)果信號(hào)功能仿真

圖3 解密結(jié)果信號(hào)功能仿真

4 結(jié)語

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

[1] 何德彪,胡進(jìn),陳建華.基于 FPGA的高速 AES實(shí)現(xiàn)[J].華中科技大學(xué)學(xué)報(bào),2010(02):101-103.

[2] 楊軍,張偉平,趙嘎,等.面向 SOPC的 FPGA設(shè)計(jì)與應(yīng)用[M].北京:科學(xué)出版社,2012:177-188.

[3] 嚴(yán)迎健,任方,付小兵,等.基于 NIOSII的語音加密傳輸系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009(09):61-6.

[4] 宋軍輝.基于選進(jìn)加密標(biāo)準(zhǔn)(AES)算法的加密芯片設(shè)計(jì)[D].南京:南京理工大學(xué),2004.

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

[6] 高帥娜.基于 FPGA的數(shù)據(jù)加密設(shè)備的設(shè)計(jì)[D].大連:大連海事大學(xué),2012.

主站蜘蛛池模板: 亚洲国产成人自拍| 又爽又黄又无遮挡网站| 在线观看免费黄色网址| 在线欧美日韩国产| 日本草草视频在线观看| 一本视频精品中文字幕| 国产精品亚洲va在线观看| 九九精品在线观看| www.精品国产| 精品久久久无码专区中文字幕| 日韩中文无码av超清| 国产成人精品在线1区| 亚洲无码在线午夜电影| 欧美一区二区啪啪| 全裸无码专区| 最新国语自产精品视频在| 亚洲欧洲日韩综合| 国产爽爽视频| 中文纯内无码H| 久久人午夜亚洲精品无码区| 亚洲天堂.com| 亚洲色欲色欲www在线观看| 日韩东京热无码人妻| 天堂在线www网亚洲| 丰满少妇αⅴ无码区| 在线网站18禁| 久久国产香蕉| 国产色网站| 九色视频最新网址 | 亚洲av综合网| 91青青视频| 亚洲色图欧美在线| 国产性生大片免费观看性欧美| 欧美日韩激情| 欧洲日本亚洲中文字幕| 毛片三级在线观看| 男女男免费视频网站国产| 综合五月天网| 欧美激情视频一区| 狠狠干综合| 日韩欧美国产精品| 毛片视频网| 99久久免费精品特色大片| 国产尤物视频在线| 久久99国产视频| 国产精品任我爽爆在线播放6080 | 国产91高清视频| 久久精品亚洲中文字幕乱码| 在线视频亚洲欧美| 国产精品成| 精品国产乱码久久久久久一区二区| 国产国产人在线成免费视频狼人色| 91亚洲免费视频| 日韩天堂在线观看| 91成人免费观看| 91精品小视频| 国产自在线播放| 亚洲精品国产日韩无码AV永久免费网| 中文字幕无线码一区| 国产成人久久综合一区| 91午夜福利在线观看| 在线国产欧美| 麻豆精品在线| 久久亚洲中文字幕精品一区 | 日本午夜三级| 欧美亚洲另类在线观看| 国内熟女少妇一线天| 91免费片| 波多野结衣中文字幕一区二区 | 欧美国产在线一区| 日韩高清成人| 久久国产乱子| 91网址在线播放| 一级做a爰片久久免费| 91精品啪在线观看国产| 久久福利网| 日韩在线观看网站| 视频二区国产精品职场同事| 在线a网站| 国产综合精品日本亚洲777| 亚洲国内精品自在自线官| 国产精欧美一区二区三区|