溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

分組密碼是什么?分組密碼是怎樣加密的?

發(fā)布時(shí)間:2020-05-29 17:36:58 來(lái)源:億速云 閱讀:1613 作者:鴿子 欄目:數(shù)據(jù)安全

分組密碼是什么呢?分組分組顧名思義就是將明文消息分成組來(lái)進(jìn)行加密,也就是說,加密器每次只能處理特定長(zhǎng)度的一組數(shù)據(jù),這里的"一組數(shù)據(jù)"就被稱之為分組。我們也將每一個(gè)分組的比特?cái)?shù)就稱為分組長(zhǎng)度。

看完分組密碼的解釋,你就能明白流密碼和分組密碼的加密器中是否含有記憶元件的解釋了:對(duì)于分組密碼,它處理完一個(gè)分組就結(jié)束一次加密進(jìn)程,因此不需要通過內(nèi)部狀態(tài)來(lái)記錄加密的進(jìn)度;相反的是,對(duì)于流密碼來(lái)說,它是對(duì)一個(gè)數(shù)據(jù)流進(jìn)行連續(xù)的加密處理,因此需要加密其中的記憶元件來(lái)記錄加密器內(nèi)部的狀態(tài)。

分組密碼:

分組密碼,就是將明文消息編碼表示后的數(shù)字序列 x0 , x1 , …, xi , …,將其劃分成長(zhǎng)為 n 的組 x = ( x0 , x1 , …, xn - 1 ),各一個(gè)長(zhǎng)度為 n 的分組都分別在密鑰 k = ( k0 , k1 , …, kt - 1 ) 控制下,變換成長(zhǎng)度為m的等長(zhǎng)的輸出數(shù)字序列 y = ( y0 , y1 , …, ym - 1 ),其加密函數(shù) E: Vn× K→ Vm,Vn和Vm分別是 n 維和 m 維矢量空間,K為密鑰空間。

分組密碼是什么?分組密碼是怎樣加密的?

在圖中可以看到,輸入一個(gè)長(zhǎng)度為n的明文分組,經(jīng)過加密器后輸出一個(gè)長(zhǎng)度為m的密文,但是在一般情況下,我們?nèi)=n,如果遇到n>m,則說明在數(shù)據(jù)加密中存在數(shù)據(jù)壓縮,若n<m,則在數(shù)據(jù)加密中有數(shù)據(jù)擴(kuò)展。

下面來(lái)看看幾種簡(jiǎn)單的設(shè)計(jì)分組密碼常用的方法。

代換:

如果明文和密文的分組長(zhǎng)度都為 n 比特, 則明文的每一個(gè)分組都有2的n次方個(gè)可能的取值。

為保證加密后得到的密文可以通過解密運(yùn)算還原成為明文消息,明文的每一個(gè)分組都應(yīng)產(chǎn)生惟一的一個(gè)密文分組,我們把這樣的變換稱為可逆的, 稱明文分組到密文分組的可逆變換為代換。

我們以n=4為例,來(lái)看看分組密碼到底數(shù)怎樣加密的?

分組密碼是什么?分組密碼是怎樣加密的?

對(duì)于分組長(zhǎng)度為4的代換結(jié)構(gòu),我們可以依據(jù)代換表給出代換以后的密文。

分組密碼是什么?分組密碼是怎樣加密的?

但是,這種代換結(jié)構(gòu)在實(shí)際應(yīng)用中還有一些問題需要考慮。

如果分組長(zhǎng)度太小,如 n = 4,系統(tǒng)則等價(jià)于古典的代換密碼,容易通過對(duì)明文的統(tǒng)計(jì)分析而被攻破。

這個(gè)弱點(diǎn)不是代換結(jié)構(gòu)固有的,只是因?yàn)榉纸M長(zhǎng)度太小。如果分組長(zhǎng)度n足夠大,而且從明文到密文可有任意可逆的代換,明文的統(tǒng)計(jì)特性就不會(huì)太過明顯,這樣以來(lái),利用代換結(jié)構(gòu)就不容易被攻破。

feistel結(jié)構(gòu):

Feistel,基本上使每一個(gè)剛接觸密碼學(xué)的小伙伴們最頭疼的部分了,別怕別怕,今天龍叔跟你細(xì)說Feistel結(jié)構(gòu)。

其實(shí)對(duì)于很多分組密碼來(lái)說,它們的結(jié)構(gòu)從本質(zhì)上說都是基于一個(gè)稱為 Feistel 網(wǎng)絡(luò)的結(jié)構(gòu)。Feistel 提出利用乘積密碼可獲得簡(jiǎn)單的代換密碼,目的是為了使最后結(jié)果的密碼強(qiáng)度高于每個(gè)基本密碼系統(tǒng)產(chǎn)生的結(jié)果。

乘積密碼:依次使?兩個(gè)或兩個(gè)以上基本密碼。

下來(lái)我們看看真正的feistel結(jié)構(gòu)。

分組密碼是什么?分組密碼是怎樣加密的?

上圖為整個(gè)feistel的n輪結(jié)構(gòu),但其實(shí)每一輪都是進(jìn)行同樣的操作,接下來(lái)我們就分析在一輪中到底都做了些什么?

分組密碼是什么?分組密碼是怎樣加密的?

  • Feistel加密1輪的迭代過程

-  明?2w?特,被分為等?的兩部分

-  第i輪?密鑰由初始密鑰K推導(dǎo)出的

-  ?般來(lái)說,每輪?密鑰與K不同,也互不相同

-  F稱為輪函數(shù)(每輪都?樣)

分組密碼是什么?分組密碼是怎樣加密的?

在每一輪中,都要進(jìn)行左右的一次運(yùn)算,并將運(yùn)算結(jié)果傳遞給下一輪。

再來(lái)看看我們的feistel解密過程。

分組密碼是什么?分組密碼是怎樣加密的?

  • Feistel解密1輪迭代過程

-   被解密的數(shù)據(jù)左右交換

-   解密過程按照與加密過程相反順序使?密鑰

分組密碼是什么?分組密碼是怎樣加密的?

解密同加密一樣,也需要進(jìn)行左右消息分組的運(yùn)算,并且要將運(yùn)算結(jié)果傳遞給下一輪。

通過feistel結(jié)構(gòu)的加密和解密,我們可以發(fā)現(xiàn)在明文消息在經(jīng)過加密以后的密文,可以通過解密算法將其還原為原始的明文,也就是說該加密算法是可逆的。

分組密碼的應(yīng)用非常廣泛,它易于構(gòu)造偽隨機(jī)數(shù)生成器、流密碼、消息認(rèn)證碼(MAC)和雜湊函數(shù)等,還可進(jìn)而成為消息認(rèn)證技術(shù)、數(shù)據(jù)完整性機(jī)制、實(shí)體認(rèn)證協(xié)議以及單鑰數(shù)字簽字體制的核心組成部分。

實(shí)際應(yīng)用中對(duì)于分組密碼可能提出多方面的要求,除了安全性外,還有運(yùn)行速度、存儲(chǔ)量(程序的長(zhǎng)度、數(shù)據(jù)分組長(zhǎng)度、高速緩存大小)、實(shí)現(xiàn)平臺(tái) (硬件、軟件、芯片)、運(yùn)行模式等限制條件。 這些都需要與安全性要求之間進(jìn)行適當(dāng)?shù)恼壑羞x擇。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI