《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件 Chapter04-分組加密算法_第1頁
《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件 Chapter04-分組加密算法_第2頁
《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件 Chapter04-分組加密算法_第3頁
《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件 Chapter04-分組加密算法_第4頁
《數(shù)據(jù)加密與PKI應(yīng)用(微課版)》 課件 Chapter04-分組加密算法_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)加密與PKI應(yīng)用第4章分組加密算法分組加密算法也叫塊兒加密算法(BlockCipher),屬于對稱密碼體制,是“替代-換位”加密法到計算機(jī)加密的延伸。分組加密算法采用二進(jìn)制位運(yùn)算(或字節(jié)運(yùn)算)方式,運(yùn)算效率相對較高,被廣泛應(yīng)用于現(xiàn)代加密系統(tǒng)中,是現(xiàn)代密碼學(xué)的重要組成部分。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級加密標(biāo)準(zhǔn)AES044.4分組加密工作模式明文分組與密文分組

分組加密算法將明文編碼為二進(jìn)制序列后,按固定長度分為t個分組:M1,M2,...,Mt,使用密鑰對每個分組執(zhí)行相同的變換,從而生成t個密文分組:C1,C2,...,Ct。

考慮到算法的安全性,分組加密算法的分組長度不能太短,應(yīng)該保證加密算法能夠抵抗密碼分析;另外,考慮到分組加密算法的實(shí)用性,分組長度不能太長,要便于運(yùn)算。目前,分組加密算法分組的大小通常為64比特或128比特。

分組加密算法處理的分組大小是固定的,如果明文數(shù)據(jù)的大小不是分組大小的整數(shù)倍,那么就需要對最后一個分組進(jìn)行填充,使其達(dá)到規(guī)定的大小。填充應(yīng)該具有可逆性,即在解密時應(yīng)該能夠識別出加密時使用的填充數(shù)據(jù)。分組加密算法的基本結(jié)構(gòu)擴(kuò)散性:隱蔽明文的統(tǒng)計特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是換位。模糊性:隱蔽密鑰的統(tǒng)計特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是替代。通常采用非線性變換。乘積密碼:將擴(kuò)散和模糊串聯(lián)起來并重復(fù)操作,這樣的密碼體制被稱為(ProduceCipher)

20世紀(jì)40年代,香濃(Shannon)提出,好的加密算法應(yīng)該具備擴(kuò)散性(Diffusion)和模糊性(Confusion)。擴(kuò)散性:擴(kuò)散就是讓明文中的每一比特影響密文中的許多比特,或者說讓密文中的每一比特受明文中的許多比特的影響,這樣可以隱蔽明文的統(tǒng)計特性。實(shí)現(xiàn)擴(kuò)散性的常用方法是換位。模糊性:模糊就是將密文與密鑰之間的統(tǒng)計關(guān)系變得盡可能復(fù)雜,使得對手即使獲取了關(guān)于密文的一些統(tǒng)計特性,也無法推測密鑰。使用復(fù)雜的非線性替代變換可以達(dá)到比較好的模糊效果。實(shí)現(xiàn)模糊性的常用方法是替代。Feistel網(wǎng)絡(luò)是一種迭代結(jié)構(gòu),它將明文平分為左右兩部分,L0和R0,經(jīng)過r(r≥1)輪迭代完成整個操作過程。假設(shè)第i-1輪的輸出為Li-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表示替代,又被稱為混淆層,主要起模糊作用;P表示換位,又被稱為換位層,主要起擴(kuò)散作用。SP網(wǎng)絡(luò)也是一種乘積密碼,它由一定數(shù)量的迭代組成,其中每一次迭代都包含了替代和換位。假設(shè)第i-1輪的輸出為xi-1,它是第i輪的輸入,在經(jīng)過替代和換位后,輸出第i輪的結(jié)果xi,這里的替代部分需要使用第i輪的子密鑰ki。SP網(wǎng)絡(luò)結(jié)構(gòu)的典型代表是高級加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES)。SP網(wǎng)絡(luò)目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級加密標(biāo)準(zhǔn)AES044.4分組加密工作模式DES算法的整體結(jié)構(gòu)明文分組:64比特;密鑰長度:64比特;密文分組:64比特DES的加密過程包含3個階段:

