簡(jiǎn)述DES加密算法

之前的文章中,我們簡(jiǎn)答聊了AES和RSA加密算法,今天我們來(lái)聊聊應(yīng)用最為廣泛的對(duì)稱加密——DES加密算法。

DES全稱為Data Encryption Standard,又被稱為美國(guó)數(shù)據(jù)加密標(biāo)準(zhǔn),它可能是使用最廣泛的密鑰系統(tǒng),特別是在保護(hù)金融數(shù)據(jù)的安全中,像自動(dòng)取款機(jī),POS機(jī),磁卡及智能卡(IC卡)通常都會(huì)使用到DES算法。

DES加密算法
圖片來(lái)源于網(wǎng)絡(luò)

DES是一種典型的分組密碼,一種將固定長(zhǎng)度的明文通過(guò)一系列復(fù)雜的操作變成同樣長(zhǎng)度的密文的算法。對(duì)DES而言,塊長(zhǎng)度為64位。同時(shí),DES使用密鑰來(lái)自定義變換過(guò)程,因此算法認(rèn)為只有持有加密所用的密鑰的用戶才能解密密文。密鑰表面上是64位的,然而只有其中的56位被實(shí)際用于算法,其余8位可以被用于奇偶校驗(yàn),并在算法中被丟棄。因此,DES的有效密鑰長(zhǎng)度僅為56位。

基本組成

DES算法的入口參數(shù)有三個(gè):Key、Data、Mode。

Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰;

Data也為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);

Mode為DES的工作方式,有兩種:加密或解密。

當(dāng)模式為加密模式時(shí),明文按照64位進(jìn)行分組,形成明文組,key用于對(duì)數(shù)據(jù)加密。當(dāng)模式為解密模式時(shí),key用于對(duì)數(shù)據(jù)解密。實(shí)際運(yùn)用中,密鑰只用到了64位中的56位,這樣才具有高的安全性。

DES
圖片來(lái)源于網(wǎng)絡(luò)

加密原理

DES使用一個(gè)56位的密鑰以及附加的8位奇偶校驗(yàn)位,產(chǎn)生最大64 位的分組大小。這是一個(gè)迭代的分組密碼,使用稱為Feistel的技術(shù),其中將加密的文本塊分成兩半。

使用子密鑰對(duì)其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過(guò)程會(huì)繼續(xù)下去,但最后一個(gè)循環(huán)不交換。DES使用16個(gè)循環(huán),使用異或,置換,代換,移位操作四種基本運(yùn)算。

DES
圖片來(lái)源于網(wǎng)絡(luò)

DES的特點(diǎn)

DES算法具有極高安全性,除了用窮舉搜索法對(duì)DES算法進(jìn)行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。56位長(zhǎng)的密鑰的窮舉空間為256,這意味著如果一臺(tái)計(jì)算機(jī)的速度是每一秒鐘檢測(cè)一百萬(wàn)個(gè)密鑰,則它搜索完全部密鑰就需要將近2285年的時(shí)間。然而隨著科技的發(fā)展,破解DES的可能性也也越來(lái)越大,使用特殊的硬件并行處理幾個(gè)小時(shí)即可。所以為了克服這些問題,人們又提出了三重DES(3DES)的變形方式(我們改天聊)。

DES
圖片來(lái)源于網(wǎng)絡(luò)

由于DES 加密過(guò)程的算法是公開的,所以密鑰K的保密就顯得尤為重要,只有發(fā)送方與接收方采用相同的密鑰進(jìn)行加密解密才能獲取明文數(shù)據(jù)。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。