文章目錄
- 簡介
- IDEA簡介
- IDEA原理
- IDEA子密鑰的生成
IDEA的全稱是International Data Encryption Algorithm,也叫做國際加密算法,注意,這裡不是我們常用的那個開發工具IDEA。
今天給大家詳細介紹一下IDEA。
IDEA中文叫做國際加密算法,最開始也被叫做Improved Proposed Encryption Standard (IPES)。它是一種對稱密鑰加密算法,最初是由James Massey 和 Xuejia Lai 在1991年提出的。
其目标是替代DES算法。IDEA是對早期的 PES 的一次修訂。IDEA是OpenPGP标準的可選算法。
IDEA的專利在2012年已經過期了,現在是可以免費使用的。
IDEA加密塊長度是64bits,密鑰長度是128bits,是由八輪變換和半輪輸出轉換組合而成的。加密和解密的過程是類似的。我們看下IDEA的基本流程圖:

上面圖中, 藍色圓圈是XOR異或操作,綠色框是加法模數216。紅色的點是乘模216 + 1,如果輸入都是0(0x0000)那麼将會被轉換為216,如果輸入是216,那麼會被轉換為0(0x0000)。
八輪操作之後,就是下面的半輪輸出轉換了,輸出轉換如下所示(中間兩個值的交換抵消了最後一輪結束時的交換,是以沒有淨交換):
IDEA使用的是 Lai–Massey結構。 每輪使用6個16位子密鑰,最後的半輪使用4個子密鑰,共8.5回合52個子密鑰。
前面8個子密鑰直接從密鑰中提取,因為密鑰的長度是128bits,剛好可以分成8個16bits的自密鑰。其中第一輪的K1為密鑰的16位。
通過在每8組之間将主密鑰向左移動25位,進而建立更多的8組子密鑰。
本文已收錄于 http://www.flydean.com/idea/