国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺析AES加密算法

2009-07-16 09:33
新媒體研究 2009年8期
關(guān)鍵詞:加密算法軟件設(shè)計(jì)背景

甘 佺

[摘要]當(dāng)代主流加密算法AES的研究背景,算法簡(jiǎn)介和具體實(shí)現(xiàn)方法,包括對(duì)AES標(biāo)準(zhǔn)中運(yùn)行時(shí)間過長(zhǎng)的函數(shù)進(jìn)行優(yōu)化,和WINDOWS下AES軟件開發(fā)的簡(jiǎn)介。

[關(guān)鍵詞]AES 加密算法 背景 算法實(shí)現(xiàn) 程序優(yōu)化 軟件設(shè)計(jì)

中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0420066-01

一、當(dāng)代加密算法AES

(一)AES算法簡(jiǎn)介

AES的全稱是Advanced Encryption Standard,即高級(jí)加密標(biāo)準(zhǔn)。2000年10月,NIST(美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)協(xié)會(huì))宣布通過從15種候選算法中選出的一項(xiàng)新的密匙加密標(biāo)準(zhǔn)。Rijndael被選中成為將來的AES。Rijnda

-el是在1999年下半年,由研究員Joan Daemen和Vincent Rijmen創(chuàng)建的。AES正日益成為加密各種形式的電子數(shù)據(jù)的實(shí)際標(biāo)準(zhǔn)。

高級(jí)加密標(biāo)準(zhǔn)(AES)是美國(guó)標(biāo)準(zhǔn)與技術(shù)研究院針對(duì)電子數(shù)據(jù)的加密所制定的規(guī)范,它將要成為公認(rèn)的數(shù)字信息(包括財(cái)務(wù)數(shù)據(jù)、電信數(shù)據(jù)和政府?dāng)?shù)據(jù))加密方法。AES是一種可用來保護(hù)電子數(shù)據(jù)的新型加密算法??梢允褂?28、192和256位密鑰的迭代式對(duì)稱密鑰塊密碼,并且可以對(duì)128位(16個(gè)字節(jié))的數(shù)據(jù)塊進(jìn)行加密和解密。

(二)AES在現(xiàn)實(shí)中的應(yīng)用

AES算法標(biāo)準(zhǔn)給出了數(shù)學(xué)說明以及部分程序偽碼,但是程序運(yùn)行效率較低,無法達(dá)到實(shí)際應(yīng)用要求。同時(shí)改進(jìn)后的程序普遍涉及到版權(quán)問題,無法在實(shí)際開發(fā)中直接使用。盡管如此在程序人員對(duì)AES程序進(jìn)行自主改進(jìn)后,AES作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)的優(yōu)點(diǎn),強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn)就完全體現(xiàn)出來,因此AES加密算法成為美國(guó)乃至世界新的數(shù)據(jù)加密標(biāo)準(zhǔn)而被廣泛應(yīng)用在各個(gè)領(lǐng)域。

二、AES加密算法的實(shí)現(xiàn)

(一)系統(tǒng)結(jié)構(gòu)

系統(tǒng)結(jié)構(gòu)的文字描述:AES加密算法包括加密和解密2大部分,加密部分具體實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密和參數(shù)文件的生成,解密部分具體實(shí)現(xiàn)對(duì)已加密文件的解密和參數(shù)文件的刪除,具體實(shí)現(xiàn)過程較為復(fù)雜,在AES的標(biāo)準(zhǔn)式樣書中可以查看具體實(shí)現(xiàn)文檔,由于篇幅原因本文只詳細(xì)介紹在實(shí)現(xiàn)中應(yīng)用AES加密算法最重要的優(yōu)化部分。

(二)AES加密算法的優(yōu)化

優(yōu)化原因:按照AES算法的理論設(shè)計(jì)的,在實(shí)際的應(yīng)用中運(yùn)行速度慢,加密10M的文件需要幾十秒的時(shí)間,無法達(dá)到實(shí)際應(yīng)用的要求。所以需要針對(duì)標(biāo)準(zhǔn)算法進(jìn)行優(yōu)化。

優(yōu)化方法:1.將所有的乘除運(yùn)算轉(zhuǎn)換為位運(yùn)算,例如,A*16可以轉(zhuǎn)換為將A左移4位。這種方法根據(jù)客戶的測(cè)試的結(jié)論,可以提高50%的運(yùn)行速度。2.修改加密的算法的邏輯,將其中最耗時(shí)的MixColumns函數(shù)改進(jìn)。具體的方法是簡(jiǎn)化MixColumns函數(shù)中進(jìn)行的矩陣運(yùn)算。把矩陣運(yùn)算先計(jì)算出來,以數(shù)組方式直接在頭文件中定義,在運(yùn)算時(shí)直接使用這個(gè)數(shù)組。同時(shí),為使用預(yù)先計(jì)算的數(shù)組,需要將四個(gè)函數(shù)的算法統(tǒng)一編寫,形成新的程序結(jié)構(gòu)。

MixColumns函數(shù)代碼如下:

void MixColumns(word8 a[4][MAXBC])

/*Mix the four bytes of every column in a linear way*/

