現(xiàn)代密碼學第4章5:IDEA算法課件_第1頁
現(xiàn)代密碼學第4章5:IDEA算法課件_第2頁
現(xiàn)代密碼學第4章5:IDEA算法課件_第3頁
現(xiàn)代密碼學第4章5:IDEA算法課件_第4頁
現(xiàn)代密碼學第4章5:IDEA算法課件_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

分組密碼:

IDEA算法《現(xiàn)代密碼學》第4章(5)1分組密碼:

IDEA算法《現(xiàn)代密碼學》第4章(5)1本節(jié)主要內(nèi)容1、IDEA基本概念2、IDEA設(shè)計原理3、IDEA加密過程4、IDEA解密過程2本節(jié)主要內(nèi)容1、IDEA基本概念2IDEA(InternationalDataEncryptionAlgorithm)是瑞士的JamesMassey,XuejiaLai等人提出的加密算法,在密碼學中屬于數(shù)據(jù)塊加密算法(BlockCipher)類。

IDEA使用長度為128bit的密鑰,數(shù)據(jù)塊大小為64bit。從理論上講,IDEA屬于“強”加密算法,至今還沒有出現(xiàn)對該算法的有效攻擊算法。1.IDEA基本概念3IDEA(InternationalDa

早在1990年,XuejiaLai等人在EuroCrypt’90年會上提出了分組密碼建議PES(ProposedEncryptionStandard)。在EuroCrypt’91年會上,XuejiaLai等人又提出了PES的修正版IPES(ImprovedPES)。目前IPES已經(jīng)商品化,并改名為IDEA。IDEA已由瑞士的Ascom公司注冊專利,以商業(yè)目的使用IDEA算法必須向該公司申請許可。IDEA基本概念4早在1990年,XuejiaLai等人IDEA是一個分組長度為64位的分組密碼算法,密鑰長度為128位(抗強力攻擊能力比DES強),同一算法既可加密也可解密。

IDEA能抗差分分析和相關(guān)分析;IDEA似乎沒有DES意義下的弱密鑰;IDEA的“混淆”和“擴散”設(shè)計原則來自三種運算,它們易于軟、硬件實現(xiàn)(加密速度快)IDEA基本概念5IDEA是一個分組長度為64位的分組密碼算法,密鑰異或運算()整數(shù)模216加(+)整數(shù)模216+1乘()(IDEA的S盒)擴散由稱為MA結(jié)構(gòu)的算法基本構(gòu)件提供。Z6F2F1Z5G1G2IDEA運算6異或運算()Z6F2F1Z5G1G2IDEA運算6實現(xiàn)上的考慮使用子分組:16bit的子分組;使用簡單操作(易于加法、移位等操作實現(xiàn))加密解密過程類似;規(guī)則的結(jié)構(gòu)(便于VLSI實現(xiàn))。IDEA運算7實現(xiàn)上的考慮IDEA運算72.IDEA設(shè)計原理1密碼的強度:主要是通過混淆和擴散來實現(xiàn)。混淆實現(xiàn)的方法:(1)逐比特異或。表示為(2)模整數(shù)加法,表示為,其輸入和輸出作為16位無符號整數(shù)處理。模整數(shù)乘法,表示為,其輸入和輸出中除16全0作為處理外,其余都作為16位無符號整數(shù)處理。82.IDEA設(shè)計原理1密碼的強度:主要是通過混淆和擴散例如0000000000000000⊙1000000000000000=1000000000000001這是因為216×215mod(216+1)=215+1。IDEA設(shè)計原理9例如IDEA設(shè)計原理9表3.6給出了操作數(shù)為2比特長時3種運算的運算表。在以下意義下,3種運算是不兼容的:①3種運算中任意兩種都不滿足分配律,例如a+(b⊙c)≠(a+b)⊙(a+c)②3種運算中任意兩種都不滿足結(jié)合律,例如a+(bc)≠(a+b)c+

IDEA設(shè)計原理10表3.6給出了操作數(shù)為2比特長時3種運算的運算表。3種運算結(jié)合起來使用可對算法的輸入提供復雜的變換,從而使得對IDEA的密碼分析比對僅使用異或運算的DES更為困難。算法中擴散是由稱為乘加(multiplication/addition,MA)結(jié)構(gòu)(見圖4.14)的基本單元實現(xiàn)的。該結(jié)構(gòu)的輸入是兩個16比特的子段和兩個16比特的子密鑰,輸出也為兩個16比特的子段。這一結(jié)構(gòu)在算法中重復使用了8次,獲得了非常有效的擴散效果。IDEA設(shè)計原理113種運算結(jié)合起來使用可對算法的輸入提供復雜的變換IDEA算法的擴散主要是由乘加結(jié)構(gòu)的基本單元實現(xiàn)的。IDEA的MA結(jié)構(gòu)12IDEA算法的擴散主要是由乘加結(jié)構(gòu)的基本單元實現(xiàn)的。IDEA

IDEA加密的總體方案循環(huán)2循環(huán)8循環(huán)1輸出變換64位密文64位明文Z1Z6Z7Z12Z43Z48Z49Z52子密鑰生成器128位密鑰Z1Z521613IDEA加密的總體方案循環(huán)2循環(huán)8循環(huán)1輸出變換64位密

IDEA加密的總體方案圖14IDEA加密的總體方案圖14IDEA加密過程第1輪64比特明文X1X2X3X4第2輪W11W12W13W14第8輪W71W72W73W74W21W22W23W24W81W82W83W84輸出變換Y1Y2Y3Y4密文…Z1Z6…Z7Z12…Z43Z48…Z49Z52字密鑰生成器128比特密鑰Z1Z5215IDEA加密過程第1輪64比特明文X1X2X3X4第2輪W1

加密過程(如圖4.15所示)由連續(xù)的8輪迭代和一個輸出變換組成,算法將64比特的明文分組分成4個16比特的子段,每輪迭代以4個16比特的子段作為輸入,輸出也為4個16比特的子段。最后的輸出變換也產(chǎn)生4個16比特的子段,鏈接起來后形成64比特的密文分組。每輪迭代還需使用6個16比特的子密鑰,最后的輸出變換需使用4個16比特的子密鑰,所以子密鑰總數(shù)為52。圖4.15的右半部分表示由初始的128比特密鑰產(chǎn)生52個子密鑰的子密鑰產(chǎn)生器。3.IDEA加密過程16加密過程(如圖4.15所示)由連續(xù)的8輪迭代和一個圖4.16是IDEA第1輪的結(jié)構(gòu)示意圖,以后各輪也都是這種結(jié)構(gòu),但所用的子密鑰和輪輸入不同。從結(jié)構(gòu)圖可見,IDEA不是傳統(tǒng)的Feistel密碼結(jié)構(gòu)。每輪開始時有一個變換,該變換的輸入是4個子段和4個子密鑰,變換中的運算是兩個乘法和兩個加法,輸出的4個子段經(jīng)過異或運算形成了兩個16比特的子段作為MA結(jié)構(gòu)的輸入。MA結(jié)構(gòu)也有兩個輸入的子密鑰,輸出是兩個16比特的子段。IDEA的輪結(jié)構(gòu)17圖4.16是IDEA第1輪的結(jié)構(gòu)示意圖,以后各輪也IDEA第1輪的輪結(jié)構(gòu)18IDEA第1輪的輪結(jié)構(gòu)18Y1Y2Y3Y41輪結(jié)構(gòu)19Y1Y2Y3Y41輪結(jié)構(gòu)19最后,變換的4個輸出子段和MA結(jié)構(gòu)的兩個輸出子段經(jīng)過異或運算產(chǎn)生這一輪的4個輸出子段。注意,由X2產(chǎn)生的輸出子段和由X3產(chǎn)生的輸出子段交換位置后形成W12和W13,目的在于進一步增加混淆效果,使得算法更易抵抗差分密碼分析。IDEA加密過程20最后,變換的4個輸出子段和MA結(jié)構(gòu)的兩個輸出子段在每一輪中,執(zhí)行的順序如下:1.X1和第一個子密鑰相乘。2.X2和第二個子密鑰相加。3.X3和第三個子密鑰相加。4.X4和第四個子密鑰相乘。5.將第1步和第3步的結(jié)果相異或。6.將第2步和第4步的結(jié)果相異或。IDEA每一輪的加密順序21在每一輪中,執(zhí)行的順序如下:IDEA每一輪的加密順序217.將第5步的結(jié)果與第五個子密鑰相乘。8.將第6步和第7步的結(jié)果相加。9.將第8步的結(jié)果與第六個子密鑰相乘。10.將第7步和第9步的結(jié)果相加。11.將第1步和第9步的結(jié)果相異或。12.將第3步和第9步的結(jié)果相異或。13.將第2步和第10步的結(jié)果相異或。14.將第4步和第10步的結(jié)果相異或。IDEA每一輪的加密順序227.將第5步的結(jié)果與第五個子密鑰相乘。IDEA每一輪的加密算法的第9步是一個輸出變換,如圖4.17所示。它的結(jié)構(gòu)和每一輪開始的變換結(jié)構(gòu)一樣,不同之處在于輸出變換的第2個和第3個輸入首先交換了位置,目的在于撤銷第8輪輸出中兩個子段的交換。還需注意,第9步僅需4個子密鑰,而前面8輪中每輪需要6個子密鑰。IDEA每一輪的加密順序23算法的第9步是一個輸出變換,如圖4.17所示。它的IDEA的輸出變換24IDEA的輸出變換24加密過程中52個16比特的子密鑰是由128比特的加密密鑰按如下方式產(chǎn)生的:前8個子密鑰Z1,Z2,…,Z8直接從加密密鑰中取,即Z1取前16比特(最高有效位),Z2取下面的16比特,依次類推。然后加密密鑰循環(huán)左移25位,再取下面8個子密鑰Z9,Z10,…,Z16,取法與Z1,Z2,…,Z8的取法相同。這一過程重復下去,直到52子密鑰都被產(chǎn)生為止。IDEA子密鑰的產(chǎn)生25加密過程中52個16比特的子密鑰是由128比特的IDEA子密鑰的產(chǎn)生產(chǎn)生子密鑰的方法。這個算法用了52個子密鑰(8輪中的每一輪需要6個,其他4個用于輸出變換)。首先,將128-位密鑰分成8個16-位子密鑰。這些是算法的第一批8個子密鑰(第一輪6個,第二輪的頭2個)。然后,密鑰向左環(huán)移動25位產(chǎn)生另外8個子密鑰,如此進行直到算法結(jié)束。26IDEA子密鑰的產(chǎn)生產(chǎn)生子密鑰的方法。這個算法用了272728284.IDEA的解密過程加密解密實質(zhì)相同,但使用不同的密鑰;解密密鑰以如下方法從加密子密鑰中導出:解密循環(huán)I的頭4個子密鑰從加密循環(huán)10-I的頭4個子密鑰中導出;解密密鑰第1、4個子密鑰對應(yīng)于1、4加密子密鑰的乘法逆元;2、3對應(yīng)2、3的加法逆元;對前8個循環(huán)來說,循環(huán)I的最后兩個子密鑰等于加密循環(huán)9-I的最后兩個子密鑰;294.IDEA的解密過程加密解密實質(zhì)相同,但使用不同的密鑰;解密與加密過程基本相同,但使用的密鑰不同,解密密鑰按下面的方式生成。(1)第i(i=1,2,…,9)輪解密的前4個子密鑰是由加密過程第(10-i)輪的前4個子密鑰得出。其中第1個和第4個解密子密鑰取為相應(yīng)的第一個和第四個加密子密鑰模乘法逆元。第二和第三個子密鑰的取法為:當輪數(shù)為i=2,..,8時取為相應(yīng)的第三個和第二個加密子密鑰的模加法逆元,當i=1和9時,取為相應(yīng)的第二個和第三個加密子密鑰的模加法逆元。IDEA的解密過程30解密與加密過程基本相同,但使用的密鑰不(2)第i(i=1,…,8)輪解密的后兩個子密鑰等于加密過程的第(9-i)輪的后兩個子密鑰。IDEA的解密過程31(2)第i(i=1,…,8)輪解密的后兩個子密鑰等于加密加密過程變換X1X2X3X4Z1..Z4子加密I11I12I13I14Z5Z6變換W11W12W13W14Z7..Z10子加密I21I22I23I24Z11Z612W21W22W23W24變換W71W72W73W74Z43..Z46子加密I81I82I83I84Z47Z48變換W81W82W83W84Z49..Z52Y1Y2Y3Y4第1輪第2輪第8輪…………..32加密過程變換X1X2X3X4Z1..Z4子加變換X1X2X3X4U49..U52子加密V81V82V83V84U47U48變換J81J82J83J84U43…U46子加密V71V72V73V74U11U12V21V22V23V24變換J21J22J23J24U7…U10子加密V11V12V13V14U5U6變換J11J12J13J14U1…U4Y1Y2Y3Y4第8輪第2輪第1輪解密第9輪…………..解密過程33變換X1X2X3X4U49..U52子加表3.7是對以上關(guān)系的總結(jié)。其中Zj的模216+1乘法逆元為Z-1j,滿足(見58頁表3.7)Zj⊙Z-1j=1mod(216+1)因216+1是一素數(shù),所以每一個不大于216的非0整數(shù)都有一個惟一的模216+1乘法逆元。Zj的模216加法逆元為-Zj,滿足:-Zj+Zj=0mod(216)IDEA的解密過程34表3.7是對以上關(guān)系的總結(jié)。其中Zj的模216+下面驗證解密過程的確可以得到正確的結(jié)果。圖4.18中左邊為加密過程,由上至下,右邊為解密過程,由下至上。將每一輪進一步分為兩步,第1步是變換,其余部分作為第2步,稱為子加密。IDEA的解密過程35下面驗證解密過程的確可以得到正確的結(jié)果。圖4.18IDEA加密和解密框圖36IDEA加密和解密框圖36現(xiàn)在從下往上考慮。對加密過程的最后一個輸出變換,以下關(guān)系成立:Y1=W81⊙Z49Y2=W83+Z50Y3=W82+Z51Y4=W84⊙Z52解密過程中第1輪的第1步產(chǎn)生以下關(guān)系:J11=Y1⊙U1J12=Y2+U2J13=Y3+U3J14=Y4⊙U4IDEA的解密過程37現(xiàn)在從下往上考慮。對加密過程的最后一個輸出變換,以下將解密子密鑰由加密子密鑰表達并將Y1,Y2,Y3,,Y4代入以下關(guān)系,有J11=Y1⊙Z-149=W81⊙Z49⊙Z-149=W81J12=Y2+

-Z50=W83+

Z50+

-Z50=W83J13=Y3+

-Z51=W82+

Z51+

-Z51=W82J14=Y4⊙Z-152=W84⊙Z52⊙Z-152=W84IDEA的解密過程38將解密子密鑰由加密子密鑰表達并將Y1,Y2,Y3,可見解密過程第1輪第1步的輸出等于加密過程最后一步輸入中第2個子段和第3個子段交換后的值。從圖4.16,可得以下關(guān)系:W81=I81MAR(I81I83,I82I84)W82=I83MAR(I81I83,I82I84)W83=I82MAL(I81I83,I82I84)W84=I84MAL(I81I83,I82I84)IDEA的解密過程39可見解密過程第1輪第1步的輸出等于加密過程最后一步其中MAR(X,Y)是MA結(jié)構(gòu)輸入為X和Y時的右邊輸出,MAL(X,Y)是左邊輸出。則V11=J11MAR(J11J13,J12J14)=W81MAR(W81W82,W83W84)=I81MAR(I81I83,I82I84)MAR[I81MAR(I81I83,I82I84)I83MAR(I81I83,I82I84),I82MAL(I81I83,I82I84)I84

MAL(I81I83,I82I84)]=I81MAR(I81I83,I82I84)MAR(I81I83,I82I84)=I81IDEA的解密過程40其中MAR(X,Y)是MA結(jié)構(gòu)輸入為X和Y時的右邊輸出,MA類似地,可有V12=I83V13=I82V14=I84所以解密過程第1輪第2步的輸出等于加密過程倒數(shù)第2步輸入中第2個子段和第3個子段交換后的值。同理可證圖4.18中每步都有上述類似關(guān)系,這種關(guān)系一直到V81=I11V82=I13V83=I12V84=I14即除第2個子段和第3個子段交換位置外,解密過程的輸出變換與加密過程第1輪第1步的變換完全相同。IDEA的解密過程41類似地,可有V12=I83V13=I82所以,除第2個子段和第3個子段交換位置外,解密過程的輸出變換與加密過程第1輪第1步的變換完全相同。所以最后可得知,整個解密過程的輸出等于整個加密過程的輸入。IDEA的解密過程42所以,除第2個子段和第3個子段交換位置外,解密過程IDEA分組密碼的特點可變密鑰長度混合操作依賴數(shù)據(jù)的循環(huán)移位依賴于密鑰的循環(huán)移位依賴S盒子冗長的密鑰調(diào)度算法可變的F函數(shù)和可變的明文/密文長度可變的循環(huán)次數(shù)在每次循環(huán)中都對兩半數(shù)據(jù)進行操作43IDEA分組密碼的特點可變密鑰長度43IDEA可方便地通過軟件和硬件實現(xiàn)。①軟件軟件實現(xiàn)采用16比特子段處理,可通過使用容易編程的加法、移位等運算實現(xiàn)算法的3種運算。②硬件由于加、解密相似,差別僅為使用密鑰的方式,因此可用同一器件實現(xiàn)。再者,算法中規(guī)則的模塊結(jié)構(gòu),可方便VLSI的實現(xiàn)。IDEA分組密碼的特點44IDEA可方便地通過軟件和硬件實現(xiàn)。IDEA分組THEEND!45THEEND!45分組密碼:

IDEA算法《現(xiàn)代密碼學》第4章(5)46分組密碼:

IDEA算法《現(xiàn)代密碼學》第4章(5)1本節(jié)主要內(nèi)容1、IDEA基本概念2、IDEA設(shè)計原理3、IDEA加密過程4、IDEA解密過程47本節(jié)主要內(nèi)容1、IDEA基本概念2IDEA(InternationalDataEncryptionAlgorithm)是瑞士的JamesMassey,XuejiaLai等人提出的加密算法,在密碼學中屬于數(shù)據(jù)塊加密算法(BlockCipher)類。

IDEA使用長度為128bit的密鑰,數(shù)據(jù)塊大小為64bit。從理論上講,IDEA屬于“強”加密算法,至今還沒有出現(xiàn)對該算法的有效攻擊算法。1.IDEA基本概念48IDEA(InternationalDa

早在1990年,XuejiaLai等人在EuroCrypt’90年會上提出了分組密碼建議PES(ProposedEncryptionStandard)。在EuroCrypt’91年會上,XuejiaLai等人又提出了PES的修正版IPES(ImprovedPES)。目前IPES已經(jīng)商品化,并改名為IDEA。IDEA已由瑞士的Ascom公司注冊專利,以商業(yè)目的使用IDEA算法必須向該公司申請許可。IDEA基本概念49早在1990年,XuejiaLai等人IDEA是一個分組長度為64位的分組密碼算法,密鑰長度為128位(抗強力攻擊能力比DES強),同一算法既可加密也可解密。

IDEA能抗差分分析和相關(guān)分析;IDEA似乎沒有DES意義下的弱密鑰;IDEA的“混淆”和“擴散”設(shè)計原則來自三種運算,它們易于軟、硬件實現(xiàn)(加密速度快)IDEA基本概念50IDEA是一個分組長度為64位的分組密碼算法,密鑰異或運算()整數(shù)模216加(+)整數(shù)模216+1乘()(IDEA的S盒)擴散由稱為MA結(jié)構(gòu)的算法基本構(gòu)件提供。Z6F2F1Z5G1G2IDEA運算51異或運算()Z6F2F1Z5G1G2IDEA運算6實現(xiàn)上的考慮使用子分組:16bit的子分組;使用簡單操作(易于加法、移位等操作實現(xiàn))加密解密過程類似;規(guī)則的結(jié)構(gòu)(便于VLSI實現(xiàn))。IDEA運算52實現(xiàn)上的考慮IDEA運算72.IDEA設(shè)計原理1密碼的強度:主要是通過混淆和擴散來實現(xiàn)?;煜龑崿F(xiàn)的方法:(1)逐比特異或。表示為(2)模整數(shù)加法,表示為,其輸入和輸出作為16位無符號整數(shù)處理。模整數(shù)乘法,表示為,其輸入和輸出中除16全0作為處理外,其余都作為16位無符號整數(shù)處理。532.IDEA設(shè)計原理1密碼的強度:主要是通過混淆和擴散例如0000000000000000⊙1000000000000000=1000000000000001這是因為216×215mod(216+1)=215+1。IDEA設(shè)計原理54例如IDEA設(shè)計原理9表3.6給出了操作數(shù)為2比特長時3種運算的運算表。在以下意義下,3種運算是不兼容的:①3種運算中任意兩種都不滿足分配律,例如a+(b⊙c)≠(a+b)⊙(a+c)②3種運算中任意兩種都不滿足結(jié)合律,例如a+(bc)≠(a+b)c+

IDEA設(shè)計原理55表3.6給出了操作數(shù)為2比特長時3種運算的運算表。3種運算結(jié)合起來使用可對算法的輸入提供復雜的變換,從而使得對IDEA的密碼分析比對僅使用異或運算的DES更為困難。算法中擴散是由稱為乘加(multiplication/addition,MA)結(jié)構(gòu)(見圖4.14)的基本單元實現(xiàn)的。該結(jié)構(gòu)的輸入是兩個16比特的子段和兩個16比特的子密鑰,輸出也為兩個16比特的子段。這一結(jié)構(gòu)在算法中重復使用了8次,獲得了非常有效的擴散效果。IDEA設(shè)計原理563種運算結(jié)合起來使用可對算法的輸入提供復雜的變換IDEA算法的擴散主要是由乘加結(jié)構(gòu)的基本單元實現(xiàn)的。IDEA的MA結(jié)構(gòu)57IDEA算法的擴散主要是由乘加結(jié)構(gòu)的基本單元實現(xiàn)的。IDEA

IDEA加密的總體方案循環(huán)2循環(huán)8循環(huán)1輸出變換64位密文64位明文Z1Z6Z7Z12Z43Z48Z49Z52子密鑰生成器128位密鑰Z1Z521658IDEA加密的總體方案循環(huán)2循環(huán)8循環(huán)1輸出變換64位密

IDEA加密的總體方案圖59IDEA加密的總體方案圖14IDEA加密過程第1輪64比特明文X1X2X3X4第2輪W11W12W13W14第8輪W71W72W73W74W21W22W23W24W81W82W83W84輸出變換Y1Y2Y3Y4密文…Z1Z6…Z7Z12…Z43Z48…Z49Z52字密鑰生成器128比特密鑰Z1Z5260IDEA加密過程第1輪64比特明文X1X2X3X4第2輪W1

加密過程(如圖4.15所示)由連續(xù)的8輪迭代和一個輸出變換組成,算法將64比特的明文分組分成4個16比特的子段,每輪迭代以4個16比特的子段作為輸入,輸出也為4個16比特的子段。最后的輸出變換也產(chǎn)生4個16比特的子段,鏈接起來后形成64比特的密文分組。每輪迭代還需使用6個16比特的子密鑰,最后的輸出變換需使用4個16比特的子密鑰,所以子密鑰總數(shù)為52。圖4.15的右半部分表示由初始的128比特密鑰產(chǎn)生52個子密鑰的子密鑰產(chǎn)生器。3.IDEA加密過程61加密過程(如圖4.15所示)由連續(xù)的8輪迭代和一個圖4.16是IDEA第1輪的結(jié)構(gòu)示意圖,以后各輪也都是這種結(jié)構(gòu),但所用的子密鑰和輪輸入不同。從結(jié)構(gòu)圖可見,IDEA不是傳統(tǒng)的Feistel密碼結(jié)構(gòu)。每輪開始時有一個變換,該變換的輸入是4個子段和4個子密鑰,變換中的運算是兩個乘法和兩個加法,輸出的4個子段經(jīng)過異或運算形成了兩個16比特的子段作為MA結(jié)構(gòu)的輸入。MA結(jié)構(gòu)也有兩個輸入的子密鑰,輸出是兩個16比特的子段。IDEA的輪結(jié)構(gòu)62圖4.16是IDEA第1輪的結(jié)構(gòu)示意圖,以后各輪也IDEA第1輪的輪結(jié)構(gòu)63IDEA第1輪的輪結(jié)構(gòu)18Y1Y2Y3Y41輪結(jié)構(gòu)64Y1Y2Y3Y41輪結(jié)構(gòu)19最后,變換的4個輸出子段和MA結(jié)構(gòu)的兩個輸出子段經(jīng)過異或運算產(chǎn)生這一輪的4個輸出子段。注意,由X2產(chǎn)生的輸出子段和由X3產(chǎn)生的輸出子段交換位置后形成W12和W13,目的在于進一步增加混淆效果,使得算法更易抵抗差分密碼分析。IDEA加密過程65最后,變換的4個輸出子段和MA結(jié)構(gòu)的兩個輸出子段在每一輪中,執(zhí)行的順序如下:1.X1和第一個子密鑰相乘。2.X2和第二個子密鑰相加。3.X3和第三個子密鑰相加。4.X4和第四個子密鑰相乘。5.將第1步和第3步的結(jié)果相異或。6.將第2步和第4步的結(jié)果相異或。IDEA每一輪的加密順序66在每一輪中,執(zhí)行的順序如下:IDEA每一輪的加密順序217.將第5步的結(jié)果與第五個子密鑰相乘。8.將第6步和第7步的結(jié)果相加。9.將第8步的結(jié)果與第六個子密鑰相乘。10.將第7步和第9步的結(jié)果相加。11.將第1步和第9步的結(jié)果相異或。12.將第3步和第9步的結(jié)果相異或。13.將第2步和第10步的結(jié)果相異或。14.將第4步和第10步的結(jié)果相異或。IDEA每一輪的加密順序677.將第5步的結(jié)果與第五個子密鑰相乘。IDEA每一輪的加密算法的第9步是一個輸出變換,如圖4.17所示。它的結(jié)構(gòu)和每一輪開始的變換結(jié)構(gòu)一樣,不同之處在于輸出變換的第2個和第3個輸入首先交換了位置,目的在于撤銷第8輪輸出中兩個子段的交換。還需注意,第9步僅需4個子密鑰,而前面8輪中每輪需要6個子密鑰。IDEA每一輪的加密順序68算法的第9步是一個輸出變換,如圖4.17所示。它的IDEA的輸出變換69IDEA的輸出變換24加密過程中52個16比特的子密鑰是由128比特的加密密鑰按如下方式產(chǎn)生的:前8個子密鑰Z1,Z2,…,Z8直接從加密密鑰中取,即Z1取前16比特(最高有效位),Z2取下面的16比特,依次類推。然后加密密鑰循環(huán)左移25位,再取下面8個子密鑰Z9,Z10,…,Z16,取法與Z1,Z2,…,Z8的取法相同。這一過程重復下去,直到52子密鑰都被產(chǎn)生為止。IDEA子密鑰的產(chǎn)生70加密過程中52個16比特的子密鑰是由128比特的IDEA子密鑰的產(chǎn)生產(chǎn)生子密鑰的方法。這個算法用了52個子密鑰(8輪中的每一輪需要6個,其他4個用于輸出變換)。首先,將128-位密鑰分成8個16-位子密鑰。這些是算法的第一批8個子密鑰(第一輪6個,第二輪的頭2個)。然后,密鑰向左環(huán)移動25位產(chǎn)生另外8個子密鑰,如此進行直到算法結(jié)束。71IDEA子密鑰的產(chǎn)生產(chǎn)生子密鑰的方法。這個算法用了722773284.IDEA的解密過程加密解密實質(zhì)相同,但使用不同的密鑰;解密密鑰以如下方法從加密子密鑰中導出:解密循環(huán)I的頭4個子密鑰從加密循環(huán)10-I的頭4個子密鑰中導出;解密密鑰第1、4個子密鑰對應(yīng)于1、4加密子密鑰的乘法逆元;2、3對應(yīng)2、3的加法逆元;對前8個循環(huán)來說,循環(huán)I的最后兩個子密鑰等于加密循環(huán)9-I的最后兩個子密鑰;744.IDEA的解密過程加密解密實質(zhì)相同,但使用不同的密鑰;解密與加密過程基本相同,但使用的密鑰不同,解密密鑰按下面的方式生成。(1)第i(i=1,2,…,9)輪解密的前4個子密鑰是由加密過程第(10-i)輪的前4個子密鑰得出。其中第1個和第4個解密子密鑰取為相應(yīng)的第一個和第四個加密子密鑰模乘法逆元。第二和第三個子密鑰的取法為:當輪數(shù)為i=2,..,8時取為相應(yīng)的第三個和第二個加密子密鑰的模加法逆元,當i=1和9時,取為相應(yīng)的第二個和第三個加密子密鑰的模加法逆元。IDEA的解密過程75解密與加密過程基本相同,但使用的密鑰不(2)第i(i=1,…,8)輪解密的后兩個子密鑰等于加密過程的第(9-i)輪的后兩個子密鑰。IDEA的解密過程76(2)第i(i=1,…,8)輪解密的后兩個子密鑰等于加密加密過程變換X1X2X3X4Z1..Z4子加密I11I12I13I14Z5Z6變換W11W12W13W14Z7..Z10子加密I21I22I23I24Z11Z612W21W22W23W24變換W71W72W73W74Z43..Z46子加密I81I82I83I84Z47Z48變換W81W82W83W84Z49..Z52Y1Y2Y3Y4第1輪第2輪第8輪…………..77加密過程變換X1X2X3X4Z1..Z4子加變換X1X2X3X4U49..U52子加密V81V82V83V84U47U48變換J81J82J83J84U43…U46子加密V71V72V73V74U11U12V21V22V23V24變換J21J22J23J24U7…U10子加密V11V12V13V14U5U6變換J11J12J13J14U1…U4Y1Y2Y3Y4第8輪第2輪第1輪解密第9輪…………..解密過程78變換X1X2X3X4U49..U52子加表3.7是對以上關(guān)系的總結(jié)。其中Zj的模216+1乘法逆元為Z-1j,滿足(見58頁表3.7)Zj⊙Z-1j=1mod(216+1)因216+1是一素數(shù),所以每一個不大于216的非0整數(shù)都有一個惟一的模216+1乘法逆元。Zj的模216加法逆元為-Zj,滿足:-Zj+Zj=0mod(216)IDEA的解密過程79表3.7是對以上關(guān)系的總結(jié)。其中Zj的模216+下面驗證解密過程的確可以得到正確的結(jié)果。圖4.18中左邊為加密過程,由上至下,右邊為解密過程,由下至上。將每一輪進一步分為兩步,第1步是變換,其余部分作為第2步,稱為子加密。IDEA的解密過程80下面驗證解密過程的確可以得到正確的結(jié)果。圖4.18IDEA加密和解密框圖81IDEA加密和解密框圖36現(xiàn)在從下往上考慮。對加密過程的最后一個輸出變換,以下關(guān)系成立:Y1=W81⊙Z49Y2=W83+Z50Y3=W82+Z51Y4=W84⊙Z52解密過程中第1輪的第1步產(chǎn)生以下關(guān)系:J11=Y1⊙U1J12=Y2+U2J13=Y3+U3J14=Y4⊙U4IDEA的解密過程82現(xiàn)在從下往上考慮。對加密過程的最后一個輸出變換,以下將解密子密鑰由加密子密鑰表達并將Y1,Y2,Y3,,Y4代入以下關(guān)系,有J11=Y1⊙Z-149=W81⊙Z49⊙Z-149=W81J12=Y2+

-Z50=W83+

Z50+

-Z50=W83J13=Y3+

-Z51=W82+

Z51+

-Z51=W82J14=Y4⊙Z-152=W84⊙Z52⊙Z-152=W84IDEA的解密過程83

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論