(1)將64比特明文數(shù)據(jù)分組送入初始換位IP()函數(shù)(InitialPermutation),用于對明文中的數(shù)據(jù)重新排列,然后將明文分成兩部分,分別為L0(前32比特)和R0(后32比特)。

(2)進(jìn)行16輪迭代運(yùn)算。這16輪迭代運(yùn)算具有相同的結(jié)構(gòu),每輪都會應(yīng)用替代技術(shù)和換位技術(shù),且使用不同的子密鑰k

i。這些子密鑰是從原始密鑰運(yùn)算而來的。第16輪運(yùn)算的輸出為R16和L16。

(3)將R16和L16重新拼接起來,然后送入逆初始換位IP-1()函數(shù),最后的輸出就是64比特的密文。子密鑰生成

DES算法需要進(jìn)行16輪迭代運(yùn)算,每輪都需要一個48比特的子密鑰。

子密鑰是根據(jù)用戶提供的64比特初始密鑰產(chǎn)生的。子密鑰生成

將64比特的初始密鑰送入壓縮型初始密鑰換位表PC-1,去除奇偶校驗(yàn)位,對密鑰重新排列并分為兩部分,C0(前28比特)和D0(后28比特)。子密鑰生成

將64比特的初始密鑰送入壓縮型初始密鑰換位表PC-1,去除奇偶校驗(yàn)位,對密鑰重新排列并分為兩部分,C0(前28比特)和D0(后28比特)。子密鑰生成

在計算第i輪子密鑰時,將Ci-1和Di-1分別循環(huán)左移,移動位數(shù)取決于輪數(shù)i。在第i=1,2,9,16輪中,C、D兩部分分別循環(huán)左移1位,其余輪中分別循環(huán)左移2位。4×1+12×2=28子密鑰生成

將經(jīng)過移位后的Ci和Di送入一個壓縮型換位表PC-2,將子密鑰壓縮為48比特(去除第9、18、22、25、35、38、43、54位)。子密鑰生成

將經(jīng)過移位后的Ci和Di送入一個壓縮型換位表PC-2,將子密鑰壓縮為48比特(去除第9、18、22、25、35、38、43、54位)。初始換位與逆初始換位

逆初始換位IP-1()是初始換位IP()的逆過程。逆初始換位針對16輪迭代的結(jié)果進(jìn)行運(yùn)算,即執(zhí)行IP-1(R16||L16)??梢钥闯?,通過逆初始換位,原明文分組的比特位被恢復(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)過擴(kuò)展換位得到的48比特輸出與子密鑰

ki

進(jìn)行異或運(yùn)算。f(Ri-1,ki)迭代運(yùn)算

S盒替代是將上一步輸出的48比特作為輸入,經(jīng)過變換得到32比特輸出。S盒替代將48比特分成8個6比特的分組,分別輸入8個不同的S盒。假設(shè)S盒的6位輸入為x5x4x3x2x1x0,將x5x0轉(zhuǎn)換成十進(jìn)制數(shù)0~3中的一個數(shù),它確定表中的行號;將x4x3x2x1轉(zhuǎn)換成十進(jìn)制數(shù)0~15中的一個數(shù),它確定表中的列號。f(Ri-1,ki)迭代運(yùn)算S盒替代是將上一步輸出的48比特作為輸入,經(jīng)過變換得到32比特輸出。S盒替代將48比特分成8個6比特的分組,分別輸入8個不同的S盒。假設(shè)S盒的6位輸入為x5x4x3x2x1x0,將x5x0轉(zhuǎn)換成十進(jìn)制數(shù)0~3中的一個數(shù),它確定表中的行號;將x4x3x2x1轉(zhuǎn)換成十進(jìn)制數(shù)0~15中的一個數(shù),它確定表中的列號。f(Ri-1,ki)迭代運(yùn)算P盒換位是將S盒替代的輸出結(jié)果按照固定的換位盒(P盒)進(jìn)行變換。該換位將每位映射到輸出位,任何一位不能被映射兩次,也不能被省略。f()f(Ri-1,ki)

