4.3 AES加密
什麼是AES加密?
Advanced Encryption Standard
進階加密標準
-
由比利時密碼學家Joan Daemen和Vincent Rijmen所設計
-
又稱Rijndael加密法
-
2001年被美國國家標準與技術研究院宣布為標準
-
取代原先的DES加密
-
被廣泛應用的對稱式加密演算法
Advanced Encryption Standard
進階加密標準
要怎麼作AES加密?
AES 加密的流程
1. Create State
- AES加密是一種區塊式編碼演算法
- 所以要先將資料分割成塊
- \(資料序列 S \space \rightarrow \space 矩陣state\)
2. Key Expension
- AES加密的操作需要很多密鑰來完成
- 用主要密鑰來生成每回操作所需的回合密鑰
- \(主要密鑰 \rightarrow 很多回合密鑰 \)
3. Add Round Keys
- XOR 運算
- \( \left \{ \begin{matrix} state \\key\end{matrix} \right \}\rightarrow{state}' \)
4. Sub Bytes
- S-box : 一個經特殊加密函數計算生成的對照表
- \(將{state}' 的每個元素在S-box 中找到對應的元素替換\)
5. Shift Rows
- 重新排列state
- 增加破解加密法的難度
6. Mix Columns
- 把前面做出來的state再乘以一個方陣
深入探討AES加密
AES 加密的流程
1. Create State
- AES加密是一種區塊式編碼演算法
- 所以要先將資料分割成塊
- \(資料序列 S \space \rightarrow \space 矩陣state\)
1. Create State
2. Key Expension
- AES加密的操作需要很多密鑰來完成
- 用主要密鑰來生成每回操作所需的回合密鑰
- \(主要密鑰 \rightarrow 很多回合密鑰 \)
- 旋轉
3. Add Round Key
- XOR 運算
3. Add Round Key
- \( \left \{ \begin{matrix} state \\key\end{matrix} \right \}\rightarrow{state}' \)
4. Sub Bytes
- S-box : 一個經特殊加密函數計算生成的對照表
- \(將{state}' 的每個元素在S-box 中找到對應的元素替換\)
168 = (A8)_{16}
查表,第A列第8行是(C2)_{16} = 194\\
168 \rightarrow 194
5. Shift Rows
- 重新排列state
- 增加破解加密法的難度
- \(第i列左移i行\)
- 把前面做出來的state再乘以一個方陣
- 運算模式有點像矩陣乘法
- \(但是加法\bigoplus 和乘法 \bullet 與一般的加法乘法不同\)
6. Mix Columns
4.3 AES加密
By yennnn
4.3 AES加密
- 276