當前位置:編程學習大全網 - 編程語言 - 對稱加密算法的加密算法主要有哪些

對稱加密算法的加密算法主要有哪些

1、3DES算法

3DES(即Triple DES)是DES向AES過渡的加密算法(1999年,NIST將3-DES指定為過渡的加密標準),加密算法,其具體實現如下:設Ek()和Dk()代表DES算法的加密和解密過程,K代表DES算法使用的密鑰,M代表明文,C代表密文,這樣:

3DES加密過程為:C=Ek3(Dk2(Ek1(M)))

3DES解密過程為:M=Dk1(EK2(Dk3(C)))

2、Blowfish算法

BlowFish算法用來加密64Bit長度的字符串。

BlowFish算法使用兩個“盒”——unsignedlongpbox[18]和unsignedlongsbox[4,256]。

BlowFish算法中,有壹個核心加密函數:BF_En(後文詳細介紹)。該函數輸入64位信息,運算後,以64位密文的形式輸出。用BlowFish算法加密信息,需要兩個過程:密鑰預處理和信息加密。

分別說明如下:

密鑰預處理:

BlowFish算法的源密鑰——pbox和sbox是固定的。我們要加密壹個信息,需要自己選擇壹個key,用這個key對pbox和sbox進行變換,得到下壹步信息加密所要用的key_pbox和key_sbox。具體的變化算法如下:

1)用sbox填充key_sbox

2)用自己選擇的key8個壹組地去異或pbox,用異或的結果填充key_pbox。key可以循環使用。

比如說:選的key是"abcdefghijklmn"。則異或過程為:

key_pbox[0]=pbox[0]abcdefgh;

key_pbox[1]=pbox[1]ijklmnab;

…………

…………

如此循環,直到key_pbox填充完畢。

3)用BF_En加密壹個全0的64位信息,用輸出的結果替換key_pbox[0]和key_pbox[1],i=0;

4)用BF_En加密替換後的key_pbox,key_pbox[i+1],用輸出替代key_pbox[i+2]和key_pbox[i+3];

5)i+2,繼續第4步,直到key_pbox全部被替換;

6)用key_pbox[16]和key_pbox[17]做首次輸入(相當於上面的全0的輸入),用類似的方法,替換key_sbox信息加密。

信息加密就是用函數把待加密信息x分成32位的兩部分:xL,xRBF_En對輸入信息進行變換。

3、RC5算法

RC5是種比較新的算法,Rivest設計了RC5的壹種特殊的實現方式,因此RC5算法有壹個面向字的結構:RC5-w/r/b,這裏w是字長其值可以是16、32或64對於不同的字長明文和密文塊的分組長度為2w位,r是加密輪數,b是密鑰字節長度。

擴展資料:

普遍而言,有3個獨立密鑰的3DES(密鑰選項1)的密鑰長度為168位(三個56位的DES密鑰),但由於中途相遇攻擊,它的有效安全性僅為112位。密鑰選項2將密鑰長度縮短到了112位,但該選項對特定的選擇明文攻擊和已知明文攻擊的強度較弱,因此NIST認定它只有80位的安全性。

對密鑰選項1的已知最佳攻擊需要約2組已知明文,2部,2次DES加密以及2位內存(該論文提到了時間和內存的其它分配方案)。

這在現在是不現實的,因此NIST認為密鑰選項1可以使用到2030年。若攻擊者試圖在壹些可能的(而不是全部的)密鑰中找到正確的,有壹種在內存效率上較高的攻擊方法可以用每個密鑰對應的少數選擇明文和約2次加密操作找到2個目標密鑰中的壹個。

百度百科-3DES

百度百科-BLOWFISH

百度百科-RC5

  • 上一篇:菜鳥初學Java如何系統學習?
  • 下一篇:作業系統批處理和分時處理的區別
  • copyright 2024編程學習大全網