複製鏈接
請複製以下鏈接發送給好友

Blowfish算法

鎖定
Blowfish算法是一個64位分組及可變密鑰長度的對稱密鑰分組密碼算法,可用來加密64比特長度的字符串。32位處理器誕生後,Blowfish算法因其在加密速度上超越了DES而引起人們的關注。Blowfish算法具有加密速度快、緊湊、密鑰長度可變、可免費使用等特點,已被廣泛使用於眾多加密軟件。
中文名
Blowfish算法
分    類
對稱密鑰分組加密算法
提出者
Bruce Schneier
提出時間
1993年11月
Blowfish算法是一種對稱的分組加密算法,算法核心在於子密鑰生成,它將變長密鑰擴展成總長4168 Byte的子密鑰數組。算法中使用了大量的子密鑰,而子密鑰又依賴於用户密鑰,實際加/解密過程中使用的是更新後的子密鑰數組,子密鑰即P數組和S盒。Blowfish算法有一個核心加密函數:BF_En(),該函數的輸人是64位明文信息,經過運算,以64位密文信息的形式輸出。用Blowfish算法加密信息,需要兩個過程:密鑰預處理和信息加密。同樣,解密亦需要兩個過程,密鑰預處理和信息解密。
Blowfish算法的源密鑰——pbox和sbox是固定的,而我們要加密一個信息,需要自己選擇一個key,用這個key對pbox和sbox進行變換,得到下一步信息加密所要用的key_pbox和key_sbox。解密亦是如此,由於Blowfish是對稱加密算法,解密方在得到key後根據key生成解密所需的key_box和key_sbox。對同一個信息加密解密,選取的key的不同會導致密文的不同。因此,Blowfish算法的關鍵在於key的選擇以及保密。
由於Blowfish算法採用變長密鑰,這在給用户帶來極大便利的同時也有隱患。由於算法加/解密核心在於密鑰的選擇和保密,但在實際應用中經常使用一些弱密鑰對信息資源進行加密,導致存在着很大的安全隱患 [1] 
參考資料
  • 1.    尚華益,姚國祥,官全龍.基於Blowfish和MD5的混合加密方案 [J].計算機應用研究.2010年1月 231-233