分組密碼算法是將輸入數(shù)據(jù)劃分成固定長(zhǎng)度的組進(jìn)行加密和解密的一類對(duì)稱密碼算法。本章主要介紹分組密碼概述、DES、AES,以及分組密碼的工作模式和分組密碼分析。
1.分組密碼簡(jiǎn)介
分組密碼是一種單鑰或?qū)ΨQ密碼算法,通信雙方使用相同的密鑰加密和解密。
在分組密碼中,要將明文分為長(zhǎng)度為n的分組,用同樣的密鑰k對(duì)每一個(gè)組進(jìn)行加密,解密的時(shí)候同樣的。設(shè)加密之后的密文長(zhǎng)度為m,則如果m>n,則是有數(shù)據(jù)擴(kuò)展的分組密碼;如果m<n,則是有數(shù)據(jù)壓縮的分組密碼。
2.分組密碼的基本原理
2.1代換
為使加密運(yùn)算可逆也就是讓解密運(yùn)算可行,明文的每個(gè)分組都應(yīng)該產(chǎn)生唯一一個(gè)密文分組,這樣的變換是可逆的,稱明文分組到密文分組的可逆變換稱為代換。
2.2擴(kuò)散
擴(kuò)散和混淆的目的是抗擊攻擊者對(duì)密碼系統(tǒng)的統(tǒng)計(jì)分析。
擴(kuò)散是將明文的統(tǒng)計(jì)特性散步到密文中去,使明文的每位影響密文中的多位的值,等價(jià)于密文中每位都受到明文中多位的影響,也就是從密文中不能獲得明文的統(tǒng)計(jì)特性。
2.3混淆
混淆是使密文和密鑰之間的統(tǒng)計(jì)關(guān)系變得盡可能復(fù)雜,從而使得攻擊者無(wú)法得到密鑰。使用復(fù)雜的代數(shù)算法可以得到預(yù)期的混淆效果,而簡(jiǎn)單的線性代換函數(shù)得到的混淆結(jié)果不太理想。
擴(kuò)散和混淆成功地實(shí)現(xiàn)了分組密碼的本質(zhì)屬性,因而成為設(shè)計(jì)現(xiàn)代分組密碼的基礎(chǔ)。
3.分組密碼的結(jié)構(gòu)
現(xiàn)代密碼學(xué)中的分組密碼體制基本上都是基于乘積和迭代來(lái)構(gòu)造的。乘積一般使通過(guò)一系列的置換和代換構(gòu)成的。
3.1Feistel網(wǎng)絡(luò)
分為平衡的和不平衡的兩種。
3.1.1平衡Feistel網(wǎng)絡(luò)
設(shè)x是需要加密的明文,長(zhǎng)度為2m。
加密過(guò)程如下:
①將明文x一分為二,x=L0R0,L為左邊m長(zhǎng)度,R為右邊m長(zhǎng)度部分。
②
其中F是一個(gè)加密函數(shù),稱為圈函數(shù);Ki是由密鑰k產(chǎn)生的長(zhǎng)度為t的子密鑰;密文y=RrLr,其中r是圈變換的迭代次數(shù)。解密過(guò)程就是加密過(guò)程的逆過(guò)程。
過(guò)程圖如下:
3.1.2不平衡Feistel網(wǎng)絡(luò)
設(shè)x是需要加密的明文,長(zhǎng)度為2m。
加密過(guò)程如下:
①將明文x一分為二,x=L0R0,L為左邊n1長(zhǎng)度,R為右邊n2長(zhǎng)度部分,且n1+n2=2m。
②
其中F是圈變換;Ki是由密鑰k產(chǎn)生的長(zhǎng)度為t的子密鑰;密文y=XrRXrL,其中r是圈變換的迭代次數(shù)。解密過(guò)程與加密過(guò)程類似。
其中有限域的概念可以參考如下鏈接:有限域
3.2SP網(wǎng)絡(luò)
SP型分組密碼的加密思想為:設(shè)x是要加密的明文,長(zhǎng)度為n。過(guò)程如下:
①令X0=x,1 ≤ i ≤ r;
②在子密鑰Ki的控制下,對(duì)Xi-1進(jìn)行代換S;
③對(duì)結(jié)果做置換或者可逆的線性變換P得到結(jié)果Xi
④重復(fù)2、3步直到達(dá)到迭代次數(shù)r,得到最后的密文結(jié)果y=Xr。
過(guò)程如下圖:
其中S一般稱為混淆層,起混淆作用;
置換或者可逆的線性變換P稱為擴(kuò)散層,起擴(kuò)散作用。
Fesistel網(wǎng)絡(luò)的加解密過(guò)程類似,但是SP網(wǎng)絡(luò)的加解密過(guò)程布雷斯,所以不能用同一個(gè)算法來(lái)實(shí)現(xiàn)加密和解密。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-601533.html
4.分組密碼的設(shè)計(jì)
分組密碼的設(shè)計(jì)在于找到一種算法,能在密鑰控制下從一個(gè)足夠大且足夠好的置換子集中,簡(jiǎn)單而迅速地選出一個(gè)置換,用來(lái)對(duì)當(dāng)前輸入的明文組進(jìn)行加密變換。
設(shè)計(jì)要求如下:
①分組長(zhǎng)度n要足夠大,使分組代換字母表中的元素個(gè)數(shù)2n足夠大,防止明文窮舉攻擊奏效。
②密鑰量要足夠大,以防止密鑰窮舉攻擊奏效。
③由密鑰確定置換的算法要足夠復(fù)雜。
④加密和解密運(yùn)算簡(jiǎn)單,易于軟件和硬件高速實(shí)現(xiàn)。
⑤數(shù)據(jù)擴(kuò)展。一般無(wú)數(shù)據(jù)擴(kuò)展,在采用同態(tài)置換和隨機(jī)化加密技術(shù)時(shí)可以引入數(shù)據(jù)擴(kuò)展。
⑥差錯(cuò)傳播盡可能小。
其中1 2 3的安全性是必要條件。要在安全性和實(shí)用性之間找到平衡。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-601533.html
到了這里,關(guān)于【密碼學(xué)】三、分組密碼概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!