果冻传媒高清在线播放_黑人巨茎大战椎名由奈_女人毛片视频_高中生喷水喷浆 - 成人国产精品

歡迎來到通信人在線![用戶登錄] [免費注冊]

高級加密標(biāo)準(zhǔn)(AES)介紹

瀏覽:8503  來源:通信人在線  日期:2017-10-19

高級加密標(biāo)準(zhǔn)(AESadvanced encryption standard)是美國的商用標(biāo)準(zhǔn)。20011126日公布的AES加密標(biāo)準(zhǔn)文本替代了已使用20多年的數(shù)據(jù)加密標(biāo)準(zhǔn)(DES,data encryption standard)。

一、概述

1、AES的產(chǎn)生背景:1996年美國國家標(biāo)準(zhǔn)技術(shù)協(xié)會(NIST)開始著手開發(fā)替代DES的新標(biāo)準(zhǔn)--高級加密標(biāo)準(zhǔn)AES。2000102日,對DES繼承的競爭結(jié)束。NIST認(rèn)為由Katholieke大學(xué)的Vincent Rijmen、比利時的Leuven和質(zhì)子世界國際性組織的Joan Daemen聯(lián)合提交的榮代爾(Rijndael)算法是高級加密標(biāo)準(zhǔn)最好的候選者。并于20011126日公布了AES加密標(biāo)準(zhǔn)文本(它是在榮代爾(Rijndael)算法基礎(chǔ)上整理修改而成的)。

DES最初由IBM提出,并在1975年被美國國家標(biāo)準(zhǔn)技術(shù)協(xié)會作為標(biāo)準(zhǔn),從1977年開始,DES已經(jīng)經(jīng)歷了每一個有抱負(fù)密碼分析專家的攻擊。隨著計算機技術(shù)的快速發(fā)展,對DES執(zhí)行一次蠻力攻擊所需要的時間也愈來愈短,并且到20世紀(jì)末,大約用5天就能把它破譯。很明顯,作為安全裝置的DES的生命已經(jīng)結(jié)束。作為延長DES使用壽命的一種方法,三倍的DES通過使用兩倍或三倍56比特密鑰稍微改進這種情況,但是三倍的DES速度非常慢。

比較DESAES可以發(fā)現(xiàn),DES使用的密鑰長度為56比特,AES用的密鑰長度為128比特。后者提供更高的安全性,能抵御蠻力攻擊,并且存在擴充的可能,它能支持256比特的密鑰長度。AES算法是分組密碼,并且能夠在一個廣泛的應(yīng)用中使用硬件和軟件實現(xiàn),如smart卡、門陣列器件、FPGAPC軟件。這個能力也是AES算法超過競爭者的一個特征。

對于DES的懷疑,刺激了密碼工業(yè)產(chǎn)生多種可供選擇的算法,而人們感興趣的是AES所產(chǎn)生的影響。因為新標(biāo)準(zhǔn)應(yīng)用于市場需要一段時間,所以使密碼工業(yè)處于暫時的休止?fàn)顟B(tài)。無可置疑,這加劇了安全市場的競爭。高級加密標(biāo)準(zhǔn)AES的確立,使美國有了支持電子商務(wù)發(fā)展的關(guān)鍵性安全工具,其電子商務(wù)和政務(wù)將更加安全保密。

2、AES的優(yōu)勢和限制

1AES的優(yōu)勢:由于Rijndael算法總體上存在下列優(yōu)勢,因此它成為高級加密標(biāo)準(zhǔn)AES:一是對稱和平行的結(jié)構(gòu),給實現(xiàn)者許多適應(yīng)性;不存在有效的密碼分析攻擊。二是適合現(xiàn)代計算機處理器,如奔騰、RISC和并行處理器。三是適合smart卡。四是在專用硬件中具有可塑性。下表1-2給出更為具體的說明,主要表現(xiàn)在實現(xiàn)方面、設(shè)計的簡化、可變的分組長度和可擴充性等。

1-2AES的優(yōu)勢

