第02章對稱密鑰密碼體系_第1頁
第02章對稱密鑰密碼體系_第2頁
第02章對稱密鑰密碼體系_第3頁
第02章對稱密鑰密碼體系_第4頁
第02章對稱密鑰密碼體系_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章對稱秘鑰密碼體系

2.1密碼體系的原理和基本概念2.2數(shù)據(jù)加密標準(DES)2.3IDEA2.4AES2.5序列密碼

NetworkandInformationSecurity2.1密碼體系的原理

NetworkandInformationSecurity加密解密公式明文用M(消息)或P(明文)表示,密文用C表示。加密函數(shù)E作用于M得到密文C,用數(shù)學式子表示為:E(M)=C相反地,解密函數(shù)D作用于C產(chǎn)生MD(C)=M先加密后再解密消息,原始的明文將恢復出來,下面的等式必須成立:D(E(M))=MNetworkandInformationSecurity2.1.2安全密碼準則所有算法的安全性都基于密鑰的安全性,而不是基于算法細節(jié)的安全性。

只有公開的算法才是安全的。

NetworkandInformationSecurity

2.1.3對稱密鑰密碼和非對稱密鑰密碼基于密鑰的算法通常有兩類:對稱算法和非對稱算法。對稱算法有時又叫傳統(tǒng)密碼算法,就是加密密鑰能夠從解密密鑰中容易地推算出來,反過來也成立。在大多數(shù)對稱算法中,加/解密密鑰是相同的。對稱算法可分為兩類。一次只對明文中的單個比特(有時對字節(jié))運算的算法稱為序列密碼或流密碼算法。另一類算法是對明文的一組比特進行運算,這些比特組稱為分組,相應的算法稱為分組算法。NetworkandInformationSecurity

圖2-4分組密碼的工作原理NetworkandInformationSecurity非對稱算法是這樣設(shè)計的:用作加密的密鑰不同于用作解密的密鑰,而且解密密鑰不能根據(jù)加密密鑰計算出來(至少在合理假定的有限時間內(nèi))。非對稱算法也叫做公開密鑰算法,是因為加密密鑰能夠公開,即陌生者能用加密密鑰加密信息,但只有用相應的解密密鑰才能解密信息。NetworkandInformationSecurity2.1.4密碼分析根據(jù)被破譯的難易程度,不同的密碼算法具有不同的安全等級如果破譯算法的代價大于加密數(shù)據(jù)的價值,那么可能是安全的。如果破譯算法所需的時間比加密數(shù)據(jù)保密的時間更長,那么可能是安全的。如果用單密鑰加密的數(shù)據(jù)量比破譯算法需要的數(shù)據(jù)量少得多,那么可能是安全的。NetworkandInformationSecurity復雜性幾乎所有密碼系統(tǒng)在唯密文攻擊中都是可破的,只要簡單地一個接一個地去試每種可能的密鑰,并且檢查所得明文是否有意義。這種方法叫做蠻力攻擊。密碼學更關(guān)心在計算上不可破譯的密碼系統(tǒng)。如果一個算法用(現(xiàn)在或?qū)恚┛傻玫降馁Y源在可接受的時間內(nèi)都不能破譯,這個算法則被認為在計算上是安全的。NetworkandInformationSecurity可以用不同方式衡量攻擊方法的復雜性:(1)數(shù)據(jù)復雜性:用作攻擊輸入所需要的數(shù)據(jù)量。(2)時間復雜性:完成攻擊所需要的時間。(3)存儲復雜性:進行攻擊所需要的存儲量。NetworkandInformationSecurity2.2數(shù)據(jù)加密標準(DES)

2.2.1DES算法

DES加密算法如圖2-3所示,由以下四個部分組成。NetworkandInformationSecurity1.初始置換函數(shù)IPDES對64位明文分組進行操作。首先,64位明文分組x經(jīng)過一個初始置換函數(shù)IP,產(chǎn)生64位的輸出x0,再將分組x0分成左半部分L0和右半部分R0,即:

