AES加密流程主要包括以下步驟:
初始化:首先,明文分組(狀態矩陣)被定義為4行Nb列,原始密鑰為4行Nk列矩陣。加密輪數Nr由Nb和Nk的最大值加6計算得出。
輪子密鑰生成:從原始密鑰通過密鑰擴展算法產生輪子密鑰。
輪變換:每輪包括以下四個步驟,重複Nr-1輪:
ByteSub變換:通過S-盒映射實現位元組替換。
ShiftRow變換:將狀態矩陣的行進行循環左移,通常移動量為(0,1,2,3)。
MixColumn變換:對狀態矩陣的列進行可逆的線性變換,保證變換是可逆的。
AddRoundKey變換:將狀態矩陣與輪子密鑰矩陣進行模2加法。
最後輪變換:在最後一輪中,不進行MixColumn變換,其餘步驟與上述相同。
形成AES密文:完成所有輪變換後,形成AES密文並結束加密過程。
AES解密流程與加密流程相似,只是輪變換中的ByteSub、ShiftRow和MixColumn都是逆操作。解密時使用的也是類似的逆S-盒和逆變換。