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