資源描述:
《現(xiàn)代密碼學(xué) 第5講IDEA.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、3.5IDEA瑞士聯(lián)邦技術(shù)學(xué)院來學(xué)嘉(X.J.Lai)和J.L.Massey提出的第1版IDEA(internationaldataencryptionalgorithm,國際數(shù)據(jù)加密算法)于1990年公布,當(dāng)時(shí)稱為PES(proposedencryptionstandard,建議加密標(biāo)準(zhǔn))。1991年,在Biham和Shamir提出差分密碼分析之后,設(shè)計(jì)者推出了改進(jìn)算法IPES,即改進(jìn)型建議加密標(biāo)準(zhǔn)。1992年,設(shè)計(jì)者又將IPES改名為IDEA,目前已在PGP中采用。2021/9/913.5.1設(shè)計(jì)原理算法中明文和密文分組長度都是64比特,密鑰長128比特。其設(shè)計(jì)原理可
2、從強(qiáng)度和實(shí)現(xiàn)兩方面考慮。1.密碼強(qiáng)度算法的強(qiáng)度主要是通過有效的混淆和擴(kuò)散特性而得以保證。2021/9/92混淆是通過使用以下3種運(yùn)算而獲得,3種運(yùn)算都有兩個(gè)16比特的輸入和一個(gè)16比特的輸出:①逐比特異或,表示為。②模216(即65536)整數(shù)加法,表示為,其輸入和輸出作為16位無符號(hào)整數(shù)處理。③模216+1(即65537)整數(shù)乘法,表示為⊙,其輸入、輸出中除16位全為0作為216處理外,其余都作為16位無符號(hào)整數(shù)處理。例如0000000000000000⊙1000000000000000=1000000000000001這是因?yàn)?16×215mod(216+1)=(2
3、16+1)×215-215=-215=215+1mod(216+1)見P58表3-6+2021/9/93Efficientcomputationof⊙?n=16,直接計(jì)算abmod65537代價(jià)大;Low-highalgorithmabmod2n+1=(abmod2n)?(abdiv2n)如(abmod2n)≥(abdiv2n)(abmod2n)?(abdiv2n)+2n+1如(abmod2n)<(abdiv2n)–abmod2n:ab的n個(gè)最低有效位–abdiv2n:ab右移n位如4?8mod17=(32mod17)=(0010,0000)mod17)=(32mod16
4、)?(32div16)+17=(0000)?(0010)+17=15ab=q(2n+1)+r=q2n+(q+r)=(q+1)2n+(q+r?2n)2021/9/94表3.6給出了操作數(shù)為2比特長時(shí)3種運(yùn)算的運(yùn)算表。在以下意義下,3種運(yùn)算是不兼容的:(見58頁表3.6)①3種運(yùn)算中任意兩種都不滿足分配律,例如a+(b⊙c)≠(a+b)⊙(a+c)②3種運(yùn)算中任意兩種都不滿足結(jié)合律,例如a+(bc)≠(a+b)c+3種運(yùn)算結(jié)合,使得對(duì)IDEA的密碼分析比對(duì)僅使用異或運(yùn)算的DES更為困難。2021/9/95算法中擴(kuò)散是由稱為乘加(multiplication/additio
5、n,MA)結(jié)構(gòu)的基本單元實(shí)現(xiàn)的。該結(jié)構(gòu)的輸入是兩個(gè)16比特的子段和兩個(gè)16比特的子密鑰,輸出也為兩個(gè)16比特的子段。MA結(jié)構(gòu)2021/9/962.實(shí)現(xiàn)IDEA可方便地通過軟件和硬件實(shí)現(xiàn)。①軟件實(shí)現(xiàn)采用16比特子段處理,可通過使用容易編程的加法、移位等運(yùn)算實(shí)現(xiàn)算法的3種運(yùn)算。②硬件由于加、解密相似,差別僅為使用密鑰的方式,因此可用同一器件實(shí)現(xiàn)。2021/9/97加密過程由連續(xù)的8輪迭代和1個(gè)輸出變換組成.每輪迭代以4個(gè)16比特的子段作為輸入,輸出也為4個(gè)16比特的子段,鏈接起來后形成64比特的密文分組。每輪需使用6個(gè)16比特的子密鑰,輸出變換需使用4個(gè)16比特的子密鑰,所以
6、子密鑰總數(shù)為52。圖表示由初始的128比特密鑰產(chǎn)生52個(gè)子密鑰的子密鑰產(chǎn)生器。3.5.2加密過程2021/9/98輪結(jié)構(gòu)每輪開始時(shí)有一個(gè)變換,該變換的輸入是4個(gè)子段和4個(gè)子密鑰,變換中的運(yùn)算是兩個(gè)乘法和兩個(gè)加法,輸出的4個(gè)子段經(jīng)過異或運(yùn)算形成了兩個(gè)16比特的子段作為MA結(jié)構(gòu)的輸入。MA結(jié)構(gòu)也有兩個(gè)輸入的子密鑰,輸出是兩個(gè)16比特的子段。變換的4個(gè)輸出子段和MA結(jié)構(gòu)的兩個(gè)輸出子段經(jīng)過異或運(yùn)算產(chǎn)生這一輪的4個(gè)輸出子段。由X2產(chǎn)生的輸出子段和由X3產(chǎn)生的輸出子段交換位置后形成W12和W13,目的在于進(jìn)一步增加混淆效果,使得算法更易抵抗差分密碼分析。2021/9/99輸出變換輸出
7、變換的結(jié)構(gòu)和每一輪開始的變換結(jié)構(gòu)一樣,不同之處在于輸出變換的第2個(gè)和第3個(gè)輸入首先交換了位置,目的在于撤銷第8輪輸出中兩個(gè)子段的交換。第9步僅需4個(gè)子密鑰,而前面8輪中每輪需要6個(gè)子密鑰。輪開始的變換結(jié)構(gòu)2021/9/9102.子密鑰的產(chǎn)生前8個(gè)子密鑰Z1,Z2,…,Z8直接從加密密鑰中取,即Z1取前16比特(最高有效位),Z2取下面的16比特,依次類推。然后加密密鑰循環(huán)左移25位,再取下面8個(gè)子密鑰Z9,Z10,…,Z16,取法與Z1,Z2,…,Z8的取法相同。這一過程重復(fù)下去,直到52子密鑰都被產(chǎn)生為止。2021/9/91