aes演算法原理
AES是分組密鑰,演算法輸入128位數據,密鑰長度也是128位。用Nr表示對一個數據分組加密的輪數(加密輪數與密鑰長度的關系如表1所列)。每一輪都需要一個與輸入分組具有相同長度的擴展密鑰Expandedkey(i)的參與。由於外部輸入的加密密鑰K長度有限,所以在演算法中要用一個密鑰擴展程序(Keyexpansion)把外部密鑰K擴展成更長的比特串,以生成各輪的加密和解密密鑰。
1.1圈變化
AES每一個圈變換由以下三個層組成:
非線性層——進行Subbyte變換;
線行混合層——進行ShiftRow和MixColumn運算;
密鑰加層——進行AddRoundKey運算。
① Subbyte變換是作用在狀態中每個位元組上的一種非線性位元組轉換,可以通過計算出來的S盒進行映射。
② ShiftRow是一個位元組換位。它將狀態中的行按照不同的偏移量進行循環移位,而這個偏移量也是根據Nb的不同而選擇的[3]。
③ 在MixColumn變換中,把狀態中的每一列看作GF(28)上的多項式a(x)與固定多項式c(x)相乘的結果。 b(x)=c(x)*a(x)的系數這樣計算:
*運算不是普通的乘法運算,而是特殊的運算,即 b(x)=c(x)·a(x)(mod x4+1) 對於這個運算 b0=02。a0+03。a1+a2+a3 令xtime(a0)=02。a0
其中,符號「。」表示模一個八次不可約多項式的同餘乘法[3]。
對於逆變化,其矩陣C要改變成相應的D,即b(x)=d(x)*a(x)。
④ 密鑰加層運算(addround)是將圈密鑰狀態中的對應位元組按位「異或」。
⑤ 根據線性變化的性質[1],解密運算是加密變化的逆變化。
B. 簡述aes演算法的加密過程
AES加密過程涉及到 4 種操作,分別是位元組替代、行移位、列混淆和輪密鑰加。
1.位元組替換:位元組代替的主要功能是通過S盒完成一個位元組到另外一個位元組的映射。
2.行移位:行移位的功能是實現一個4x4矩陣內部位元組之間的置換。
4.輪密鑰加:加密過程中,每輪的輸入與輪密鑰異或一次(當前分組和擴展密鑰的一部分進行按位異或);因為二進制數連續異或一個數結果是不變的,所以在解密時再異或上該輪的密鑰即可恢復輸入。
5.密鑰擴展:其復雜性是確保演算法安全性的重要部分。當分組長度和密鑰長度都是128位時,AES的加密演算法共迭代10輪,需要10個子密鑰。AES的密鑰擴展的目的是將輸入的128位密鑰擴展成11個128位的子密鑰。AES的密鑰擴展演算法是以字為一個基本單位(一個字為4個位元組),剛好是密鑰矩陣的一列。因此4個字(128位)密鑰需要擴展成11個子密鑰,共44個字。
C. aes演算法是什麼
AES:Advanced Encryption Standard(高級加密標准),是美國國家標准與技術研究所用於加密電子數據的規范,該演算法匯聚了設計簡單、密鑰安裝快、需要的內存空間少、在所有的平台上運行良好、支持並行處理並且可以抵抗所有已知攻擊等優點。
AES是一個迭代的、對稱密鑰分組的密碼,它可以使用128、192 和 256 位密鑰,並且用 128 位(16位元組)分組加密和解密數據。
AES具有應用范圍廣
等待時間短、相對容易隱藏、吞吐量高等優點,在性能等各方面都優於WEP演算法。利用此演算法加密,WLAN的安全性將會獲得大幅度提高。AES演算法已經在802.11i標准中得到最終確認,成為取代WEP的新一代的加密演算法。但是由於AES演算法對硬體要求比較高,因此AES無法通過在原有設備上升級固件實現,必須重新設計晶元。
以上內容參考:網路-AES技術
D. 密碼學AES演算法解題
AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高。 用AES加密2000年10月,NIST(美國國家標准和技術協會)宣布通過從15種候選演算法中選出的一項新的密匙加密標准。Rijndael被選中成為將來的AES。Rijndael是在1999年下半年,由研究員Joan Daemen 和 Vincent Rijmen 創建的。AES正日益成為加密各種形式的電子數據的實際標准。 美國標准與技術研究院(NIST)於2002年5月26日制定了新的高級加密標准(AES)規范。 演算法原理 AES演算法基於排列和置換運算。排列是對數據重新進行安排,置換是將一個數據單元替換為另一個。AES使用幾種不同的方法來執行排列和置換運算。AES是一個迭代的、對稱密鑰分組的密碼,它可以使用128、192和256位密鑰,並且用128位(16位元組)分組加密和解密數據。與公共密鑰加密使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數據。通過分組密碼返回的加密數據的位數與輸入數據相同。迭代加密使用一個循環結構,在該循環中重復置換和替換輸入數據。密碼學簡介據記載,公元前400年,古希臘人發明了置換密碼。1881年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用「恩尼格瑪」密碼機,密碼學在戰爭中起著非常重要的作用。 隨著信息化和數字化社會的發展,人們對信息安全和保密的重要性認識不斷提高,於是在1997年,美國國家保准局公布實施了「美國數據加密標准(DES)」,民間力量開始全面介入密碼學的研究和應用中,採用的加密演算法有DES、RSA、SHA等。隨著對加密強度的不斷提高,近期又出現了AES、ECC等。 使用密碼學可以達到以下目的:保密性:防止用戶的標識或數據被讀取。數據完整性:防止數據被更改。身份驗證:確保數據發自特定的一方。
E. aes演算法是什麼
是;
AES:Advanced Encryption Standard(高級加密標准),是美國國家標准與技術研究所用於加密電子數據的規范,該演算法匯聚了設計簡單、密鑰安裝快、需要的內存空間少、在所有的平台上運行良好、支持並行處理並且可以抵抗所有已知攻擊等優點。
AES是一個迭代的、對稱密鑰分組的密碼,它可以使用128、192 和 256 位密鑰,並且用 128 位(16位元組)分組加密和解密數據。
相關如下
AES具有應用范圍廣
等待時間短、相對容易隱藏、吞吐量高等優點,在性能等各方面都優於WEP演算法。利用此演算法加密,WLAN的安全性將會獲得大幅度提高。AES演算法已經在802.11i標准中得到最終確認,成為取代WEP的新一代的加密演算法。但是由於AES演算法對硬體要求比較高,因此AES無法通過在原有設備上升級固件實現,必須重新設計晶元。
F. 什麼是AES演算法
1997年1月2日,美國國家標准和技術研究院(National Institute of Standard and Technology,NIST)宣布徵集一個新的對稱密鑰分組密碼演算法作為新的加密標准,以取代即將過期的DES。新的演算法被命名為高級加密標准(Advanced)。1997年9月12日發布了徵集演算法的正式公告,要求AES具有128位分組長度,支持128、192和256位的密鑰長度。比三重DES有效,至少要與三重DES一樣安全,而且要求AES能在全世界范圍內免費得到。
1998年8月20日,NIST宣布接受15個演算法為AES的候選演算法,並提交全世界的密碼學界協助分析這些演算法。1999年8月,確定了5個候選決賽演算法,分別是MARS、RC6、Rijndael、Serpent和Twofish。經過對決賽演算法的進一步分析,2000年10月NIST決定將Rijndael作為AES,並於2002年5月26日制定了AES的規范。
Rijndael是由比利時的兩位密碼學家Daemen和Rijment共同設計的。Rijndael演算法是一個迭代型分組密碼,其分組長度和密鑰長度都可變,各自可以為128比特、192比特和256比特。Rijndael對明文以位元組為單位進行處理。以128位的分組、128位密鑰的情況為例,首先將明文按位元組分成列組,將明文的前4個位元組組成一列,接下來的4個位元組組成第二列,後面的位元組依次組成第三列和第四列,這樣就組成了一個4×4的矩陣,如圖所示。
這樣就完成了AES演算法。(本文為原創,轉載需向我請求許可權,謝謝~)
G. aes演算法步驟
aes演算法由四個不同的變換組成,包括一個置換和三個替代:
位元組代替(SubBytes):用一個S盒完成分組的位元組到位元組的代替。
行移位(ShiftRows):一個簡單的置換。
列混淆(MixColumns):利用域GF(28)上的算術特性的一個代替。
輪密鑰加(AddRoundKey):當前分組和擴展密鑰的一部分進行按位XOR(異或)。
輸入的密鑰被擴展成由44個32位子所組成的數組w[i],由上圖可知,每輪有四個不同的字(128位)作為該輪到密鑰。
對加密和解密的操作,演算法由輪密鑰加開始,接著執行9輪迭代運算,每輪都包含所有4個階段的代替,接著是第10輪的三個階段。
僅僅在輪密鑰加階段使用密鑰。由於這個原因,該演算法以輪密鑰加開始,以輪密鑰加結束。
H. 什麼是AES演算法
加密演算法分為單向加密和雙向加密。
單向加密 包括 MD5 , SHA 等摘要演算法。單向加密演算法是不可逆的,也就是無法將加密後的數據恢復成原始數據,除非採取碰撞攻擊和窮舉的方式。像是銀行賬戶密碼的存儲,一般採用的就是單向加密的方式。
雙向加密 是可逆的,存在密文的密鑰,持有密文的一方可以根據密鑰解密得到原始明文,一般用於發送方和接收方都能通過密鑰獲取明文的情況。雙向加密包括對稱加密和非對稱加密。對稱加密包括 DES 加密, AES 加密等,非對稱加密包括 RSA 加密, ECC 加密。
AES 演算法全稱 Advanced Encryption Standard ,是 DES 演算法的替代者,也是當今最流行的對稱加密演算法之一。
要想學習AES演算法,首先要弄清楚三個基本的概念:密鑰、填充、模式。
密鑰是 AES 演算法實現加密和解密的根本。對稱加密演算法之所以對稱,是因為這類演算法對明文的加密和解密需要使用同一個密鑰。
AES支持三種長度的密鑰:
128位,192位,256位
平時大家所說的AES128,AES192,AES256,實際上就是指的AES演算法對不同長度密鑰的使用。從安全性來看,AES256安全性最高。從性能來看,AES128性能最高。本質原因是它們的加密處理輪數不同。
要想了解填充的概念,我們先要了解AES的分組加密特性。AES演算法在對明文加密的時候,並不是把整個明文一股腦加密成一整段密文,而是把明文拆分成一個個獨立的明文塊,每一個明文塊長度128bit。
這些明文塊經過AES加密器的復雜處理,生成一個個獨立的密文塊,這些密文塊拼接在一起,就是最終的AES加密結果。
但是這里涉及到一個問題:
假如一段明文長度是192bit,如果按每128bit一個明文塊來拆分的話,第二個明文塊只有64bit,不足128bit。這時候怎麼辦呢?就需要對明文塊進行填充(Padding)。AES在不同的語言實現中有許多不同的填充演算法,我們只舉出集中典型的填充來介紹一下。
不做任何填充,但是要求明文必須是16位元組的整數倍。
如果明文塊少於16個位元組(128bit),在明文塊末尾補足相應數量的字元,且每個位元組的值等於缺少的字元數。
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個位元組,則補全為{1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6}
如果明文塊少於16個位元組(128bit),在明文塊末尾補足相應數量的位元組,最後一個字元值等於缺少的字元數,其他字元填充隨機數。
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個位元組,則可能補全為{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6}
需要注意的是,如果在AES加密的時候使用了某一種填充方式,解密的時候也必須採用同樣的填充方式。
AES的工作模式,體現在把明文塊加密成密文塊的處理過程中。AES加密演算法提供了五種不同的工作模式:
ECB、CBC、CTR、CFB、OFB
模式之間的主題思想是近似的,在處理細節上有一些差別。我們這一期只介紹各個模式的基本定義。
電碼本模式 Electronic Codebook Book
密碼分組鏈接模式 CipherBlock Chaining
計算器模式 Counter
密碼反饋模式 CipherFeedBack
輸出反饋模式 OutputFeedBack
如果在AES加密的時候使用了某一種工作模式,解密的時候也必須採用同樣的工作模式。
AES加密主要包括兩個步驟: 密鑰擴展 和 明文加密 。
密鑰擴展過程說明(密鑰為16位元組):
函數g的流程說明:
輪常量(Rcon)是一個字,最右邊三個位元組總為0。因此字與Rcon相異或,其結果只是與該字最左的那個位元組相異或。每輪的輪常量不同,定位為Rcon[j] = (RC[j], 0, 0, 0)。(RC是一維數組)
RC生成函數:RC[1] = 1, RC[j] = 2 * RC[j – 1]。
因為16位元組密鑰的只進行10輪的擴展,所以最後生成的RC[j]的值按16進製表示為:
十輪的密鑰擴展後,就能生成44個字大小的擴展密鑰。擴展後的密鑰將用於AES對明文的加密過程。
S盒是16×16個位元組組成的矩陣,行列的索引值分別從0開始,到十六進制的F結束,每個位元組的范圍為(00-FF)。
進行位元組代替的時候,把狀態中的每個位元組分為高4位和低4位。高4位作為行值,低4位作為列值,以這些行列值作為索引從S盒的對應位置取出元素作為輸出,如下圖所示:
S盒的構造方式如下:
(1) 按位元組值得升序逐行初始化S盒。在行y列x的位元組值是{yx}。
(2) 把S盒中的每個位元組映射為它在有限域GF中的逆;{00}映射為它自身{00}。
(3) 把S盒中的每個位元組的8個構成位記為(b7, b6, b5, b4, b3, b2, b1)。對S盒的每個位元組的每個位做如下的變換:
ci指的是值為{63}的位元組c的第i位。
解密過程逆位元組代替使用的是逆S盒,構造方式為
位元組d={05}。
逆向行移位將狀態中後三行執行相反方向的移位操作,如第二行向右循環移動一個位元組,其他行類似。
要注意,圖示的矩陣的乘法和加法都是定義在GF(2^8)上的。
逆向列混淆原理如下:
輪密鑰加後的分組再進行一次輪密鑰加就能恢復原值.所以,只要經過密鑰擴展和明文加密,就能將明文加密成密文,進行解密的時候,只需要進行逆向變換即可。
圖[AES加密演算法的流程]中還需要注意,明文輸入到輸入狀態後,需要進行一輪的輪密鑰加,對輸入狀態進行初始化。 前9輪的加密過程,都需要進行位元組替代、行移位、列混淆和輪密鑰加,但是第10輪則不再需要進行列混淆。
進行解密的時候,需要進行逆向位元組替代,逆向行移位、逆向列混淆和輪密鑰加。
I. aes是什麼意思
aes的意思:AES技術是一種對稱的分組加密技術,使用128位分組加密數據,提供比WEP/TKIPS的RC4演算法更高的加密強度。
AES的加密碼表和解密碼表是分開的,並且支持子密鑰加密,這種做法優於以前用一個特殊的密鑰解密的做法。AES演算法支持任意分組大小,初始時間快。特別是它具有的並行性可以有效地利用處理器資源。
AES特點:
AES具有應用范圍廣、等待時間短、相對容易隱藏、吞吐量高等優點,在性能等各方面都優於WEP演算法。利用此演算法加密,WLAN的安全性將會獲得大幅度提高。
AES演算法已經在802.11i標准中得到最終確認,成為取代WEP的新一代的加密演算法。但是由於AES演算法對硬體要求比較高,因此AES無法通過在原有設備上升級固件實現,必須重新設計晶元。