x0=IP(x)=L0R0置換表如表2-1所示。此表順序為從上到下,從左至右。如初始置換把明文的第58位換至第1位,把第50位換至第二位,以此類推。NetworkandInformationSecurity表2-1初始置換IP58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157NetworkandInformationSecurity圖2-5DES加密算法NetworkandInformationSecurity2.獲取子密鑰KiDES加密算法的密鑰長度為56位,但一般表示為64位,其中,每個第8位用于奇偶校驗。在DES加密算法中,將用戶提供的64位初始密鑰經(jīng)過一系列的處理得到K1,K2,…,K16,分別作為1~16輪運算的16個子密鑰?,F(xiàn)在來看如何獲得這16個子密鑰。首先,將64位密鑰去掉8個校驗位,用密鑰置換PC–1置換剩下的56位密鑰;再將56位分成前28位C0和后28位D0兩部分,即PC–1(K56)=C0D0。密鑰置換PC-1如表2-2所示。NetworkandInformationSecurity表2-2密鑰置換PC–157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124NetworkandInformationSecurity接下來,根據(jù)輪數(shù),這兩部分分別循環(huán)左移1位或2位。具體每輪移位的位數(shù)如表2-3所示。表2-3每輪移動的位數(shù)輪次12345678910111213141516位數(shù)1122222212222221NetworkandInformationSecurity移動后,將兩部分合并成56位后通過壓縮置換PC–2后得到48位子密鑰,即Ki=PC-2(CiDi)。壓縮置換如表2-4所示。表2-4壓縮置換PC–214171124153281562110231912426816727201324152313747553040514533484449395634534642503629329,18?NetworkandInformationSecurity圖2-6子密鑰產(chǎn)生NetworkandInformationSecurity3.密碼函數(shù)F1)函數(shù)F的操作步驟密碼函數(shù)F的輸入是32比特數(shù)據(jù)和48比特的子密鑰,其操作步驟如圖2-5所示。(1)擴展置換(E)。將數(shù)據(jù)的右半部分Ri從32位擴展為48位。位選擇函數(shù)(也稱E盒)如表2-5所示。NetworkandInformationSecurity圖2-7F(Ri,Ki)計算NetworkandInformationSecurity表2-5擴展置換(E)32123

4

54

5678

989101112131213141516171617

1819202120212223242524252627282928293031321NetworkandInformationSecurity(2)異或。擴展后的48位輸出E(Ri)與壓縮后的48位密鑰Ki作異或運算。(3)S盒替代。將異或得到的48位結(jié)果分成八個6位的塊,每一塊通過對應的一個S盒產(chǎn)生一個4位的輸出。八個S盒如表2-6所示。NetworkandInformationSecurityS盒的具體置換過程為:某個Si盒的6位輸入的第1位和第6位形成一個2位的二進制數(shù)(從0~3),對應表中的某一行;同時,輸入的中間4位構(gòu)成4位二進制數(shù)(從0~15)對應表中的某一列(注意:行和列均從0開始計數(shù))。例如,第8個S盒的輸入為001011,前后2位形成的二進制數(shù)為01,對應第8個S盒的第1行;中間4位為0101,對應同一S盒的第5列。從表2-6中可得S8盒的第1行第5列的數(shù)為3,于是就用0011代替原輸入001011。

NetworkandInformationSecurity表2-6S盒S1盒1441312151183106125907015741421311061211953841148136211151297310501512824917511314100613S2盒1518146113497213120510313471528141201106911501471110413158126932151381013154211671205149NetworkandInformationSecurityS3盒1009146315511312711428137093461028514121115113649815301112125101471101306987415143115212S4盒7131430691012851112415138115615034721211014910690121171315131452843150610113894511127214S5盒2124171011685315130149141121247131501510398642111101378159125630141181271142136150910453NetworkandInformationSecurityS6盒1211015926801334147511101542712956113140113891415528123704101131164321295151011141760813S7盒4112141508133129751061130117491101435122158614111312371410156805926111381410795015142312S8盒1328461511110931450127115138103741256110149271141912142061013153582114741081315129035611NetworkandInformationSecurity(4)P盒置換。將八個S盒的輸出連在一起生成一個32位的輸出,輸出結(jié)果再通過置換P產(chǎn)生一個32位的輸出即:F(Ri,Ki)。表2-7為P盒置換。至此,密碼函數(shù)F的操作就完成了。最后,將P盒置換的結(jié)果與最初的64位分組的左半部分異或,然后左、右半部分交換,接著開始下一輪計算。NetworkandInformationSecurity表2-7P盒置換1672021291228171152326518311028241432273919133062211425NetworkandInformationSecurity2)函數(shù)F的設(shè)計