S盒替代是DES算法的核心,是一種非線性運(yùn)算:

如果沒有非線性運(yùn)算,則破譯者就能夠使用一個線性等式組來表示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,也就是說解密第1輪的輸入是加密第16輪的輸出。DES算法解密過程接下來分析解密的第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

這說明,解密的第1輪輸出與加密的第16輪輸入相等。DES算法解密過程接下來的15輪迭代也執(zhí)行相同的操作:Lid=R16-i

Rid=L16-i

其中,i=1,2,...,16。DES算法解密過程解密的第16輪為:L16d=R0R16d=L0DES算法解密過程經(jīng)過逆初始換位,可以恢復(fù)出明文M:IP-1(R16d||L16d)

=IP-1(L0||R0)

=IP-1(IP(M))

=MDES算法解密過程因?yàn)椋篊16=C0,D16=D0,所以:k16

=PC-2(C16,D16)=PC-2(C0,D0)=PC-2(PC-1(k))

=k1d解密子密鑰生成過程

計算k15時,可以通過C16和D16循環(huán)右移1位,再經(jīng)過壓縮型換位PC-2得到,恰好等于k2d

另外,計算k1(k16d)、k8(k9d)、k15(k2d),需要循環(huán)右移1位后,再經(jīng)過壓縮型換位換位PC-2得到子密鑰

其他子密鑰則需要循環(huán)右移兩位,再經(jīng)過壓縮型換位換位PC-2得到子密鑰。算法特殊性(1)互補(bǔ)性。如果C=DESk(M),那么當(dāng)明文和密鑰取補(bǔ)后,密文也會取補(bǔ),即

。這種形式,使得DES在選擇明文攻擊下工作量減半。(2)弱密鑰。DES在每輪操作中都會使用一個子密鑰。如果給定初始密鑰k,使得各輪子密鑰都相等,則稱k為弱密鑰。通過弱密鑰,加密明文兩次,則得到的仍然是明文,即:M=DESk(DESk(M))。DES的弱密鑰包括:0101010101010101H、1F1F1F1F0E0E0E0EH、E0E0E0E0F1F1F1F1H、FEFEFEFEFEFEFEFEH。算法特殊性(3)半弱密鑰。如果兩個不同的密鑰k和k'使得M=DESk(DESk'(M)),則k和k'為半弱密鑰,即k'能夠解密由密鑰k加密所得的密文。半弱密鑰只交替地生成兩種子密鑰,DES有6對兒半弱密鑰:窮舉攻擊與密碼分析窮舉攻擊:DES的密鑰太短,有效密鑰只有56比特,密鑰空間僅為256≈1017,1998年7月,電子前沿基金會(ElectronicFrontierFoundation,EFF)使用一臺造價25萬美元的密鑰搜索機(jī)器,在56小時內(nèi)就成功破譯了DES。1999年1月,電子前沿基金會用22小時15分鐘就宣告破譯了一個DES的密鑰。密碼分析法:除了窮舉攻擊以外,還可以通過差分密碼分析(DifferentialCryptanalysis)、線性密碼分析(LinearCryptanalysis)、相關(guān)密鑰密碼分析(Related-KeyCryptanalysis)等方法來攻擊DES。差分分析通過分析明文對兒的差值(通過異或運(yùn)算來定義DES算法的差分)對密文對兒的差值的影響來恢復(fù)某些密鑰位。線性密碼分析通過線性近似值來描述DES操作結(jié)構(gòu),試圖發(fā)現(xiàn)這些結(jié)構(gòu)的一些弱點(diǎn)。相關(guān)密鑰密碼分析類似于差分密碼分析,但它考查不同密鑰間的差分。3DES雙重DES算法不能抵抗中途相遇攻擊(Meet-in-the-middleAttack)。在眾多的多重DES算法中,由Tuchman提出的三重DES算法是一種被廣泛接受的改進(jìn)方法,已經(jīng)被用于密鑰管理標(biāo)準(zhǔn)ANSX9.17和ISO8732中。通過三重DES,使用兩個密鑰,可以將有效密鑰長度增加到112比特,可以有效抵御窮舉攻擊。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級加密標(biāo)準(zhǔn)AES044.4分組加密工作模式AES算法的整體結(jié)構(gòu)明文分組:128比特;密鑰長度:128/192/256比特;密文分組:128比特AES加密使用了4個基本變換:字節(jié)代替(SubBytes)變換、行移位(ShiftRows)變換、列混合(MixColumns)變換、輪密鑰加(AddRoundKey)變換。

