国产不卡在线观看视频_日本高清久久_天天操天天干天天摸_一区二区三区视频在线

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

高級加密標準(AES)介紹

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

高級加密標準(AES,advanced encryption standard)是美國的商用標準。20011126日公布的AES加密標準文本替代了已使用20多年的數據加密標準(DESdata encryption standard)。

一、概述

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

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

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

對于DES的懷疑,刺激了密碼工業產生多種可供選擇的算法,而人們感興趣的是AES所產生的影響。因為新標準應用于市場需要一段時間,所以使密碼工業處于暫時的休止狀態。無可置疑,這加劇了安全市場的競爭。高級加密標準AES的確立,使美國有了支持電子商務發展的關鍵性安全工具,其電子商務和政務將更加安全保密。

2AES的優勢和限制

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

1-2AES的優勢

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

二、定義

1、術語和縮寫詞表:下表2-1的解釋貫穿在AES標準中。

2-1:術語和縮寫詞及解釋

2、算法參數、符號和函數:下表2-2的算法參數、符號和函數貫穿在AES標準中。

2-2:算法參數、符號、函數及其解釋

三、符號和約定

AES標準中使用的符號和約定,包括輸入和輸出、字節、字節的數組、狀態和作為列數組的狀態。

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

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

0i1280i1920i256

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

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

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

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

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

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

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

3、字節的數組:字節的數組形式如下:a0a1a2a15

字節和字節內部的比特排序是由下面的128比特輸入序列得到的:

input0input1input2input126 input127

按照下列順序確定字節和字節內部的比特排序:

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

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

                        an=input8ninput8n+1input8n+7

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

3-3:對于字節及比特的指針

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

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

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

并在密碼和逆向密碼結束時,狀態數組按照下列形式復制到輸出數組:

outr+4c]=src],0r40cNb

3-4:狀態數組的輸入和輸出

5、作為列數組的狀態:狀態數組的每一列的4個字節構成一個32比特字,在每個32比特字范圍內的4個字節可以用其所在行數r作為指針來加以區分。因此,可以認為狀態是由32比特字(列)構成的一維數組,即為w0,w1w2w3,其中列數c提供這個數組的指針。對于圖3-4所示的例子,可以認為狀態是4個字的數組,其形式如下所示:

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

四、關于Rijndael算法

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

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

2Rijndael解密Rijndael解密算法有2種形式。一種是直接解密算法,即直接利用步驟InsubBytes,InvShiftRowsInvMixColumnsAddRoundKey的逆并倒置其次序對數據進行解密。另一種是等價解密算法。等價解密算法有利于有效實現良好的運算次序。

欲更多了解關于信息安全技術知識的請進入。

聯合國兒童基金會助學
© 2004-2025 通信人在線 版權所有 備案號:粵ICP備06113876號 網站技術:做網站