2012年10月31日 星期三

分組對稱加密模式:ECB/CBC/CFB/OFB


一般的加密通常都是塊加密,如果要加密超過塊大小的數據,就需要涉及填充和鏈加密模式,文中提到的ECB和CBC等就是指鏈加密模式。在C#組件中實現的很多算法和Java都不太兼容,至少我發現RSA和AES/ECB是如此。研究了AES/ECB時發現了這篇文檔,圖還畫的不錯,先記下。注意,還缺一種CTR的模式。
 對稱加密和分組加密中的四種模式(ECB、CBC、CFB、OFB)
. AES對稱加密:

                                                      AES加密



                         分組


 
 
分組密碼的填充

                                                   分組密碼的填充
 
e.g.:

                                                         PKCS#5填充方式
 

 

 
流密碼:


 
 
分組密碼加密中的四種模式:
3.1 ECB模式
優點:
1.簡單;
2.有利於並行計算;
3.誤差不會被傳送;
缺點:
1.不能隱藏明文的模式;
2.可能對明文進行主動攻擊;

 

3.2 CBC
模式:
優點:
1.不容易主動攻擊,安全性好於ECB,適合傳輸長度長的報文,是SSL、IPSec的標準。
缺點:
1.不利於並行計算;
2.誤差傳遞;
3.需要初始化向量IV
 
3.3 CFB模式:

 優點:
1.隱藏了明文模式;
2.分組密碼轉化為流模式;
3.可以及時加密傳送小於分組的數據;
缺點:
1.不利於並行計算;
2.誤差傳送:一個明文單元損壞影響多個單元;
3.唯一的IV;
 
3.4 OFB模式:

 優點:
1.隱藏了明文模式;
2.分組密碼轉化為流模式;
3.可以及時加密傳送小於分組的數據;
缺點:
1.不利於並行計算;
2.對明文的主動攻擊是可能的;
3.誤差傳送:一個明文單元損壞影響多個單元;

1 則留言:

  1. FingerQ平台提供獨特的指紋加密(加密堡)聊天功能,您可以使用此PrivacQ設備中的應用軟件FingerQ Chat功能可對圖片,檔案和信息進行加密,安全與想要的人分享任何資訊。
    http://www.fingerq.com/FQCA/fingerqchat.php?target=fped&lang=zh_TC

    回覆刪除