AES的解密使用了這4個變換的逆操作,分別為逆字節(jié)代替(InvSubBytes)變換、逆行移位(InvShiftRows)變換、逆列混合(InvMixColumns)變換和輪密鑰加變換(該變換自身就是可逆的變化)。AES就是利用上述4個基本變換經(jīng)過N輪迭代而完成的。當(dāng)密鑰長度為128比特時,輪數(shù)N=10;當(dāng)密鑰長度為192比特時,輪數(shù)N=12;當(dāng)密鑰長度為256比特時,輪數(shù)N=14。AES算法的整體結(jié)構(gòu)加密過程:(1)給定一個明文分組M,將其放入狀態(tài)矩陣。輸入擴(kuò)展密鑰w0、w1、w2和w3,對狀態(tài)矩陣執(zhí)行輪密鑰加變換。(2)對狀態(tài)執(zhí)行第1輪到第N-1輪迭代變換,每輪都包括了字節(jié)代替、行移位、列混合、輪密鑰加四種變換。每輪的輪密鑰都會使用一個擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。(3)對狀態(tài)執(zhí)行最后一輪變換,只執(zhí)行字節(jié)代替、行移位和輪密鑰加三個變換,輸出密文。輪密鑰加也會使用擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。AES算法的整體結(jié)構(gòu)解密過程:(1)給定一個密文C,將其放入狀態(tài)矩陣。輸入擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3,對狀態(tài)矩陣執(zhí)行輪密鑰加變換。(2)對狀態(tài)執(zhí)行第1輪到第N-1輪迭代變換。每輪都包括了逆行移位、逆字節(jié)代替、輪密鑰加、逆列混合四種變換。每輪的密鑰加也會使用一個擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。(3)對狀態(tài)執(zhí)行最后一輪變換,只執(zhí)行逆行移位、逆字節(jié)代替、輪密鑰加三種變換,輸出明文。輪密鑰加也會使用擴(kuò)展密鑰w4N、w4N+1、w4N+2和w4N+3。狀態(tài)矩陣AES算法最基本的運(yùn)算單位是字節(jié)(8比特)。1.設(shè)明文分組:

首先將其劃分為16個字節(jié):

其中:

然后將a0~a15放入一個被稱為狀態(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é)角度,可以將每個字節(jié)看作有限域上的一個元素,分別對應(yīng)一個次數(shù)不超過7的多項(xiàng)式:

還可以表示為一個兩位的十六進(jìn)制數(shù)。例如,01101011B可以表示為:

6BH輪密鑰加

輪密鑰加變換,由狀態(tài)矩陣與擴(kuò)展密鑰矩陣的對應(yīng)字節(jié)逐比特做異或運(yùn)算。由于輪密鑰加使用異或運(yùn)算,所以其逆變換的運(yùn)算方法相同。

舉例:給定狀態(tài)矩陣和擴(kuò)展密鑰矩陣,計算輪密鑰加變換的結(jié)果。字節(jié)代替與逆字節(jié)代替

