AES學習總結

 

一、AES

AES ,即advanced encryption standard, 高級加密標準, 它屬於對稱加密算法,加密解密使用同一密鑰。

 

輸入16B的分組

密鑰128(16B)196(24B)256(32B)

不同位數的密鑰,決定後面加密/解密的輪數。16B的密鑰,將進行10輪加密/解密;24B的密鑰,將進行12輪加密/解密;32B的密鑰,將進行14輪加密/解密;

輸出16B的分組

 

二、加密流程

1.       密鑰的產生(key schedule)

根據輸入的密鑰,進行密鑰擴展,生成輪加密中使用的子密鑰.

 

2.       初始

明文和密鑰進行AddRoundKey, 即明文字節和密鑰字節進行異或運算

3.       輪加密

(1)    SubBytes

假設State表中當前字節爲XY, 則在SBox上查找XY列的對應值,並進行替換。

(2)    ShiftRows

假設State表中當前行爲ii [0,3]),ShiftRows操作則爲將i行循環左移i個字節

(3)    MixColumns

Rcon爲一常量矩陣,MixColumns操作則爲Rcon矩陣與State矩陣相乘

(4)    AddRoundKey

State矩陣中元素與子密鑰元素進行異或運算

4.       最後一輪加密

(1)    SubBytes

(2)    ShiftRows

(3)    AddRoundKey

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章