IDEA - 國際資料加密演算法



IDEA代表國際資料加密演算法。IDEA是由James Massey和Xuejia Lai開發的一種分組密碼,最初於1991年制定。它具有128位的金鑰長度,並使用64位的塊進行操作。

它由一組八個相同的變換組成,這些變換基於按位異或、加法和乘法模組。它基於對稱密碼,並使用相對較弱的金鑰設計技術,因此該演算法的安全性遠低於DES。由於其複雜的開發過程,IDEA未能獲得廣泛的普及。

IDEA不同於其他分組密碼演算法,它正在被瑞士公司Ascom研究。然而,他們的獨特之處在於他們允許免費的非商業用途,這使得IDEA成為著名的訊息字元加密中使用的分組密碼演算法。

IDEA的工作原理?

IDEA是一種分組密碼,它對64位明文和128位金鑰進行操作。與DES一樣,IDEA是可逆的,這意味著相同的技術可用於加密和解密。IDEA需要擴散和混淆來進行加密。

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

第一輪可以使用金鑰K1到K6,第二輪可以使用金鑰K7到K12,最後一輪可以使用金鑰K13到K18。最後一步需要一個輸出修改,需要四個子金鑰(K49到K52)。

最終輸出是輸出變換階段的結果。塊C1-C4連線起來生成最終結果。

IDEA中的輪次

IDEA共有八輪。每一輪都包括對四個資料塊和六個金鑰的一系列操作。第一輪可以包含金鑰K1到K6,第二輪可以包含金鑰K7到K12,最後一輪可以包含金鑰K13到K18。最後階段涉及一個輸出修改,需要四個子金鑰(K49到K52)。

最終輸出是輸出變換階段的結果。最終輸出是透過連線塊C1-C4形成的。每一輪有14個步驟,如下所示:

IDEA Algorithm

IDEA中一輪的細節

Step1  : Multiply * P1 and K1
Step2  : Add * P2and K2
Step3  : Add * P3and K3
Step4  : Multiply * P4 and K4
Step5  : XOR the results of step1 and step3
Step6  : XOR the results of step2 and step4
Step7  : Multiply * the results of step5 with K5
Step8  : Add * the results of step6 and step7
Step9  : Multiply * the results of step8 with K6
Step10 : Add * the results of step7 and step9
Step11 : XOR the results of step1 and step9
Step12 : XOR the results of step3 and step9
Step13 : XOR the results of step2 and step10
Step14 : XOR the results of step4 and step10

在每個迴圈中的下一步中,“加法*”和“乘法*”不是基本的加法和乘法,而是模216(模65536)加法和模216+1(模65537)乘法。輸入和輸出都是無符號的16位整數。

普通的加法會得到一個17位的數字。它只能使用16位空間用於round2輸出。

因此,它可以將這個數字(十進位制為130753)減少到一個16位的數值。它可以取這個數模65536。130753模65536得到65217,其二進位制表示為11111111011000001,是一個很好的16位整數。

輸入塊為P1-P4,子金鑰為K1-K6,此步驟的輸出為R1-R4(而不是C1-C4,因為這不是最終的密文)。這是一箇中間輸出,將在後續步驟以及輸出變換階段處理。

IDEA中使用的操作

IDEA的操作包括:

  • IDEA使用按位異或,表示為⊕
  • 模216(模65536)整數加法,使用無符號16位整數作為輸入和輸出。
  • 此操作稱為⊕。
  • 模216+1(模65537)整數乘法,輸入和輸出都是無符號的16位整數。全零塊表示216。此操作稱為⊗。

一輪的子金鑰生成

  • 在第一輪中,使用金鑰的第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位,金鑰被停用。

輸出變換

這是一個一次性操作。它發生在第八輪結束時。因此,一個64位的數值被分成四個子塊(例如R1到R4),每個子塊都有自己的子金鑰。

解密

解密類似於加密,但是它反轉輪金鑰和奇數輪的子金鑰的順序。因此,K49-K52的逆反恢復了相應密碼學集合操作中子金鑰K1-K4的值,而每組的K5和K6應該由K47和K48恢復以進行此密碼學操作中的解密。

IDEA的特性

以下特性與IDEA的密碼強度有關:

  • 分組長度 − 分組長度應防止統計分析。然而,開發有效加密演算法的複雜性似乎隨著分組大小呈指數增長。
  • 金鑰強度 − 金鑰長度應足夠長,以避免窮舉金鑰搜尋。IDEA 使用 128 位金鑰長度,在未來相當長一段時間內在這個方面似乎都是安全的。
  • 混淆 − 密文應以複雜且有效的方式依賴於明文和金鑰。目標是使確定密文統計與明文統計之間關係變得更加困難。IDEA 透過隨後討論的三個不同的操作來實現此目的。這與主要基於 XOR 運算和小型非線性 S 盒的 DES 形成對比。
  • 擴散 − 每個明文位都應影響每個密文位,就像每個金鑰位都應影響每個密文位一樣。單個明文位在多個密文位上的分散模糊了明文的統計結構。IDEA 在這方面非常有效。

IDEA 的安全性

IDEA 加密方法被認為對某些型別的攻擊(例如差分密碼分析)非常強大。直到 2007 年,沒有人成功發現其設計中的弱點。即使是當時已知的最佳攻擊也只能破解簡化版(6 輪)的 IDEA,而完整版使用 8.5 輪。

受人尊敬的密碼學家布魯斯·施奈爾 (Bruce Schneier) 在 1996 年稱讚 IDEA 是當時最好、最安全的加密方法。然而,到 1999 年,他停止推薦它,因為開發出了更新、更快的演算法,在 IDEA 中發現了一些弱點,並且存在專利問題。

2011 年,一種名為“中間相遇”的方法被用來破解完整的 8.5 輪 IDEA 加密。然後,在 2012 年,另一種名為“窄雙向群”的攻擊被用來稍微削弱 IDEA,但它對於實際使用仍然安全。

廣告
© . All rights reserved.