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算法採用變長密鑰,這在給用戶帶來極大便利的同時也有隱患。由於算法加/解密核心在於密鑰的選擇和保密,但在實際套用中經常使用一些弱密鑰對信息資源進行加密,導致存在著很大的安全隱患。

相關詞條

熱門詞條

聯絡我們