基於“對稱密鑰”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blowfish等。
對稱密鑰:DES TripleDES算法
DES算法把64位的明文輸入塊變為數據長度為64位的密文輸出塊,其中8位為奇偶校驗位,另外56位作為密碼的長度。首先,DES把輸入的64位數據塊按位重新組合,並把輸出分為L0、R0兩部分,每部分各長32位,並進行前後置換,最終由L0輸出左32位,R0輸出右32位,根據這個法則經過16次叠代運算後,得到L16、R16,將此作為輸入,進行與初始置換相反的逆置換,即得到密文輸出。
DES算法具有極高的安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發現更有效的辦法,而56位長密鑰的窮舉空間為2^56,這意味著如果壹臺計算機的速度是每秒種檢測100萬個密鑰,那麽它搜索完全部密鑰就需要將近2285年的時間,因此DES算法是壹種很可靠的加密方法。
對稱密鑰:RC算法
RC4算法的原理是“攪亂”,它包括初始化算法和偽隨機子密碼生成算法兩大部分,在初始化的過程中,密鑰的主要功能是將壹個256字節的初始數簇進行隨機攪亂,不同的數簇在經過偽隨機子密碼生成算法的處理後可以得到不同的子密鑰序列,將得到的子密鑰序列和明文進行異或運算(XOR)後,得到密文。
由於RC4算法加密采用的是異或方式,所以,壹旦子密鑰序列出現了重復,密文就有可能被破解,但是目前還沒有發現密鑰長度達到128位的RC4有重復的可能性,所以,RC4也是目前最安全的加密算法之壹。
對稱密鑰:BlowFish算法
BlowFish算法是壹個64位分組及可變密鑰長度的分組密碼算法,該算法是非專利的。
BlowFish算法使用兩個“盒”:pbox[18]和sbox[4256],BlowFish算法有壹個核心加密函數。該函數輸入64位信息,運算後以64位密文的形式輸出。用BlowFish算法加密信息,需要密鑰預處理和信息加密兩個過程。BlowFish算法的原密鑰pbox和sbox是固定的,要加密壹個信息,需要選擇壹個key,用這個key對pbox和sbox進行變換,得到下壹步信息加密所用到的key_pbox和key_sbox。
BlowFish算法解密,同樣也需要密鑰預處理和信息解密兩個過程。密鑰預處理的過程和加密時完全相同。信息解密的過程就是把信息加密過程的key_pbox逆序使用即可。