IDEA分组密码算法课件.ppt
IDEA分組密碼演算法IDEA分組密碼演算法概述XuejiaLai和JamesMassey於1990年提出了PES(ProposedEncryptionStandard,推薦加密標準)分組密碼演算法。為了抗擊差分密碼分析,設計者於1991年對PES作了改進,並將改進後的演算法稱為IPES(ImprovedProposedEncryptionStandard,改進型推薦加密標準)。IPES於1992年改名為IDEA(InternationalDataEncryptionAlgorithm,國際數據加密標準)。演算法的描述分組長度:64比特密鑰長度:128比特迭代圈數:8圈(每圈6個子密鑰),附加一個輸出變換(4個子密鑰)。子密鑰長度:16比特。52個子密鑰由128比特初始密鑰通過密鑰生成演算法生成。使用的三種基本運算:按位模2加;模216加法,模216+1乘法。整個運算過程全部在16位子分組上進行,因此該演算法對16位處理器尤其有效。將待加密的64比特明文數據X分成4個16位子塊,作為演算法第一圈的輸入,每圈有6個16比特圈子密鑰參與變換,經過8圈迭代後得4個16比特子塊,再通過一個輸出變換得演算法的輸出,級連起來即為密文Y。(一)加密演算法所用符號的含義:xi(i=1,2,3,4)是16比特明文子分組;yi(i=1,2,3,4)是16比特密文子分組;zi(i=1,…,52)16比特圈子密鑰;wi,j(i=1,2,...,8;j=1,2,3,4)是16比特中間結果;⊕表示16比特的逐位異或運算;表示16比特整數的模216加法運算;表示16比特整數的模216+1乘法運算,其中全零子塊用216代替。64bit明文X迴圈2輸出變換迴圈8迴圈164bit密文Y子密鑰生成演算法128bit密鑰ZIDEA加密總體方案流程圖IDEA第一圈的細節Fz5,z6IDEA的輸出變換(二)子密鑰生成演算法首先將128比特初始密鑰從左到右分成8個16比特子塊,並將所得的8個子塊直接作為加密演算法中最前面的8個子密鑰,然後將上述128比特密鑰迴圈左移25位,將其從左到右分成8個16比特子塊,得到隨後的8個子密鑰,重複這個過程,直到產生52個16比特子密鑰為止。(三)脫密演算法這裏z-1表示z的模216+1乘法逆,-z表示z的模216加法逆。脫密密鑰與加密密鑰的對應關係為:脫密演算法與加密演算法是相同的,只是在脫密過程中使用脫密密鑰。IDEA加、脫密子密鑰的關係64bit明文X子加密過程輸出變換迴圈8變換64bit密文Y迴圈1迴圈1子加密過程變換迴圈8輸出變換子加密過程變換輸出變換64bit密文Y迴圈1子加密過程變換64bit密文Y迴圈8(四)IDEA加、脫密變換的相似性圖示的變換是IDEA的圈變換中的一部分,稱為共處理變換。設該變換的輸入為:輸出為:要證明IDEA加、脫密演算法的相似性,只需證明共處理變換的4個輸入子塊經過兩次共處理變換後的輸出仍然是它本身即可。若記乘加結構輸出的左16比特為LMA,右16比特為RMA,則有下麵4個式子:由於則:這說明當共處理變換以作為輸入,而子密鑰不變時,其輸出為。至此證明了IDEA分組密碼加、脫密變換的相似性。二、IDEA演算法的設計原理IDEA是一種使用128比特密鑰以64比特分組為單位加密數據的分組密碼,其設計目標可以歸結為兩方面:一方面與密碼強度有關,另一方面與使用的方便性有關。(一)密碼強度IDEA的下列特性與其密碼強度有關:分組長度:分組長度應足夠大,以抵抗統計分析。使用64比特的分組大小通常認為已經足夠強,另外使用密碼回饋操作方式可以進一步加強演算法這方面的強度。密鑰長度:密鑰長度應足夠長,以抵抗密鑰窮盡攻擊,通過使用128比特的長度,在將來的很長時間裏IDEA似乎在這方面都是安全的。