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