高階加密標準 (AES)
高階加密標準 (AES) 是美國國家標準與技術研究院 (NIST) 於 2001 年制定的加密標準。它在全球範圍內廣泛應用於硬體和軟體中,用於加密敏感資料。AES 在計算機網路(特別是無線網路)上傳輸資料時得到廣泛使用。
AES 的特性
- AES 是 Rijndael 分組密碼的一個子集。
- 它是資料加密標準 (DES) 的後續者,比 DES 更強大、更快。
- 它是一種對稱金鑰對稱分組密碼。
- 它操作 128 位(16 位元組)資料。
- 密碼金鑰可以是 128 位、192 位或 256 位。
- 所有計算都在位元組而不是位上執行。
- AES 提供了完整的規範和設計細節。
- 它可以使用 C 和 Java 語言實現軟體保護。
AES 的操作
高階加密標準的加密過程基於以迭代方式進行的置換和替換操作。16 個位元組的資料排列在一個四列四行的矩陣中。在這個矩陣上,AES 執行多輪置換-替換操作。每一輪都使用不同的輪金鑰,該輪金鑰是由原始 AES 金鑰計算出來的。操作的輪數取決於金鑰的大小,如下所示:
- 對於 128 位密碼金鑰,10 輪
- 對於 192 位密碼金鑰,12 輪
- 對於 256 位密碼金鑰,14 輪
下圖顯示了示意圖:
上述演算法中的加密子過程包括:
金鑰擴充套件 - 使用 Rijndael 分組密碼排程從密碼金鑰計算輪金鑰。
預變換 - 這隻包含一個過程,即 Add_Round_Key。在這裡,對每個資料位元組與輪金鑰的一個位元組執行異或運算。
第 1 輪到第 (N-1) 輪 - 這裡執行四個子過程。
Sub_Bytes - 對每個位元組執行非線性替換,其中位元組根據查詢表替換為另一個位元組。
Shift_Rows - 執行轉置,其中對最後三行進行一定數量的迴圈移位。
Mix_Columns - 以預定義的方式混合行和列。
Add_Round_Key - 對每個位元組與輪金鑰的一個位元組執行異或運算。
第 N 輪 - 最後一回合包含三個子過程,即:
- Sub_Bytes
- Shift_Rows
- Add_Round_Key
下圖顯示了 AES 演算法第 1 輪中的子過程
廣告