高階加密標準 (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 輪中的子過程

更新於:2020年1月9日

2K+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告