發布源:深圳維創信息技術發布時間:2020-11-24 瀏覽次數: 次
在IDEA 加密和解密過程中,明文和密文是分成 64 比特的塊來處理的,但密鑰寬度是 128 比特,加解密是依賴于下面的三種代數群的運算,每個代數群都是 16 比特數的運算,其中包括:
兩個16 比特子塊的按位異或 (XOR) 運算.模加運算,兩個整數相加后,對 216 取模,即忽略*高位進位的加法.模乘運算,兩個數求積后,對費馬數 p=216 +1取模.
由于上面三種運算的任意兩個運算間不滿足分配律和結合律,使輸入之間實現了較復雜的組合運算,圖 3.1 給出了IDEA 算法的加密過程,在 8 輪變換之后,緊接著是一個輸出變換.它們級聯起來完成一次完整的加密,算法的解密過程和加密過程相同,只是參與運算的子密鑰塊小同,這個特性也被稱為加密和解密的相似性,從圖 3.1 可看出 IDEA算法包括 34 次16 位模乘和模加, 48 次異或運算。
64位的明文被分為 4 個16 比特的子塊,四個明文的子模塊被 52 個16 比特的密鑰轉換為 4 個16 比特的密文子塊,每輪變換使用 6 個密鑰子塊,第 r( r=1,…,8)輪使用的密鑰為 Z1 (R), … ,Z 6(R) ,若將輸出置換作為*后一輪,它用四個密鑰,標記為 Z1 (9), … ,Z 4(9) 用于加密和解密的 52個子密鑰是由用戶提供的 128 位密鑰產生的,加密的各輪密鑰是由原始密鑰向左依次作 25 比特的循環移位后抽取得到的,解密密鑰是由對應的加密密鑰經模逆運算后產生的,假設 Ki(r) 表示解時第 r輪的第i個密鑰,解密密鑰和加密密鑰具體關系如下:
由于解密密鑰產生的復雜性, IDEA 的加密速度快于解密。
在每一輪的核心中,包含有兩個模乘模塊和兩個模加模塊,這種結構被稱為乘加(MA) 結構,即圖3.1 中虛線標注的部分,它是 IDEA 實現中的關鍵非線性構件,研究表明8輪迭代后能達到雪崩性的擴散和混淆,因而它能抵抗差分分析。
Copyright © 2021 深圳市維創信息技術有限公司 版權所有