word8 b[4][MAXBC];

int i,j;

for(j=0;j

for(i=0;i<4;i++)

b[i][j] = mul(2,a[i][j])

^ mul(3,a[(i+1) % 4][j])

^ a[(i+2) % 4][j]

^ a[(i+3) % 4][j];

for(i=0;i<4;i++)

for(j=0;j

a[i][j] = b[i][j];

}

此代碼運(yùn)行時(shí)間過長(zhǎng),先將此矩陣結(jié)果算出后能大大縮短程序運(yùn)行時(shí)間,改進(jìn)后代碼由于篇幅過長(zhǎng)無法詳細(xì)列舉。

(三)基于WINDOWS操作系統(tǒng)的AES加密軟件設(shè)計(jì)

1.開發(fā)環(huán)境。參數(shù)文件生成程序:運(yùn)行環(huán)境為Windows XP操作系統(tǒng)。使用MSC開發(fā),可以使用MFC,程序要求可以在未安裝VC++的系統(tǒng)中運(yùn)行。解密程序:運(yùn)行環(huán)境為Cygwin。使用ANSI C開發(fā),使用GCC編譯。

2.參數(shù)文件的定義

AES加密算法中的參數(shù)文件使用文本形式,主要包含內(nèi)容有:

(1)密鑰長(zhǎng)度:AES提供128、192和256三種密鑰長(zhǎng)度可任意選擇。

(2)密鑰生成方式:有DEFAULT、FILE或INPUT三種方式生成密鑰,DEFAULT表示默認(rèn)方法,F(xiàn)ILE表示通過哈希算法生成密鑰,INPUT表示通過用戶自己輸入密鑰。

(3)保存密鑰:密鑰生成后保存在參數(shù)文件中。(如果是FILE方式生成密鑰則保存密鑰路徑)。

(4)輸入路徑:待加密文件路徑。

(5)輸出路徑:加密后文件輸出路徑。

3.詳細(xì)式樣設(shè)計(jì)

(1)加密部分:加密部分主要包含、密鑰生成、密鑰長(zhǎng)度選擇、參數(shù)文件生成路徑、輸出和輸入路徑等等。

①密鑰長(zhǎng)度指定,可以建立一個(gè)下拉菜單,設(shè)置128、192和256三種選項(xiàng)。②密鑰生成:有三項(xiàng)選擇具體為默認(rèn)密鑰生成;用哈希算法產(chǎn)生的密鑰文件作為密鑰;用戶隨機(jī)輸入密鑰。③輸出輸入路徑設(shè)置:輸入路徑為待加密文件路徑,輸出路徑為文件加密后生成的加密文件保存路徑,可以設(shè)置默認(rèn)項(xiàng),也可以由用戶自己設(shè)置。④參數(shù)文件指定:生成參數(shù)文件的保存路徑。

(2)解密部分:解密部分包含密鑰輸入、參數(shù)文件調(diào)用、待解密文件輸入、解密文件輸出等。

①密鑰輸入可以選擇默認(rèn)密鑰和用戶自己輸入加密時(shí)密鑰,還可以放棄輸入密鑰直接調(diào)用參數(shù)文件。②參數(shù)文件調(diào)用:調(diào)用和待解密文件相匹配的參數(shù)文件,參數(shù)文件包含通過哈希算法計(jì)算出來的密鑰,待解密文件路徑等。③路徑選擇:包括待解密文件路徑(如果不輸入路徑可以直接輸入文件名);輸出路徑為文件解密完成后的輸出

路徑。④解密完成后參數(shù)文件會(huì)被刪除。

三、結(jié)論

AES加密算法已經(jīng)在現(xiàn)實(shí)中得到了廣泛的應(yīng)用,學(xué)習(xí)AES加密算法的編程能讓你更加了解當(dāng)代加密算法的具體形式與邏輯,正是因?yàn)锳ES加密算法這樣的為保護(hù)信息安全軟件的產(chǎn)生才能讓IT技術(shù)更加健康的向前發(fā)展,在電子交易,寬帶通信,信息傳輸?shù)鹊确矫娑加蠥ES加密算法的影子,本文已較小的篇幅從幾個(gè)方面簡(jiǎn)單地分析了AES加密算法,介紹了AES在WINDOWS下的軟件編寫和詳細(xì)的式樣分析,從幾個(gè)方面簡(jiǎn)單的分析了AES加密算法。

猜你喜歡
加密算法軟件設(shè)計(jì)背景
等腰直角三角形背景下的旋轉(zhuǎn)相似
比大小,想背景,悟本質(zhì)
跟蹤導(dǎo)練(一)5
教育云平臺(tái)的敏感信息保護(hù)技術(shù)研究
基于STM8S903K3的序列打螺絲夾具的軟件設(shè)計(jì)
一種VHDL語(yǔ)言代碼重用的方法
一種改進(jìn)的加密算法在空調(diào)群控系統(tǒng)中的研究與實(shí)現(xiàn)
基于Jave的AES加密算法的實(shí)現(xiàn)
基于Modelica的高爐頂壓控制仿真
AES加密算法的實(shí)現(xiàn)及應(yīng)用