資訊安全中的IDEA是什麼?
IDEA代表國際資料加密演算法 (International Data Encryption Algorithm)。IDEA是由James Massey和Xuejia Lai發明的分組密碼,首次定義於1991年。它使用128位金鑰長度,作用於64位資料塊。
它包含一系列八個相同的變換,依賴於按位異或、加法和乘法模運算。它基於對稱密碼,並且金鑰設計方法非常薄弱,因此與DES相比,該演算法的安全級別非常低。由於其複雜的結構,IDEA並沒有變得非常流行。
與其他分組密碼演算法不同,IDEA被瑞士Ascom公司考慮使用。然而,其獨特的授權允許免費的非商業用途,這使得IDEA成為著名的訊息字元加密中常用的分組密碼演算法。
IDEA有八輪。每一輪都包含使用六個金鑰對四個資料塊進行的一系列操作。第一輪可以使用金鑰K1到K6,第二輪可以使用金鑰K7到K12,以此類推,直到最後一輪。最後一步包括一個輸出變換,需要四個子金鑰(K49到K52)。
最終輸出是由輸出變換步驟產生的輸出。塊C1到C4連線起來形成最終輸出。每一輪包含14個步驟,如下所示:
IDEA一輪的細節
| 步驟1: 乘法 * P1 和 K1 |
| 步驟2: 加法 * P2 和 K2 |
| 步驟3: 加法 * P3 和 K3 |
| 步驟4: 乘法 * P4 和 K4 |
| 步驟5: 將步驟1和步驟3的結果進行異或運算 |
| 步驟6: 將步驟2和步驟4的結果進行異或運算 |
| 步驟7: 將步驟5的結果與K5進行乘法運算 * |
| 步驟8: 將步驟6的結果與步驟7的結果進行加法運算 * |
| 步驟9: 將步驟8的結果與K6進行乘法運算 * |
| 步驟10: 將步驟7的結果與步驟9的結果進行加法運算 * |
| 步驟11: 將步驟1的結果與步驟9的結果進行異或運算 |
| 步驟12: 將步驟3的結果與步驟9的結果進行異或運算 |
| 步驟13: 將步驟2的結果與步驟10的結果進行異或運算 |
| 步驟14: 將步驟4的結果與步驟10的結果進行異或運算 |
每一輪的後續步驟中的“加法 *”和“乘法 *”不是基本的加法和乘法,而是模216(即65536)的加法和模216 + 1(即65537)的乘法。
**輸出變換** - 這是一個一次性操作。它發生在第8輪的最後。因此,64位值被分成四個子塊(例如R1到R4),這裡使用了四個子金鑰。
**解密** - 解密過程類似於加密,但是輪金鑰的順序被反轉,奇數輪的子金鑰也被反轉。因此,子金鑰K1-K4的值透過加密中相應集合運算的K49-K52的反轉來恢復,每一組的K5和K6應該透過K47和K48來恢復解密操作。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP