openssl AES加密模式詳解

  高級密碼學的加密標準,(Advance Encryption Standard, AES),是美國聯邦政府採用的一種區塊加密標準。是一種對稱分組加密算法。對稱/分組密碼通常分爲流加密(如OFB,CFB)和塊加密(ECB、CBC等),對於流加密,須要將分組密碼轉換爲流模式工做,對於塊加密(或稱分組加密),若是須要加密超過塊大小的數據,就須要涉及填充和鏈加密模式。算法

1. ECB(Electronic Code Book/電子密碼本)模式

  ECB模式是最簡單的加密模式,它將待加密的數據分紅若干個分組,每組的大小與加密密鑰長度相同,而後每組都用相同的密鑰進行加密。
優勢:
  1.簡單
  2.有利於並行計算
  3.偏差不會被傳遞
缺點:
  1.不能隱藏明文的模式
  2.可能對明文進行主動攻擊安全

2.CBC(Cipher Block Chaining,加密塊鏈)模式

  每一個明文塊先與前一個密文塊進行異或後,再進行加密。在這種方法中,每一個密文塊都依賴於前面因此的明文。同時爲了保證每條消息的惟一性,在第一個塊中須要使用初始化向量IV。CBC是最爲經常使用的工做模式。它的主要缺點是加密過程是串行化的,沒法被並行化。並且消息必須被填充到塊大小的整數倍。在加密時,明文的微小改變會致使其後的所有密文塊發生改變。但他的解密過程能夠被並行化。
優勢:
  1.不容易主動攻擊,安全行好於ECB,適合傳輸長度較長的報文,是SSL,IPSec的標準。
缺點:
  1.不利於並行計算
  2.偏差傳遞
  3.須要初始化向量IV加密

3.CFB(Cipher feedback/密文反饋)模式

  與ECB和CBC模式只可以加密塊數據不一樣,能夠將塊密碼變爲自同步的流密碼;CFB的解密過程幾乎就是顛倒的CBC過程。
優勢:
  1.隱藏了明文模式
  2.分組密碼轉化爲流模式
  3.能夠及時加密傳送小於分組的數據
缺點:
  1.不利於並行計算
  2.偏差傳送,一個明文單元損壞影響多個單元
  3.惟一的IVip

4.OFB(Output FeedBack,輸出反饋模式)

  先用塊加密器加密獲得密鑰流,而後再將密鑰流與明文流異或獲得密文流,解密是先用塊加密器生產密鑰流,再將密鑰流與密文流進行異或獲得明文,因爲異或操做的對稱性因此加密和解密的流程徹底同樣。
  1.隱藏了明文模式;
  2.分組密碼轉化爲流模式
  3.能夠及時加密傳送小於分組的數據
缺點:
  1.不利於並行計算
  2.對明文的主動攻擊是可能的
  3.偏差傳送,一個明文單元損壞影響多個單元同步

5.CRT(Counter,計數)模式

  計算器模式不常見,在CRT模式中,有一個自增算子,這個算子用密鑰加密後的輸出和明文異或的結果獲得密文,至關於一次一密。
優勢:
  1.有利於並行計算
  2.偏差不傳遞
  3.安全性高(至少和其餘模式同樣安全,如CBC,CFB,OFB)
  4.簡單性,加解密算法徹底同樣。
  5.無填充,能夠支持任意個字節的數據加密,而不須要填充
  6.隨機訪問,第i個密文的解密不依賴於第i-1個密文,提供了很高的隨機訪問能力
缺點:
  1.不能進行完整性校驗,密文在傳輸過程當中丟失比特位將致使後續比特沒法正確解密。io

相關文章
相關標籤/搜索