簡述DES加密算法

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

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

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

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

基本組成

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

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

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

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

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

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

加密原理

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

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

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

DES的特點

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

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

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

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