2)限制:密碼的限制主要表現(xiàn)在其逆向情況。①逆向密碼不如密碼更適合在smart卡上實現(xiàn),它需要更多的代碼和周期(盡管如此,和其他密碼相比較,逆向密碼的處理速度還是非常快的)。 ②在軟件中,密碼和它的逆向密碼使用不同的代碼和/或表。③在硬件中,逆向密碼僅僅能夠使用密碼實現(xiàn)中的一部分電路。

二、定義

1、術(shù)語和縮寫詞表:下表2-1的解釋貫穿在AES標(biāo)準(zhǔn)中。

2-1:術(shù)語和縮寫詞及解釋

2、算法參數(shù)、符號和函數(shù):下表2-2的算法參數(shù)、符號和函數(shù)貫穿在AES標(biāo)準(zhǔn)中。

2-2:算法參數(shù)、符號、函數(shù)及其解釋

三、符號和約定

AES標(biāo)準(zhǔn)中使用的符號和約定,包括輸入和輸出、字節(jié)、字節(jié)的數(shù)組、狀態(tài)和作為列數(shù)組的狀態(tài)。

1、輸入和輸出:AES算法的每一個輸入和輸出是由128比特(值為01)序列組成的。這個序列有時稱作塊或分組,它們包含的比特數(shù)目稱作分組長度。對于AES算法的密碼密鑰是含有128比特、192比特或256比特的序列。其他的輸入、輸出和密碼密鑰長度在這個標(biāo)準(zhǔn)中是不允許的。

序列中的比特編號從0開始,結(jié)尾處的編號值小于序列長度(分組長度或密鑰長度)。附加的一個比特的號碼i是它的指針,i的變化范圍依賴于分組長度和密鑰長度,即i的范圍如下:

0i128,0i1920i256

2、字節(jié):AES算法中,基本的處理單位是字節(jié)(byte),一個8比特的序列作為一個單一處理的實體。上述的輸入、輸出和密碼密鑰比特序列是作為字節(jié)的數(shù)組處理的,在構(gòu)成字節(jié)的數(shù)組時(下述),把比特序列中每8個相鄰的比特分劃成一組,構(gòu)成一個字節(jié)。當(dāng)一個輸入、輸出或密碼密鑰用字符a表示時,那么得到的字節(jié)數(shù)組可以表示成ana[n],其中n的范圍詳細(xì)見下表3-2-1。

3-2-1:密鑰長度與n的范圍

AES算法中,所有字節(jié)值可表示在大括號內(nèi),按由高至低位次序方式排列{b7b6b5b4 b3b2b1b0}。這些字節(jié)認(rèn)為是有限域的元素,因此可以用下面的多項式表示:

b7x7+b6 x6+b5x5+b4x4+b3 x3+b2 x2+b1x1+b0=bixi

例如,由{01100011}可以確定一個特殊的有限域的元素為x6+x5+x+1。為方便起見,用十六進制符號表示字節(jié)值,也就是把兩個4比特組分別用表3-2-2所示的單一字符表示。

3-2-2:比特模式的十六進制表示

例如元素{01100011}能夠表示為{63},其中每一個字符表示一個4比特組。一些有限域的操作包含一個位于8比特字節(jié)左側(cè)的附加比特(b8)。當(dāng)存在這個額外的比特時,可以作為‘{01}’添加到前述8比特字節(jié)的左側(cè)。例如,一個9比特序列將可表示為{01}{1b}。

3、字節(jié)的數(shù)組:字節(jié)的數(shù)組形式如下:a0a1a2a15

字節(jié)和字節(jié)內(nèi)部的比特排序是由下面的128比特輸入序列得到的:

input0input1input2input126 input127

按照下列順序確定字節(jié)和字節(jié)內(nèi)部的比特排序:

a0=input0input1input7};a1=input8input9input15};…;a15=input120input121input127

上述表示的模式能夠延伸到更長的序列(也就是對于192比特和256比特密鑰的情況),因而一般可表示為:

                        an=input8ninput8n+1input8n+7

