天天看點

對稱加密算法-DES以及DESede算法

一、簡述

  對稱加密算法就是能将資料加解密。加密的時候用密鑰對資料進行加密,解密的時候使用同樣的密鑰對資料進行解密。

  des是美國國家标準研究所提出的算法。因為加解密的資料安全性和密鑰長度成正比。des的56位的密鑰已經形成安全隐患,在1998年之後就很少被采用。但是一些老舊的系統還在使用。因為這個des算法并沒有被美國标準委員會公布全部算法,大家一緻懷疑被留了後門。是以慢慢就被淘汰掉了。

  後來針對des算法進行了改進,有了三重des算法(desede)。針對des算法的密鑰長度較短以及疊代次數偏少問題做了相應改進,提高了安全強度。不過desede算法處理速度較慢,密鑰計算時間較長,加密效率不高問題使得對稱加密算法的發展不容樂觀。

二、互動模型

1、消息傳遞雙方約定密鑰,通常由消息發送方(甲方)建構密鑰通知消息接收方(乙方)

2、甲方使用密鑰對資料記性加密,然後将加密後的資料通過網絡傳送給乙方

3、乙方接收到資料,然後使用約定的密鑰對資料進行解密

整個模型很像hmac的資料互動過程,都是一個密鑰的概念,而且密鑰都是雙方知道的。但是hmac算法是資訊摘要的擷取。這邊是對資料進行加解密

三、java6和bouncycastle針對des算法的資料加密支援還是不同的。展現在密鑰長度,工作模式以及填充方式上。這裡bouncycastle的密鑰長度是64位。不過在desede算法上bouncy castle也是密鑰長度比java6的密鑰長度要長。

    不過所有的對稱加密算法的實作還是類似的。可以參看如下的代碼:

1、des算法

四、總結

1、主要看設定密鑰的長度的變化。同時,bouncycastle支援更多的填充模式,在相同算法上比java6實作的版本的密鑰長度要長

2、java的api中僅僅提供了des,desede和pbe 3三種對稱加密算法密鑰材料實作類