AES(Advanced Encryption Standard,先進加密標準)擁有高效能和極高的安全性,因此被廣泛應用在各種加密需求上,AES 是一個非常安全的加密標準,目前還沒有任何有效的方法能在合理的時間內破解它。而且它的加密和解密速度都很快,很適合實時應用和大量數據的處理,而且可以根據需求選擇不同的密鑰長度,提供不同等級的安全保護。
AES可以分成以下三種長度,位元長度越長提供的安全性越高。
將AES排列在4x4的格子中,總共是128位元的區塊,接下來進行(Substitution-Permutation) SP網路。AES的加密過程主要由多個回合(Rounds)組成,每回合包括一系列的轉換步驟,來增加數據的安全性。以下是AES運作的步驟:
Initial Round
AddRoundKey:
將當前的狀態(State)與密鑰進行XOR運算。這是加密過程中的第一個步驟,來確保初始數據與密鑰相關。
Main Rounds
128 位元密鑰需要 10 個回合,192 位元需要 12 個回合,256 位元則需要 14 個回合,每個回合包含以下四個步驟:
Final Round
最後一回合與主回合類似,但省略MixColumns步驟,包含SubBytes(字節代換)、ShiftRows(行移位)、AddRoundKey(輪密鑰加法)
密鑰擴展(Key Expansion)
使用 Key Schedule 將原始密鑰擴展成不同的回合密鑰。AES 的所有操作都在有限域(Finite Field),每個元素都是一個位元組,所有操作都會產生另一個位元組,保持在有限域內進行。
解密過程
解密也就是加密過程的逆過程,步驟如下:AddRoundKey、InvShiftRows(逆行移位)、InvSubBytes(逆字節代換)、AddRoundKey、InvMixColumns(逆列混合)
AES被認為是一種既安全又高效的對稱加密標準,主要是因為它能夠替換和置換,並作用於一個 4x4 的位元組格子,每個回合都增加混淆和擴散效果,而密鑰越長,就越難破解。AES的設計能有效抵抗許多已知的攻擊方式,像是線性攻擊和差分攻擊這些常見的密碼破解方法都很難成功,且AES經過大量的使用和驗證,證明了它的可靠性,因此AES成為目前最受信任的加密方法之一。