根據(jù)符號和約定組合起來考慮,可以得到在每一個范圍內(nèi)比特的編號方法,如表3-3所示。

3-3:對于字節(jié)及比特的指針

4、狀態(tài):狀態(tài)是AES密碼的中間結(jié)果,AES算法的操作都是在狀態(tài)上完成的。狀態(tài)由4行字節(jié)組成,每行包含Nb字節(jié),其中Nb等于分組長度除以32。在用符號s表示狀態(tài)數(shù)組時,每個字節(jié)有兩個指針,一個是它所在的行數(shù)r,范圍為0r<4;另一個是它的列數(shù)c,范圍為0c<Nb。狀態(tài)的每個字節(jié)可以表示為Sr,csr,c]。對于這個標(biāo)準(zhǔn),Nb=4,也就是0r<4

在密碼和逆向密碼開始時,字節(jié)的輸人數(shù)組in0in1,…in15要復(fù)制到如圖3-4所示的狀態(tài)數(shù)組中。然后,密碼或逆向密碼操作在這個狀態(tài)數(shù)組上進行,在它達到最終值后,要復(fù)制到輸出字節(jié)數(shù)組out0out1 out15中。因此,在密碼或逆向密碼開始時,輸入數(shù)組in按照下列形式復(fù)制到狀態(tài)數(shù)組:

sr,c= inr+4c],0r40cNb

并在密碼和逆向密碼結(jié)束時,狀態(tài)數(shù)組按照下列形式復(fù)制到輸出數(shù)組:

outr+4c]=sr,c],0r40cNb

3-4:狀態(tài)數(shù)組的輸入和輸出

5、作為列數(shù)組的狀態(tài):狀態(tài)數(shù)組的每一列的4個字節(jié)構(gòu)成一個32比特字,在每個32比特字范圍內(nèi)的4個字節(jié)可以用其所在行數(shù)r作為指針來加以區(qū)分。因此,可以認(rèn)為狀態(tài)是由32比特字(列)構(gòu)成的一維數(shù)組,即為w0,w1,w2,w3,其中列數(shù)c提供這個數(shù)組的指針。對于圖3-4所示的例子,可以認(rèn)為狀態(tài)是4個字的數(shù)組,其形式如下所示:

w0=s0,0s1,0s2,0s3,0;w1=s0,1s1,1s2,1s3,1w2=s0,2s1,2s2,2s3,2w3=s0,3s1,3s2,3s3,3

四、關(guān)于Rijndael算法

1、Rijndael加密Rijndael是一個密鑰迭代分組密碼,包含了輪變換對狀態(tài)的重復(fù)作用。輪數(shù)Nr 的值取決于分組和密鑰的長度。對于AES,當(dāng)密鑰長度為128比特時,Nr=10;當(dāng)密鑰長度為192比特時,Nr=12;當(dāng)密鑰長度為256比特時,Nr =14。它包括一個初始密鑰加法,記作AddRoundKey,接著進行Nr-1次輪變換(Round),最后再使用一個輪變換(FinalRound)。輪變換由4個步驟組成:SubBytes,ShiftRows,MixColumnsAddRoundKey。最后一輪與前Nr -1次輪變換稍有不同,省掉了其中的MixColumns步驟。這四個步驟的含義詳見下表4-1。

4-1:輪變換由4個步驟的含義

2、Rijndael解密Rijndael解密算法有2種形式。一種是直接解密算法,即直接利用步驟InsubBytes,InvShiftRowsInvMixColumnsAddRoundKey的逆并倒置其次序?qū)?shù)據(jù)進行解密。另一種是等價解密算法。等價解密算法有利于有效實現(xiàn)良好的運算次序。

欲更多了解關(guān)于信息安全技術(shù)知識的請進入。

聯(lián)合國兒童基金會助學(xué)
© 2004-2025 通信人在線 版權(quán)所有 備案號:粵ICP備06113876號 網(wǎng)站技術(shù):做網(wǎng)站