密碼學原理與實踐第二版課件_第1頁
密碼學原理與實踐第二版課件_第2頁
密碼學原理與實踐第二版課件_第3頁
密碼學原理與實踐第二版課件_第4頁
密碼學原理與實踐第二版課件_第5頁
已閱讀5頁,還剩89頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2022/12/15第2章對稱密鑰密碼體系理解密碼學的基本原理掌握DES加密算法了解A5和IDEA加密算法理解序列密碼原理2022/12/11第2章對稱密鑰密碼體系理解密碼學的基本2022/12/152.1密碼體制原理與分類(I)加密解密明文P密文C明文P加密密鑰Ke解密密鑰KdC=E(Ke,P)P=D(Kd,E(Ke,P)對稱密碼體制(symmetriccryptosystem)-單鑰加密密鑰和解密密鑰是相同的非對稱密碼體制(asymmetriccryptosystem)-公鑰密碼加密密鑰和解密密鑰是成對出現(xiàn)加密過程和解密過程不同,使用的密鑰也不同2022/12/112.1密碼體制原理與分類(I)加密解密2022/12/15密碼算法安全準則與分類密碼的安全性原則公開的密碼算法才是安全的,保密的算法只在小范圍內設計和研究。按照密鑰使用方法分對稱密碼算法(symmetriccipher):又稱傳統(tǒng)密碼算法(conventionalcipher)或秘密密鑰算法、單密鑰算法。非對稱密鑰算法(asymmetriccipher),又稱公開密鑰算法(public-Keycipher)。按照明文的處理方法分分組密碼(blockcipher):將明文分成固定長度的組,用同一密鑰和算法對每一塊加密,輸出也是固定長度的密文。流密碼(streamcipher):又稱序列密碼,每次加密一位或一字節(jié)的明文。

2022/12/11密碼算法安全準則與分類密碼的安全性原則2022/12/152.1.4密碼分析可破譯密碼當給予足夠的時間和計算資源的時候,破譯者能確定的加密算法。對可破譯性的評估基于當前的技術。窮舉攻擊攻擊者對一條密文嘗試所有可能的密鑰,直到得到有意義的明文。Kerckhoff原則:加密算法應建立在算法的公開不影響明文和密鑰的安全的基礎上。這一原則得到普遍承認,成為判定密碼強度的衡量標準,實際上也成為古典密碼和現(xiàn)代密碼的分界線。2022/12/112.1.4密碼分析可破譯密碼2022/12/15傳統(tǒng)密碼體制基于加密信息的攻擊類型2022/12/11傳統(tǒng)密碼體制基于加密信息的攻擊類型2022/12/15密碼的安全性與攻擊復雜性無條件安全(Unconditionallysecure)無論破譯者有多少密文,他也無法解出對應的明文,即使他解出了,他也無法驗證結果的正確性.一次一密計算上安全的破譯密碼的代價超出密文信息的價值破譯密碼的時間超出密文信息的有效生命期攻擊復雜性:數據時間存儲量2022/12/11密碼的安全性與攻擊復雜性無條件安全(Un2022/12/15古典密碼古典密碼的加密方法一般是文字置換,使用手工或機械變換的方式實現(xiàn)。古典密碼系統(tǒng)已經初步體現(xiàn)出近代密碼系統(tǒng)的雛形,它比古代加密方法復雜,其變化較小。單表代替密碼:Caesar密碼;多表代替密碼:Vigenere密碼、Hill密碼;轉輪密碼:二戰(zhàn)中的Enigma。2022/12/11古典密碼古典密碼的加密方法一般是文字置換2022/12/15現(xiàn)代密碼計算機的發(fā)展使得基于復雜計算的密碼成為可能,密碼學成為一門新的學科。對稱密鑰密碼算法的發(fā)展:1977年DES正式成為標準1977年公鑰密碼(非對稱密碼)出現(xiàn)90年代逐步出現(xiàn)橢圓曲線等其他公鑰算法一些新的密碼技術,如,混沌密碼、量子密碼等2022/12/11現(xiàn)代密碼計算機的發(fā)展使得基于復雜計算的密2022/12/15愷撒密碼的破譯分析一般的愷撒密碼加密:ci=E(pi)=(pi+k)mod26解密:pi=E(ci)=(ci-k)mod26其中k為密鑰,1k25一般的愷撒密碼的破譯分析已知加密和解密算法需要測試的密鑰只有25個明文所用的語言是已知的,且其意義易于識別。可以采用窮舉攻擊2022/12/11愷撒密碼的破譯分析一般的愷撒密碼2022/12/15代換密碼substitutioncipherABCDEFGHIJKLMNOPQRSTUVWXYZwordABCEFGHIJKLMNPQRSTUVXYZ2022/12/11代換密碼substitutioncip2022/12/15置換密碼置換密碼體制1.61.明文與密文字母不變,利用轉換打亂明文字母的位置和次序。存儲空間與報文長度相關。2.完全保留字符的統(tǒng)計信息3.使用多輪加密可提高安全性2022/12/11置換密碼置換密碼體制1.61.明文與密文2022/12/152.2數據加密標準(DES)

2.2.1DES算法

DES加密算法如圖2-3所示,由以下四個部分組成。2022/12/112.2數據加密標準(DES)2022/12/151.初始置換函數IPDES對64位明文分組進行操作。首先,64位明文分組x經過一個初始置換函數IP,產生64位的輸出x0,再將分組x0分成左半部分L0和右半部分R0,即:

x0=IP(x)=L0R0置換表如表2-1所示。此表順序為從上到下,從左至右。如初始置換把明文的第58位換至第1位,把第50位換至第二位,以此類推。2022/12/111.初始置換函數IP2022/12/15表2-1初始置換IP585042342618102605244362820124625446383022146645648403224168574941332517915951433527191136153453729211356355473931231572022/12/11表2-1初始置換IP58502022/12/15圖2-5DES加密算法2022/12/11圖2-5DES加密算法2022/12/15

2.獲取子密鑰Ki

DES加密算法的密鑰長度為56位,但一般表示為64位,其中,每個第8位用于奇偶校驗。在DES加密算法中,將用戶提供的64位初始密鑰經過一系列的處理得到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所示。2022/12/112.獲取子密鑰2022/12/15表2-2密鑰置換PC–157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124

2022/12/11表2-2密鑰置換PC–157492022/12/15

接下來,根據輪數,這兩部分分別循環(huán)左移1位或2位。具體每輪移位的位數如表2-3所示。表2-3每輪移動的位數2022/12/11接下來,根據輪數2022/12/15

移動后,將兩部分合并成56位后通過壓縮置換PC–2后得到48位子密鑰,即Ki=PC-2(CiDi)。壓縮置換如表2-4所示。表2-4壓縮置換PC–214171124153281562110231912426816727201324152313747553040514533484449395634534642503629329,18?2022/12/11移動后,將兩部分2022/12/15圖2-6子密鑰產生2022/12/11圖2-6子密鑰產生2022/12/153.密碼函數F1)函數F的操作步驟密碼函數F的輸入是32比特數據和48比特的子密鑰,其操作步驟如圖2-5所示。(1)擴展置換(E)。將數據的右半部分Ri從32位擴展為48位。位選擇函數(也稱E盒)如表2-5所示。2022/12/113.密碼函數F2022/12/15圖2-7F(Ri,Ki)計算2022/12/11圖2-7F(Ri,Ki)計算2022/12/15表2-5擴展置換(E)32123

4

54

5678

989101112131213141516171617

18192021202122232425242526272829282930313212022/12/11表2-5擴展置換(E)3212022/12/15(2)異或。擴展后的48位輸出E(Ri)與壓縮后的48位密鑰Ki作異或運算。

(3)S盒替代。將異或得到的48位結果分成八個6位的塊,每一塊通過對應的一個S盒產生一個4位的輸出。八個S盒如表2-6所示。2022/12/11(2)異或。擴展后的48位輸出E(Ri2022/12/15

S盒的具體置換過程為:某個Si盒的6位輸入的第1位和第6位形成一個2位的二進制數(從0~3),對應表中的某一行;同時,輸入的中間4位構成4位二進制數(從0~15)對應表中的某一列(注意:行和列均從0開始計數)。例如,第8個S盒的輸入為001011,前后2位形成的二進制數為01,對應第8個S盒的第1行;中間4位為0101,對應同一S盒的第5列。從表2-6中可得S8盒的第1行第5列的數為3,于是就用0011代替原輸入001011。

2022/12/11S盒的具體置換2022/12/15表2-6S盒S1盒1441312151183106125907015741421311061211953841148136211151297310501512824917511314100613S2盒15181461134972131205103134715281412011069115014711104131581269321513810131542116712051492022/12/11表2-6S盒S1盒142022/12/15S3盒1009146315511312711428137093461028514121115113649815301112125101471101306987415143115212S4盒7131430691012851112415138115615034721211014910690121171315131452843150610113894511127214S5盒21241710116853151301491411212471315015103986421111013781591256301411812711421361509104532022/12/11S3盒10091462022/12/15S6盒1211015926801334147511101542712956113140113891415528123704101131164321295151011141760813S7盒4112141508133129751061130117491101435122158614111312371410156805926111381410795015142312S8盒13284615111109314501271151381037412561101492711419121420610131535821147410813151290356112022/12/11S6盒121101592022/12/15

(4)P盒置換。將八個S盒的輸出連在一起生成一個32位的輸出,輸出結果再通過置換P產生一個32位的輸出即:F(Ri,Ki)。表2-7為P盒置換。至此,密碼函數F的操作就完成了。最后,將P盒置換的結果與最初的64位分組的左半部分異或,然后左、右半部分交換,接著開始下一輪計算。2022/12/11(4)P盒置2022/12/15表2-7P盒置換16720212912281711523265183110282414322739191330622114252022/12/11表2-7P盒置換162022/12/15

2)函數F的設計

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

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

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

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

的比特變化。嚴格地說,就是當任何單個輸入比特位i發(fā)生變換時,一個S盒的第j比特輸出位發(fā)生變換的概率應為1/2,且對任意的i,j都應成立。

BIC的意思是當單個輸入比特位i發(fā)生變化時,輸出比特位j,k的變化應當互相獨立,且對任意的i,j,k均應成立。

SAC和BIC可以有效的增強F函數的“擾亂”功能。2022/12/11其它的設計準則還2022/12/15

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

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

4.末置換函數IP-1

末置換是初始置換的逆變換。對L0和R0進行16輪相同的運算后,將得到的兩部分數據合在一起,經過一個末置換函數就可得到64位的密文c,即:

c=IP-1(R16L16)(16指的是16輪)表2-8列出了該變換。2022/12/114.末置換函數2022/12/15表2-8末置換IP-1408481656246432397471555236331386461454226230375451353216129364441252206028353431151195927342421050185826331419491757252022/12/11表2-8末置換IP-1402022/12/155.總結根據上面所述,可以將DES算法歸結如下:子密鑰生成:

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])}2022/12/115.總結2022/12/15加密過程: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])v2022/12/11加密過程:2022/12/15解密過程: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])2022/12/11解密過程:2022/12/152.2.2三重DESDes密鑰56bit太短,1998年EFF用25萬美元的計算機破譯三重DES密鑰56*3=168bit2022/12/112.2.2三重DESDes密鑰56bit2022/12/152.3IDEA算法國際數據加密算法,分組長度為64位的分組密碼算法,密鑰長度是128bit具體實現(xiàn)見P262022/12/112.3IDEA算法國際數據加密算法,分2022/12/152.4高級加密標準AES1997年美國國家標準與技術研究所要求:比三重DES快,安全性不低于3DESRijndael(榮代爾)代替/置換算法2022/12/112.4高級加密標準AES1997年美國2022/12/152.5序列密碼(流密碼)流密碼(streamcipher)每次加密數據流的一位或一個字節(jié)密鑰由序列發(fā)生器生成用于加密和解密的密鑰序列古典流密碼:Vigenere密碼和Vernam密碼分組密碼(blockcipher)將明文分成一段一段,將一段明文作為一個分組進行加密,每組分別在密鑰的控制下變換成等長的輸出密文序列。如:Wewillmeetthisafternoon.以5個字符為一組,則得到明文分組:wewillmeetthisafternoonxx,其中不夠一個分組的采用填充。2022/12/112.5序列密碼(流密碼)流密碼(str2022/12/15流密碼模型密鑰序列密鑰序列明文明文解密加密密文加密:ci=pi

ki解密:pi=ci

ki密鑰序列發(fā)生器密鑰序列發(fā)生器流密碼模型2022/12/11流密碼模型密鑰序列密鑰序列明文明文解密加2022/12/15流密碼和分組密碼的比較流密碼優(yōu)點:轉換速度快;低錯誤擴散率缺點:低擴散率;易被惡意插入和篡改分組密碼優(yōu)點:高擴散率;無法插入符號缺點:加密速度慢;錯誤擴散2022/12/11流密碼和分組密碼的比較流密碼2022/12/15本章討論與設計方向DES/AES算法實現(xiàn)與安全性分析Md5算法的原理與安全性分析2022/12/11本章討論與設計方向DES/AES算法實現(xiàn)2022/12/15第2章對稱密鑰密碼體系理解密碼學的基本原理掌握DES加密算法了解A5和IDEA加密算法理解序列密碼原理2022/12/11第2章對稱密鑰密碼體系理解密碼學的基本2022/12/152.1密碼體制原理與分類(I)加密解密明文P密文C明文P加密密鑰Ke解密密鑰KdC=E(Ke,P)P=D(Kd,E(Ke,P)對稱密碼體制(symmetriccryptosystem)-單鑰加密密鑰和解密密鑰是相同的非對稱密碼體制(asymmetriccryptosystem)-公鑰密碼加密密鑰和解密密鑰是成對出現(xiàn)加密過程和解密過程不同,使用的密鑰也不同2022/12/112.1密碼體制原理與分類(I)加密解密2022/12/15密碼算法安全準則與分類密碼的安全性原則公開的密碼算法才是安全的,保密的算法只在小范圍內設計和研究。按照密鑰使用方法分對稱密碼算法(symmetriccipher):又稱傳統(tǒng)密碼算法(conventionalcipher)或秘密密鑰算法、單密鑰算法。非對稱密鑰算法(asymmetriccipher),又稱公開密鑰算法(public-Keycipher)。按照明文的處理方法分分組密碼(blockcipher):將明文分成固定長度的組,用同一密鑰和算法對每一塊加密,輸出也是固定長度的密文。流密碼(streamcipher):又稱序列密碼,每次加密一位或一字節(jié)的明文。

2022/12/11密碼算法安全準則與分類密碼的安全性原則2022/12/152.1.4密碼分析可破譯密碼當給予足夠的時間和計算資源的時候,破譯者能確定的加密算法。對可破譯性的評估基于當前的技術。窮舉攻擊攻擊者對一條密文嘗試所有可能的密鑰,直到得到有意義的明文。Kerckhoff原則:加密算法應建立在算法的公開不影響明文和密鑰的安全的基礎上。這一原則得到普遍承認,成為判定密碼強度的衡量標準,實際上也成為古典密碼和現(xiàn)代密碼的分界線。2022/12/112.1.4密碼分析可破譯密碼2022/12/15傳統(tǒng)密碼體制基于加密信息的攻擊類型2022/12/11傳統(tǒng)密碼體制基于加密信息的攻擊類型2022/12/15密碼的安全性與攻擊復雜性無條件安全(Unconditionallysecure)無論破譯者有多少密文,他也無法解出對應的明文,即使他解出了,他也無法驗證結果的正確性.一次一密計算上安全的破譯密碼的代價超出密文信息的價值破譯密碼的時間超出密文信息的有效生命期攻擊復雜性:數據時間存儲量2022/12/11密碼的安全性與攻擊復雜性無條件安全(Un2022/12/15古典密碼古典密碼的加密方法一般是文字置換,使用手工或機械變換的方式實現(xiàn)。古典密碼系統(tǒng)已經初步體現(xiàn)出近代密碼系統(tǒng)的雛形,它比古代加密方法復雜,其變化較小。單表代替密碼:Caesar密碼;多表代替密碼:Vigenere密碼、Hill密碼;轉輪密碼:二戰(zhàn)中的Enigma。2022/12/11古典密碼古典密碼的加密方法一般是文字置換2022/12/15現(xiàn)代密碼計算機的發(fā)展使得基于復雜計算的密碼成為可能,密碼學成為一門新的學科。對稱密鑰密碼算法的發(fā)展:1977年DES正式成為標準1977年公鑰密碼(非對稱密碼)出現(xiàn)90年代逐步出現(xiàn)橢圓曲線等其他公鑰算法一些新的密碼技術,如,混沌密碼、量子密碼等2022/12/11現(xiàn)代密碼計算機的發(fā)展使得基于復雜計算的密2022/12/15愷撒密碼的破譯分析一般的愷撒密碼加密:ci=E(pi)=(pi+k)mod26解密:pi=E(ci)=(ci-k)mod26其中k為密鑰,1k25一般的愷撒密碼的破譯分析已知加密和解密算法需要測試的密鑰只有25個明文所用的語言是已知的,且其意義易于識別??梢圆捎酶F舉攻擊2022/12/11愷撒密碼的破譯分析一般的愷撒密碼2022/12/15代換密碼substitutioncipherABCDEFGHIJKLMNOPQRSTUVWXYZwordABCEFGHIJKLMNPQRSTUVXYZ2022/12/11代換密碼substitutioncip2022/12/15置換密碼置換密碼體制1.61.明文與密文字母不變,利用轉換打亂明文字母的位置和次序。存儲空間與報文長度相關。2.完全保留字符的統(tǒng)計信息3.使用多輪加密可提高安全性2022/12/11置換密碼置換密碼體制1.61.明文與密文2022/12/152.2數據加密標準(DES)

2.2.1DES算法

DES加密算法如圖2-3所示,由以下四個部分組成。2022/12/112.2數據加密標準(DES)2022/12/151.初始置換函數IPDES對64位明文分組進行操作。首先,64位明文分組x經過一個初始置換函數IP,產生64位的輸出x0,再將分組x0分成左半部分L0和右半部分R0,即:

x0=IP(x)=L0R0置換表如表2-1所示。此表順序為從上到下,從左至右。如初始置換把明文的第58位換至第1位,把第50位換至第二位,以此類推。2022/12/111.初始置換函數IP2022/12/15表2-1初始置換IP585042342618102605244362820124625446383022146645648403224168574941332517915951433527191136153453729211356355473931231572022/12/11表2-1初始置換IP58502022/12/15圖2-5DES加密算法2022/12/11圖2-5DES加密算法2022/12/15

2.獲取子密鑰Ki

DES加密算法的密鑰長度為56位,但一般表示為64位,其中,每個第8位用于奇偶校驗。在DES加密算法中,將用戶提供的64位初始密鑰經過一系列的處理得到K1,K2,…,K16,分別作為1~16輪運算的16個子密鑰。現(xiàn)在來看如何獲得這16個子密鑰。首先,將64位密鑰去掉8個校驗位,用密鑰置換PC–1置換剩下的56位密鑰;再將56位分成前28位C0和后28位D0兩部分,即PC–1(K56)=C0D0。密鑰置換PC-1如表2-2所示。2022/12/112.獲取子密鑰2022/12/15表2-2密鑰置換PC–157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124

2022/12/11表2-2密鑰置換PC–157492022/12/15

接下來,根據輪數,這兩部分分別循環(huán)左移1位或2位。具體每輪移位的位數如表2-3所示。表2-3每輪移動的位數2022/12/11接下來,根據輪數2022/12/15

移動后,將兩部分合并成56位后通過壓縮置換PC–2后得到48位子密鑰,即Ki=PC-2(CiDi)。壓縮置換如表2-4所示。表2-4壓縮置換PC–214171124153281562110231912426816727201324152313747553040514533484449395634534642503629329,18?2022/12/11移動后,將兩部分2022/12/15圖2-6子密鑰產生2022/12/11圖2-6子密鑰產生2022/12/153.密碼函數F1)函數F的操作步驟密碼函數F的輸入是32比特數據和48比特的子密鑰,其操作步驟如圖2-5所示。(1)擴展置換(E)。將數據的右半部分Ri從32位擴展為48位。位選擇函數(也稱E盒)如表2-5所示。2022/12/113.密碼函數F2022/12/15圖2-7F(Ri,Ki)計算2022/12/11圖2-7F(Ri,Ki)計算2022/12/15表2-5擴展置換(E)32123

4

54

5678

989101112131213141516171617

18192021202122232425242526272829282930313212022/12/11表2-5擴展置換(E)3212022/12/15(2)異或。擴展后的48位輸出E(Ri)與壓縮后的48位密鑰Ki作異或運算。

(3)S盒替代。將異或得到的48位結果分成八個6位的塊,每一塊通過對應的一個S盒產生一個4位的輸出。八個S盒如表2-6所示。2022/12/11(2)異或。擴展后的48位輸出E(Ri2022/12/15

S盒的具體置換過程為:某個Si盒的6位輸入的第1位和第6位形成一個2位的二進制數(從0~3),對應表中的某一行;同時,輸入的中間4位構成4位二進制數(從0~15)對應表中的某一列(注意:行和列均從0開始計數)。例如,第8個S盒的輸入為001011,前后2位形成的二進制數為01,對應第8個S盒的第1行;中間4位為0101,對應同一S盒的第5列。從表2-6中可得S8盒的第1行第5列的數為3,于是就用0011代替原輸入001011。

2022/12/11S盒的具體置換2022/12/15表2-6S盒S1盒1441312151183106125907015741421311061211953841148136211151297310501512824917511314100613S2盒15181461134972131205103134715281412011069115014711104131581269321513810131542116712051492022/12/11表2-6S盒S1盒142022/12/15S3盒1009146315511312711428137093461028514121115113649815301112125101471101306987415143115212S4盒7131430691012851112415138115615034721211014910690121171315131452843150610113894511127214S5盒21241710116853151301491411212471315015103986421111013781591256301411812711421361509104532022/12/11S3盒10091462022/12/15S6盒1211015926801334147511101542712956113140113891415528123704101131164321295151011141760813S7盒4112141508133129751061130117491101435122158614111312371410156805926111381410795015142312S8盒13284615111109314501271151381037412561101492711419121420610131535821147410813151290356112022/12/11S6盒121101592022/12/15

(4)P盒置換。將八個S盒的輸出連在一起生成一個32位的輸出,輸出結果再通過置換P產生一個32位的輸出即:F(Ri,Ki)。表2-7為P盒置換。至此,密碼函數F的操作就完成了。最后,將P盒置換的結果與最初的64位分組的左半部分異或,然后左、右半部分交換,接著開始下一輪計算。2022/12/11(4)P盒置2022/12/15表2-7P盒置換16720212912281711523265183110282414322739191330622114252022/12/11表2-7P盒置換162022/12/15

2)函數F的設計

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

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

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

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

的比特變化。嚴格地說,就是當任何單個輸入比特位i發(fā)生變換時,一個S盒的第j比特輸出位發(fā)生變換的概率應為1/2,且對任意的i,j都應成立。

BIC的意思是當單個輸入比特位i發(fā)生變化時,輸出比特位j,k的變化應當互相獨立,且對任意的i,j,k均應成立。

SAC和BIC可以有效的增強F函數的“擾亂”功能。2022/12/11其它的設計準則還2022/12/15

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

Nyberg提出了以下幾種S盒的設計和實踐原則:●隨機性:采用某些偽隨機數發(fā)生器或隨機數表格來產生S盒的各個項?!耠S機測試:隨機選擇S盒各個項,然后按照不同準則測試其結果?!駭祵W構造:根據某些數學原理來產生S

溫馨提示

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

評論

0/150

提交評論