函數(shù)F是DES加密的核心,它依賴于S盒的設(shè)計。這也適用于其它的對稱分組加密算法。下面我們簡單討論一下有關(guān)F函數(shù)的一些通用設(shè)計準則以及S盒設(shè)計問題。

(1)F的設(shè)計準則。函數(shù)F的基本功能就是“擾亂(confusion)”輸入,因此,對于F來說,其非線性越高越好,也就是說,要恢復F所做的“擾亂”操作越難越好。NetworkandInformationSecurity

其它的設(shè)計準則還包括嚴格雪崩準則(SAC)和比特獨立準則(BIC)

。所謂SAC,就是要求算法具有良好的雪崩效應,輸入當中的一個比特發(fā)生變化都應當使輸出產(chǎn)生”盡可能多”

的比特變化。嚴格地說,就是當任何單個輸入比特位i發(fā)生變換時,一個S盒的第j比特輸出位發(fā)生變換的概率應為1/2,且對任意的i,j都應成立。BIC的意思是當單個輸入比特位i發(fā)生變化時,輸出比特位j,k的變化應當互相獨立,且對任意的i,j,k均應成立。SAC和BIC可以有效的增強F函數(shù)的“擾亂”功能。

NetworkandInformationSecurity

(2)S盒設(shè)計。S盒的設(shè)計在對稱分組密碼研究領(lǐng)域中起著舉足輕重的作用。本質(zhì)上,S盒的作用就是對輸入向量進行處理,使得輸出看起來更具隨機性,輸入和輸出之間應當是非線性的,很難用線性函數(shù)來逼近。顯然,S盒的尺寸是一個很重要的特性。一個S盒其輸入為n比特,輸出為m比特。DES的S盒大小為6×4。S盒越大,就越容易抵制差分和線性密碼分析。NetworkandInformationSecurityMister和Adams提出了很多的S盒設(shè)計原則,其中包括要求S盒滿足SAC和BIC的原則,以及S盒的所有列的全部線性組合應當滿足一類稱為bent函數(shù)的高度非線性布爾函數(shù)的原則。Bent函數(shù)具有很多有趣的特性,其中,高度非線性和最高階的嚴格雪崩準則對于S盒的設(shè)計尤為重要。NetworkandInformationSecurity

Nyberg提出了以下幾種S盒的設(shè)計和實踐原則:●隨機性:采用某些偽隨機數(shù)發(fā)生器或隨機數(shù)表格來產(chǎn)生S盒的各個項?!耠S機測試:隨機選擇S盒各個項,然后按照不同準則測試其結(jié)果。●數(shù)學構(gòu)造:根據(jù)某些數(shù)學原理來產(chǎn)生S盒。其好處就是可以根據(jù)數(shù)學上的嚴格證明來抵御差分和線性密碼分析,并且可以獲得很好的擴散(Diffusion)特性。NetworkandInformationSecurity

4.末置換函數(shù)IP-1

末置換是初始置換的逆變換。對L0和R0進行16輪相同的運算后,將得到的兩部分數(shù)據(jù)合在一起,經(jīng)過一個末置換函數(shù)就可得到64位的密文c,即:c=IP-1(R16L16)(16指的是16輪)

表2-8列出了該變換。

NetworkandInformationSecurity表2-8末置換IP-140848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725NetworkandInformationSecurity5.總結(jié)根據(jù)上面所述,可以將DES算法歸結(jié)如下:子密鑰生成:C[0]D[0]=PC–1(K)for1<=i<=16{C[i]=LS[i](C[i?1])D[i]=LS[i](D[i?1])K[i]=PC–2(C[i]D[i])}NetworkandInformationSecurity加密過程:L[0]R[0]=IP(x)for1<=i<=16{L[i]=R[i?1]R[i]=L[i?1]XORf?(R[i?1],K[i])}c=IP?1(R[16]L[16])vNetworkandInformationSecurity解密過程:R[16]L[16]=IP(c)for1<=i<=16{R[i?1]=L[i]L[i?1]=R[i]XORf?(L[i],K[i])}x=IP?1(L[0]R[0])NetworkandInformationSecurity

