Can you summarize the following document?
        
  Rijndael是由Daemen和Rijmen早期所設計的Square改良而來;而Square則是由SHARK發展而來。  不同於它的前任標準DES,Rijndael使用的是代換-置換網路,而非Feistel架構。

  嚴格地說,AES和Rijndael加密法並不完全一樣(雖然在實際應用中兩者可以互換),因為Rijndael加密法可以支援更大範圍的區塊和金鑰長度:AES的區塊長度固定為128位元,金鑰長度則可以是128,192或256位元;而Rijndael使用的金鑰和區塊長度均可以是128,192或256位元。加密過程中使用的金鑰是由Rijndael金鑰生成方案產生。  大多數AES計算是在一個特別的有限域完成的。  AES加密過程是在一個4×4的位元組矩陣上運作,這個矩陣又稱為「體(state)」,其初值就是一個明文區塊(矩陣中一個元素大小就是明文區塊中的一個Byte)。(Rijndael加密法因支援更大的區塊,其矩陣的「列數(Row number)」可視情況增加)加密時,各輪AES加密迴圈(除最後一輪外)均包含4個步驟:

  AddRoundKey步驟,回合金鑰將會與原矩陣合併。在每次的加密迴圈中,都會由主金鑰產生一把回合金鑰(透過Rijndael金鑰生成方案產生),這把金鑰大小會跟原矩陣一樣,以與原矩陣中每個對應的位元組作異或(⊕)加法。

  在SubBytes步驟中,矩陣中的各位元組透過一個8位元的S-box進行轉換。這個步驟提供了加密法非線性的變換能力。S-box與formula_1上的乘法反元素有關,已知具有良好的非線性特性。為了避免簡單代數性質的攻擊,S-box結合了乘法反元素及一個可逆的仿射變換矩陣建構而成。此外在建構S-box時,刻意避開了固定點與反固定點,即以S-box替換位元組的結果會相當於錯排的結果。此條目有針對S-box的詳細描述:Rijndael S-box

  ShiftRows描述矩陣的列操作。在此步驟中,每一列都向左迴圈位移某個偏移量。在AES中(區塊大小128位元),第一列維持不變,第二列裡的每個位元組都向左迴圈移動一格。同理,第三列及第四列向左迴圈位移的偏移量就分別是2和3。128位元和192位元的區塊在此步驟的迴圈位移的模式相同。經過ShiftRows之後,矩陣中每一豎行,都是由輸入矩陣中的每個不同行中的元素組成。Rijndael演算法的版本中,偏移量和AES有少許不同;對於長度256位元的區塊,第一列仍然維持不變,第二列、第三列、第四列的偏移量分別是1位元組、2位元組、3位元組。除此之外,ShiftRows操作步驟在Rijndael和AES中完全相同。

  在MixColumns步驟,每一行的四個位元組透過線性變換互相結合。每一行的四個元素分別當作formula_2的係數,合併即為formula_1中的一個多項式,接著將此多項式和一個固定的多項式formula_4在模formula_5下相乘。此步驟亦可視為Rijndael有限域之下的矩陣乘法。MixColumns函式接受4個位元組的輸入,輸出4個位元組,每一個輸入的位元組都會對輸出的四個位元組造成影響。因此ShiftRows和MixColumns兩步驟為這個密碼系統提供了擴散性。 以下條目有對MixColumns更加詳細的描述:Rijndael mix columns

  使用32或更多位元定址的系統,可以事先對所有可能的輸入建立對應表,利用查表來實作SubBytes,ShiftRows和MixColumns步驟以達到加速的效果。這麼作需要產生4個表,每個表都有256個格子,一個格子記載32位元的輸出;約佔去4KB(4096位元組)記憶體空間,即每個表佔去1KB的記憶體空間。如此一來,在每個加密迴圈中,只需要查16次表,作12次32位元的XOR運算,以及AddRoundKey步驟中4次32位元XOR運算。若使用的平臺記憶體空間不足4KB,也可以利用迴圈交換的方式一次查一個256格32位元的表。  然而,實際實作中應避免使用這樣的對應表,否則可能因為產生快取命中與否的差別而使旁道攻擊成為可能。

  截至2006年,針對AES唯一的成功攻擊是旁道攻擊或社會工程學攻擊。美國國家安全域性稽核了所有的參與競選AES的最終入圍者(包括Rijndael),認為他們均能夠滿足美國政府傳遞非機密檔案的安全需要。2003年6月,美國政府宣佈AES可以用於加密機密檔案:  (譯:AES加密演算法(使用128,192,和256位元金鑰的版本)的安全性,在設計結構及金鑰的長度上俱已到達保護機密資訊的標準。最高機密資訊的傳遞,則至少需要192或256位元的金鑰長度。用以傳遞國家安全資訊的AES實作產品,必須先由國家安全域性稽核認證,方能被髮放使用。)  這標誌著,由美國國家安全域性NSA批准在最高機密資訊上使用的加密系統首次可以被公開使用。許多大眾化產品只使用128位元金鑰當作預設值;由於最高機密檔案的加密系統必須保證數十年以上的安全性,故推測NSA可能認為128位元太短,才以更長的金鑰長度為最高機密的加密保留了安全空間。  通常破解一個區塊加密系統最常見的方式,是先對其較弱版本(加密迴圈次數較少)嘗試各種攻擊。AES中128位元金鑰版本有10個加密迴圈,192位元金鑰版本有12個加密迴圈,256位元金鑰版本則有14個加密迴圈。至2006年為止,最著名的攻擊是針對AES 7次加密迴圈的128位元金鑰版本,8次加密迴圈的192位元金鑰版本,和9次加密迴圈的256位元金鑰版本所作的攻擊。  由於已遭破解的弱版的AES,其加密迴圈數和原本的加密迴圈數相差無幾,有些密碼學家開始擔心AES的安全性:要是有人能將該著名的攻擊加以改進,這個區塊加密系統就會被破解。在密碼學的意義上,只要存在一個方法,比窮舉法還要更有效率,就能被視為一種「破解」。故一個針對AES 128位元金鑰的攻擊若「只」需要2計算複雜度(少於窮舉法 2),128位元金鑰的AES就算被破解了;即便該方法在目前還不實用。從應用的角度來看,這種程度的破解依然太不切實際。最著名的暴力攻擊法是distributed.net針對64位元金鑰RC5所作的攻擊。  其他的爭議則著重於AES的數學結構。不像其他區塊加密系統,AES具有相當井然有序的代數結構。雖然相關的代數攻擊尚未出現,但有許多學者認為,把安全性建立於未經透徹研究過的結構上是有風險的。Ferguson,Schroeppel和Whiting因此寫道:「...我們很擔心Rijndael [AES]演算法應用在機密系統上的安全性。」  2002年,Nicolas Courtois和Josef Pieprzyk發表名為XSL攻擊的理論性攻擊,試圖展示AES一個潛在的弱點。但該攻擊的數學分析有點問題,推測應是作者的計算有誤。因此,這種攻擊法是否對AES奏效,仍是未解之謎。就現階段而言,XSL攻擊AES的效果不十分顯著,故將之應用於實際情況的可能性並不高。

  旁道攻擊,又稱旁路攻擊、側通道攻擊,是一種基於從密碼系統的物理實現中獲取的資訊的攻擊方式。它不攻擊加密演算法本身,而是攻擊那些基於不安全系統(會在不經意間洩漏資訊)上的加密系統。  2005年4月,D.J. Bernstein公佈了一種快取時序攻擊法,他以此破解了一個裝載OpenSSL AES加密系統的客戶伺服器。為了設計使該伺服器公佈所有的時序資訊,攻擊演算法使用了2億多條篩選過的明碼。對於需要多個跳躍的國際網際網路而言,這樣的攻擊方法並不實用。Bruce Schneier稱此攻擊為「好的時序攻擊法」。  2005年10月,Eran Tromer和另外兩個研究員發表了一篇論文,展示了數種針對AES的快取時序攻擊法。
進階加密標準(英語:Advanced Encryption Standard,縮寫:英語:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,進階加密標準由美國國家標準與技術研究院(NIST)於2001年11月26日釋出於FIPS PUB 197,並在2002年5月26日成為有效的標準。現在,進階加密標準已然成為對稱金鑰加密中最流行的演算法之一。