字節(jié)代替是一個非線性變換,對狀態(tài)矩陣中的每一個字節(jié)a進(jìn)行運(yùn)算

b=M·a-1+v,得到字節(jié)b(如果a=0,則映射到自身,即b=0)。

v是固定向量,值為63H;M是可逆的固定矩陣;a-1是a模一個8次不可約多項(xiàng)式的乘法逆元,在AES算法中,這個8次不可約多項(xiàng)式為m(x)=x8+x4+x3+x+1。v=字節(jié)代替與逆字節(jié)代替

逆字節(jié)代替變換是字節(jié)代替變換的逆變換。首先對字節(jié)進(jìn)行仿射變換的逆變換,然后對所得結(jié)果求在GF(28)上的乘法逆元。也可以將該變換制作成表格進(jìn)行查詢。列混合與逆列混合

列混合變換是一個線性變換,它混淆了狀態(tài)矩陣的每一列。由于每個輸入字節(jié)都影響了四個輸出字節(jié),因此列混合起到了擴(kuò)散的作用。逆列混合變換是列混合變換的逆,也可以寫成矩陣乘法形式。列混合與逆列混合

【例4-4】狀態(tài)中的1列為E6H、1BH、50H、18H,計算列混和運(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ò)展密鑰。

對于長度為128比特的密鑰,它對應(yīng)的輪數(shù)N=10,需要11個擴(kuò)展密鑰;對于長度為192比特的密鑰,它對應(yīng)的輪數(shù)N=12,需要13個擴(kuò)展密鑰;對于長度為256比特的密鑰,它對應(yīng)的輪數(shù)N=14,需要15個擴(kuò)展密鑰。獲取第1個密鑰擴(kuò)展

給定一個初始密鑰k(以128比特密鑰為例),將其放入狀態(tài)矩陣,可以直接得到第1個擴(kuò)展密鑰中的4個子密鑰w0、w1、w2、w3。2~10之子密鑰1(1)RotBytes(w4N-1)為字節(jié)旋轉(zhuǎn),將w4N-1的四個字節(jié)循環(huán)左移一個字節(jié)。(2)SubBytes()為字節(jié)代替,與AES加密算法中的字節(jié)代替相同。(3)RCN/1為輪常數(shù)。其中,2~10之子密鑰2~4

第1個到第11個擴(kuò)展密鑰,每一個擴(kuò)展密鑰的第2~4個子密鑰可以通過公式4-10計算得到。AES的安全性分析

在AES算法中,每一輪加密常數(shù)的不同可以消除可能產(chǎn)生的輪密鑰的對稱性。輪密鑰生成算法的非線性特性消除了產(chǎn)生相同輪密鑰的可能性。加密/解密過程中使用不同的變換可以避免出現(xiàn)類似DES算法中弱密鑰和半若密鑰的可能。不可能差分(ImpossibleDifferential)攻擊法已經(jīng)成功破解了6輪的AES-128;平方(Square)攻擊法已經(jīng)成功破解了7輪的AES-128和AES-192;沖突(Collision)攻擊法也已經(jīng)成功破解了7輪的AES-128和AES-192。

所有這些攻擊方法對于全部10輪的AES-128進(jìn)行破解都失敗了,但是這表明AES算法可能存在有待發(fā)現(xiàn)的弱點(diǎn)。

如果將AES用于智能卡等硬件裝置,通過觀察硬件的性能特征可以發(fā)現(xiàn)一些加密操作的信息,這種攻擊方法叫做旁路攻擊(Side-ChannelAttack)。

例如,當(dāng)處理密鑰為“1”的比特位時,需要消耗更多的能量,通過監(jiān)控能量的消耗,可以知道密鑰的每個位;還有一種攻擊是監(jiān)控完成一個算法所消耗的時間的微秒數(shù),所消耗時間數(shù)也可以反映部分密鑰位。目錄014.1分組加密算法概述024.2數(shù)據(jù)加標(biāo)準(zhǔn)DES034.3高級加密標(biāo)準(zhǔn)AES044.4分組加密工作模式電碼本模式加密與解密過程:c