2.2.2三重DES

三重DES是DES的一種變形的實現(xiàn)方式,如圖2-10所示。從圖中我們可以得到其加/解密運算為:

加密:c=EK3(DK2(EK1(m)))

解密:?m=DK1(EK2(DK3(c)))其中,K1、K2、K3為56位DES密鑰。為了獲得更高的安全性,三個密鑰應該選擇為互不相同。但在某些情況下,如與原來的DES保持兼容,則可以選擇K1=K3。?注:所謂兼容就是原來的加密和解密不變化(可以繼續(xù)使用)NetworkandInformationSecurity圖2-12三重DESNetworkandInformationSecurity2.3IDEA

IDEA即國際數(shù)據(jù)加密算法,它的原型是PES(ProposedEncryptionStandard)。對PES改進后的新算法稱為IPES,并于1992年改名為IDEA(InternationalDataEncryptionAlgorithm)。NetworkandInformationSecurityIDEA是一個分組長度為64位的分組密碼算法,密鑰長度為128位,同一個算法即可用于加密,也可用于解密。IDEA的加密過程包括兩部分:(1)輸入的64位明文組分成四個16位子分組:X1、X2、X3和X4。四個子分組作為算法第一輪的輸入,總共進行八輪的迭代運算,產(chǎn)生64位的密文輸出。(2)輸入的128位會話密鑰產(chǎn)生八輪迭代所需的52個子密鑰(八輪運算中每輪需要六個,還有四個用于輸出變換)。NetworkandInformationSecurity子密鑰產(chǎn)生:輸入的128位密鑰分成八個16位子密鑰(作為第一輪運算的六個和第二輪運算的前兩個密鑰);將128位密鑰循環(huán)左移25位后再得八個子密鑰(前面四個用于第二輪,后面四個用于第三輪)。這一過程一直重復,直至產(chǎn)生所有密鑰。IDEA的解密過程和加密過程相同,只是對子密鑰的要求不同。表2-8給出了加密子密鑰和相應的解密子密鑰。NetworkandInformationSecurity2.4高級加密標準(AES)

2.4.1高級加密標準產(chǎn)生背景1997年4月15日,美國國家標準與技術(shù)研究所(NIST)發(fā)起征集AES(AdvancedEncryptionStandard)的活動。對AES的基本要求是:比三重DES快,至少與三重DES一樣安全,數(shù)據(jù)分組長度為128比特,密鑰長度為128/192/256比特。1998年8月12日,在首屆AES會議上公布了AES的15個候選算法,任由全世界各機構(gòu)和個人攻擊和評論。1999年3月,在第二屆AES會議上從15個候選算法中選出5個。2000年4月13號和14號,召開第三屆AES會議。2000年10月2日,NIST宣布Rijndael作為新的AES,Rijndael終于脫穎而出。介紹其中的3個。NetworkandInformationSecurity2.4.2Rijndael算法Rijndael(榮代爾)算法是比利時的JoanDaemen和VincentRijmen設(shè)計的,該算法的原形是Square算法。它的設(shè)計策略是寬軌跡策略。寬軌跡策略是針對差分分析和線性分析提出的一種新的策略,其最大優(yōu)點是可以給出算法的最佳差分特性的概率及最佳線性逼近的偏差的界。由上述條件可以分析算法抵抗差分密碼分析和線性密碼分析的能力。Rijndael采用的是代替/置換算法。每一輪由以下3層組成。線性混合層:確保多輪之上的高度擴散。非線性層:由16個S盒并置而成,起到混淆的作用。密鑰加層:子密鑰簡單地異或到中間狀態(tài)上。NetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurityNetworkandInformationSecurity(4)輪密鑰加(AddRoundKey)輪密鑰加(AddRoundKey,ARK):在輪密鑰加變換中,每一輪的輪密鑰按位與狀態(tài)進行異或運算.輪密鑰通過密鑰按照密鑰方案來生成,下面將具體描述密鑰方案。NetworkandInformationSecurity2.5序列密碼2.5.1序列密碼原理序列密碼加密時將明文劃分成字符(如單個字母)或其編碼的基本單元(如0、1),然后將其與密鑰流進行運算(通常為異或),解密時以同步產(chǎn)生的相同密鑰流實現(xiàn)解密。序列

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論