




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)加密與PKI應(yīng)用第4章分組加密算法分組加密算法也叫塊兒加密算法(BlockCipher),屬于對(duì)稱(chēng)密碼體制,是“替代-換位”加密法到計(jì)算機(jī)加密的延伸。分組加密算法采用二進(jìn)制位運(yùn)算(或字節(jié)運(yùn)算)方式,運(yùn)算效率相對(duì)較高,被廣泛應(yīng)用于現(xiàn)代加密系統(tǒng)中,是現(xiàn)代密碼學(xué)的重要組成部分。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級(jí)加密標(biāo)準(zhǔn)AES044.4分組加密工作模式明文分組與密文分組
分組加密算法將明文編碼為二進(jìn)制序列后,按固定長(zhǎng)度分為t個(gè)分組:M1,M2,...,Mt,使用密鑰對(duì)每個(gè)分組執(zhí)行相同的變換,從而生成t個(gè)密文分組:C1,C2,...,Ct。
考慮到算法的安全性,分組加密算法的分組長(zhǎng)度不能太短,應(yīng)該保證加密算法能夠抵抗密碼分析;另外,考慮到分組加密算法的實(shí)用性,分組長(zhǎng)度不能太長(zhǎng),要便于運(yùn)算。目前,分組加密算法分組的大小通常為64比特或128比特。
分組加密算法處理的分組大小是固定的,如果明文數(shù)據(jù)的大小不是分組大小的整數(shù)倍,那么就需要對(duì)最后一個(gè)分組進(jìn)行填充,使其達(dá)到規(guī)定的大小。填充應(yīng)該具有可逆性,即在解密時(shí)應(yīng)該能夠識(shí)別出加密時(shí)使用的填充數(shù)據(jù)。分組加密算法的基本結(jié)構(gòu)擴(kuò)散性:隱蔽明文的統(tǒng)計(jì)特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是換位。模糊性:隱蔽密鑰的統(tǒng)計(jì)特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是替代。通常采用非線性變換。乘積密碼:將擴(kuò)散和模糊串聯(lián)起來(lái)并重復(fù)操作,這樣的密碼體制被稱(chēng)為(ProduceCipher)
20世紀(jì)40年代,香濃(Shannon)提出,好的加密算法應(yīng)該具備擴(kuò)散性(Diffusion)和模糊性(Confusion)。擴(kuò)散性:擴(kuò)散就是讓明文中的每一比特影響密文中的許多比特,或者說(shuō)讓密文中的每一比特受明文中的許多比特的影響,這樣可以隱蔽明文的統(tǒng)計(jì)特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是換位。模糊性:模糊就是將密文與密鑰之間的統(tǒng)計(jì)關(guān)系變得盡可能復(fù)雜,使得對(duì)手即使獲取了關(guān)于密文的一些統(tǒng)計(jì)特性,也無(wú)法推測(cè)密鑰。使用復(fù)雜的非線性替代變換可以達(dá)到比較好的模糊效果。實(shí)現(xiàn)模糊性的常用方法是替代。Feistel網(wǎng)絡(luò)是一種迭代結(jié)構(gòu),它將明文平分為左右兩部分,L0和R0,經(jīng)過(guò)r(r≥1)輪迭代完成整個(gè)操作過(guò)程。假設(shè)第i-1輪的輸出為L(zhǎng)i-1和Ri-1,則它們作為第i輪的輸入,重復(fù)執(zhí)行相同的變換。Feistel網(wǎng)絡(luò)結(jié)構(gòu)的典型代表是數(shù)據(jù)加密標(biāo)準(zhǔn)(DES,DataEncryptionStandard)。Feistel網(wǎng)絡(luò)在SP網(wǎng)絡(luò)中,S表示替代,又被稱(chēng)為混淆層,主要起模糊作用;P表示換位,又被稱(chēng)為換位層,主要起擴(kuò)散作用。SP網(wǎng)絡(luò)也是一種乘積密碼,它由一定數(shù)量的迭代組成,其中每一次迭代都包含了替代和換位。假設(shè)第i-1輪的輸出為xi-1,它是第i輪的輸入,在經(jīng)過(guò)替代和換位后,輸出第i輪的結(jié)果xi,這里的替代部分需要使用第i輪的子密鑰ki。SP網(wǎng)絡(luò)結(jié)構(gòu)的典型代表是高級(jí)加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES)。SP網(wǎng)絡(luò)目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級(jí)加密標(biāo)準(zhǔn)AES044.4分組加密工作模式DES算法的整體結(jié)構(gòu)明文分組:64比特;密鑰長(zhǎng)度:64比特;密文分組:64比特DES的加密過(guò)程包含3個(gè)階段:
(1)將64比特明文數(shù)據(jù)分組送入初始換位IP()函數(shù)(InitialPermutation),用于對(duì)明文中的數(shù)據(jù)重新排列,然后將明文分成兩部分,分別為L(zhǎng)0(前32比特)和R0(后32比特)。
(2)進(jìn)行16輪迭代運(yùn)算。這16輪迭代運(yùn)算具有相同的結(jié)構(gòu),每輪都會(huì)應(yīng)用替代技術(shù)和換位技術(shù),且使用不同的子密鑰k
i。這些子密鑰是從原始密鑰運(yùn)算而來(lái)的。第16輪運(yùn)算的輸出為R16和L16。
(3)將R16和L16重新拼接起來(lái),然后送入逆初始換位IP-1()函數(shù),最后的輸出就是64比特的密文。子密鑰生成
DES算法需要進(jìn)行16輪迭代運(yùn)算,每輪都需要一個(gè)48比特的子密鑰。
子密鑰是根據(jù)用戶提供的64比特初始密鑰產(chǎn)生的。子密鑰生成
將64比特的初始密鑰送入壓縮型初始密鑰換位表PC-1,去除奇偶校驗(yàn)位,對(duì)密鑰重新排列并分為兩部分,C0(前28比特)和D0(后28比特)。子密鑰生成
將64比特的初始密鑰送入壓縮型初始密鑰換位表PC-1,去除奇偶校驗(yàn)位,對(duì)密鑰重新排列并分為兩部分,C0(前28比特)和D0(后28比特)。子密鑰生成
在計(jì)算第i輪子密鑰時(shí),將Ci-1和Di-1分別循環(huán)左移,移動(dòng)位數(shù)取決于輪數(shù)i。在第i=1,2,9,16輪中,C、D兩部分分別循環(huán)左移1位,其余輪中分別循環(huán)左移2位。4×1+12×2=28子密鑰生成
將經(jīng)過(guò)移位后的Ci和Di送入一個(gè)壓縮型換位表PC-2,將子密鑰壓縮為48比特(去除第9、18、22、25、35、38、43、54位)。子密鑰生成
將經(jīng)過(guò)移位后的Ci和Di送入一個(gè)壓縮型換位表PC-2,將子密鑰壓縮為48比特(去除第9、18、22、25、35、38、43、54位)。初始換位與逆初始換位
逆初始換位IP-1()是初始換位IP()的逆過(guò)程。逆初始換位針對(duì)16輪迭代的結(jié)果進(jìn)行運(yùn)算,即執(zhí)行IP-1(R16||L16)??梢钥闯觯ㄟ^(guò)逆初始換位,原明文分組的比特位被恢復(fù)原位。IP-1()IP()初始換位與逆初始換位f(Ri-1,ki)迭代函數(shù)
16輪迭代運(yùn)算具有相同的結(jié)構(gòu)。初始換位后的明文被分為左右兩部分進(jìn)行處理,每輪迭代的輸入是上一輪的輸出。以第i輪運(yùn)算為例:Li
=
Ri-1Ri
=
Li-1⊕f(Ri-1,ki)f(Ri-1,ki)迭代運(yùn)算
擴(kuò)展換位表如表4-8所示,它將32比特輸入(Ri-1)擴(kuò)展為48比特。f(Ri-1,ki)迭代運(yùn)算
子密鑰異或是指將經(jīng)過(guò)擴(kuò)展換位得到的48比特輸出與子密鑰
ki
進(jìn)行異或運(yùn)算。f(Ri-1,ki)迭代運(yùn)算
S盒替代是將上一步輸出的48比特作為輸入,經(jīng)過(guò)變換得到32比特輸出。S盒替代將48比特分成8個(gè)6比特的分組,分別輸入8個(gè)不同的S盒。假設(shè)S盒的6位輸入為x5x4x3x2x1x0,將x5x0轉(zhuǎn)換成十進(jìn)制數(shù)0~3中的一個(gè)數(shù),它確定表中的行號(hào);將x4x3x2x1轉(zhuǎn)換成十進(jìn)制數(shù)0~15中的一個(gè)數(shù),它確定表中的列號(hào)。f(Ri-1,ki)迭代運(yùn)算S盒替代是將上一步輸出的48比特作為輸入,經(jīng)過(guò)變換得到32比特輸出。S盒替代將48比特分成8個(gè)6比特的分組,分別輸入8個(gè)不同的S盒。假設(shè)S盒的6位輸入為x5x4x3x2x1x0,將x5x0轉(zhuǎn)換成十進(jìn)制數(shù)0~3中的一個(gè)數(shù),它確定表中的行號(hào);將x4x3x2x1轉(zhuǎn)換成十進(jìn)制數(shù)0~15中的一個(gè)數(shù),它確定表中的列號(hào)。f(Ri-1,ki)迭代運(yùn)算P盒換位是將S盒替代的輸出結(jié)果按照固定的換位盒(P盒)進(jìn)行變換。該換位將每位映射到輸出位,任何一位不能被映射兩次,也不能被省略。f()f(Ri-1,ki)
S盒替代是DES算法的核心,是一種非線性運(yùn)算:
如果沒(méi)有非線性運(yùn)算,則破譯者就能夠使用一個(gè)線性等式組來(lái)表示DES的輸入和輸出,其中密鑰位是未知的,這樣的算法很容易被破譯。迭代運(yùn)算DES的密文分組C可以表示為:C=IP-1(R16||L16),將其代入加密算法,首先進(jìn)行初始換位IP:L0d||R0d=IP(C)
=IP(IP-1(R16||L16))
=R16||L16即L0d=R16,R0d=L16,也就是說(shuō)解密第1輪的輸入是加密第16輪的輸出。DES算法解密過(guò)程接下來(lái)分析解密的第1輪操作:L1d=R0d
=L16
=R15
R1d=L0d
⊕f(R0d,k16)
=R16
⊕f(L16,k16)
=L15
⊕f(R15,k16)
⊕f(L16,k16)
=L15
⊕f(L15,k16)⊕f(R15,k16)
=L15
這說(shuō)明,解密的第1輪輸出與加密的第16輪輸入相等。DES算法解密過(guò)程接下來(lái)的15輪迭代也執(zhí)行相同的操作:Lid=R16-i
Rid=L16-i
其中,i=1,2,...,16。DES算法解密過(guò)程解密的第16輪為:L16d=R0R16d=L0DES算法解密過(guò)程經(jīng)過(guò)逆初始換位,可以恢復(fù)出明文M:IP-1(R16d||L16d)
=IP-1(L0||R0)
=IP-1(IP(M))
=MDES算法解密過(guò)程因?yàn)椋篊16=C0,D16=D0,所以:k16
=PC-2(C16,D16)=PC-2(C0,D0)=PC-2(PC-1(k))
=k1d解密子密鑰生成過(guò)程
計(jì)算k15時(shí),可以通過(guò)C16和D16循環(huán)右移1位,再經(jīng)過(guò)壓縮型換位PC-2得到,恰好等于k2d
。
另外,計(jì)算k1(k16d)、k8(k9d)、k15(k2d),需要循環(huán)右移1位后,再經(jīng)過(guò)壓縮型換位換位PC-2得到子密鑰
其他子密鑰則需要循環(huán)右移兩位,再經(jīng)過(guò)壓縮型換位換位PC-2得到子密鑰。算法特殊性(1)互補(bǔ)性。如果C=DESk(M),那么當(dāng)明文和密鑰取補(bǔ)后,密文也會(huì)取補(bǔ),即
。這種形式,使得DES在選擇明文攻擊下工作量減半。(2)弱密鑰。DES在每輪操作中都會(huì)使用一個(gè)子密鑰。如果給定初始密鑰k,使得各輪子密鑰都相等,則稱(chēng)k為弱密鑰。通過(guò)弱密鑰,加密明文兩次,則得到的仍然是明文,即:M=DESk(DESk(M))。DES的弱密鑰包括:0101010101010101H、1F1F1F1F0E0E0E0EH、E0E0E0E0F1F1F1F1H、FEFEFEFEFEFEFEFEH。算法特殊性(3)半弱密鑰。如果兩個(gè)不同的密鑰k和k'使得M=DESk(DESk'(M)),則k和k'為半弱密鑰,即k'能夠解密由密鑰k加密所得的密文。半弱密鑰只交替地生成兩種子密鑰,DES有6對(duì)兒半弱密鑰:窮舉攻擊與密碼分析窮舉攻擊:DES的密鑰太短,有效密鑰只有56比特,密鑰空間僅為256≈1017,1998年7月,電子前沿基金會(huì)(ElectronicFrontierFoundation,EFF)使用一臺(tái)造價(jià)25萬(wàn)美元的密鑰搜索機(jī)器,在56小時(shí)內(nèi)就成功破譯了DES。1999年1月,電子前沿基金會(huì)用22小時(shí)15分鐘就宣告破譯了一個(gè)DES的密鑰。密碼分析法:除了窮舉攻擊以外,還可以通過(guò)差分密碼分析(DifferentialCryptanalysis)、線性密碼分析(LinearCryptanalysis)、相關(guān)密鑰密碼分析(Related-KeyCryptanalysis)等方法來(lái)攻擊DES。差分分析通過(guò)分析明文對(duì)兒的差值(通過(guò)異或運(yùn)算來(lái)定義DES算法的差分)對(duì)密文對(duì)兒的差值的影響來(lái)恢復(fù)某些密鑰位。線性密碼分析通過(guò)線性近似值來(lái)描述DES操作結(jié)構(gòu),試圖發(fā)現(xiàn)這些結(jié)構(gòu)的一些弱點(diǎn)。相關(guān)密鑰密碼分析類(lèi)似于差分密碼分析,但它考查不同密鑰間的差分。3DES雙重DES算法不能抵抗中途相遇攻擊(Meet-in-the-middleAttack)。在眾多的多重DES算法中,由Tuchman提出的三重DES算法是一種被廣泛接受的改進(jìn)方法,已經(jīng)被用于密鑰管理標(biāo)準(zhǔn)ANSX9.17和ISO8732中。通過(guò)三重DES,使用兩個(gè)密鑰,可以將有效密鑰長(zhǎng)度增加到112比特,可以有效抵御窮舉攻擊。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級(jí)加密標(biāo)準(zhǔn)AES044.4分組加密工作模式AES算法的整體結(jié)構(gòu)明文分組:128比特;密鑰長(zhǎng)度:128/192/256比特;密文分組:128比特AES加密使用了4個(gè)基本變換:字節(jié)代替(SubBytes)變換、行移位(ShiftRows)變換、列混合(MixColumns)變換、輪密鑰加(AddRoundKey)變換。
AES的解密使用了這4個(gè)變換的逆操作,分別為逆字節(jié)代替(InvSubBytes)變換、逆行移位(InvShiftRows)變換、逆列混合(InvMixColumns)變換和輪密鑰加變換(該變換自身就是可逆的變化)。AES就是利用上述4個(gè)基本變換經(jīng)過(guò)N輪迭代而完成的。當(dāng)密鑰長(zhǎng)度為128比特時(shí),輪數(shù)N=10;當(dāng)密鑰長(zhǎng)度為192比特時(shí),輪數(shù)N=12;當(dāng)密鑰長(zhǎng)度為256比特時(shí),輪數(shù)N=14。AES算法的整體結(jié)構(gòu)加密過(guò)程:(1)給定一個(gè)明文分組M,將其放入狀態(tài)矩陣。輸入擴(kuò)展密鑰w0、w1、w2和w3,對(duì)狀態(tài)矩陣執(zhí)行輪密鑰加變換。(2)對(duì)狀態(tài)執(zhí)行第1輪到第N-1輪迭代變換,每輪都包括了字節(jié)代替、行移位、列混合、輪密鑰加四種變換。每輪的輪密鑰都會(huì)使用一個(gè)擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。(3)對(duì)狀態(tài)執(zhí)行最后一輪變換,只執(zhí)行字節(jié)代替、行移位和輪密鑰加三個(gè)變換,輸出密文。輪密鑰加也會(huì)使用擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。AES算法的整體結(jié)構(gòu)解密過(guò)程:(1)給定一個(gè)密文C,將其放入狀態(tài)矩陣。輸入擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3,對(duì)狀態(tài)矩陣執(zhí)行輪密鑰加變換。(2)對(duì)狀態(tài)執(zhí)行第1輪到第N-1輪迭代變換。每輪都包括了逆行移位、逆字節(jié)代替、輪密鑰加、逆列混合四種變換。每輪的密鑰加也會(huì)使用一個(gè)擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。(3)對(duì)狀態(tài)執(zhí)行最后一輪變換,只執(zhí)行逆行移位、逆字節(jié)代替、輪密鑰加三種變換,輸出明文。輪密鑰加也會(huì)使用擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。狀態(tài)矩陣AES算法最基本的運(yùn)算單位是字節(jié)(8比特)。1.設(shè)明文分組:
首先將其劃分為16個(gè)字節(jié):
其中:
然后將a0~a15放入一個(gè)被稱(chēng)為狀態(tài)(State)的4×4矩陣中,AES的加密和解密都是在這種狀態(tài)中進(jìn)行的。2.密鑰也按照上述方法進(jìn)行排列,其行數(shù)為4行,列數(shù)為4列(128比特的密鑰)、6列(192比特的密鑰)或8列(256比特的密鑰)。狀態(tài)矩陣
從數(shù)學(xué)角度,可以將每個(gè)字節(jié)看作有限域上的一個(gè)元素,分別對(duì)應(yīng)一個(gè)次數(shù)不超過(guò)7的多項(xiàng)式:
還可以表示為一個(gè)兩位的十六進(jìn)制數(shù)。例如,01101011B可以表示為:
6BH輪密鑰加
輪密鑰加變換,由狀態(tài)矩陣與擴(kuò)展密鑰矩陣的對(duì)應(yīng)字節(jié)逐比特做異或運(yùn)算。由于輪密鑰加使用異或運(yùn)算,所以其逆變換的運(yùn)算方法相同。
舉例:給定狀態(tài)矩陣和擴(kuò)展密鑰矩陣,計(jì)算輪密鑰加變換的結(jié)果。字節(jié)代替與逆字節(jié)代替
字節(jié)代替是一個(gè)非線性變換,對(duì)狀態(tài)矩陣中的每一個(gè)字節(jié)a進(jìn)行運(yùn)算
b=M·a-1+v,得到字節(jié)b(如果a=0,則映射到自身,即b=0)。
v是固定向量,值為63H;M是可逆的固定矩陣;a-1是a模一個(gè)8次不可約多項(xiàng)式的乘法逆元,在AES算法中,這個(gè)8次不可約多項(xiàng)式為m(x)=x8+x4+x3+x+1。v=字節(jié)代替與逆字節(jié)代替
逆字節(jié)代替變換是字節(jié)代替變換的逆變換。首先對(duì)字節(jié)進(jìn)行仿射變換的逆變換,然后對(duì)所得結(jié)果求在GF(28)上的乘法逆元。也可以將該變換制作成表格進(jìn)行查詢。列混合與逆列混合
列混合變換是一個(gè)線性變換,它混淆了狀態(tài)矩陣的每一列。由于每個(gè)輸入字節(jié)都影響了四個(gè)輸出字節(jié),因此列混合起到了擴(kuò)散的作用。逆列混合變換是列混合變換的逆,也可以寫(xiě)成矩陣乘法形式。列混合與逆列混合
【例4-4】狀態(tài)中的1列為E6H、1BH、50H、18H,計(jì)算列混和運(yùn)算后的結(jié)果。d0=02H·E6H+03H·1BH+01H·50H+01H·18H=B2H
02H·E6H
=
x·(x7+x6+x5+x2+x)=x7+x6+x4+x2+x+1
03H·1HB
=
x5+x3+x2+1
01H·50H
=
x6+x4
01H·18H
=
x4+x3,所以d0=x7+x5+x4+x=B2H
同理d1=38Hd2=75Hd3=4AH密鑰擴(kuò)展
密鑰擴(kuò)展算法將原初始密鑰作為輸入,輸出AES的擴(kuò)展密鑰。
對(duì)于長(zhǎng)度為128比特的密鑰,它對(duì)應(yīng)的輪數(shù)N=10,需要11個(gè)擴(kuò)展密鑰;對(duì)于長(zhǎng)度為192比特的密鑰,它對(duì)應(yīng)的輪數(shù)N=12,需要13個(gè)擴(kuò)展密鑰;對(duì)于長(zhǎng)度為256比特的密鑰,它對(duì)應(yīng)的輪數(shù)N=14,需要15個(gè)擴(kuò)展密鑰。獲取第1個(gè)密鑰擴(kuò)展
給定一個(gè)初始密鑰k(以128比特密鑰為例),將其放入狀態(tài)矩陣,可以直接得到第1個(gè)擴(kuò)展密鑰中的4個(gè)子密鑰w0、w1、w2、w3。2~10之子密鑰1(1)RotBytes(w4N-1)為字節(jié)旋轉(zhuǎn),將w4N-1的四個(gè)字節(jié)循環(huán)左移一個(gè)字節(jié)。(2)SubBytes()為字節(jié)代替,與AES加密算法中的字節(jié)代替相同。(3)RCN/1為輪常數(shù)。其中,2~10之子密鑰2~4
第1個(gè)到第11個(gè)擴(kuò)展密鑰,每一個(gè)擴(kuò)展密鑰的第2~4個(gè)子密鑰可以通過(guò)公式4-10計(jì)算得到。AES的安全性分析
在AES算法中,每一輪加密常數(shù)的不同可以消除可能產(chǎn)生的輪密鑰的對(duì)稱(chēng)性。輪密鑰生成算法的非線性特性消除了產(chǎn)生相同輪密鑰的可能性。加密/解密過(guò)程中使用不同的變換可以避免出現(xiàn)類(lèi)似DES算法中弱密鑰和半若密鑰的可能。不可能差分(ImpossibleDifferential)攻擊法已經(jīng)成功破解了6輪的AES-128;平方(Square)攻擊法已經(jīng)成功破解了7輪的AES-128和AES-192;沖突(Collision)攻擊法也已經(jīng)成功破解了7輪的AES-128和AES-192。
所有這些攻擊方法對(duì)于全部10輪的AES-128進(jìn)行破解都失敗了,但是這表明AES算法可能存在有待發(fā)現(xiàn)的弱點(diǎn)。
如果將AES用于智能卡等硬件裝置,通過(guò)觀察硬件的性能特征可以發(fā)現(xiàn)一些加密操作的信息,這種攻擊方法叫做旁路攻擊(Side-ChannelAttack)。
例如,當(dāng)處理密鑰為“1”的比特位時(shí),需要消耗更多的能量,通過(guò)監(jiān)控能量的消耗,可以知道密鑰的每個(gè)位;還有一種攻擊是監(jiān)控完成一個(gè)算法所消耗的時(shí)間的微秒數(shù),所消耗時(shí)間數(shù)也可以反映部分密鑰位。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級(jí)加密標(biāo)準(zhǔn)AES044.4分組加密工作模式電碼本模式加密與解密過(guò)程:c
i=Ek(m
i),1≤i≤tm
i=Dk(c
i),1≤i≤t
電碼本模式簡(jiǎn)稱(chēng)為ECB(ElectronicCodeBook)。
在這種模式下,將需要加密的消息按照加密算法的分組大小分為數(shù)個(gè)分組,并對(duì)每個(gè)分組進(jìn)行獨(dú)立加密形成密文分組,然后將所有密文分組連接起來(lái)得到密文。每個(gè)明文分組或密文分組的錯(cuò)誤只影響其對(duì)應(yīng)的密文分組或明文分組,而不會(huì)傳遞給其它密文分組或明文分組。采用EBC模式時(shí),不同的明文分組或密文分組的加密或解密可以并行處理,在硬件或軟件運(yùn)算時(shí)速度很快。
ECB模式的缺點(diǎn)是不能隱藏明文的模式,因此ECB模式無(wú)法抵抗攻擊者的主動(dòng)攻擊,安全性較差。ECB模式可以用于處理短消息,例如加密密鑰時(shí)可以使用ECB模式。密碼分組鏈模式加密:c
i=Ek(m
i
⊕c
i-1),1≤i≤t,其中c0=IV;解密:m
i=Dk(c
i)⊕c
i-1,1≤i≤t,其中c0=IV
密碼分組鏈接模式簡(jiǎn)稱(chēng)CBC(Cipher-BlockChaining)。
每個(gè)明文分組先與前一個(gè)密文分組進(jìn)行異或后,再進(jìn)行加密。由于第一個(gè)明文分組之前沒(méi)有前一個(gè)密文分組,所以需要選擇一個(gè)初始向量IV(InitializationVector),這個(gè)初始向量相當(dāng)于c0。密文隱藏了明文的模式;通過(guò)選擇不同的初始向量,可以使重復(fù)的明文產(chǎn)生不同的密文,而無(wú)需重新產(chǎn)生密鑰;CBC模式適合傳輸長(zhǎng)報(bào)文,是SSL、IPSec等協(xié)議的標(biāo)準(zhǔn)分組加密工作模式。IV應(yīng)該像密鑰一樣安全傳輸和存儲(chǔ);如果明文分組中出現(xiàn)錯(cuò)誤,那么錯(cuò)誤會(huì)傳遞給當(dāng)前密文分組以及后面所有密文分組;如果某個(gè)密文分組發(fā)生錯(cuò)誤,那么錯(cuò)誤會(huì)影響當(dāng)前解密的明文分組以及下一個(gè)解密的明文分組;CBC模式的加密過(guò)程是不能并行運(yùn)算的,但是解密過(guò)程可以并行運(yùn)算。密碼反饋模式
密碼反饋模式簡(jiǎn)稱(chēng)CFB(CipherFeedback),前一個(gè)密文分組會(huì)被送回到密碼算法的輸入端。如果明文分組的大小為s比特,那么首先選擇一個(gè)n比特(n>s)的初始向量V1=IV,然后利用密鑰k加密該向量得到n比特序列。取該序列中高位的s比特與明文分組進(jìn)行異或運(yùn)算,得到s比特的密文分組。在加密第2個(gè)明文分組時(shí),首先將初始向量左移s比特,然后將上一輪加密生成的s比特的密文分組附加到其后形成新一輪的向量,后續(xù)加密過(guò)程與第1個(gè)明文分組的加密過(guò)程相同。用同樣的方法完成全部t個(gè)明文分組的加密。
CFB模式加密和解密過(guò)程都使用了分組加密算法,本質(zhì)上是將分組加密算法作為一個(gè)密鑰流生成器來(lái)使用。密碼反饋模式與CBC模式類(lèi)似,通過(guò)CFB模式生成的密文隱藏了明文的模式,并且選擇的初始向量IV不同,那么得到的密文也不相同。明文分組的長(zhǎng)度s可以由用戶來(lái)確定,該模式適用于不同的消息格式要求。加密
c1=m1
⊕MSBs(Ek(V1))
ci=mi
⊕MSBs(Ek(LSBn-s(Vi-1)||ci-1)),2≤i≤t解密
m1=c1
⊕MSBs(Ek(V1))
mi=ci
⊕MSBs(Ek(LSBn-s(Vi-1)||ci-1)),2≤i≤t密碼反饋模式CFB模式的加密過(guò)程是不能并行運(yùn)算的,但是解密過(guò)程可以并行運(yùn)算。在CFB模式中,加密運(yùn)算不需要明文,所以在明文未知的情況下可以提前加密向量,等明文已知時(shí)可以直接通過(guò)異或運(yùn)算處理明文分組,從而大大提高了系統(tǒng)的運(yùn)算效率。在CFB模式中,可以利用預(yù)處理的方式來(lái)提高整個(gè)系統(tǒng)的加密效率。如果某個(gè)明文分組發(fā)生錯(cuò)誤,那么由它生成的密文分組會(huì)發(fā)生錯(cuò)誤,是否影響后續(xù)密文分組,取決于向量的長(zhǎng)度和密文分組長(zhǎng)度的關(guān)系。如果某個(gè)密文分組發(fā)生錯(cuò)誤,那么解密的當(dāng)前明文分組會(huì)發(fā)生錯(cuò)誤,是否影響后續(xù)密
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 息縣入鄉(xiāng)隨俗活動(dòng)方案
- 悅翔限時(shí)活動(dòng)方案
- 情侶篝火活動(dòng)方案
- 情感問(wèn)答抽獎(jiǎng)活動(dòng)方案
- 驚喜app活動(dòng)方案
- 惠山區(qū)火焰切割活動(dòng)方案
- 惠州進(jìn)社區(qū)活動(dòng)方案
- 惠民車(chē)展活動(dòng)方案
- 感恩親自活動(dòng)方案
- 感恩家園活動(dòng)方案
- 育嬰員考試題型及答案
- 科室建立血糖管理制度
- 四川成都東方廣益投資有限公司下屬企業(yè)招聘筆試題庫(kù)2025
- 華為公司試用期管理制度
- 保險(xiǎn)合規(guī)知識(shí)課件
- 2025-2030中國(guó)云原生保護(hù)平臺(tái)組件行業(yè)前景趨勢(shì)與投資盈利預(yù)測(cè)報(bào)告
- 商業(yè)大廈機(jī)電系統(tǒng)調(diào)試
- 2025企業(yè)并購(gòu)合同協(xié)議模板
- 【恒順醋業(yè)公司基于杜邦分析的盈利能力淺析14000字論文】
- 電網(wǎng)技術(shù)改造及檢修工程定額和費(fèi)用計(jì)算規(guī)定2020 年版答疑匯編2022
- 2025年生態(tài)文明建設(shè)的考核試卷及答案
評(píng)論
0/150
提交評(píng)論