簡介
IDEA的全稱是International Data Encryption Algorithm,也叫做國際加密算法,注意,這裡不是我們常用的那個開發工具IDEA。
今天給大家詳細介紹一下IDEA。
IDEA簡介
IDEA中文叫做國際加密算法,最開始也被叫做Improved Proposed Encryption Standard (IPES)。它是一種對稱密鑰加密算法,最初是由James Massey 和 Xuejia Lai 在1991年提出的。
其目标是替代DES算法。IDEA是對早期的 PES 的一次修訂。IDEA是OpenPGP标準的可選算法。
IDEA的專利在2012年已經過期了,現在是可以免費使用的。
IDEA原理
IDEA加密塊長度是64bits,密鑰長度是128bits,是由八輪變換和半輪輸出轉換組合而成的。加密和解密的過程是類似的。我們看下IDEA的基本流程圖:
上面圖中, 藍色圓圈是XOR異或操作,綠色框是加法模數216。紅色的點是乘模216 + 1,如果輸入都是0(0x0000)那麼将會被轉換為216,如果輸入是216,那麼會被轉換為0(0x0000)。
八輪操作之後,就是下面的半輪輸出轉換了,輸出轉換如下所示(中間兩個值的交換抵消了最後一輪結束時的交換,是以沒有淨交換):
IDEA子密鑰的生成
IDEA使用的是 Lai–Massey結構。 每輪使用6個16位子密鑰,最後的半輪使用4個子密鑰,共8.5回合52個子密鑰。
前面8個子密鑰直接從密鑰中提取,因為密鑰的長度是128bits,剛好可以分成8個16bits的自密鑰。其中第一輪的K1為密鑰的16位。
通過在每8組之間将主密鑰向左移動25位,進而建立更多的8組子密鑰。
本文已收錄于 http://www.flydean.com/idea/最通俗的解讀,最深刻的幹貨,最簡潔的教程,衆多你不知道的小技巧等你來發現!
歡迎關注我的公衆号:「程式那些事」,懂技術,更懂你!