i=Ek(m

i),1≤i≤tm

i=Dk(c

i),1≤i≤t

電碼本模式簡稱為ECB(ElectronicCodeBook)。

在這種模式下,將需要加密的消息按照加密算法的分組大小分為數(shù)個分組,并對每個分組進(jìn)行獨(dú)立加密形成密文分組,然后將所有密文分組連接起來得到密文。每個明文分組或密文分組的錯誤只影響其對應(yīng)的密文分組或明文分組,而不會傳遞給其它密文分組或明文分組。采用EBC模式時,不同的明文分組或密文分組的加密或解密可以并行處理,在硬件或軟件運(yùn)算時速度很快。

ECB模式的缺點(diǎn)是不能隱藏明文的模式,因此ECB模式無法抵抗攻擊者的主動攻擊,安全性較差。ECB模式可以用于處理短消息,例如加密密鑰時可以使用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

密碼分組鏈接模式簡稱CBC(Cipher-BlockChaining)。

每個明文分組先與前一個密文分組進(jìn)行異或后,再進(jìn)行加密。由于第一個明文分組之前沒有前一個密文分組,所以需要選擇一個初始向量IV(InitializationVector),這個初始向量相當(dāng)于c0。密文隱藏了明文的模式;通過選擇不同的初始向量,可以使重復(fù)的明文產(chǎn)生不同的密文,而無需重新產(chǎn)生密鑰;CBC模式適合傳輸長報文,是SSL、IPSec等協(xié)議的標(biāo)準(zhǔn)分組加密工作模式。IV應(yīng)該像密鑰一樣安全傳輸和存儲;如果明文分組中出現(xiàn)錯誤,那么錯誤會傳遞給當(dāng)前密文分組以及后面所有密文分組;如果某個密文分組發(fā)生錯誤,那么錯誤會影響當(dāng)前解密的明文分組以及下一個解密的明文分組;CBC模式的加密過程是不能并行運(yùn)算的,但是解密過程可以并行運(yùn)算。密碼反饋模式

密碼反饋模式簡稱CFB(CipherFeedback),前一個密文分組會被送回到密碼算法的輸入端。如果明文分組的大小為s比特,那么首先選擇一個n比特(n>s)的初始向量V1=IV,然后利用密鑰k加密該向量得到n比特序列。取該序列中高位的s比特與明文分組進(jìn)行異或運(yùn)算,得到s比特的密文分組。在加密第2個明文分組時,首先將初始向量左移s比特,然后將上一輪加密生成的s比特的密文分組附加到其后形成新一輪的向量,后續(xù)加密過程與第1個明文分組的加密過程相同。用同樣的方法完成全部t個明文分組的加密。

CFB模式加密和解密過程都使用了分組加密算法,本質(zhì)上是將分組加密算法作為一個密鑰流生成器來使用。密碼反饋模式與CBC模式類似,通過CFB模式生成的密文隱藏了明文的模式,并且選擇的初始向量IV不同,那么得到的密文也不相同。明文分組的長度s可以由用戶來確定,該模式適用于不同的消息格式要求。加密

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模式的加密過程是不能并行運(yùn)算的,但是解密過程可以并行運(yùn)算。在CFB模式中,加密運(yùn)算不需要明文,所以在明文未知的情況下可以提前加密向量,等明文已知時可以直接通過異或運(yùn)算處理明文分組,從而大大提高了系統(tǒng)的運(yùn)算效率。在CFB模式中,可以利用預(yù)處理的方式來提高整個系統(tǒng)的加密效率。如果某個明文分組發(fā)生錯誤,那么由它生成的密文分組會發(fā)生錯誤,是否影響后續(xù)密文分組,取決于向量的長度和密文分組長度的關(guān)系。如果某個密文分組發(fā)生錯誤,那么解密的當(dāng)前明文分組會發(fā)生錯誤,是否影響后續(xù)密

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論