IDEA 加密演算法是如何工作的?


IDEA 是一種分組密碼,它對 64 位明文和 128 位金鑰進行操作。IDEA 像 DES 一樣是可逆的,也就是說,相同的演算法可以用於加密和解密。IDEA 需要擴散和混淆來進行加密。

64 位明文被分成四個 16 位明文部分 (P1 到 P4)。這些是第一輪的輸入。共有八輪這樣的過程。金鑰包括 128 位。在每一輪中,都會從原始金鑰生成六個子金鑰,每個子金鑰包含 16 位。

第一輪可以使用金鑰 K1 到 K6,第二輪可以使用金鑰 K7 到 K12,以此類推,直到最後一輪。最後一步包括輸出轉換,這需要四個子金鑰 (K49 到 K52)。

最終輸出是由輸出轉換步驟建立的輸出。塊 C1 到 C4 連線起來形成最終輸出。

輪數 - IDEA 有八輪。每一輪都包含對四個資料塊進行的一系列操作,利用六個金鑰。每一輪接下來的步驟中的“加法 *”和“乘法 *”不是簡單的加法和乘法,而是模 216 加法,即 65536,和模 216 + 1 乘法,即 65537。

一輪的子金鑰生成 -

  • 在第一輪中,使用金鑰的第 1-96 位。第 97-128 位保持未使用。它們被賦予第二輪。

  • 在第二輪中,首先使用第 97-128 位,因此出現 25 位的迴圈左移,並使用新的第 26-89 位。第 90-128 位和第 1-25 位保持未使用。

  • 在第三輪中,再次首先使用未使用的第 90-128 位和第 1-25 位,出現 25 位的迴圈左移,並使用第 51-82 位。第 83-128 位和第 1-50 位保持未使用。

  • 在第四輪中,使用第 83-128 位和第 1-50 位。

  • 在第五輪中,出現 25 位的迴圈左移,並使用第 76-128 位和第 1-43 位。第 44-75 位保持未使用。

  • 在第六輪中,使用第五輪未使用的位,並進行 25 位的迴圈左移,因此使第 37-100 位未使用。

  • 在第七輪中,首先使用第六輪未使用的位,即第 37-100 位,並進行 25 位的迴圈左移,使用第 126-128 位和第 1-29 位。第 30-125 位保持未使用。

  • 使用第七輪未使用的第 30-125 位,金鑰被停用。

輸出轉換 - 這是一次性操作。它發生在第 8 輪結束時。因此,64 位值被分成四個子塊(例如 R1 到 R4),這裡使用四個子金鑰。

IDEA 解密 - 解密過程與加密過程相同。子金鑰的生成和設計有一些改變。解密子金鑰與加密子金鑰相反。

更新於:2022年3月15日

5K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告